diff options
| author | spl3g <spleefer6@yandex.ru> | 2025-10-27 23:50:07 +0300 |
|---|---|---|
| committer | spl3g <spleefer6@yandex.ru> | 2025-10-27 23:50:34 +0300 |
| commit | 06f6512cbe18d1cb103c40fca49bbdd2525b5aa7 (patch) | |
| tree | 7c75f020c3ca5e8e1576218b46b639ed9fbd946b | |
| parent | 0ae0f7489fb94bc122c3634107872c9b9437eda3 (diff) | |
feat(laptop): move to niri
| -rw-r--r-- | home-manager/homeModules/niri.nix | 203 | ||||
| -rw-r--r-- | home-manager/laptop.nix | 3 |
2 files changed, 151 insertions, 55 deletions
diff --git a/home-manager/homeModules/niri.nix b/home-manager/homeModules/niri.nix index 81a3352..27f6a08 100644 --- a/home-manager/homeModules/niri.nix +++ b/home-manager/homeModules/niri.nix @@ -1,19 +1,65 @@ -{ pkgs, config, lib, inputs, ... }: - { + pkgs, + config, + lib, + inputs, + ... +}: +with lib; let + cfg = config.niri; +in { imports = [ - ./fuzzel.nix + ./waybar.nix + ./rofi.nix + ./mako.nix inputs.niri.homeModules.niri + inputs.niri.homeModules.stylix ]; - + options = { - niri.enable = lib.mkEnableOption "enable niri config"; + niri = { + enable = mkEnableOption "enable niri config"; + }; }; - - config = lib.mkIf config.niri.enable { - fuzzel.enable = true; - + + config = mkIf cfg.enable { + waybar = { + enable = true; + windowManager = "niri"; + workspaceIcons = { + # "1" = "α"; + # "2" = "β"; + # "3" = "γ"; + # "4" = "δ"; + # "5" = "ε"; + # urgent = "λ"; + # default = "ω"; + "internet" = ""; + "discord" = ""; + "chat" = "<b></b>"; + + "active" = ""; + "default" = ""; + }; + }; + rofi.enable = true; + mako.enable = true; + + home.packages = with pkgs; [ + pkgs.xwayland-satellite + swww + brightnessctl + grimblast + polkit_gnome + kdePackages.xwaylandvideobridge + wl-clipboard + libnotify + ]; + + stylix.targets.niri.enable = true; programs.niri = { + enable = true; + settings = { input = { keyboard.xkb = { @@ -22,98 +68,140 @@ }; touchpad = { tap = true; - dwt = true; + dwt = false; dwtp = true; natural-scroll = true; }; - warp-mouse-to-focus = true; - focus-follows-mouse = true; + warp-mouse-to-focus.enable = true; + focus-follows-mouse = { + enable = true; + max-scroll-amount = "25%"; + }; }; + cursor = { theme = "Bibata-Modern-Ice"; size = 24; }; + layout = { gaps = 16; center-focused-column = "never"; preset-column-widths = [ - { proportion = 0.33333; } - { proportion = 0.5; } - { proportion = 0.66667; } + {proportion = 0.33333;} + {proportion = 0.5;} + {proportion = 0.66667;} ]; border = { enable = true; }; focus-ring.enable = false; }; + + animations = { + workspace-switch.enable = false; + }; + + # workspaces = { + # internet = {}; + # code = {}; + # }; + + window-rules = [ + { + matches = [ + { + app-id = "steam"; + title = ''r#"^notificationtoasts_\d+_desktop$"#''; + } + ]; + default-floating-position = { + x = 10; + y = 10; + relative-to = "bottom-right"; + }; + } + ]; + + spawn-at-startup = [ + {argv = ["waybar"];} + {argv = ["swww-daemon"];} + {argv = ["mako"];} + ]; + prefer-no-csd = true; - binds = with config.lib.niri.actions; { + + binds = with config.lib.niri.actions; let + scripts = "${./attachments/hypr-scripts}"; + in { "Mod+Q".action.spawn = "alacritty"; - "Mod+D".action.spawn = [ "rofi --show drun" ]; - "Mod+B".action.spawn = [ "brave" "--enable-features=TouchpadOverscrollHistoryNavigation" ]; - "Mod+E".action.spawn = [ "emacsclient" "-c" "-a" "emacs" ]; - "Super+Alt+L".action.spawn = "swaylock"; - "XF86AudioRaiseVolume".action.spawn = [ "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05+" ]; - "XF86AudioLowerVolume".action.spawn = [ "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05-" ]; - "XF86AudioMute".action.spawn = [ "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle" ]; - "XF86AudioMicMute".action.spawn = [ "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle" ]; - "XF86MonBrightnessUp".action.spawn = [ "brightnessctl" "s" "+5%" ]; - "XF86MonBrightnessDown".action.spawn = [ "brightnessctl" "s" "5%-" ]; + "Mod+D".action.spawn = ["sh" "-c" "pkill rofi || rofi -show-icons -show drun"]; + "Mod+B".action.spawn = "zen-beta"; + "Mod+E".action.spawn = ["emacsclient" "-c" "-a" "emacs"]; + "Mod+T".action.spawn = "Telegram"; + + "XF86AudioRaiseVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05+"]; + "XF86AudioLowerVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05-"]; + "XF86AudioMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"]; + "XF86AudioMicMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"]; + + "XF86MonBrightnessUp".action.spawn = ["brightnessctl" "s" "+5%"]; + "XF86MonBrightnessDown".action.spawn = ["brightnessctl" "s" "5%-"]; + + "XF86Favorites".action.spawn = "${scripts}/toggle-vpn.sh"; + "XF86TouchpadToggle".action.spawn = "${scripts}/switch-sink.py"; + "Mod+Shift+Slash".action = show-hotkey-overlay; + + "Super+Alt+L".action.spawn = "swaylock"; + "Mod+Shift+E".action = quit; + "Mod+Shift+P".action = power-off-monitors; "Mod+Shift+Q".action = close-window; - "Mod+Left".action = focus-column-left; - "Mod+Down".action = focus-window-down; - "Mod+Up".action = focus-window-up; - "Mod+Right".action = focus-column-right; + "Mod+H".action = focus-column-left; "Mod+J".action = focus-window-down; "Mod+K".action = focus-window-up; "Mod+L".action = focus-column-right; - "Mod+Shift+Left".action = move-column-left; - "Mod+Shift+Down".action = move-window-down; - "Mod+Shift+Up".action = move-window-up; - "Mod+Shift+Right".action = move-column-right; + "Mod+Shift+H".action = move-column-left; "Mod+Shift+J".action = move-window-down; "Mod+Shift+K".action = move-window-up; "Mod+Shift+L".action = move-column-right; + "Mod+Home".action = focus-column-first; "Mod+End".action = focus-column-last; + "Mod+Ctrl+Home".action = move-column-to-first; "Mod+Ctrl+End".action = move-column-to-last; - "Mod+Ctrl+Left".action = focus-monitor-left; - "Mod+Ctrl+Down".action = focus-monitor-down; - "Mod+Ctrl+Up".action = focus-monitor-up; - "Mod+Ctrl+Right".action = focus-monitor-right; + "Mod+Ctrl+H".action = focus-monitor-left; "Mod+Ctrl+J".action = focus-monitor-down; "Mod+Ctrl+K".action = focus-monitor-up; "Mod+Ctrl+L".action = focus-monitor-right; - "Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left; - "Mod+Shift+Ctrl+Down".action = move-column-to-monitor-down; - "Mod+Shift+Ctrl+Up".action = move-column-to-monitor-up; - "Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right; + "Mod+Shift+Ctrl+H".action = move-column-to-monitor-left; "Mod+Shift+Ctrl+J".action = move-column-to-monitor-down; "Mod+Shift+Ctrl+K".action = move-column-to-monitor-up; "Mod+Shift+Ctrl+L".action = move-column-to-monitor-right; - "Mod+Page_Down".action = focus-workspace-down; - "Mod+Page_Up".action = focus-workspace-up; + "Mod+U".action = focus-workspace-down; "Mod+I".action = focus-workspace-up; - "Mod+Ctrl+Page_Down".action = move-column-to-workspace-down; - "Mod+Ctrl+Page_Up".action = move-column-to-workspace-up; + "Mod+Ctrl+U".action = move-column-to-workspace-down; "Mod+Ctrl+I".action = move-column-to-workspace-up; - "Mod+Shift+Page_Down".action = move-workspace-down; - "Mod+Shift+Page_Up".action = move-workspace-up; + "Mod+Shift+U".action = move-workspace-down; + "Mod+Shift+I".action = move-workspace-down; + "Mod+WheelScrollRight".action = focus-column-right; "Mod+WheelScrollLeft".action = focus-column-left; + "Mod+Ctrl+WheelScrollRight".action = move-column-right; "Mod+Ctrl+WheelScrollLeft".action = move-column-left; + "Mod+Shift+WheelScrollDown".action = focus-column-right; "Mod+Shift+WheelScrollUp".action = focus-column-left; + "Mod+Ctrl+Shift+WheelScrollDown".action = move-column-right; "Mod+Ctrl+Shift+WheelScrollUp".action = move-column-left; @@ -126,6 +214,7 @@ "Mod+7".action.focus-workspace = 7; "Mod+8".action.focus-workspace = 8; "Mod+9".action.focus-workspace = 9; + "Mod+Shift+1".action.move-column-to-workspace = 1; "Mod+Shift+2".action.move-column-to-workspace = 2; "Mod+Shift+3".action.move-column-to-workspace = 3; @@ -135,23 +224,29 @@ "Mod+Shift+7".action.move-column-to-workspace = 7; "Mod+Shift+8".action.move-column-to-workspace = 8; "Mod+Shift+9".action.move-column-to-workspace = 9; + "Mod+Comma".action = consume-window-into-column; "Mod+Period".action = expel-window-from-column; "Mod+BracketLeft".action = consume-or-expel-window-left; "Mod+BracketRight".action = consume-or-expel-window-right; - "Mod+R".action = switch-preset-column-width; + "Mod+M".action = maximize-column; "Mod+F".action = fullscreen-window; "Mod+C".action = center-column; + + "Mod+R".action = switch-preset-column-width; "Mod+Minus".action.set-column-width = "-10%"; "Mod+Equal".action.set-column-width = "+10%"; "Mod+Shift+Minus".action.set-window-height = "-10%"; "Mod+Shift+Equal".action.set-window-height = "+10%"; - "Print".action = screenshot; - "Ctrl+Print".action = screenshot-screen; - "Alt+Print".action = screenshot-window; - "Mod+Shift+E".action = quit; - "Mod+Shift+P".action = power-off-monitors; + + "Mod+V".action = toggle-window-floating; + + "Print".action.screenshot.show-pointer = true; + "Shift+Print".action.screenshot-screen.write-to-disk = true; + "Ctrl+Shift+Print".action.screenshot-screen.write-to-disk = false; + "Alt+Print".action.screenshot-window.write-to-disk = true; + "Ctrl+Alt+Print".action.screenshot-window.write-to-disk = false; }; }; }; diff --git a/home-manager/laptop.nix b/home-manager/laptop.nix index 67b245a..11c6c5b 100644 --- a/home-manager/laptop.nix +++ b/home-manager/laptop.nix @@ -1,8 +1,9 @@ { imports = [ + ./homeModules/niri.nix ./homeModules/hyprland.nix ./general.nix ]; - hyprland.enable = true; + niri.enable = true; } |
