BROKEN: Expanding desktop option
This commit is contained in:
parent
562a8b7a2e
commit
d0a41df000
44 changed files with 272 additions and 296 deletions
18
system/desktop/default.nix
Normal file
18
system/desktop/default.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{lib, ...}: let
|
||||
mkEO = lib.mkEnableOption;
|
||||
in {
|
||||
imports = [
|
||||
./greetd.nix
|
||||
./hyprland.nix
|
||||
./pipewire.nix
|
||||
./plasma6.nix
|
||||
./polkit.nix
|
||||
./xdg.nix
|
||||
];
|
||||
|
||||
options.niksos.desktop = {
|
||||
enable = mkEO "enable desktop related programs.";
|
||||
hyprland = mkEO "enable hyprland related programs.";
|
||||
kde = mkEO "enable kde specialisation.";
|
||||
};
|
||||
}
|
||||
27
system/desktop/greetd.nix
Normal file
27
system/desktop/greetd.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland.enable;
|
||||
in {
|
||||
config = lib.mkIf cfg {
|
||||
# greetd display manager
|
||||
services.greetd = let
|
||||
session = {
|
||||
command = "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop";
|
||||
user = "jsw";
|
||||
};
|
||||
in {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
terminal.vt = 1;
|
||||
default_session = session;
|
||||
initial_session = session;
|
||||
};
|
||||
};
|
||||
|
||||
programs.uwsm.enable = true;
|
||||
};
|
||||
}
|
||||
16
system/desktop/hyprland.nix
Normal file
16
system/desktop/hyprland.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland.enable;
|
||||
in {
|
||||
config = lib.mkIf cfg {
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
withUWSM = true;
|
||||
};
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1"; # Makes electron apps use wayland.
|
||||
};
|
||||
}
|
||||
55
system/desktop/pipewire.nix
Normal file
55
system/desktop/pipewire.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.niksos.desktop.enable;
|
||||
in {
|
||||
config = lib.mkIf cfg {
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
jack.enable = true;
|
||||
pulse.enable = true;
|
||||
|
||||
extraConfig.pipewire = {
|
||||
"10-combined-sink" = {
|
||||
"context.modules" = [
|
||||
{
|
||||
name = "libpipewire-module-combine-stream";
|
||||
args = {
|
||||
"combine.mode" = "sink";
|
||||
"node.name" = "combined_sink";
|
||||
"node.description" = "All audio outputs combined.";
|
||||
"combine.latency-compensate" = false;
|
||||
"combine.props" = {
|
||||
"audio.position" = ["FL" "FR"];
|
||||
};
|
||||
"stream.props" = {};
|
||||
"stream.rules" = [
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
"media.class" = "Audio/Sink";
|
||||
}
|
||||
];
|
||||
actions = {
|
||||
create-stream = {};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [pkgs.pulsemixer];
|
||||
services.pulseaudio.enable = lib.mkForce false; # gnome enables it
|
||||
};
|
||||
}
|
||||
33
system/desktop/plasma6.nix
Normal file
33
system/desktop/plasma6.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.kde.enable;
|
||||
in {
|
||||
config = lib.mkIf cfg {
|
||||
niksos.desktop.hyprland = lib.mkForce false;
|
||||
specialisation.de.configuration = {
|
||||
services = {
|
||||
greetd = let
|
||||
session = {
|
||||
command = "${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland";
|
||||
user = "jsw";
|
||||
};
|
||||
in {
|
||||
enable = true;
|
||||
settings = {
|
||||
terminal.vt = 1;
|
||||
default_session = session;
|
||||
initial_session = session;
|
||||
};
|
||||
};
|
||||
|
||||
desktopManager.plasma6.enable = true;
|
||||
};
|
||||
|
||||
home-manager.users.jsw.stylix.autoEnable = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
22
system/desktop/polkit.nix
Normal file
22
system/desktop/polkit.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland.enable;
|
||||
in {
|
||||
systemd.user.services.polkit-gnome-authentication-agent-1 = lib.mkIf cfg {
|
||||
description = "polkit-gnome-authentication-agent-1";
|
||||
wantedBy = ["graphical-session.target"];
|
||||
wants = ["graphical-session.target"];
|
||||
after = ["graphical-session.target"];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 1;
|
||||
TimeoutStopSec = 10;
|
||||
};
|
||||
};
|
||||
}
|
||||
21
system/desktop/xdg.nix
Normal file
21
system/desktop/xdg.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland.enable;
|
||||
in {
|
||||
xdg.portal = lib.mkIf cfg {
|
||||
enable = true;
|
||||
xdgOpenUsePortal = true;
|
||||
config = {
|
||||
common.default = ["gtk"];
|
||||
hyprland.default = ["gtk" "hyprland"];
|
||||
};
|
||||
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue