From 91b087f66895b69422790365e844860d2de357bf Mon Sep 17 00:00:00 2001 From: Jurn Wubben Date: Fri, 4 Apr 2025 11:23:07 +0200 Subject: [PATCH] Added plasma6 specialisation for when other people use my devices --- home/style/default.nix | 3 ++- hosts/laptop/default.nix | 26 +++++++++++++++++++++++++- system/programs/default.nix | 1 + system/programs/plasma6.nix | 33 +++++++++++++++++++++++++++++++++ system/services/greetd.nix | 2 +- 5 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 system/programs/plasma6.nix diff --git a/home/style/default.nix b/home/style/default.nix index faf8fbe..caf6110 100644 --- a/home/style/default.nix +++ b/home/style/default.nix @@ -1,8 +1,8 @@ { osConfig, - config, inputs, pkgs, + lib, ... }: { imports = [ @@ -11,6 +11,7 @@ stylix = { enable = osConfig.niksos.desktop; + autoEnable = lib.mkDefault true; image = ./background.png; polarity = "dark"; diff --git a/hosts/laptop/default.nix b/hosts/laptop/default.nix index 6d82b24..2af8ea9 100644 --- a/hosts/laptop/default.nix +++ b/hosts/laptop/default.nix @@ -1,4 +1,12 @@ { + pkgs, + lib, + inputs, + ... +}: let + uwsm = lib.getExe pkgs.uwsm; + foot = lib.getExe pkgs.foot; +in { imports = [ ./hardware-configuration.nix ./virt.nix @@ -11,9 +19,25 @@ desktop = true; portable = true; neovim = true; + + kde = true; + }; + + services.logind.extraConfig = '' + # don’t shutdown when power button is short-pressed + HandlePowerKey=ignore + ''; + home-manager.users.jsw.wayland.windowManager.hyprland.settings = { + monitor = ["eDP-1,2880x1920@120,0x0,1.5,vrr,1"]; + bind = [ + ", XF86PowerOff, exec, ${uwsm} app -- pgrep fprintd-verify && exit 0 || ${foot} -a 'foot-fprintd' sh -c 'fprintd-verify && systemctl sleep'" + ]; + windowrulev2 = [ + # FIXME: change to `windowrule` after hyprland update. + "float, class:foot-fprintd" + ]; }; - home-manager.users.jsw.wayland.windowManager.hyprland.settings.monitor = ["eDP-1,2880x1920@120,0x0,1.5,vrr,1"]; services = { fprintd.enable = true; udev.extraRules = '' diff --git a/system/programs/default.nix b/system/programs/default.nix index 1f6b866..55efbe8 100644 --- a/system/programs/default.nix +++ b/system/programs/default.nix @@ -5,6 +5,7 @@ ./home-manager.nix ./hyprland.nix ./neovim.nix + ./plasma6.nix ./polkit.nix ./xdg.nix ]; diff --git a/system/programs/plasma6.nix b/system/programs/plasma6.nix new file mode 100644 index 0000000..3af89c9 --- /dev/null +++ b/system/programs/plasma6.nix @@ -0,0 +1,33 @@ +{ + lib, + pkgs, + config, + ... +}: { + options.niksos.kde = lib.mkEnableOption "a kde specialisation. Will enable desktop settings."; + + config.specialisation.de.configuration = lib.mkIf config.niksos.kde { + niksos.desktop = lib.mkForce true; + + services = { + greetd = let + session = { + command = "${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland"; + user = "jsw"; + }; + in { + settings = lib.mkForce { + terminal.vt = 1; + default_session = session; + initial_session = session; + }; + }; + + desktopManager.plasma6.enable = true; + }; + + home-manager.users.jsw = { + stylix.autoEnable = false; + }; + }; +} diff --git a/system/services/greetd.nix b/system/services/greetd.nix index 2558b1f..7b9b094 100644 --- a/system/services/greetd.nix +++ b/system/services/greetd.nix @@ -13,7 +13,7 @@ in { enable = true; - settings = { + settings = lib.mkDefault { terminal.vt = 1; default_session = session; initial_session = session;