From f1d30adc192df38fe8f6cd50cb2eae048789459b Mon Sep 17 00:00:00 2001 From: beeb5k Date: Wed, 17 Jun 2026 13:23:43 +0530 Subject: Niri config stuff and enable eyecandy and make ghostty default term --- common/modules/terminal/ghostty.nix | 12 +- common/modules/window_managers/default.nix | 2 +- common/modules/window_managers/mango/default.nix | 2 +- common/modules/window_managers/niri/default.nix | 145 ++++++++++++++--------- common/modules/window_managers/scripts.nix | 10 +- common/programs/vesktop.nix | 2 +- 6 files changed, 109 insertions(+), 64 deletions(-) (limited to 'common') diff --git a/common/modules/terminal/ghostty.nix b/common/modules/terminal/ghostty.nix index ecada2b..fa18ae6 100644 --- a/common/modules/terminal/ghostty.nix +++ b/common/modules/terminal/ghostty.nix @@ -28,6 +28,9 @@ in window-padding-y = cfg.window.padding-y; window-decoration = "none"; window-inherit-working-directory = false; + cursor-style-blink = false; + cursor-style = "block"; + shell-integration-features = "no-cursor"; adjust-underline-position = "7%"; adjust-cell-width = ""; @@ -41,10 +44,11 @@ in copy-on-select = false; confirm-close-surface = false; mouse-hide-while-typing = true; - app-notifications = [ - "no-clipboard-copy" - "no-config-reload" - ]; + app-notifications = false; + # app-notifications = [ + # "no-clipboard-copy" + # "no-config-reload" + # ]; }; }; }; diff --git a/common/modules/window_managers/default.nix b/common/modules/window_managers/default.nix index e74d505..547e2c8 100644 --- a/common/modules/window_managers/default.nix +++ b/common/modules/window_managers/default.nix @@ -65,7 +65,7 @@ in }; opacity = lib.mkOption { type = lib.types.number; - default = 0.87; + default = 0.90; description = "Window opacity"; }; }; diff --git a/common/modules/window_managers/mango/default.nix b/common/modules/window_managers/mango/default.nix index 3d70b82..67a8574 100644 --- a/common/modules/window_managers/mango/default.nix +++ b/common/modules/window_managers/mango/default.nix @@ -168,7 +168,7 @@ in ''} bind=SUPER,r,reload_config - bind=SUPER,Return,spawn,${config.beeMods.terminal.default} + bind=SUPER,Return,spawn,sh -c '${scripts.terminal}' bind=SUPER,F12,spawn,gnome-calculator bind=SUPER,b,spawn,librewolf diff --git a/common/modules/window_managers/niri/default.nix b/common/modules/window_managers/niri/default.nix index 4905927..ac2d99e 100644 --- a/common/modules/window_managers/niri/default.nix +++ b/common/modules/window_managers/niri/default.nix @@ -14,8 +14,6 @@ let cfg = config.${moduleNameSpace}.windowManagers; scripts = import ../scripts.nix { inherit pkgs config; }; eyecandy = cfg.eyeCandy.enable; - terminal = - if config.beeMods.terminal.default == "foot" then "footclient" else config.beeMods.terminal.default; in { config = lib.mkIf cfg.niri.enable ( @@ -23,7 +21,6 @@ in { home.packages = with pkgs; [ xwayland-satellite - evtest ]; xdg.configFile."niri/config.kdl".text = '' include optional=true "./noctalia.kdl" @@ -63,14 +60,14 @@ in } blur { - passes ${if eyecandy then toString cfg.eyeCandy.window.blur.passes else "0"} - offset ${if eyecandy then toString cfg.eyeCandy.window.blur.radius else "0"} - noise 0.03 - saturation 1.0 + passes ${if eyecandy then toString cfg.eyeCandy.window.blur.passes else "0"} + offset ${if eyecandy then toString cfg.eyeCandy.window.blur.radius else "0"} + noise 0.03 + saturation 1.3 } layout { - gaps 4 + gaps 5 center-focused-column "never" background-color "transparent" @@ -89,18 +86,17 @@ in } focus-ring { - on - width 2 + off + width 2 } border { - off + on width 2 } shadow { - off - // on + ${if eyecandy && cfg.eyeCandy.window.shadows.enable then "on" else "off"} softness 30 spread 5 offset x=0 y=5 @@ -144,6 +140,14 @@ in } } + window-rule { + match is-floating=true + + background-effect { + xray false + } + } + window-rule { match title="^Kdenlive$" open-floating true @@ -151,73 +155,102 @@ in } window-rule { - match app-id=r#"^(firefox|librewolf)$"# - open-on-workspace "1" - open-maximized true + match app-id=r#"^(firefox|librewolf|brave-origin)$"# + open-on-workspace "1" + open-maximized true + } + + window-rule { + match app-id=r#"^(foot|footclient|Alacritty|com.mitchellh.ghostty|kitty)$"# + open-on-workspace "2" + open-focused true + } + + window-rule { + match app-id=r#"^(vesktop|mpv|.*Kdenlive.*)$"# + open-on-workspace "3" + open-focused true } window-rule { - match app-id=r#"^(foot|footclient|Alacritty|com.mitchellh.ghostty|kitty)$"# - open-on-workspace "2" + match app-id=r#"^(steam)$"# + open-on-workspace "4" } + // steam games window-rule { - match app-id=r#"^(vesktop|mpv|.*Kdenlive.*)$"# - open-on-workspace "3" - open-focused true + match app-id=r#"^steam_app_.*$"# + open-on-workspace "4" + open-fullscreen true + open-floating false } window-rule { - match app-id=r#"^(steam)$"# - open-on-workspace "4" + draw-border-with-background false + geometry-corner-radius ${if eyecandy then toString cfg.eyeCandy.window.borderRadius else "0"} + clip-to-geometry ${ + if eyecandy && cfg.eyeCandy.window.borderRadius != 0 then "true" else "false" + } + opacity ${if eyecandy then toString cfg.eyeCandy.window.opacity else "1.0"} + background-effect { + blur ${if eyecandy && cfg.eyeCandy.window.blur.enable then "true" else "false"} + } + popups { + geometry-corner-radius 15 + + background-effect { + xray false + blur ${if eyecandy && cfg.eyeCandy.window.blur.enable then "true" else "false"} + } + } } - ${lib.optionalString (config.beeMods.terminal.default == "foot") '' + ${lib.optionalString (scripts.defaultTerm == "foot") '' spawn-sh-at-startup "foot --server" ''} binds { Mod+Shift+Slash { show-hotkey-overlay; } - Mod+Return hotkey-overlay-title="Open a Terminal: ${config.beeMods.terminal.default}" { spawn "${terminal}"; } + Mod+Return hotkey-overlay-title="Open a Terminal: ${scripts.defaultTerm}" { spawn-sh "${scripts.terminal}"; } - ${lib.optionalString (config.beeMods.matugen.enable && cfg.beeConfig.enable && !cfg.noctalia) '' - Mod+A hotkey-overlay-title="Run an Application" { spawn-sh "rofi -show drun"; } - Mod+Y hotkey-overlay-title="Open wallpaper picker" { spawn-sh "${scripts.dostuff} wall"; } - Mod+Comma hotkey-overlay-title="Open Noctalia settings" { spawn-sh "${scripts.dostuff} settings"; } + ${lib.optionalString (config.beeMods.matugen.enable && cfg.beeConfig.enable && !cfg.noctalia) '' + Mod+A hotkey-overlay-title="Run an Application" { spawn-sh "rofi -show drun"; } + Mod+Y hotkey-overlay-title="Open wallpaper picker" { spawn-sh "${scripts.dostuff} wall"; } + Mod+Comma hotkey-overlay-title="Open Noctalia settings" { spawn-sh "${scripts.dostuff} settings"; } - XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "${scripts.volume} up"; } - XF86AudioLowerVolume allow-when-locked=true { spawn-sh "${scripts.volume} down"; } - XF86AudioMute allow-when-locked=true { spawn-sh "${scripts.volume} toggle"; } - XF86AudioMicMute allow-when-locked=true { spawn-sh "${scripts.micToggle}"; } + XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "${scripts.volume} up"; } + XF86AudioLowerVolume allow-when-locked=true { spawn-sh "${scripts.volume} down"; } + XF86AudioMute allow-when-locked=true { spawn-sh "${scripts.volume} toggle"; } + XF86AudioMicMute allow-when-locked=true { spawn-sh "${scripts.micToggle}"; } - Mod+TouchpadScrollDown { spawn-sh "${scripts.volume} up 0.02"; } - Mod+TouchpadScrollUp { spawn-sh "${scripts.volume} down 0.02"; } + Mod+TouchpadScrollDown { spawn-sh "${scripts.volume} up 0.02"; } + Mod+TouchpadScrollUp { spawn-sh "${scripts.volume} down 0.02"; } - XF86MonBrightnessUp allow-when-locked=true { spawn-sh "${scripts.brightness} up"; } - XF86MonBrightnessDown allow-when-locked=true { spawn-sh "${scripts.brightness} down"; } - ''} + XF86MonBrightnessUp allow-when-locked=true { spawn-sh "${scripts.brightness} up"; } + XF86MonBrightnessDown allow-when-locked=true { spawn-sh "${scripts.brightness} down"; } + ''} - ${lib.optionalString (!cfg.beeConfig.enable && cfg.noctalia) '' - Mod+A hotkey-overlay-title="Run an Application" { spawn-sh "noctalia msg panel-toggle launcher"; } - Mod+Y hotkey-overlay-title="Open wallpaper picker" { spawn-sh "noctalia msg panel-toggle wallpaper"; } - Mod+V hotkey-overlay-title="Open clipboard panel" { spawn-sh "noctalia msg panel-toggle clipboard"; } - Mod+Comma hotkey-overlay-title="Open Noctalia settings" { spawn-sh "noctalia msg settings-toggle"; } - Mod+S { spawn-sh "noctalia msg panel-toggle control-center"; } - Alt+F4 { spawn-sh "noctalia msg panel-toggle session"; } + ${lib.optionalString (!cfg.beeConfig.enable && cfg.noctalia) '' + Mod+A hotkey-overlay-title="Run an Application" { spawn-sh "noctalia msg panel-toggle launcher"; } + Mod+Y hotkey-overlay-title="Open wallpaper picker" { spawn-sh "noctalia msg panel-toggle wallpaper"; } + Mod+V hotkey-overlay-title="Open clipboard panel" { spawn-sh "noctalia msg panel-toggle clipboard"; } + Mod+Comma hotkey-overlay-title="Open Noctalia settings" { spawn-sh "noctalia msg settings-toggle"; } + Mod+S { spawn-sh "noctalia msg panel-toggle control-center"; } + Alt+F4 { spawn-sh "noctalia msg panel-toggle session"; } - XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "noctalia msg volume-up"; } - XF86AudioLowerVolume allow-when-locked=true { spawn-sh "noctalia msg volume-down"; } - XF86AudioMute allow-when-locked=true { spawn-sh "noctalia msg volume-mute"; } - XF86AudioMicMute allow-when-locked=true { spawn-sh "noctalia msg mic-mute"; } + XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "noctalia msg volume-up"; } + XF86AudioLowerVolume allow-when-locked=true { spawn-sh "noctalia msg volume-down"; } + XF86AudioMute allow-when-locked=true { spawn-sh "noctalia msg volume-mute"; } + XF86AudioMicMute allow-when-locked=true { spawn-sh "noctalia msg mic-mute"; } - Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; } - Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; } + Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; } + Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; } - XF86MonBrightnessUp allow-when-locked=true { spawn-sh "noctalia msg brightness-up"; } - XF86MonBrightnessDown allow-when-locked=true { spawn-sh "noctalia msg brightness-down"; } - ''} + XF86MonBrightnessUp allow-when-locked=true { spawn-sh "noctalia msg brightness-up"; } + XF86MonBrightnessDown allow-when-locked=true { spawn-sh "noctalia msg brightness-down"; } + ''} Mod+E hotkey-overlay-title="Open wallpaper picker" { spawn-sh "nautilus"; } Mod+B hotkey-overlay-title="Open wallpaper picker" { spawn-sh "librewolf"; } @@ -374,8 +407,8 @@ in // a matching layout switch hotkey configured in xkb options above. // Having both at once on the same hotkey will break the switching, // since it will switch twice upon pressing the hotkey (once by xkb, once by niri). - Mod+Shift+N { switch-layout "next"; } - Mod+Shift+P { switch-layout "prev"; } + Mod+Shift+N { switch-layout "next"; } + Mod+Shift+P { switch-layout "prev"; } Print { screenshot-screen; } Mod+Print { screenshot; } diff --git a/common/modules/window_managers/scripts.nix b/common/modules/window_managers/scripts.nix index 4a93928..fc7578c 100644 --- a/common/modules/window_managers/scripts.nix +++ b/common/modules/window_managers/scripts.nix @@ -1,7 +1,7 @@ { pkgs, config }: rec { - terminal = pkgs.writeShellScript "terminal" '' + terminal_with_tmux = pkgs.writeShellScript "terminal_with_tmux" '' TERM="${config.beeMods.terminal.default}" SESSION="_main" @@ -20,6 +20,14 @@ rec { fi fi ''; + defaultTerm = config.beeMods.terminal.default; + terminal = + if defaultTerm == "foot" then + "footclient" + else if defaultTerm == "ghostty" then + "ghostty +new-window || ghostty" + else + "alacritty msg create-window || alacritty"; dotfiles = pkgs.writeShellScriptBin "dotfiles" '' case "$1" in cd) diff --git a/common/programs/vesktop.nix b/common/programs/vesktop.nix index 31b7906..a8dbb4c 100644 --- a/common/programs/vesktop.nix +++ b/common/programs/vesktop.nix @@ -1,7 +1,7 @@ { config, ... }: { programs.vesktop = { - enable = false; + enable = true; vencord = { settings = { enabledThemes = -- cgit v1.3.1