diff --git a/home/modules/desktop/wayland/windowManager/default.nix b/home/modules/desktop/wayland/windowManager/default.nix index 3b67bcd..761bbb4 100644 --- a/home/modules/desktop/wayland/windowManager/default.nix +++ b/home/modules/desktop/wayland/windowManager/default.nix @@ -8,11 +8,6 @@ options.homeModules.desktop.wayland.windowManager = { hyprland = { enable = lib.mkEnableOption "Enable Hyprland window-manager"; - nvidia = lib.mkOption { - type = lib.types.bool; - default = false; - description = "Apply Hyprland nvidia settings"; - }; }; }; diff --git a/home/modules/desktop/wayland/windowManager/hyprland/default.nix b/home/modules/desktop/wayland/windowManager/hyprland/default.nix index a946572..df1117a 100644 --- a/home/modules/desktop/wayland/windowManager/hyprland/default.nix +++ b/home/modules/desktop/wayland/windowManager/hyprland/default.nix @@ -1,13 +1,14 @@ { lib, config, pkgs, inputs, ... }: let cfg = config.homeModules.desktop.wayland.windowManager.hyprland; - inherit (import ./pkgs {inherit pkgs;}) hyprbrightness hyprvolume hyprkillsession; - inherit (inputs.ooks-scripts.packages.${pkgs.system}) hyprrecord powermenu zellijmenu; + inherit (import ./pkgs {inherit pkgs;}) hyprbrightness hyprvolume; + inherit (inputs.ooks-scripts.packages.${pkgs.system}) powermenu zellijmenu; in { imports = [ inputs.hyprland.homeManagerModules.default ./settings + ./extras ]; config = lib.mkIf cfg.enable { @@ -17,15 +18,11 @@ in }; home.packages = [ - inputs.hyprwm-contrib.packages.${pkgs.system}.grimblast - pkgs.hyprshade pkgs.hyprpicker hyprvolume - hyprkillsession hyprbrightness # Personal scripts - hyprrecord powermenu zellijmenu #TODO: only add if zellij enabled ]; diff --git a/home/modules/desktop/wayland/windowManager/hyprland/extras/default.nix b/home/modules/desktop/wayland/windowManager/hyprland/extras/default.nix new file mode 100644 index 0000000..824076a --- /dev/null +++ b/home/modules/desktop/wayland/windowManager/hyprland/extras/default.nix @@ -0,0 +1,17 @@ +{ lib, ... }: + +{ + imports = [ + ./hyprcapture + ./hyprshade + ]; + + options.homeModules.desktop.wayland.windowManager.hyprland.extras = { + hyprcapture = { + enable = lib.mkEnableOption "Enable hyprcapture screenshot/recording module"; + }; + hyprshade = { + enable = lib.mkEnableOption "Enable hyprshade tool module"; + }; + }; +} diff --git a/home/modules/desktop/wayland/windowManager/hyprland/extras/hyprcapture/default.nix b/home/modules/desktop/wayland/windowManager/hyprland/extras/hyprcapture/default.nix new file mode 100644 index 0000000..47ba064 --- /dev/null +++ b/home/modules/desktop/wayland/windowManager/hyprland/extras/hyprcapture/default.nix @@ -0,0 +1,27 @@ +{ lib, config, pkgs, inputs, ... }: + +let + cfg = config.homeModules.desktop.wayland.windowManager.hyprland.extras.hyprcapture; +in + +{ + config = lib.mkIf cfg.enable { + + home.packages = with inputs; [ + # Screenshot tool + hyprwm-contrib.packages.${pkgs.system}.grimblast + # Screen recording tool + ooks-scripts.packages.${pkgs.system}.hyprrecord + ]; + + wayland.windowManager.hyprland.settings.bind = [ + # Screenshot binds + ", Print, exec, grimblast --notify --cursor copysave area" + "SUPER, Print, exec, grimblast --notify --cursor copysave screen" + # Recording binds + "SUPER, r, exec, hyprrecord -a -w video screen copysave" + "SUPER CTRL, r, exec, hyprrecord -a -w video area copysave" + "SUPER ALT, r, exec, hyprrecord -w gif area copysave" + ]; + }; +} diff --git a/home/modules/desktop/wayland/windowManager/hyprland/extras/hyprshade/default.nix b/home/modules/desktop/wayland/windowManager/hyprland/extras/hyprshade/default.nix new file mode 100644 index 0000000..195984f --- /dev/null +++ b/home/modules/desktop/wayland/windowManager/hyprland/extras/hyprshade/default.nix @@ -0,0 +1,12 @@ +{ lib, config, pkgs, ... }: + +let + cfg = config.homeModules.desktop.wayland.windowManager.hyprland.extras.hyprshade; +in + +{ + config = lib.mkIf cfg.enable { + home.packages = [ pkgs.hyprshade ]; + # TODO: implement hyprshade configuration + }; +} diff --git a/home/modules/desktop/wayland/windowManager/hyprland/pkgs/default.nix b/home/modules/desktop/wayland/windowManager/hyprland/pkgs/default.nix index f03b479..f110a04 100644 --- a/home/modules/desktop/wayland/windowManager/hyprland/pkgs/default.nix +++ b/home/modules/desktop/wayland/windowManager/hyprland/pkgs/default.nix @@ -4,8 +4,6 @@ let packages = { hyprvolume = pkgs.callPackage ./hyprvolume.nix {}; hyprbrightness = pkgs.callPackage ./hyprbrightness.nix {}; - # Script to help Hyprland quit https://github.com/hyprwm/Hyprland/issues/3558#issuecomment-1848768654 - hyprkillsession = pkgs.callPackage ./hyprkillsession.nix {}; }; in packages diff --git a/home/modules/desktop/wayland/windowManager/hyprland/pkgs/hyprkillsession.nix b/home/modules/desktop/wayland/windowManager/hyprland/pkgs/hyprkillsession.nix deleted file mode 100644 index ccbc450..0000000 --- a/home/modules/desktop/wayland/windowManager/hyprland/pkgs/hyprkillsession.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ pkgs, ... }: - -pkgs.writeShellApplication { - name = "hyprkillsession"; - runtimeInputs = with pkgs; [ procps ]; - text = '' - if pgrep -x Hyprland >/dev/null; then - - hyprctl dispatch exit 0 - sleep 2 - - if pgrep -x Hyprland >/dev/null; then - killall -9 Hyprland - fi - fi - ''; -} diff --git a/home/modules/desktop/wayland/windowManager/hyprland/settings/binds.nix b/home/modules/desktop/wayland/windowManager/hyprland/settings/binds.nix index 0075ed8..d0c3ecc 100644 --- a/home/modules/desktop/wayland/windowManager/hyprland/settings/binds.nix +++ b/home/modules/desktop/wayland/windowManager/hyprland/settings/binds.nix @@ -41,15 +41,6 @@ in "SUPER, bracketleft, exec, ${spotifyctl} playback previous" "SUPER, backslash, exec, ${spotifyctl} playback play-pause" - # Screenshot - - ", Print, exec, grimblast --notify --cursor copysave area" - "SUPER, Print, exec, grimblast --notify --cursor copysave screen" - "SUPER, r, exec, hyprrecord -a -w video screen copysave" - "SUPER CTRL, r, exec, hyprrecord -a -w video area copysave" - "SUPER ALT, r, exec, hyprrecord -w gif area copysave" - - # Brightness ",XF86MonBrightnessUp, exec, hyprbrightness up" diff --git a/home/modules/desktop/wayland/windowManager/hyprland/settings/env.nix b/home/modules/desktop/wayland/windowManager/hyprland/settings/env.nix index d7960d0..4b9b312 100644 --- a/home/modules/desktop/wayland/windowManager/hyprland/settings/env.nix +++ b/home/modules/desktop/wayland/windowManager/hyprland/settings/env.nix @@ -7,22 +7,9 @@ in { config = lib.mkIf cfg.enable { wayland.windowManager.hyprland.settings.env = [ - "CLUTTER_BACKEND,wayland" - "NIXOS_OZONE_WL,1" - "GDK_BACKEND,wayland" - "QT_QPA_PLATFORM,wayland" - "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" - "MOZ_ENABLE_WAYLAND,1" - "MOZ_DBUS_REMOTE,1" - "XDG_SESSION_TYPE,wayland" - "XDG_SESSIONDESKTOP,hyprland" + "XDG_SESSION_DESKTOP,hyprland" "XDG_CURRENT_DESKTOP,hyprland" - ] ++ lib.optionals cfg.nvidia [ - "LIBVA_DRIVER_NAME,nvidia" - "GBM_BACKEND,nvidia-drm" - "__GLX_VENDEOR_LIBRARY_NAME,nvidia" - "WLR_NO_HARDWARE_CURSORS,1" - ]; + ]; };