# Baseline configuration for lightweight desktop systems. # Full desktops should import desktop.nix instead, which builds on this. { pkgs, ... }: { imports = [ ./desktop-packages-light.nix # ./ghostty.nix # doesn't work yet ]; services.xserver.enable = true; services.xserver.displayManager.lightdm.enable = true; services.xserver.windowManager.i3.enable = true; services.xserver.xkb = { layout = "us"; options = "ctrl:swapcaps,compose:ralt"; }; environment.etc."X11/xinit/xinitrc.d/disable-bell.sh" = { text = "xset b off"; mode = "0755"; }; services.displayManager.autoLogin.enable = false; # Enable touchpad support (enabled default in most desktopManager). services.libinput = { enable = true; mouse.naturalScrolling = true; touchpad.naturalScrolling = true; }; console.useXkbConfig = true; # Enable CUPS to print documents. services.printing.enable = true; # Enable sound with pipewire. services.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; # Enable Bluetooth. hardware.bluetooth = { powerOnBoot = true; settings = { General = { # Shows battery charge of connected devices on supported # Bluetooth adapters. Defaults to 'false'. Experimental = true; # When enabled other devices can connect faster to us, however # the tradeoff is increased power consumption. Defaults to # 'false'. FastConnectable = true; }; Policy = { # Enable all controllers when they are found. This includes # adapters present on start as well as adapters that are plugged # in later on. Defaults to 'true'. AutoEnable = true; }; }; }; services.blueman.enable = true; services.udev.packages = [ pkgs.libfido2 ]; services.udev.extraRules = '' ACTION=="add", SUBSYSTEM=="backlight", GROUP="video", MODE="0660" ''; services.avahi = { enable = true; publish = { enable = true; }; }; systemd.services."systemd-suspend" = { description = "System Suspend with pm-suspend"; serviceConfig = { Type = "oneshot"; Environment = "PATH=${pkgs.pmutils}/bin"; ExecStart = [ "" "${pkgs.pmutils}/bin/pm-suspend" ]; }; }; xdg.mime.defaultApplications = { "text/html" = "firefox.desktop"; "x-scheme-handler/http" = "firefox.desktop"; "x-scheme-handler/https" = "firefox.desktop"; }; programs.dconf.enable = true; services.gvfs.enable = true; # services.dunst.enable = true; # services.dunst.settings = { # global = { # font = "Monospace 18"; # increase the size as you like # width = 400; # height = 300; # word_wrap = true; # }; #s }