refactor(hyprland): move nvidia option > wayland.nvidia/add hyprlands.extras

hyprland extras to serve as place to add hyprecosystem projects
This commit is contained in:
ooks-io 2024-04-01 18:07:43 +13:00
parent ba410aa838
commit 82f539c989
9 changed files with 61 additions and 54 deletions

View file

@ -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";
};
};
};

View file

@ -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
];

View file

@ -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";
};
};
}

View file

@ -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"
];
};
}

View file

@ -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
};
}

View file

@ -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

View file

@ -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
'';
}

View file

@ -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"

View file

@ -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"
];
];
};