diff --git a/modules/home/desktop/common/xdg-userdirs.nix b/modules/home/desktop/common/xdg-userdirs.nix new file mode 100644 index 0000000..cce492e --- /dev/null +++ b/modules/home/desktop/common/xdg-userdirs.nix @@ -0,0 +1,14 @@ +{config, ...}: { + xdg.userDirs = { + enable = true; + createDirectories = true; + templates = "${config.home.homeDirectory}/temps"; + publicShare = "${config.home.homeDirectory}/pub"; + desktop = "${config.home.homeDirectory}/desktop"; + download = "${config.home.homeDirectory}/downloads"; + documents = "${config.home.homeDirectory}/docs"; + pictures = "${config.home.homeDirectory}/pics"; + videos = "${config.home.homeDirectory}/vids"; + music = "${config.home.homeDirectory}/music"; + }; +} diff --git a/modules/home/desktop/default.nix b/modules/home/desktop/default.nix index 52d57b3..57a9121 100644 --- a/modules/home/desktop/default.nix +++ b/modules/home/desktop/default.nix @@ -1,5 +1,6 @@ { imports = [ + ./common/xdg-userdirs.nix ./hyprland/default.nix ./niri/default.nix ./plasma/default.nix diff --git a/modules/home/desktop/hyprland/default.nix b/modules/home/desktop/hyprland/default.nix index fe7ba4f..5e3b270 100644 --- a/modules/home/desktop/hyprland/default.nix +++ b/modules/home/desktop/hyprland/default.nix @@ -7,6 +7,8 @@ }: let cfg = config.desktop.hyprland; hostname = osConfig.networking.hostName; + xdgPictures = + config.xdg.userDirs.pictures; in { options = { desktop.hyprland.enable = @@ -225,10 +227,11 @@ in { "$modCtrl, B, exec, $webBrowser" "$modCtrl, V, exec, $clipboardManager" - ", Print, exec, flameshot gui" #${xdg.userDirs.pictures}/screenshots/" - #", Print, exec, grimblast --freeze copy area" #${xdg.userDirs.pictures}/screenshots/" - #"CTRL, Print, exec, grimblast --freeze copy active" #${xdg.userDirs.pictures}/screenshots/" - #"SHIFT, Print, exec, grimblast --freeze copy output" #${xdg.userDirs.pictures}/screenshots/" + # ", Print, exec, flameshot gui" #${xdg.userDirs.pictures}/screenshots/" + ", Print, exec, ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp -o -r -c '\#\#ff0000ff')\" -t ppm - | ${pkgs.satty}/bin/satty --filename - --fullscreen --output-filename ${xdgPictures}/screenshots/satty-$(date '+%Y%m%d-%H:%M:%S').png" + # ", Print, exec, grimblast --freeze copy area" #${xdg.userDirs.pictures}/screenshots/" + # "CTRL, Print, exec, grimblast --freeze copy active" #${xdg.userDirs.pictures}/screenshots/" + # "SHIFT, Print, exec, grimblast --freeze copy output" #${xdg.userDirs.pictures}/screenshots/" # navigation #"$modCtrl, N," "$mod, $left, hy3:movefocus, l" @@ -1611,18 +1614,6 @@ in { "x-scheme-handler/unknown" = web_browser; }; }; - xdg.userDirs = { - enable = true; - createDirectories = true; - templates = "${config.home.homeDirectory}/temps"; - publicShare = "${config.home.homeDirectory}/pub"; - desktop = "${config.home.homeDirectory}/desktop"; - download = "${config.home.homeDirectory}/downloads"; - documents = "${config.home.homeDirectory}/docs"; - pictures = "${config.home.homeDirectory}/pics"; - videos = "${config.home.homeDirectory}/vids"; - music = "${config.home.homeDirectory}/music"; - }; systemd.user.settings.Manager.DefaultEnvironment = { # QT_QPA_PLATFORMTHEME = "gtk3"; QT_QPA_PLATFORM = "wayland"; diff --git a/modules/home/desktop/niri/default.nix b/modules/home/desktop/niri/default.nix index fa41904..ee784a4 100644 --- a/modules/home/desktop/niri/default.nix +++ b/modules/home/desktop/niri/default.nix @@ -1347,18 +1347,6 @@ in { "x-scheme-handler/unknown" = web_browser; }; }; - xdg.userDirs = { - enable = true; - createDirectories = true; - templates = "${config.home.homeDirectory}/temps"; - publicShare = "${config.home.homeDirectory}/pub"; - desktop = "${config.home.homeDirectory}/desktop"; - download = "${config.home.homeDirectory}/downloads"; - documents = "${config.home.homeDirectory}/docs"; - pictures = "${config.home.homeDirectory}/pics"; - videos = "${config.home.homeDirectory}/vids"; - music = "${config.home.homeDirectory}/music"; - }; systemd.user.settings.Manager.DefaultEnvironment = { # QT_QPA_PLATFORMTHEME = "gtk3"; QT_QPA_PLATFORM = "wayland"; diff --git a/modules/home/desktop/plasma/default.nix b/modules/home/desktop/plasma/default.nix index 26e5294..0ac7250 100644 --- a/modules/home/desktop/plasma/default.nix +++ b/modules/home/desktop/plasma/default.nix @@ -14,19 +14,7 @@ in { config = mkIf cfg.enable { stylix.targets.kde.enable = true; home.packages = with pkgs; [ - wl-clipboard + wl-clipboard-rs ]; - xdg.userDirs = { - enable = true; - createDirectories = true; - templates = "${config.home.homeDirectory}/temps"; - publicShare = "${config.home.homeDirectory}/pub"; - desktop = "${config.home.homeDirectory}/desktop"; - download = "${config.home.homeDirectory}/downloads"; - documents = "${config.home.homeDirectory}/docs"; - pictures = "${config.home.homeDirectory}/pics"; - videos = "${config.home.homeDirectory}/vids"; - music = "${config.home.homeDirectory}/music"; - }; }; } diff --git a/modules/nixos/desktop/misc/sound.nix b/modules/nixos/desktop/common/pipewire.nix similarity index 100% rename from modules/nixos/desktop/misc/sound.nix rename to modules/nixos/desktop/common/pipewire.nix diff --git a/modules/nixos/desktop/hyprland.nix b/modules/nixos/desktop/hyprland.nix index c698209..0757006 100644 --- a/modules/nixos/desktop/hyprland.nix +++ b/modules/nixos/desktop/hyprland.nix @@ -7,31 +7,40 @@ with lib; let cfg = config.desktop.hyprland; in { - imports = [./misc/sound.nix ./misc/regreet.nix]; + imports = [./common/pipewire.nix]; options = { desktop.hyprland.enable = mkEnableOption "enable hyprland desktop"; }; config = mkIf cfg.enable { programs.hyprland.enable = true; - programs.hyprland.package = pkgs.hyprland; - fonts.fontDir.enable = true; - security.pam.services.hyprlock = {}; - security.pam.loginLimits = [ - { - domain = "@users"; - item = "rtprio"; - type = "-"; - value = 1; - } + environment.systemPackages = with pkgs; [ + brightnessctl + gcr_4 ]; - programs.dconf.enable = true; - programs.seahorse.enable = true; - services.gnome.gnome-keyring.enable = true; - services.udisks2.enable = true; - services.dbus = { - apparmor = "enabled"; - implementation = "broker"; + fonts.fontDir.enable = true; + security.pam = { + services.hyprlock = {}; + loginLimits = [ + { + domain = "@users"; + item = "rtprio"; + type = "-"; + value = 1; + } + ]; + }; + services = { + gnome.gnome-keyring.enable = true; + udisks2.enable = true; + dbus = { + apparmor = "enabled"; + implementation = "broker"; + }; + }; + programs = { + dconf.enable = true; + seahorse.enable = true; }; xdg.portal = { enable = true; @@ -39,18 +48,25 @@ in { xdg-desktop-portal-hyprland xdg-desktop-portal-gtk ]; - config = { - common = { - default = [ - "hyprland" - "gtk" - ]; + config.common.default = [ + "hyprland" + "gtk" + ]; + }; + + programs.regreet.enable = true; + services.greetd = { + enable = true; + vt = 6; + settings = { + default_session = { + command = "${pkgs.cage}/bin/cage -s -m last -- ${pkgs.greetd.regreet}/bin/regreet"; + }; + initial_session = { + user = "user"; + command = "Hyprland"; }; }; }; - services.greetd.settings.initial_session = { - user = "user"; - command = "Hyprland"; - }; }; } diff --git a/modules/nixos/desktop/misc/regreet.nix b/modules/nixos/desktop/misc/regreet.nix deleted file mode 100644 index e4e86f8..0000000 --- a/modules/nixos/desktop/misc/regreet.nix +++ /dev/null @@ -1,12 +0,0 @@ -{pkgs, ...}: { - programs.regreet.enable = true; - services.greetd = { - enable = true; - vt = 6; - settings = { - default_session = { - command = "${pkgs.cage}/bin/cage -s -m last -- ${pkgs.greetd.regreet}/bin/regreet"; - }; - }; - }; -} diff --git a/modules/nixos/desktop/niri.nix b/modules/nixos/desktop/niri.nix index 2c08f09..22d25e0 100644 --- a/modules/nixos/desktop/niri.nix +++ b/modules/nixos/desktop/niri.nix @@ -7,7 +7,7 @@ with lib; let cfg = config.desktop.niri; in { - imports = [./misc/sound.nix ./misc/regreet.nix]; + imports = [./common/pipewire.nix]; options = { desktop.niri.enable = mkEnableOption "enable niri desktop"; @@ -52,9 +52,19 @@ in { "gtk" ]; }; - services.greetd.settings.initial_session = { - user = "user"; - command = "${pkgs.niri}/bin/niri-session"; + programs.regreet.enable = true; + services.greetd = { + enable = true; + vt = 6; + settings = { + default_session = { + command = "${pkgs.cage}/bin/cage -s -m last -- ${pkgs.greetd.regreet}/bin/regreet"; + }; + initial_session = { + user = "user"; + command = "${pkgs.niri}/bin/niri-session"; + }; + }; }; }; } diff --git a/modules/nixos/desktop/plasma.nix b/modules/nixos/desktop/plasma.nix index 4401dec..c5f17b9 100644 --- a/modules/nixos/desktop/plasma.nix +++ b/modules/nixos/desktop/plasma.nix @@ -1,6 +1,5 @@ { config, - pkgs, lib, ... }: @@ -8,7 +7,7 @@ with lib; let cfg = config.desktop.plasma; in { imports = [ - ./misc/sound.nix + ./common/pipewire.nix ]; options = { desktop.plasma = { @@ -17,12 +16,13 @@ in { }; }; config = mkIf cfg.enable { - services.displayManager.sddm = { - enable = cfg.sddmEnable; - wayland.enable = true; + services = { + desktopManager.plasma6.enable = true; + displayManager.sddm = { + enable = cfg.sddmEnable; + wayland.enable = true; + }; }; - services.desktopManager.plasma6.enable = true; - fonts.fontDir.enable = true; }; }