Option: added active desktop option which allows kde to be primary desktop environment.
This commit is contained in:
parent
d233e18593
commit
f622009e87
17 changed files with 82 additions and 60 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{osConfig, ...}: {
|
||||||
services.udiskie = {
|
services.udiskie = {
|
||||||
enable = true;
|
inherit (osConfig.services.udisks2) enable;
|
||||||
tray = "never"; #NOTE: Don't have a bar (yet?)
|
tray = "never"; #NOTE: Don't have a bar (yet?)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@
|
||||||
./other.nix
|
./other.nix
|
||||||
./repl
|
./repl
|
||||||
./starship.nix
|
./starship.nix
|
||||||
./transfer.nix
|
|
||||||
./yazi.nix
|
./yazi.nix
|
||||||
./zoxide.nix
|
./zoxide.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) mkIf;
|
inherit (lib) mkIf;
|
||||||
cfg = osConfig.niksos.desktop.hyprland;
|
cfg = osConfig.programs.hyprland.enable;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./fuzzel.nix
|
./fuzzel.nix
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
programs.fuzzel = {
|
programs.fuzzel = {
|
||||||
enable = osConfig.niksos.desktop.hyprland;
|
inherit (osConfig.programs.hyprland) enable;
|
||||||
settings.main = {
|
settings.main = {
|
||||||
launch-prefix = "${lib.getExe pkgs.uwsm} app --";
|
launch-prefix = "${lib.getExe pkgs.uwsm} app --";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = osConfig.niksos.desktop.hyprland;
|
inherit (osConfig.programs.hyprland) enable;
|
||||||
settings = {
|
settings = {
|
||||||
env = [
|
env = [
|
||||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
inherit (config.lib.stylix.colors) base05;
|
inherit (config.lib.stylix.colors) base05;
|
||||||
in {
|
in {
|
||||||
programs.hyprlock = {
|
programs.hyprlock = {
|
||||||
enable = osConfig.niksos.desktop.hyprland;
|
inherit (osConfig.programs.hyprland) enable;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
general = {
|
general = {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
{osConfig, ...}: {
|
{osConfig, ...}: let
|
||||||
|
inherit (osConfig.niksos) desktop;
|
||||||
|
in {
|
||||||
services.mako = {
|
services.mako = {
|
||||||
enable = osConfig.niksos.desktop.hyprland;
|
inherit (osConfig.programs.hyprland) enable;
|
||||||
settings.defaultTimeout = 5000;
|
settings.defaultTimeout = 5000;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,20 @@ in {
|
||||||
enable = mkEO "enable desktop related programs (+home manager).";
|
enable = mkEO "enable desktop related programs (+home manager).";
|
||||||
apps = mkEO "extra bloat.";
|
apps = mkEO "extra bloat.";
|
||||||
games = mkEO "gaming related programs";
|
games = mkEO "gaming related programs";
|
||||||
|
|
||||||
hyprland = mkEO "enable hyprland related programs.";
|
hyprland = mkEO "enable hyprland related programs.";
|
||||||
kde = mkEO "enable kde specialisation.";
|
kde = mkEO "enable kde specialisation.";
|
||||||
|
activeDesktop = lib.mkOption {
|
||||||
|
type = lib.types.enum ["hyprland" "kde"];
|
||||||
|
description = "What desktop should be the default, other enabled desktops will be specialized.";
|
||||||
|
default =
|
||||||
|
if cfg.hyprland
|
||||||
|
then "hyprland"
|
||||||
|
else if cfg.kde
|
||||||
|
then "kde"
|
||||||
|
else "hyprland";
|
||||||
|
example = "hyprland";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config.assertions = mkIf (cfg.hyprland
|
config.assertions = mkIf (cfg.hyprland
|
||||||
|
|
|
||||||
|
|
@ -5,21 +5,9 @@
|
||||||
}: {
|
}: {
|
||||||
config = lib.mkIf config.niksos.desktop.enable {
|
config = lib.mkIf config.niksos.desktop.enable {
|
||||||
# greetd display manager
|
# greetd display manager
|
||||||
services.greetd = let
|
services.greetd = {
|
||||||
session = {
|
|
||||||
command = lib.mkDefault "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop";
|
|
||||||
user = "jsw";
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
settings.terminal.vt = 1;
|
||||||
settings = {
|
|
||||||
terminal.vt = 1;
|
|
||||||
default_session = session;
|
|
||||||
initial_session = session;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.uwsm.enable = config.niksos.desktop.hyprland;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,37 @@
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland;
|
inherit (config.niksos) desktop;
|
||||||
|
cfg = desktop.enable && desktop.hyprland;
|
||||||
|
active = cfg && desktop.activeDesktop == "hyprland";
|
||||||
|
ifActive = x: lib.mkIf active x;
|
||||||
in {
|
in {
|
||||||
config = lib.mkIf cfg {
|
specialisation.hyprland.configuration =
|
||||||
programs.hyprland = {
|
lib.mkIf cfg
|
||||||
|
&& !active {
|
||||||
|
niksos.desktop.activeDesktop = lib.mkForce "hyprland";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = ifActive {
|
||||||
|
hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
withUWSM = true;
|
withUWSM = true;
|
||||||
};
|
};
|
||||||
environment.sessionVariables.NIXOS_OZONE_WL = "1"; # Makes electron apps use wayland.
|
uwsm.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.greetd.settings = let
|
||||||
|
session = {
|
||||||
|
command = "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop";
|
||||||
|
user = "jsw";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
ifActive {
|
||||||
|
default_session = session;
|
||||||
|
initial_session = session;
|
||||||
|
};
|
||||||
|
environment.sessionVariables.NIXOS_OZONE_WL = ifActive "1"; # Makes electron apps use wayland.
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,25 +4,28 @@
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.kde;
|
inherit (config.niksos) desktop;
|
||||||
|
cfg = desktop.enable && desktop.kde;
|
||||||
|
active = cfg && desktop.activeDesktop == "kde";
|
||||||
|
ifActive = x: lib.mkIf active x;
|
||||||
in {
|
in {
|
||||||
specialisation.de.configuration = lib.mkIf cfg {
|
specialisation.kde.configuration =
|
||||||
niksos.desktop.hyprland = lib.mkForce false;
|
lib.mkIf cfg
|
||||||
services = {
|
&& !active {
|
||||||
greetd = let
|
niksos.desktop.activeDesktop = lib.mkForce "kde";
|
||||||
|
};
|
||||||
|
|
||||||
|
services = ifActive {
|
||||||
|
greetd.settings = let
|
||||||
session.command = "${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland";
|
session.command = "${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland";
|
||||||
in {
|
in {
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
terminal.vt = 1;
|
|
||||||
default_session = session;
|
default_session = session;
|
||||||
initial_session = session;
|
initial_session = session;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
desktopManager.plasma6.enable = true;
|
desktopManager.plasma6.enable = true;
|
||||||
};
|
};
|
||||||
|
home-manager.users = ifActive {
|
||||||
home-manager.users.jsw.stylix.autoEnable = false;
|
jsw.stylix.autoEnable = false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland;
|
systemd.user.services.polkit-gnome-authentication-agent-1 = lib.mkIf config.programs.hyprland.enable {
|
||||||
in {
|
|
||||||
systemd.user.services.polkit-gnome-authentication-agent-1 = lib.mkIf cfg {
|
|
||||||
description = "polkit-gnome-authentication-agent-1";
|
description = "polkit-gnome-authentication-agent-1";
|
||||||
wantedBy = ["graphical-session.target"];
|
wantedBy = ["graphical-session.target"];
|
||||||
wants = ["graphical-session.target"];
|
wants = ["graphical-session.target"];
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,8 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland;
|
xdg.portal = lib.mkIf config.programs.hyprland.enable {
|
||||||
in {
|
|
||||||
xdg.portal = lib.mkIf cfg {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
xdgOpenUsePortal = true;
|
xdgOpenUsePortal = true;
|
||||||
config = {
|
config = {
|
||||||
|
|
|
||||||
|
|
@ -5,20 +5,21 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.niksos) hardware desktop;
|
inherit (config.niksos) hardware desktop;
|
||||||
inherit (lib) mkIf mkEnableOption;
|
inherit (lib) mkIf;
|
||||||
uwsm = lib.getExe pkgs.uwsm;
|
uwsm = lib.getExe pkgs.uwsm;
|
||||||
foot = lib.getExe pkgs.foot;
|
foot = lib.getExe pkgs.foot;
|
||||||
|
hypr = config.programs.hyprland.enable;
|
||||||
in {
|
in {
|
||||||
config = mkIf hardware.fingerprint {
|
config = mkIf hardware.fingerprint {
|
||||||
services = {
|
services = {
|
||||||
fprintd.enable = true;
|
fprintd.enable = true;
|
||||||
logind.extraConfig = mkIf desktop.hyprland ''
|
logind.extraConfig = mkIf hypr ''
|
||||||
# don’t shutdown when power button is short-pressed
|
# don’t shutdown when power button is short-pressed
|
||||||
HandlePowerKey=ignore
|
HandlePowerKey=ignore
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users.jsw.wayland.windowManager.hyprland.settings = mkIf desktop.hyprland {
|
home-manager.users.jsw.wayland.windowManager.hyprland.settings = mkIf hypr {
|
||||||
bind = [
|
bind = [
|
||||||
", XF86PowerOff, exec, ${uwsm} app -- pgrep fprintd-verify && exit 0 || ${foot} -a 'foot-fprintd' sh -c 'fprintd-verify && systemctl sleep'"
|
", XF86PowerOff, exec, ${uwsm} app -- pgrep fprintd-verify && exit 0 || ${foot} -a 'foot-fprintd' sh -c 'fprintd-verify && systemctl sleep'"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) optionals mkEnableOption mkDefault;
|
inherit (lib) optionals mkDefault;
|
||||||
inherit (config.niksos.hardware) graphics;
|
inherit (config.niksos.hardware) graphics;
|
||||||
inherit (graphics) enable nvidia intel;
|
inherit (graphics) enable nvidia intel;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
config.services = lib.mkIf config.niksos.hardware.joycond {
|
services = lib.mkIf config.niksos.hardware.joycond {
|
||||||
usbmuxd.enable = true;
|
usbmuxd.enable = true;
|
||||||
joycond.enable = true;
|
joycond.enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ in {
|
||||||
power-profiles-daemon.enable = true;
|
power-profiles-daemon.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = lib.mkIf niksos.desktop.hyprland [
|
environment.systemPackages = lib.mkIf config.programs.hyprland.enable [
|
||||||
(pkgs.writeScriptBin "powermode" ''
|
(pkgs.writeScriptBin "powermode" ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue