diff --git a/homeModules/profiles/gui/default.nix b/homeModules/profiles/gui/default.nix index 224e0ce9..cde6305e 100644 --- a/homeModules/profiles/gui/default.nix +++ b/homeModules/profiles/gui/default.nix @@ -34,7 +34,6 @@ in krita libappindicator libappindicator-gtk3 - lutris prismlauncher pwvucontrol hyprshot diff --git a/homeModules/programs/git/default.nix b/homeModules/programs/git/default.nix index fef7c70f..b8ea5d89 100644 --- a/homeModules/programs/git/default.nix +++ b/homeModules/programs/git/default.nix @@ -94,6 +94,9 @@ in userEmail = "pyrox@pyrox.dev"; userName = "dish"; }; + mergiraf = lib.mkIf cfg.enable { + enable = true; + }; lazygit = lib.mkIf cfg.lazygit.enable { enable = true; settings = { diff --git a/homeModules/wayland/default.nix b/homeModules/wayland/default.nix index 1aade3a1..1fcb8d96 100644 --- a/homeModules/wayland/default.nix +++ b/homeModules/wayland/default.nix @@ -1,9 +1,33 @@ +{ + pkgs, + config, + osConfig, + lib, + ... +}: +let + c = osConfig.py.programs.hyprland; + cfg = config.wayland.windowManager.hyprland; +in { imports = [ - ./sway.nix - ./keybindings.nix - ./waybar.nix - ./swaylock.nix - ./hyprland + ./services.nix + ./hypridle.nix ]; + config = { + catppuccin.hyprland.enable = c.enable; + wayland.windowManager.hyprland = { + enable = c.enable; + # Per https://nix-community.github.io/home-manager/options.xhtml#opt-wayland.windowManager.hyprland.package + package = null; + systemd = { + enable = true; + enableXdgAutostart = true; + }; + settings = import ./settings.nix; + plugins = [ + pkgs.hyprlandPlugins.hy3 + ]; + }; + }; } diff --git a/homeModules/wayland/hyprland/env.nix b/homeModules/wayland/env.nix similarity index 100% rename from homeModules/wayland/hyprland/env.nix rename to homeModules/wayland/env.nix diff --git a/homeModules/wayland/hyprland/hypridle.nix b/homeModules/wayland/hypridle.nix similarity index 93% rename from homeModules/wayland/hyprland/hypridle.nix rename to homeModules/wayland/hypridle.nix index 47abaef0..8cd05879 100644 --- a/homeModules/wayland/hyprland/hypridle.nix +++ b/homeModules/wayland/hypridle.nix @@ -14,6 +14,7 @@ in lock_cmd = "loginctl lock-session"; before_sleep_cmd = "loginctl lock-session"; after_sleep_cmd = "hyprctl dispatch dpms on"; + inhibit_sleep = 3; }; }; }; diff --git a/homeModules/wayland/hyprland/default.nix b/homeModules/wayland/hyprland/default.nix deleted file mode 100644 index 1fcb8d96..00000000 --- a/homeModules/wayland/hyprland/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - pkgs, - config, - osConfig, - lib, - ... -}: -let - c = osConfig.py.programs.hyprland; - cfg = config.wayland.windowManager.hyprland; -in -{ - imports = [ - ./services.nix - ./hypridle.nix - ]; - config = { - catppuccin.hyprland.enable = c.enable; - wayland.windowManager.hyprland = { - enable = c.enable; - # Per https://nix-community.github.io/home-manager/options.xhtml#opt-wayland.windowManager.hyprland.package - package = null; - systemd = { - enable = true; - enableXdgAutostart = true; - }; - settings = import ./settings.nix; - plugins = [ - pkgs.hyprlandPlugins.hy3 - ]; - }; - }; -} diff --git a/homeModules/wayland/hyprland/keybindings.nix b/homeModules/wayland/hyprland/keybindings.nix deleted file mode 100644 index bb415e74..00000000 --- a/homeModules/wayland/hyprland/keybindings.nix +++ /dev/null @@ -1,98 +0,0 @@ -{ - "$mod" = "SUPER"; - "$satty" = "satty -f -"; - - binde = [ - # Media binds that can be held and repeated - ", XF86MonBrightnessDown, exec, brightnessctl set 5%-" - ", XF86MonBrightnessUp, exec, brightnessctl set +5%" - ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" - ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" - ]; - - bind = [ - "SUPER_SHIFT, F, exec, MOZ_DISABLE_RDD_SANDBOX=1 firefox" - "$mod, Return, exec, ghostty" - "$mod, X, global, caelestia:session" - "$mod, D, global, caelestia:launcher" - "SUPER_SHIFT, E, exit" - - # Media Binds - ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" - ", XF86AudioPlay, exec, playerctl play-pause" - ", XF86AudioNext, exec, playerctl next" - ", XF86AudioPrev, exec, playerctl previous" - - # Workspace binds - "$mod, 1, workspace, 01" - "SUPER_SHIFT, 1, hy3:movetoworkspace, 01, follow, warp" - "$mod, 2, workspace, 02" - "SUPER_SHIFT, 2, hy3:movetoworkspace, 02, follow, warp" - "$mod, 3, workspace, 03" - "SUPER_SHIFT, 3, hy3:movetoworkspace, 03, follow, warp" - "$mod, 4, workspace, 04" - "SUPER_SHIFT, 4, hy3:movetoworkspace, 04, follow, warp" - "$mod, 5, workspace, 05" - "SUPER_SHIFT, 5, hy3:movetoworkspace, 05, follow, warp" - "$mod, 6, workspace, 06" - "SUPER_SHIFT, 6, hy3:movetoworkspace, 06, follow, warp" - "$mod, 7, workspace, 07" - "SUPER_SHIFT, 7, hy3:movetoworkspace, 07, follow, warp" - "$mod, 8, workspace, 08" - "SUPER_SHIFT, 8, hy3:movetoworkspace, 08, follow, warp" - "$mod, 9, workspace, 09" - "SUPER_SHIFT, 9, hy3:movetoworkspace, 09, follow, warp" - "$mod, 0, workspace, 10" - "SUPER_SHIFT, 0, hy3:movetoworkspace, 10, follow, warp" - # Scratchpad - "SUPER_SHIFT, -, movetoworkspace, special" - "$mod, -, togglespecialworkspace" - - # Window Management - "SUPER_SHIFT, Up, hy3:movewindow, up, once, visible" - "SUPER_SHIFT, K, hy3:movewindow, up, once, visible" - "$mod, Up, hy3:movefocus, up, visible, warp" - "$mod, K, hy3:movefocus, up, visible, warp" - - "SUPER_SHIFT, Right, hy3:movewindow, right, once, visible" - "SUPER_SHIFT, L, hy3:movewindow, right, once, visible" - "$mod, Right, hy3:movefocus, right, visible, warp" - "$mod, L, hy3:movefocus, right, visible, warp" - - "SUPER_SHIFT, Left, hy3:movewindow, left, once, visible" - "SUPER_SHIFT, H, hy3:movewindow, left, once, visible" - "$mod, Left, hy3:movefocus, left, visible, warp" - "$mod, H, hy3:movefocus, left, visible, warp" - - "SUPER_SHIFT, Down, hy3:movewindow, down, once, visible" - "SUPER_SHIFT, J, hy3:movewindow, down, once, visible" - "$mod, Down, hy3:movefocus, down, visible, warp" - "$mod, J, hy3:movefocus, down, visible, warp" - - "SUPER_SHIFT, Q, killactive" - "$mod, F, fullscreen, 0" - "$mod, Space, hy3:togglefocuslayer" - "SUPER_SHIFT, Space, togglefloating, active" - - # Screenshots - "SHIFT, F3, exec, hyprshot -m output --raw -z -s | $satty" - "SHIFT, F4, exec, hyprshot -m region --raw -z -s | $satty" - ]; - - bindm = [ - "$mod, mouse:272, movewindow" - ]; - - # Unbind a bunch of default keybinds - unbind = [ - "$mod, C" - "$mod, E" - "$mod, J" - "$mod, M" - "$mod, P" - "$mod, Q" - "$mod, R" - "$mod, V" - ]; -} diff --git a/homeModules/wayland/keybindings.nix b/homeModules/wayland/keybindings.nix index e0fb4e68..6396dfa0 100644 --- a/homeModules/wayland/keybindings.nix +++ b/homeModules/wayland/keybindings.nix @@ -1,45 +1,98 @@ -{ config, lib, ... }: -let - inherit (config.wayland.windowManager.sway.config) menu; - mod = config.wayland.windowManager.sway.config.modifier; - term = config.wayland.windowManager.sway.config.terminal; - grim = "grim -g"; - slurp-screen = "\"$(slurp -c -b '#1e1e2e80' -o -r)\" -"; - slurp-box = "\"$(slurp -c '#f38ba8ff' -b '#1e1e2e80' -w 1 -d -F 'IBM Plex Mono')\" -"; - satty = "satty -f -"; - cfg = config.py.profiles.gui; -in { - config.wayland.windowManager.sway.config.keybindings = lib.mkIf cfg.enable ( - lib.mkOptionDefault { - "${mod}+d" = "${menu}"; - "${mod}+Shift+F" = "exec MOZ_DISABLE_RDD_SANDBOX=1 firefox"; - "${mod}+Return" = "exec ${term}"; - "${mod}+x" = "exec wlogout"; - "${mod}+s" = null; - "${mod}+w" = null; - "XF86MonBrightnessDown" = "exec brightnessctl set 5%-"; - "XF86MonBrightnessUp" = "exec brightnessctl set +5%"; - "XF86AudioRaiseVolume" = "exec wpctl set-volume @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"; - "XF86AudioPlay" = "exec playerctl play-pause"; - "XF86AudioNext" = "exec playerctl next"; - "XF86AudioPrev" = "exec playerctl previous"; - "Shift+F3" = "exec ${grim} ${slurp-screen} | ${satty}"; - "Shift+F4" = "exec ${grim} ${slurp-box} | ${satty}"; - "${mod}+Shift+1" = "move container to workspace number 1"; - "${mod}+Shift+2" = "move container to workspace number 2"; - "${mod}+Shift+3" = "move container to workspace number 3"; - "${mod}+Shift+4" = "move container to workspace number 4"; - "${mod}+Shift+5" = "move container to workspace number 5"; - "${mod}+Shift+6" = "move container to workspace number 6"; - "${mod}+Shift+7" = "move container to workspace number 7"; - "${mod}+Shift+8" = "move container to workspace number 8"; - "${mod}+Shift+9" = "move container to workspace number 9"; - "${mod}+Shift+0" = "move container to workspace number 10"; - "${mod}+0" = "workspace number 10"; - } - ); + "$mod" = "SUPER"; + "$satty" = "satty -f -"; + + binde = [ + # Media binds that can be held and repeated + ", XF86MonBrightnessDown, exec, brightnessctl set 5%-" + ", XF86MonBrightnessUp, exec, brightnessctl set +5%" + ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" + ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" + ]; + + bind = [ + "SUPER_SHIFT, F, exec, MOZ_DISABLE_RDD_SANDBOX=1 firefox" + "$mod, Return, exec, ghostty" + "$mod, X, global, caelestia:session" + "$mod, D, global, caelestia:launcher" + "SUPER_SHIFT, E, exit" + + # Media Binds + ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" + ", XF86AudioPlay, exec, playerctl play-pause" + ", XF86AudioNext, exec, playerctl next" + ", XF86AudioPrev, exec, playerctl previous" + + # Workspace binds + "$mod, 1, workspace, 01" + "SUPER_SHIFT, 1, hy3:movetoworkspace, 01" + "$mod, 2, workspace, 02" + "SUPER_SHIFT, 2, hy3:movetoworkspace, 02" + "$mod, 3, workspace, 03" + "SUPER_SHIFT, 3, hy3:movetoworkspace, 03" + "$mod, 4, workspace, 04" + "SUPER_SHIFT, 4, hy3:movetoworkspace, 04" + "$mod, 5, workspace, 05" + "SUPER_SHIFT, 5, hy3:movetoworkspace, 05" + "$mod, 6, workspace, 06" + "SUPER_SHIFT, 6, hy3:movetoworkspace, 06" + "$mod, 7, workspace, 07" + "SUPER_SHIFT, 7, hy3:movetoworkspace, 07" + "$mod, 8, workspace, 08" + "SUPER_SHIFT, 8, hy3:movetoworkspace, 08" + "$mod, 9, workspace, 09" + "SUPER_SHIFT, 9, hy3:movetoworkspace, 09" + "$mod, 0, workspace, 10" + "SUPER_SHIFT, 0, hy3:movetoworkspace, 10" + # Scratchpad + "SUPER_SHIFT, -, hy3:movetoworkspace, special:default" + "$mod, -, togglespecialworkspace, default" + + # Window Management + "SUPER_SHIFT, Up, hy3:movewindow, up, once, visible" + "SUPER_SHIFT, K, hy3:movewindow, up, once, visible" + "$mod, Up, hy3:movefocus, up, visible, warp" + "$mod, K, hy3:movefocus, up, visible, warp" + + "SUPER_SHIFT, Right, hy3:movewindow, right, once, visible" + "SUPER_SHIFT, L, hy3:movewindow, right, once, visible" + "$mod, Right, hy3:movefocus, right, visible, warp" + "$mod, L, hy3:movefocus, right, visible, warp" + + "SUPER_SHIFT, Left, hy3:movewindow, left, once, visible" + "SUPER_SHIFT, H, hy3:movewindow, left, once, visible" + "$mod, Left, hy3:movefocus, left, visible, warp" + "$mod, H, hy3:movefocus, left, visible, warp" + + "SUPER_SHIFT, Down, hy3:movewindow, down, once, visible" + "SUPER_SHIFT, J, hy3:movewindow, down, once, visible" + "$mod, Down, hy3:movefocus, down, visible, warp" + "$mod, J, hy3:movefocus, down, visible, warp" + + "SUPER_SHIFT, Q, killactive" + "$mod, F, fullscreen, 0" + "$mod, Space, hy3:togglefocuslayer" + "SUPER_SHIFT, Space, togglefloating, active" + + # Screenshots + "SHIFT, F3, exec, hyprshot -m output --raw -z -s | $satty" + "SHIFT, F4, exec, hyprshot -m region --raw -z -s | $satty" + ]; + + bindm = [ + "$mod, mouse:272, movewindow" + ]; + + # Unbind a bunch of default keybinds + unbind = [ + "$mod, C" + "$mod, E" + "$mod, J" + "$mod, M" + "$mod, P" + "$mod, Q" + "$mod, R" + "$mod, V" + ]; } diff --git a/homeModules/wayland/hyprland/monitors.nix b/homeModules/wayland/monitors.nix similarity index 100% rename from homeModules/wayland/hyprland/monitors.nix rename to homeModules/wayland/monitors.nix diff --git a/homeModules/wayland/hyprland/plugins.nix b/homeModules/wayland/plugins.nix similarity index 100% rename from homeModules/wayland/hyprland/plugins.nix rename to homeModules/wayland/plugins.nix diff --git a/homeModules/wayland/hyprland/services.nix b/homeModules/wayland/services.nix similarity index 100% rename from homeModules/wayland/hyprland/services.nix rename to homeModules/wayland/services.nix diff --git a/homeModules/wayland/hyprland/settings.nix b/homeModules/wayland/settings.nix similarity index 100% rename from homeModules/wayland/hyprland/settings.nix rename to homeModules/wayland/settings.nix diff --git a/homeModules/wayland/sway.nix b/homeModules/wayland/sway.nix deleted file mode 100644 index eb087771..00000000 --- a/homeModules/wayland/sway.nix +++ /dev/null @@ -1,156 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: -let - term = config.wayland.windowManager.sway.config.terminal; - homeDir = config.home.homeDirectory; - cfg = config.py.profiles.gui; -in -{ - config = lib.mkIf cfg.enable { - catppuccin = { - sway.enable = true; - }; - home.sessionVariables = { - XDG_CURRENT_DESKTOP = "sway"; - }; - wayland.windowManager.sway = { - enable = lib.mkDefault true; - package = null; - # nix-community/home-manager/issues/5311 - checkConfig = false; - wrapperFeatures.base = true; - wrapperFeatures.gtk = true; - extraConfig = '' - default_border pixel - focus_on_window_activation smart - ''; - systemd = { - enable = true; - xdgAutostart = true; - }; - config = { - terminal = lib.getExe pkgs.ghostty; - menu = "exec ${lib.getExe pkgs.onagre}"; - modifier = "Mod4"; - bars = [ { command = "true"; } ]; - focus = { - followMouse = true; - mouseWarping = true; - newWindow = "smart"; - }; - fonts = { - names = [ "Inter" ]; - style = "Regular"; - size = 12.0; - }; - gaps = { - inner = 1; - outer = 1; - smartBorders = "on"; - smartGaps = false; - }; - input = { - "type:keyboard" = { - xkb_options = "caps:escape"; - }; - "type:mouse" = { - accel_profile = "flat"; - }; - "type:touchpad" = { - accel_profile = "adaptive"; - scroll_factor = "1.5"; - tap = "enabled"; - }; - }; - modes = { - resize = { - Escape = "mode default"; - Return = "mode default"; - Up = "resize shrink height 10 px"; - Down = "resize grow height 10 px"; - Left = "resize shrink width 10 px"; - Right = "resize grow width 10 px"; - h = "resize shrink width 10 px"; - j = "resize grow height 10 px"; - k = "resize shrink height 10 px"; - l = "resize grow width 10 px"; - }; - }; - output = { - eDP-1 = { - scale = "1.2"; - }; - }; - startup = [ - { command = "${pkgs.dex}/bin/dex -a"; } - { command = "${homeDir}/scripts/unfuck-xdg-portals.fish"; } - { command = "wl-paste -t text --watch clipman store --no-persist"; } - ]; - window = { - commands = [ - { - command = "inhibit_idle fullscreen"; - criteria = { - class = "Chromium|zoom|Firefox"; - }; - } - { - command = "floating enable, sticky enable, resize set 20 ppt 40 ppt, border pixel 4"; - criteria = { - app_id = "^py.floating$"; - }; - } - { - command = "resize set 20 ppt"; - criteria = { - title = "Mumble PTT"; - }; - } - ]; - }; - colors = { - background = "$base"; - focused = { - border = "$pink"; - background = "$base"; - text = "$text"; - indicator = "$rosewater"; - childBorder = "$pink"; - }; - focusedInactive = { - border = "$mauve"; - background = "$base"; - text = "$text"; - indicator = "$rosewater"; - childBorder = "$mauve"; - }; - unfocused = { - border = "$mauve"; - background = "$base"; - text = "$text"; - indicator = "$rosewater"; - childBorder = "$mauve"; - }; - urgent = { - border = "$peach"; - background = "$base"; - text = "$peach"; - indicator = "$overlay0"; - childBorder = "$peach"; - }; - placeholder = { - border = "$overlay0"; - background = "$base"; - text = "$text"; - indicator = "$overlay0"; - childBorder = "$overlay0"; - }; - }; - }; - }; - }; -} diff --git a/homeModules/wayland/swaylock.nix b/homeModules/wayland/swaylock.nix deleted file mode 100644 index a702dc43..00000000 --- a/homeModules/wayland/swaylock.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: -let - cfg = config.py.profiles.gui; -in -{ - catppuccin = { - swaylock.enable = false; - }; - programs.swaylock = lib.mkIf cfg.enable { - enable = lib.mkDefault true; - package = pkgs.swaylock-effects; - settings = { - daemonize = true; - image = "/home/thehedgehog/bgs/ctp-waves.png"; - scaling = "fill"; - line-uses-ring = true; - ignore-empty-password = true; - clock = true; - timestr = "%T"; - effect-blur = "5x5"; - - font = "IBM Plex Sans"; - font-size = 20; - - indicator = true; - indicator-idle-visible = true; - indicator-radius = 100; - indicator-thickness = 5; - - # Catppuccin Theme(avoid IFD by vendoring it in here) - color = "1e1e2e"; - bs-hl-color = "f5e0dc"; - caps-lock-bs-hl-color = "f5e0dc"; - caps-lock-key-hl-color = "a6e3a1"; - inside-color = "00000000"; - inside-clear-color = "00000000"; - inside-caps-lock-color = "00000000"; - inside-ver-color = "00000000"; - inside-wrong-color = "00000000"; - key-hl-color = "a6e3a1"; - layout-bg-color = "00000000"; - layout-border-color = "00000000"; - layout-text-color = "cdd6f4"; - line-color = "00000000"; - line-clear-color = "00000000"; - line-caps-lock-color = "00000000"; - line-ver-color = "00000000"; - line-wrong-color = "00000000"; - ring-color = "b4befe"; - ring-clear-color = "f5e0dc"; - ring-caps-lock-color = "fab387"; - ring-ver-color = "89b4fa"; - ring-wrong-color = "eba0ac"; - separator-color = "00000000"; - text-color = "cdd6f4"; - text-clear-color = "f5e0dc"; - text-caps-lock-color = "fab387"; - text-ver-color = "89b4fa"; - text-wrong-color = "eba0ac"; - }; - }; -} diff --git a/homeModules/wayland/hyprland/variables.nix b/homeModules/wayland/variables.nix similarity index 100% rename from homeModules/wayland/hyprland/variables.nix rename to homeModules/wayland/variables.nix diff --git a/homeModules/wayland/waybar-mocha.css b/homeModules/wayland/waybar-mocha.css deleted file mode 100644 index 98e218a1..00000000 --- a/homeModules/wayland/waybar-mocha.css +++ /dev/null @@ -1,37 +0,0 @@ -/* -* -* Catppuccin Mocha palette -* Maintainer: rubyowo -* -*/ - -@define-color base #1e1e2e; -@define-color mantle #181825; -@define-color crust #11111b; - -@define-color text #cdd6f4; -@define-color subtext0 #a6adc8; -@define-color subtext1 #bac2de; - -@define-color surface0 #313244; -@define-color surface1 #45475a; -@define-color surface2 #585b70; - -@define-color overlay0 #6c7086; -@define-color overlay1 #7f849c; -@define-color overlay2 #9399b2; - -@define-color blue #89b4fa; -@define-color lavender #b4befe; -@define-color sapphire #74c7ec; -@define-color sky #89dceb; -@define-color teal #94e2d5; -@define-color green #a6e3a1; -@define-color yellow #f9e2af; -@define-color peach #fab387; -@define-color maroon #eba0ac; -@define-color red #f38ba8; -@define-color mauve #cba6f7; -@define-color pink #f5c2e7; -@define-color flamingo #f2cdcd; -@define-color rosewater #f5e0dc; diff --git a/homeModules/wayland/waybar-style.css b/homeModules/wayland/waybar-style.css deleted file mode 100644 index bfe16d92..00000000 --- a/homeModules/wayland/waybar-style.css +++ /dev/null @@ -1,128 +0,0 @@ -@import "mocha.css"; -#waybar { - font-family: - BlexMono Nerd Font, - sans-serif; - font-size: 16px; -} - -#window { - padding: 0 4px; -} - -.modules-center { - padding-right: 20px; -} - -window#waybar { - border: none; - border-radius: 0; - box-shadow: none; - text-shadow: none; - transition-duration: 0s; - color: @text; - background: @base; -} - -#workspaces { - margin: 0 5px; -} - -#workspaces button { - padding: 0 8px; - color: @text; - border-bottom: 2px solid @subtext0; - border-radius: 0px; - min-width: 25px; - margin-right: 8px; -} - -#workspaces button.visible { - color: @subtext0; -} - -#workspaces button.focused { - border-bottom: 3px solid @mauve; - font-weight: bold; -} - -#workspaces button.urgent { - border: 2px solid @red; -} - -#workspaces button:hover { - border-color: @blue; - color: @blue; -} - -/* Repeat style here to ensure properties are overwritten as there's no !important and button:hover above resets the colour */ - -#workspaces button.focused { - color: @subtext0; -} -#workspaces button.focused:hover { - color: @text; -} - -#tray, -#mode, -#battery, -#temperature, -#cpu, -#memory, -#network, -#wireplumber, -#clock, -#idle_inhibitor, -#sway-language, -#backlight { - padding: 2px 8px; - margin: 2px 5px; - color: @text; -} - -#mode:hover, -#battery:hover, -#temperature:hover, -#cpu:hover, -#memory:hover, -#network:hover, -#wireplumber:hover, -#clock:hover, -#idle_inhibitor:hover, -#sway-language:hover, -#backlight:hover { - background-color: @subtext1; - color: @base; -} - -#clock { - font-weight: bold; -} - -#battery.warning { - color: @yellow; -} - -#battery.critical { - color: @red; -} - -#battery.charging, -#battery.full { - color: @green; -} - -#battery.warning:hover, -#battery.critical:hover, -#battery.charging:hover, -#battery.full:hover { - color: @base; -} - -@keyframes blink { - to { - background-color: #ffffff; - color: black; - } -} diff --git a/homeModules/wayland/waybar.nix b/homeModules/wayland/waybar.nix deleted file mode 100644 index 82bdf220..00000000 --- a/homeModules/wayland/waybar.nix +++ /dev/null @@ -1,172 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: -let - cfg = config.py.profiles.gui; - sway = config.wayland.windowManager.sway; -in -{ - config = { - xdg.configFile."waybar/mocha.css" = lib.mkIf (cfg.enable && sway.enable) { - source = ./waybar-mocha.css; - recursive = false; - }; - catppuccin.waybar.enable = false; - programs.waybar = lib.mkIf (cfg.enable && sway.enable) { - enable = lib.mkDefault false; - systemd.enable = true; - systemd.target = "sway-session.target"; - style = ./waybar-style.css; - settings = { - mainBar = { - layer = "top"; - position = "top"; - height = 32; - modules-left = [ - "sway/workspaces" - "sway/mode" - ]; - modules-center = [ "mpris" ]; - modules-right = [ - "idle_inhibitor" - "wireplumber" - "network" - "temperature" - "backlight" - "battery" - "clock" - "tray" - ]; - "sway/workspaces" = { - disable-scroll = true; - enable-bar-scroll = false; - active-only = false; - all-outputs = false; - format = "{icon}"; - }; - "idle_inhibitor" = { - format = "{icon} "; - format-icons = { - "activated" = ""; - "deactivated" = ""; - }; - }; - "tray" = { - icon-size = 25; - spacing = 12; - }; - "clock" = { - tooltip-format = "{calendar}"; - format = " {:%H:%M:%S}"; - format-alt = "{%d %b %Y}"; - interval = 1; - calendar = { - format = { - today = "{}"; - }; - }; - }; - "cpu" = { - format = " {usage}%"; - interval = 5; - tooltip = false; - }; - "memory" = { - format = " {}%"; - }; - "temperature" = { - critical-threshold = 80; - format = "{icon} {temperatureC}°C"; - format-icons = [ - "" - "" - "" - "" - "" - ]; - }; - "backlight" = { - format = "{icon} {percent}%"; - format-icons = [ - "󰃚" - "󰃛" - "󰃜" - "󰃝" - "󰃞" - "󰃟" - "󰃠" - ]; - }; - "battery" = { - states = { - good = 65; - warning = 30; - critical = 15; - }; - full-at = 80; - format = "{icon} {capacity}%"; - format-charging = "󰂄 {capacity}%"; - format-plugged = " {capacity}%"; - format-alt = "{icon} {time}"; - format-icons = [ - "󰂎" - "󰁺" - "󰁻" - "󰁼" - "󰁽" - "󰁾" - "󰁿" - "󰂀" - "󰂁" - "󰂂" - "󰁹" - ]; - }; - "network" = { - format-wifi = " {essid}"; - format-ethernet = "󰈀 {ifname}: {ipaddr}/{cidr}"; - format-linked = "󰄡 {ifname} (No IP)"; - format-disconnected = "⚠ Disconnected!"; - format-alt = "{ifname}: {ipaddr}/{cidr}"; - on-click = lib.getExe pkgs.networkmanagerapplet; - }; - "wireplumber" = { - format = "{icon} {volume}%"; - format-muted = "󰝟"; - format-icons = [ - "" - "" - "" - ]; - states = { - low = 15; - med = 40; - high = 60; - }; - scroll-step = 5; - on-click = lib.getExe pkgs.pwvucontrol; - }; - mpris = { - format = "{status_icon} {dynamic}"; - max-length = 100; - format-paused = "{status_icon} {dynamic}"; - dynamic-order = [ - "artist" - "title" - ]; - status-icons = { - playing = ""; - paused = ""; - }; - player-icons = { - firefox = "󰈹"; - }; - }; - }; - }; - }; - }; -} diff --git a/homeModules/wayland/hyprland/windowrules.nix b/homeModules/wayland/windowrules.nix similarity index 100% rename from homeModules/wayland/hyprland/windowrules.nix rename to homeModules/wayland/windowrules.nix diff --git a/homeModules/xdg/default.nix b/homeModules/xdg/default.nix index b94c7802..f0e1cca3 100644 --- a/homeModules/xdg/default.nix +++ b/homeModules/xdg/default.nix @@ -19,13 +19,14 @@ in xdgOpenUsePortal = true; extraPortals = [ pkgs.xdg-desktop-portal-gtk - pkgs.xdg-desktop-portal-wlr ]; config = { common = { - default = [ "gtk" ]; - "org.freedesktop.impl.portal.Screenshot" = [ "wlr" ]; - "org.freedesktop.impl.portal.ScreenCast" = [ "wlr" ]; + default = [ + "hyprland" + "gtk" + ]; + "org.freedesktop.impl.portal.FileChooser" = [ "gtk" ]; }; }; }; diff --git a/hosts/zaphod/misc.nix b/hosts/zaphod/misc.nix index d57f7af7..34deff6f 100644 --- a/hosts/zaphod/misc.nix +++ b/hosts/zaphod/misc.nix @@ -39,10 +39,6 @@ "pyrox" ]; # users.extraGroups.libvirtd.members = ["thehedgehog" "pyrox"]; - # xdg.portal.extraPortals = [ - # pkgs.xdg-desktop-portal-gtk - # ]; - xdg.portal.wlr.enable = true; xdg.portal.xdgOpenUsePortal = true; users.users.root.hashedPassword = "$6$6EtuZhVOJdfI9DYP$1Qnd7R8qdN.E5yE2kDQCNg2zgJ5cIjNBKsIW/qJgb8wcKlUpIoVg/fEKvBkAgCiLyojVG2kzfu4J9LR8rA8a2/"; @@ -59,4 +55,7 @@ percentageLow = 30; percentageCritical = 15; }; + + # For caelestia screen recording + programs.gpu-screen-recorder.enable = true; } diff --git a/nixosModules/default-config/nixpkgsConfig.nix b/nixosModules/default-config/nixpkgsConfig.nix index 867c68d5..2ea5614d 100644 --- a/nixosModules/default-config/nixpkgsConfig.nix +++ b/nixosModules/default-config/nixpkgsConfig.nix @@ -6,6 +6,7 @@ nixpkgs = { overlays = [ inputs.self.overlays.openssh-fixperms + inputs.self.overlays.hy3-fixes inputs.golink.overlays.default ]; config = { diff --git a/nixosModules/homes/thehedgehog-zaphod/caelestia-cli.json b/nixosModules/homes/thehedgehog-zaphod/caelestia-cli.json index 8f8ed518..24786db6 100644 --- a/nixosModules/homes/thehedgehog-zaphod/caelestia-cli.json +++ b/nixosModules/homes/thehedgehog-zaphod/caelestia-cli.json @@ -13,7 +13,7 @@ "enableQt": false }, "toggles": { - "communication": { + "discord": { "discord": { "enable": true, "match": [ @@ -21,9 +21,7 @@ "class": "equibop" } ], - "command": [ - "equibop" - ], + "command": ["equibop"], "move": true } }, @@ -39,11 +37,7 @@ } } ], - "command": [ - "ghostty", - "-e", - "btop" - ] + "command": ["ghostty", "-e", "btop"] } } } diff --git a/nixosModules/homes/thehedgehog-zaphod/caelestia-shell.json b/nixosModules/homes/thehedgehog-zaphod/caelestia-shell.json index bf5d78f8..df90f8cd 100644 --- a/nixosModules/homes/thehedgehog-zaphod/caelestia-shell.json +++ b/nixosModules/homes/thehedgehog-zaphod/caelestia-shell.json @@ -128,10 +128,18 @@ }, "general": { "apps": { - "audio": ["pwvucontrol"], - "explorer": ["thunar"], - "playback": ["mpv"], - "terminal": ["ghostty"] + "audio": [ + "pwvucontrol" + ], + "explorer": [ + "thunar" + ], + "playback": [ + "mpv" + ], + "terminal": [ + "ghostty" + ] }, "battery": { "criticalLevel": 3, @@ -171,7 +179,10 @@ "timeout": 600 }, { - "idleAction": ["systemctl", "suspend"], + "idleAction": [ + "systemctl", + "suspend" + ], "timeout": 900 } ] @@ -181,7 +192,10 @@ "actionPrefix": ">", "actions": [ { - "command": ["autocomplete", "calc"], + "command": [ + "autocomplete", + "calc" + ], "dangerous": false, "description": "Do simple math equations (powered by Qalc)", "enabled": true, @@ -189,7 +203,45 @@ "name": "Calculator" }, { - "command": ["systemctl", "poweroff"], + "name": "Wallpaper", + "icon": "image", + "description": "Change the current wallpaper", + "command": [ + "autocomplete", + "wallpaper" + ], + "enabled": true, + "dangerous": false + }, + { + "name": "Random", + "icon": "casino", + "description": "Switch to a random wallpaper", + "command": [ + "caelestia", + "wallpaper", + "-r" + ], + "enabled": true, + "dangerous": false + }, + { + "name": "Discord", + "icon": "d", + "description": "Open Discord", + "command": [ + "caelestia", + "toggle", + "discord" + ], + "enabled": true, + "dangerous": false + }, + { + "command": [ + "systemctl", + "poweroff" + ], "dangerous": true, "description": "Shutdown the system", "enabled": true, @@ -197,7 +249,10 @@ "name": "Shutdown" }, { - "command": ["systemctl", "reboot"], + "command": [ + "systemctl", + "reboot" + ], "dangerous": true, "description": "Reboot the system", "enabled": true, @@ -205,7 +260,11 @@ "name": "Reboot" }, { - "command": ["loginctl", "terminate-user", ""], + "command": [ + "loginctl", + "terminate-user", + "" + ], "dangerous": true, "description": "Log out of the current session", "enabled": true, @@ -213,7 +272,10 @@ "name": "Logout" }, { - "command": ["loginctl", "lock-session"], + "command": [ + "loginctl", + "lock-session" + ], "dangerous": false, "description": "Lock the current session", "enabled": true, @@ -221,7 +283,10 @@ "name": "Lock" }, { - "command": ["systemctl", "suspend"], + "command": [ + "systemctl", + "suspend" + ], "dangerous": false, "description": "Suspend", "enabled": true, @@ -264,7 +329,7 @@ "paths": { "mediaGif": "", "sessionGif": "", - "wallpaperDir": "~/bgs/wallpapers/xenia/" + "wallpaperDir": "~/bgs/wallpapers" }, "services": { "audioIncrement": 0.1, @@ -284,10 +349,23 @@ }, "session": { "commands": { - "hibernate": ["systemctl", "suspend"], - "logout": ["loginctl", "terminate-user", ""], - "reboot": ["systemctl", "reboot"], - "shutdown": ["systemctl", "poweroff"] + "hibernate": [ + "systemctl", + "suspend" + ], + "logout": [ + "loginctl", + "terminate-user", + "" + ], + "reboot": [ + "systemctl", + "reboot" + ], + "shutdown": [ + "systemctl", + "poweroff" + ] }, "dragThreshold": 30, "enabled": true, diff --git a/nixosModules/homes/thehedgehog-zaphod/default.nix b/nixosModules/homes/thehedgehog-zaphod/default.nix index 6642d235..3b0a8b02 100644 --- a/nixosModules/homes/thehedgehog-zaphod/default.nix +++ b/nixosModules/homes/thehedgehog-zaphod/default.nix @@ -12,6 +12,11 @@ pkgs.mindustry pkgs.signal-desktop ]; + home.sessionVariables = { + QT_QPA_PLATFORM = "wayland;xcb"; + GDK_BACKEND = "wayland,x11,*"; + NIXOS_OZONE_WL = "1"; + }; py.profiles.desktop.enable = true; programs.caelestia = { enable = true; diff --git a/overlays/default.nix b/overlays/default.nix index 94ad6a7b..262a1382 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -2,5 +2,6 @@ flake.overlays = { cinny = import ./cinny; openssh-fixperms = import ./openssh-fixperms; + hy3-fixes = import ./hy3-fixes; }; } diff --git a/overlays/hy3-fixes/default.nix b/overlays/hy3-fixes/default.nix new file mode 100644 index 00000000..cbae3f85 --- /dev/null +++ b/overlays/hy3-fixes/default.nix @@ -0,0 +1,12 @@ +final: prev: { + hyprlandPlugins = prev.hyprlandPlugins // { + hy3 = prev.hyprlandPlugins.hy3.overrideAttrs (old: { + patches = (old.patches or [ ]) ++ [ + (prev.fetchpatch { + url = "https://github.com/outfoxxed/hy3/commit/8a3f46a40984e74094f71b5bd38df3dbe5daa97f.patch?full_index=1"; + hash = "sha256-zNGCMcidRx7zV3mnlQT4EjA36g7MeBf6A9gyvITeZ4c="; + }) + ]; + }); + }; +}