split configs
This commit is contained in:
parent
8df61f216e
commit
00fbfd0fef
7 changed files with 153 additions and 117 deletions
64
modules/desktop/default.nix
Normal file
64
modules/desktop/default.nix
Normal file
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.my.desktop;
|
||||
in {
|
||||
imports = [
|
||||
./gnome.nix
|
||||
./kde.nix
|
||||
];
|
||||
|
||||
options.my.desktop = {
|
||||
enable = lib.mkEnableOption "desktop";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services = {
|
||||
# Enable the X11 windowing system / wayland depending on DE
|
||||
xserver.enable = true;
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
printing.enable = true;
|
||||
};
|
||||
|
||||
# Enable sound with pipewire.
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
programs = {
|
||||
steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
};
|
||||
};
|
||||
|
||||
# unblock kde connect / gsconnect
|
||||
networking.firewall = {
|
||||
allowedTCPPortRanges = [
|
||||
{
|
||||
# KDE Connect
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
allowedUDPPortRanges = [
|
||||
{
|
||||
# KDE Connect
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
63
modules/desktop/gnome.nix
Normal file
63
modules/desktop/gnome.nix
Normal file
|
@ -0,0 +1,63 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.my.gnome;
|
||||
|
||||
applyGnomeUserSettings = {
|
||||
home.packages = with pkgs; [
|
||||
gnome.gpaste
|
||||
amberol
|
||||
];
|
||||
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/peripherals/keyboard" = {
|
||||
numlock-state = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
in {
|
||||
options.my.gnome = {
|
||||
enable = lib.mkEnableOption "gnome desktop";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
my.desktop.enable = true;
|
||||
|
||||
services = {
|
||||
xserver = {
|
||||
# Enable the GNOME Desktop Environment.
|
||||
displayManager.gdm.enable = true;
|
||||
desktopManager.gnome.enable = true;
|
||||
};
|
||||
|
||||
gnome = {
|
||||
tracker-miners.enable = false;
|
||||
tracker.enable = false;
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [pkgs.gnomeExtensions.gsconnect];
|
||||
|
||||
# remove some gnome default apps
|
||||
environment.gnome.excludePackages = with pkgs.gnome; [
|
||||
cheese # photo booth
|
||||
epiphany # web browser
|
||||
evince # document viewer
|
||||
geary # email client
|
||||
seahorse # password manager
|
||||
gnome-clocks
|
||||
gnome-maps
|
||||
gnome-weather
|
||||
gnome-music
|
||||
pkgs.gnome-connections
|
||||
];
|
||||
|
||||
home-manager.users = {
|
||||
vinzenz = lib.mkIf config.my.home.vinzenz.enable applyGnomeUserSettings;
|
||||
ronja = lib.mkIf config.my.home.ronja.enable applyGnomeUserSettings;
|
||||
};
|
||||
};
|
||||
}
|
62
modules/desktop/kde.nix
Normal file
62
modules/desktop/kde.nix
Normal file
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cfg = config.my.kde;
|
||||
|
||||
applyKdeUserSettings = {
|
||||
#home = {
|
||||
# packages = with pkgs; [
|
||||
# ];
|
||||
#};
|
||||
|
||||
services.kdeconnect = {
|
||||
enable = true;
|
||||
indicator = true;
|
||||
};
|
||||
};
|
||||
in {
|
||||
options.my.kde = {
|
||||
enable = lib.mkEnableOption "KDE desktop";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
my.desktop.enable = true;
|
||||
|
||||
services = {
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
xserver = {
|
||||
desktopManager.plasma5.enable = true;
|
||||
|
||||
displayManager = {
|
||||
sddm.enable = true;
|
||||
defaultSession = "plasmawayland";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
libsForQt5.kate
|
||||
libsForQt5.kalk
|
||||
];
|
||||
|
||||
environment.plasma5.excludePackages = with pkgs.libsForQt5; [
|
||||
elisa
|
||||
gwenview
|
||||
okular
|
||||
khelpcenter
|
||||
];
|
||||
|
||||
programs = {
|
||||
dconf.enable = true;
|
||||
partition-manager.enable = true;
|
||||
};
|
||||
|
||||
home-manager.users = {
|
||||
vinzenz = lib.mkIf config.my.home.vinzenz.enable applyKdeUserSettings;
|
||||
ronja = lib.mkIf config.my.home.ronja.enable applyKdeUserSettings;
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue