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=";
+ })
+ ];
+ });
+ };
+}