diff --git a/home-modules/hyprland.nix b/home-modules/hyprland.nix
new file mode 100644
index 0000000..63ecfe8
--- /dev/null
+++ b/home-modules/hyprland.nix
@@ -0,0 +1,200 @@
+{ ... } : {
+ wayland.windowManager.hyprland.enable = true;
+ wayland.windowManager.hyprland.settings = {
+ monitor = [
+ ",preferred,auto,auto"
+ "eDP-1,preferred,auto,1.6"
+ ];
+
+ "$terminal" = "ghostty";
+ "$fileManager" = "dolphin"; # TODO: Change.
+ "$menu" = "GSK_RENDERER=ngl walker";
+
+ env = [
+ "XCURSOR_SIZE,24"
+ "HYPRCURSOR_SIZE,24"
+ ];
+
+ general = {
+ gaps_in = 4;
+ gaps_out = 8;
+
+ border_size = 1;
+
+ # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
+ "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
+ "col.inactive_border" = "rgba(595959aa)";
+
+ # Set to true enable resizing windows by clicking and dragging on borders and gaps
+ resize_on_border = false;
+
+ # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
+ allow_tearing = false;
+
+ layout = "dwindle";
+ };
+
+ decoration = {
+ rounding = 5;
+ rounding_power = 2;
+
+ # Change transparency of focused and unfocused windows
+ active_opacity = "1.0";
+ inactive_opacity = "1.0";
+
+ shadow = {
+ enabled = true;
+ range = 4;
+ render_power = 3;
+ color = "rgba(1a1a1aee)";
+ };
+
+ # https://wiki.hyprland.org/Configuring/Variables/#blur
+ blur = {
+ enabled = true;
+ size = 3;
+ passes = 1;
+
+ vibrancy = "0.1696";
+ };
+ };
+
+ animations = {
+ # enabled = yes, please :)
+ enabled = "no";
+ };
+
+ # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+ dwindle = {
+ pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+ preserve_split = true; # You probably want this
+ };
+
+ # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+ master = {
+ new_status = "master";
+ };
+
+ # https://wiki.hyprland.org/Configuring/Variables/#misc
+ misc = {
+ force_default_wallpaper = 1; # Set to 0 or 1 to disable the anime mascot wallpapers
+ disable_hyprland_logo = true; # If true disables the random hyprland logo / anime girl background. :(
+ };
+
+# https://wiki.hyprland.org/Configuring/Variables/#input
+ input = {
+ kb_layout = "us";
+
+ follow_mouse = 1;
+
+ sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
+
+ touchpad = {
+ natural_scroll = true;
+ tap-to-click = false;
+ disable_while_typing = true;
+ clickfinger_behavior = true; # Right click with 2 fingers.
+ scroll_factor = "0.75";
+ };
+ };
+
+ gestures = {
+ workspace_swipe = false;
+ };
+
+ "$mainMod" = "SUPER"; # Sets "Windows" key as main modifier
+
+ # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
+ bind = [
+ "$mainMod, return, exec, $terminal"
+ "$mainMod, Q, killactive,"
+ "$mainMod SHIFT, Q, exit,"
+ # "$mainMod, E, exec, $fileManager"
+ "$mainMod, V, togglefloating,"
+ "$mainMod, P, pseudo," # dwindle
+ "$mainMod, J, togglesplit," # dwindle
+
+ # Move focus with mainMod + arrow keys
+ "$mainMod, M, movefocus, l"
+ "$mainMod, I, movefocus, r"
+ "$mainMod, N, movefocus, d"
+ "$mainMod, E, movefocus, u"
+
+ # Switch workspaces with mainMod + [0-9]
+ "$mainMod, 1, workspace, 1"
+ "$mainMod, 2, workspace, 2"
+ "$mainMod, 3, workspace, 3"
+ "$mainMod, 4, workspace, 4"
+ "$mainMod, 5, workspace, 5"
+ "$mainMod, 6, workspace, 6"
+ "$mainMod, 7, workspace, 7"
+ "$mainMod, 8, workspace, 8"
+ "$mainMod, 9, workspace, 9"
+ "$mainMod, 0, workspace, 10"
+
+ # Move active window to a workspace with mainMod + SHIFT + [0-9]
+ "$mainMod SHIFT, 1, movetoworkspace, 1"
+ "$mainMod SHIFT, 2, movetoworkspace, 2"
+ "$mainMod SHIFT, 3, movetoworkspace, 3"
+ "$mainMod SHIFT, 4, movetoworkspace, 4"
+ "$mainMod SHIFT, 5, movetoworkspace, 5"
+ "$mainMod SHIFT, 6, movetoworkspace, 6"
+ "$mainMod SHIFT, 7, movetoworkspace, 7"
+ "$mainMod SHIFT, 8, movetoworkspace, 8"
+ "$mainMod SHIFT, 9, movetoworkspace, 9"
+ "$mainMod SHIFT, 0, movetoworkspace, 10"
+
+ # Example special workspace (scratchpad)
+ "$mainMod, S, togglespecialworkspace, magic"
+ "$mainMod SHIFT, S, movetoworkspace, special:magic"
+
+ # Scroll through existing workspaces with mainMod + scroll
+ "$mainMod, mouse_down, workspace, e+1"
+ "$mainMod, mouse_up, workspace, e-1"
+
+ # App launcher
+ "$mainMod, space, exec, $menu"
+ ];
+
+ bindm = [
+ # Move/resize windows with mainMod + LMB/RMB and dragging
+ "$mainMod, mouse:272, movewindow"
+ "$mainMod, mouse:273, resizewindow"
+ ];
+
+ bindel = [
+ # Laptop multimedia keys for volume and LCD brightness
+ ",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
+ ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
+ ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+ ",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
+ ",XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+"
+ ",XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-"
+ ];
+
+ bindl = [
+ # Requires playerctl
+ " , XF86AudioNext, exec, playerctl next"
+ " , XF86AudioPause, exec, playerctl play-pause"
+ " , XF86AudioPlay, exec, playerctl play-pause"
+ " , XF86AudioPrev, exec, playerctl previous"
+ ];
+
+ ##############################
+ ### WINDOWS AND WORKSPACES ###
+ ##############################
+
+ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+ # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
+
+ # Example windowrule
+ # windowrule = float,class:^(kitty)$,title:^(kitty)$
+
+ windowrule = [
+ # Ignore maximize requests from apps. You'll probably like this.
+ "suppressevent maximize, class:.*"
+ # Fix some dragging issues with XWayland
+ "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
+ ];
+ };
+}
diff --git a/home-modules/hyprpaper.nix b/home-modules/hyprpaper.nix
new file mode 100644
index 0000000..5b5f393
--- /dev/null
+++ b/home-modules/hyprpaper.nix
@@ -0,0 +1,10 @@
+{ ... } : {
+ services.hyprpaper = {
+ enable = true;
+ settings = {
+ preload = ["/home/jmug/Wallpapers/nyc2.jpg"];
+ wallpaper = [", /home/jmug/Wallpapers/nyc2.jpg"];
+ ipc = true;
+ };
+ };
+}
diff --git a/home-modules/walker.nix b/home-modules/walker.nix
new file mode 100644
index 0000000..2f3d03f
--- /dev/null
+++ b/home-modules/walker.nix
@@ -0,0 +1,13 @@
+{ ... } : {
+ programs.walker = {
+ enable = true;
+
+ config = {
+ ui.fullscreen = true;
+ list = {
+ height = 200;
+ };
+ websearch.prefix = "?";
+ };
+ };
+}
diff --git a/home-modules/waybar.nix b/home-modules/waybar.nix
new file mode 100644
index 0000000..b1e4c5e
--- /dev/null
+++ b/home-modules/waybar.nix
@@ -0,0 +1,210 @@
+{ ... } : {
+ wayland.windowManager.hyprland.settings = {
+ exec-once = [
+ "waybar"
+ ];
+ };
+ programs.waybar = {
+ enable = true;
+ settings = [
+ {
+ # "layer": "top", # Waybar at top layer
+ # "position": "bottom", # Waybar position (top|bottom|left|right)
+ height = 30; # Waybar height (to be removed for auto height)
+ # "width": 1280, # Waybar width
+ spacing = 4; # Gaps between modules (4px)
+ # Choose the order of the modules
+ modules-left = [
+ "hyprland/workspaces"
+ ];
+ modules-center = [
+ "hyprland/window"
+ ];
+ modules-right = [
+ "mpd"
+ "idle_inhibitor"
+ "wireplumber"
+ "network"
+ "power-profiles-daemon"
+ "cpu"
+ "memory"
+ "temperature"
+ "backlight"
+ "keyboard-state"
+ "sway/language"
+ "battery"
+ "battery#bat2"
+ "clock"
+ "tray"
+ "custom/power"
+ ];
+ # Modules configuration
+ "hyprland/workspaces" = {
+ disable-scroll = true;
+ all-outputs = true;
+ warp-on-scroll = false;
+ format = "{name} {icon}";
+ format-icons = {
+ active = "";
+ default = "";
+ };
+ };
+ keyboard-state = {
+ numlock = true;
+ capslock = true;
+ format = "{name} {icon}";
+ format-icons = {
+ locked = "";
+ unlocked = "";
+ };
+ };
+ # "sway/mode": {
+ # "format": "{}"
+ # },
+ # "sway/scratchpad": {
+ # "format": "{icon} {count}",
+ # "show-empty": false,
+ # "format-icons": ["", ""],
+ # "tooltip": true,
+ # "tooltip-format": "{app}: {title}"
+ # },
+ mpd = {
+ format = "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ";
+ format-disconnected = "Disconnected ";
+ format-stopped = "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ";
+ unknown-tag = "N/A";
+ interval = 5;
+ consume-icons = {
+ on = " ";
+ };
+ random-icons = {
+ off = " ";
+ on = " ";
+ };
+ repeat-icons = {
+ on = " ";
+ };
+ single-icons = {
+ on = "1 ";
+ };
+ state-icons = {
+ paused = "";
+ playing = "";
+ };
+ tooltip-format = "MPD (connected)";
+ tooltip-format-disconnected = "MPD (disconnected)";
+ };
+ idle_inhibitor = {
+ format = "{icon}";
+ format-icons = {
+ activated = "";
+ deactivated = "";
+ };
+ };
+ tray = {
+ # "icon-size": 21,
+ spacing = 10;
+ # "icons": {
+ # "blueman": "bluetooth",
+ # "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"
+ # }
+ };
+ clock = {
+ # "timezone": "America/New_York",
+ tooltip-format = "{:%Y %B}\n{calendar}";
+ format-alt = "{:%Y-%m-%d}";
+ };
+ cpu = {
+ format = "{usage}% ";
+ tooltip = false;
+ };
+ memory = {
+ format = "{}% ";
+ };
+ temperature = {
+ # "thermal-zone": 2,
+ # "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
+ critical-threshold = 80;
+ # "format-critical": "{temperatureC}°C {icon}",
+ format = "{temperatureC}°C {icon}";
+ format-icons = ["" "" ""];
+ };
+ backlight = {
+ # "device": "acpi_video1",
+ format = "{percent}% {icon}";
+ format-icons = ["" "" "" "" "" "" "" "" ""];
+ };
+ battery = {
+ states = {
+ # "good": 95,
+ warning = 30;
+ critical = 15;
+ };
+ format = "{capacity}% {icon}";
+ format-full = "{capacity}% {icon}";
+ format-charging = "{capacity}% ";
+ format-plugged = "{capacity}% ";
+ format-alt = "{time} {icon}";
+ # "format-good": "", // An empty format will hide the module
+ # "format-full": "",
+ format-icons = ["" "" "" "" ""];
+ };
+ "battery#bat2" = {
+ bat = "BAT2";
+ };
+ power-profiles-daemon = {
+ format = "{icon}";
+ tooltip-format = "Power profile: {profile}\nDriver: {driver}";
+ tooltip = true;
+ format-icons = {
+ default = "";
+ performance = "";
+ balanced = "";
+ power-saver = "";
+ };
+ };
+ network = {
+ # "interface": "wlp2*", // (Optional) To force the use of this interface
+ format-wifi = "{essid} ({signalStrength}%) ";
+ format-ethernet = "{ipaddr}/{cidr} ";
+ tooltip-format = "{ifname} via {gwaddr} ";
+ format-linked = "{ifname} (No IP) ";
+ format-disconnected = "Disconnected ⚠";
+ format-alt = "{ifname}: {ipaddr}/{cidr}";
+ };
+ wireplumber = {
+ format = "{volume}% {icon}";
+ format-muted = "";
+ # on-click = "helvum";
+ max-volume = 150;
+ scroll-step = 0.15;
+ format-icons = [" " " " " "];
+ };
+ "custom/media" = {
+ format = "{icon} {text}";
+ return-type = "json";
+ max-length = 40;
+ format-icons = {
+ spotify = "";
+ default = "🎜";
+ };
+ escape = true;
+ exec = "$HOME/.config/waybar/mediaplayer.py 2> /dev/null"; # Script in resources folder;
+ # "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
+ };
+ "custom/power" = {
+ format = "⏻ ";
+ tooltip = false;
+ menu = "on-click";
+ menu-file = "$HOME/.config/waybar/power_menu.xml"; # Menu file in resources folde;
+ "menu-actions" = {
+ shutdown = "shutdown";
+ reboot = "reboot";
+ suspend = "systemctl suspend";
+ hibernate = "systemctl hibernate";
+ };
+ };
+ }
+ ];
+ };
+}
diff --git a/hosts/asahi/home.nix b/hosts/asahi/home.nix
index e15301a..181c472 100644
--- a/hosts/asahi/home.nix
+++ b/hosts/asahi/home.nix
@@ -12,6 +12,10 @@ let
in
{
imports = [
+ ../../home-modules/hyprland.nix
+ ../../home-modules/hyprpaper.nix
+ ../../home-modules/walker.nix
+ ../../home-modules/waybar.nix
../../home-modules/zsh.nix
../../home-modules/direnv.nix
../../home-modules/nvim.nix
@@ -86,230 +90,6 @@ in
"gtk-4.0/gtk-dark.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk-dark.css";
};
-
- programs.walker = {
- enable = true;
-
- config = {
- ui.fullscreen = true;
- list = {
- height = 200;
- };
- websearch.prefix = "?";
- };
- };
- services.hyprpaper = {
- enable = true;
- settings = {
- preload = ["/home/jmug/Wallpapers/nyc2.jpg"];
- wallpaper = [", /home/jmug/Wallpapers/nyc2.jpg"];
- ipc = true;
- };
- };
- programs.waybar = {
- enable = true;
- settings = [
- {
- # "layer": "top", # Waybar at top layer
- # "position": "bottom", # Waybar position (top|bottom|left|right)
- height = 30; # Waybar height (to be removed for auto height)
- # "width": 1280, # Waybar width
- spacing = 4; # Gaps between modules (4px)
- # Choose the order of the modules
- modules-left = [
- "hyprland/workspaces"
- ];
- modules-center = [
- "hyprland/window"
- ];
- modules-right = [
- "mpd"
- "idle_inhibitor"
- "wireplumber"
- "network"
- "power-profiles-daemon"
- "cpu"
- "memory"
- "temperature"
- "backlight"
- "keyboard-state"
- "sway/language"
- "battery"
- "battery#bat2"
- "clock"
- "tray"
- "custom/power"
- ];
- # Modules configuration
- "hyprland/workspaces" = {
- disable-scroll = true;
- all-outputs = true;
- warp-on-scroll = false;
- format = "{name} {icon}";
- format-icons = {
- active = "";
- default = "";
- };
- };
- keyboard-state = {
- numlock = true;
- capslock = true;
- format = "{name} {icon}";
- format-icons = {
- locked = "";
- unlocked = "";
- };
- };
- # "sway/mode": {
- # "format": "{}"
- # },
- # "sway/scratchpad": {
- # "format": "{icon} {count}",
- # "show-empty": false,
- # "format-icons": ["", ""],
- # "tooltip": true,
- # "tooltip-format": "{app}: {title}"
- # },
- mpd = {
- format = "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ";
- format-disconnected = "Disconnected ";
- format-stopped = "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ";
- unknown-tag = "N/A";
- interval = 5;
- consume-icons = {
- on = " ";
- };
- random-icons = {
- off = " ";
- on = " ";
- };
- repeat-icons = {
- on = " ";
- };
- single-icons = {
- on = "1 ";
- };
- state-icons = {
- paused = "";
- playing = "";
- };
- tooltip-format = "MPD (connected)";
- tooltip-format-disconnected = "MPD (disconnected)";
- };
- idle_inhibitor = {
- format = "{icon}";
- format-icons = {
- activated = "";
- deactivated = "";
- };
- };
- tray = {
- # "icon-size": 21,
- spacing = 10;
- # "icons": {
- # "blueman": "bluetooth",
- # "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"
- # }
- };
- clock = {
- # "timezone": "America/New_York",
- tooltip-format = "{:%Y %B}\n{calendar}";
- format-alt = "{:%Y-%m-%d}";
- };
- cpu = {
- format = "{usage}% ";
- tooltip = false;
- };
- memory = {
- format = "{}% ";
- };
- temperature = {
- # "thermal-zone": 2,
- # "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
- critical-threshold = 80;
- # "format-critical": "{temperatureC}°C {icon}",
- format = "{temperatureC}°C {icon}";
- format-icons = ["" "" ""];
- };
- backlight = {
- # "device": "acpi_video1",
- format = "{percent}% {icon}";
- format-icons = ["" "" "" "" "" "" "" "" ""];
- };
- battery = {
- states = {
- # "good": 95,
- warning = 30;
- critical = 15;
- };
- format = "{capacity}% {icon}";
- format-full = "{capacity}% {icon}";
- format-charging = "{capacity}% ";
- format-plugged = "{capacity}% ";
- format-alt = "{time} {icon}";
- # "format-good": "", // An empty format will hide the module
- # "format-full": "",
- format-icons = ["" "" "" "" ""];
- };
- "battery#bat2" = {
- bat = "BAT2";
- };
- power-profiles-daemon = {
- format = "{icon}";
- tooltip-format = "Power profile: {profile}\nDriver: {driver}";
- tooltip = true;
- format-icons = {
- default = "";
- performance = "";
- balanced = "";
- power-saver = "";
- };
- };
- network = {
- # "interface": "wlp2*", // (Optional) To force the use of this interface
- format-wifi = "{essid} ({signalStrength}%) ";
- format-ethernet = "{ipaddr}/{cidr} ";
- tooltip-format = "{ifname} via {gwaddr} ";
- format-linked = "{ifname} (No IP) ";
- format-disconnected = "Disconnected ⚠";
- format-alt = "{ifname}: {ipaddr}/{cidr}";
- };
- wireplumber = {
- format = "{volume}% {icon}";
- format-muted = "";
- # on-click = "helvum";
- max-volume = 150;
- scroll-step = 0.15;
- format-icons = [" " " " " "];
- };
- "custom/media" = {
- format = "{icon} {text}";
- return-type = "json";
- max-length = 40;
- format-icons = {
- spotify = "";
- default = "🎜";
- };
- escape = true;
- exec = "$HOME/.config/waybar/mediaplayer.py 2> /dev/null"; # Script in resources folder;
- # "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
- };
- "custom/power" = {
- format = "⏻ ";
- tooltip = false;
- menu = "on-click";
- menu-file = "$HOME/.config/waybar/power_menu.xml"; # Menu file in resources folde;
- "menu-actions" = {
- shutdown = "shutdown";
- reboot = "reboot";
- suspend = "systemctl suspend";
- hibernate = "systemctl hibernate";
- };
- };
- }
- ];
- };
-
programs.ssh = {
enable = true;
addKeysToAgent = "yes";
@@ -351,208 +131,6 @@ in
};
};
- wayland.windowManager.hyprland.enable = true;
- wayland.windowManager.hyprland.settings = {
- exec-once = [
- "waybar"
- ];
- monitor = [
- ",preferred,auto,auto"
- "eDP-1,preferred,auto,1.6"
- ];
-
- "$terminal" = "ghostty";
- "$fileManager" = "dolphin"; # TODO: Change.
- "$menu" = "wofi --show drun"; # TODO: Change.
-
- env = [
- "XCURSOR_SIZE,24"
- "HYPRCURSOR_SIZE,24"
- ];
-
- general = {
- gaps_in = 4;
- gaps_out = 8;
-
- border_size = 1;
-
- # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
- "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
- "col.inactive_border" = "rgba(595959aa)";
-
- # Set to true enable resizing windows by clicking and dragging on borders and gaps
- resize_on_border = false;
-
- # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
- allow_tearing = false;
-
- layout = "dwindle";
- };
-
- decoration = {
- rounding = 5;
- rounding_power = 2;
-
- # Change transparency of focused and unfocused windows
- active_opacity = "1.0";
- inactive_opacity = "1.0";
-
- shadow = {
- enabled = true;
- range = 4;
- render_power = 3;
- color = "rgba(1a1a1aee)";
- };
-
- # https://wiki.hyprland.org/Configuring/Variables/#blur
- blur = {
- enabled = true;
- size = 3;
- passes = 1;
-
- vibrancy = "0.1696";
- };
- };
-
- animations = {
- # enabled = yes, please :)
- enabled = "no";
- };
-
- # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
- dwindle = {
- pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
- preserve_split = true; # You probably want this
- };
-
- # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
- master = {
- new_status = "master";
- };
-
- # https://wiki.hyprland.org/Configuring/Variables/#misc
- misc = {
- force_default_wallpaper = 1; # Set to 0 or 1 to disable the anime mascot wallpapers
- disable_hyprland_logo = true; # If true disables the random hyprland logo / anime girl background. :(
- };
-
-# https://wiki.hyprland.org/Configuring/Variables/#input
- input = {
- kb_layout = "us";
-
- follow_mouse = 1;
-
- sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
-
- touchpad = {
- natural_scroll = true;
- tap-to-click = false;
- disable_while_typing = true;
- clickfinger_behavior = true; # Right click with 2 fingers.
- scroll_factor = "0.75";
- };
- };
-
- gestures = {
- workspace_swipe = false;
- };
-
- "$mainMod" = "SUPER"; # Sets "Windows" key as main modifier
-
- # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
- bind = [
- "$mainMod, return, exec, $terminal"
- "$mainMod, Q, killactive,"
- "$mainMod SHIFT, Q, exit,"
- # "$mainMod, E, exec, $fileManager"
- "$mainMod, V, togglefloating,"
- "$mainMod, R, exec, $menu"
- "$mainMod, P, pseudo," # dwindle
- "$mainMod, J, togglesplit," # dwindle
-
- # Move focus with mainMod + arrow keys
- "$mainMod, M, movefocus, l"
- "$mainMod, I, movefocus, r"
- "$mainMod, N, movefocus, d"
- "$mainMod, E, movefocus, u"
-
- # Switch workspaces with mainMod + [0-9]
- "$mainMod, 1, workspace, 1"
- "$mainMod, 2, workspace, 2"
- "$mainMod, 3, workspace, 3"
- "$mainMod, 4, workspace, 4"
- "$mainMod, 5, workspace, 5"
- "$mainMod, 6, workspace, 6"
- "$mainMod, 7, workspace, 7"
- "$mainMod, 8, workspace, 8"
- "$mainMod, 9, workspace, 9"
- "$mainMod, 0, workspace, 10"
-
- # Move active window to a workspace with mainMod + SHIFT + [0-9]
- "$mainMod SHIFT, 1, movetoworkspace, 1"
- "$mainMod SHIFT, 2, movetoworkspace, 2"
- "$mainMod SHIFT, 3, movetoworkspace, 3"
- "$mainMod SHIFT, 4, movetoworkspace, 4"
- "$mainMod SHIFT, 5, movetoworkspace, 5"
- "$mainMod SHIFT, 6, movetoworkspace, 6"
- "$mainMod SHIFT, 7, movetoworkspace, 7"
- "$mainMod SHIFT, 8, movetoworkspace, 8"
- "$mainMod SHIFT, 9, movetoworkspace, 9"
- "$mainMod SHIFT, 0, movetoworkspace, 10"
-
- # Example special workspace (scratchpad)
- "$mainMod, S, togglespecialworkspace, magic"
- "$mainMod SHIFT, S, movetoworkspace, special:magic"
-
- # Scroll through existing workspaces with mainMod + scroll
- "$mainMod, mouse_down, workspace, e+1"
- "$mainMod, mouse_up, workspace, e-1"
-
- # App launcher
- "$mainMod, space, exec, GSK_RENDERER=ngl walker"
- ];
-
- bindm = [
- # Move/resize windows with mainMod + LMB/RMB and dragging
- "$mainMod, mouse:272, movewindow"
- "$mainMod, mouse:273, resizewindow"
- ];
-
- bindel = [
- # Laptop multimedia keys for volume and LCD brightness
- ",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
- ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
- ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
- ",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
- ",XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+"
- ",XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-"
- ];
-
- bindl = [
- # Requires playerctl
- " , XF86AudioNext, exec, playerctl next"
- " , XF86AudioPause, exec, playerctl play-pause"
- " , XF86AudioPlay, exec, playerctl play-pause"
- " , XF86AudioPrev, exec, playerctl previous"
- ];
-
- ##############################
- ### WINDOWS AND WORKSPACES ###
- ##############################
-
- # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
- # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
-
- # Example windowrule
- # windowrule = float,class:^(kitty)$,title:^(kitty)$
-
- windowrule = [
- # Ignore maximize requests from apps. You'll probably like this.
- "suppressevent maximize, class:.*"
- # Fix some dragging issues with XWayland
- "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
- ];
- };
programs.zsh.shellAliases = {
# TODO: Interpolate the name of the host here.