[Desktop/General] Refactor config for easier modularisation (minimal desktop)

This commit is contained in:
Antoine Viallon 2023-10-31 23:35:49 +01:00
parent 0fa8b85066
commit 0c68b4cf87
Signed by: aviallon
GPG key ID: 186FC35EDEB25716

View file

@ -53,64 +53,80 @@ in {
(mkRemovedOptionModule [ "aviallon" "desktop" "graphics" "shaderCache" "path" ] "Now always relative to $XDG_CACHE_HOME" ) (mkRemovedOptionModule [ "aviallon" "desktop" "graphics" "shaderCache" "path" ] "Now always relative to $XDG_CACHE_HOME" )
]; ];
config = mkIf cfg.enable { config = mkIf cfg.enable (mkMerge [
{
aviallon.network.backend = mkDefault "NetworkManager";
aviallon.network.backend = mkDefault "NetworkManager"; aviallon.boot.kernel = pkgs.linuxKernel.kernels.linux_xanmod;
aviallon.boot.kernel = pkgs.linuxKernel.kernels.linux_xanmod; # Enable the X11 windowing system.
services.xserver.enable = true;
# services.xserver.tty = mkOverride 70 1;
# Enable the X11 windowing system. systemd.services."getty@tty1".enable = mkOverride 50 false;
services.xserver.enable = true; systemd.services."autovt@tty1".enable = mkOverride 50 false;
# services.xserver.tty = mkOverride 70 1;
systemd.services."getty@tty1".enable = mkOverride 50 false; # Configure keymap in X11
systemd.services."autovt@tty1".enable = mkOverride 50 false; services.xserver.layout = cfg.layout;
services.xserver.xkbOptions = "eurosign:e";
# Configure keymap in X11
services.xserver.layout = cfg.layout;
services.xserver.xkbOptions = "eurosign:e";
boot.plymouth.enable = mkDefault (!generalCfg.minimal); aviallon.boot.cmdline = {
aviallon.boot.cmdline = { splash = mkIf (!generalCfg.debug) "";
splash = mkIf (!generalCfg.debug) ""; "udev.log_level" = mkIf (!generalCfg.debug) 3;
"udev.log_level" = mkIf (!generalCfg.debug) 3; preempt = "full";
preempt = "full"; "usbhid.mousepoll" = 1; # 1ms latency for mouse
"usbhid.mousepoll" = 1; # 1ms latency for mouse "usbhid.kbpoll" = 4; # 4ms latency for kb
"usbhid.kbpoll" = 4; # 4ms latency for kb };
}; boot.initrd.verbose = generalCfg.debug;
boot.initrd.verbose = generalCfg.debug; boot.consoleLogLevel = mkIf (!generalCfg.debug) 1;
boot.consoleLogLevel = mkIf (!generalCfg.debug) 1;
console.enable = mkDefault false; # Completly disable console by default console.enable = mkDefault false; # Completly disable console by default
fonts.enableDefaultFonts = mkIf (!generalCfg.minimal) true; security.polkit.enable = true; # Better interactive privilege prompts
hardware.acpilight.enable = mkIf (!generalCfg.minimal) true; # Enable running X11 apps on Wayland
hardware.opentabletdriver.enable = mkIf (!generalCfg.minimal) true; programs.xwayland.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
services.xserver.libinput.enable = true;
hardware.bluetooth = mkIf (!generalCfg.minimal) { hardware.opengl.driSupport = true;
enable = true;
package = pkgs.bluezFull;
};
security.polkit.enable = true; # Better interactive privilege prompts
# Enable running X11 apps on Wayland
programs.xwayland.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
services.xserver.libinput.enable = true;
hardware.opengl.driSupport = true;
# For 32 bit applications
hardware.opengl.driSupport32Bit = mkIf (!generalCfg.minimal) (mkDefault true);
environment.systemPackages = with pkgs; [] environment.systemPackages = with pkgs; [
++ [
p7zip p7zip
] ];
++ optionals (!generalCfg.minimal) [
security.sudo.extraConfig =
''
# Keep X and Wayland related variables for better GUI integration
Defaults:root,%wheel env_keep+=DISPLAY
Defaults:root,%wheel env_keep+=XAUTHORITY
Defaults:root,%wheel env_keep+=WAYLAND_DISPLAY
Defaults:root,%wheel env_keep+=WAYLAND_SOCKET
Defaults:root,%wheel env_keep+=XDG_RUNTIME_DIR
''
;
}
(mkIf (!generalCfg.minimal) {
boot.plymouth.enable = mkDefault true;
fonts.enableDefaultFonts = true;
hardware.acpilight.enable = true;
hardware.opentabletdriver.enable = true;
hardware.bluetooth = {
enable = true;
package = pkgs.bluezFull;
};
hardware.opengl.driSupport32Bit = mkDefault cfg.gaming.enable;
environment.systemPackages = with pkgs; [
glxinfo glxinfo
vdpauinfo vdpauinfo
libva-utils libva-utils
@ -124,41 +140,26 @@ in {
# Spell check support # Spell check support
hunspell hunspell
hunspellDicts.fr-any hunspellDicts.fr-any
aspell aspell
aspellDicts.fr aspellDicts.fr
] ];
;
aviallon.programs.allowUnfreeList = [
"spotify" "spotify-unwrapped"
aviallon.programs.allowUnfreeList = [ "veracrypt"
"spotify" "spotify-unwrapped" ];
"veracrypt"
];
aviallon.programs.libreoffice.enable = mkIf (!generalCfg.minimal) true;
services.packagekit.enable = mkDefault (!generalCfg.minimal);
security.sudo.extraConfig =
''
# Keep X and Wayland related variables for better GUI integration
Defaults:root,%wheel env_keep+=DISPLAY
Defaults:root,%wheel env_keep+=XAUTHORITY
Defaults:root,%wheel env_keep+=WAYLAND_DISPLAY
Defaults:root,%wheel env_keep+=WAYLAND_SOCKET
Defaults:root,%wheel env_keep+=XDG_RUNTIME_DIR
''
;
# SmartCards
services.pcscd.enable = mkDefault (!generalCfg.minimal);
networking.networkmanager = { aviallon.programs.libreoffice.enable = true;
plugins = []
++ optional (!generalCfg.minimal) pkgs.networkmanager-openvpn services.packagekit.enable = mkDefault true;
;
}; # SmartCards
}; services.pcscd.enable = mkDefault true;
networking.networkmanager.plugins = [ pkgs.networkmanager-openvpn ];
})
]);
} }