nixos/config/desktop.nix
2025-07-01 22:11:39 +01:00

217 lines
5.3 KiB
Nix

{ pkgs, ... }:
{
hardware.graphics = {
enable = true;
};
# Enable the X11 windowing system.
services.xserver.enable = true;
# Enable the GNOME Desktop Environment.
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
variant = "";
};
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Enable automatic login for the user.
services.displayManager.autoLogin.enable = true;
services.displayManager.autoLogin.user = "admin";
# Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
boot = {
# Graphical boot
plymouth.enable = true;
# Allow higher virtual memory for games
kernel.sysctl."vm.max_map_count" = 2147483642;
};
environment.gnome.excludePackages = with pkgs; [
epiphany # web browser
geary # email
gnome-calendar
gnome-music
gnome-software
gnome-tour
totem # video player
xterm
yelp # help
];
environment.systemPackages = with pkgs; [
audacity
blender
#cura
gimp
gnomeExtensions.appindicator
gnomeExtensions.blur-my-shell
gnomeExtensions.caffeine
gnomeExtensions.dash-to-dock
inkscape
joplin-desktop
kiwix
libreoffice
obs-studio
ollama
protonmail-desktop
prismlauncher
ungoogled-chromium
signal-desktop
wireshark
monero-gui
vscodium
zsh
brave
dconf-editor
localsend
#gaymig?
heroic
lutris
#TUI
fastfetch
nixfmt-rfc-style
yt-dlp
ansible
cataclysm-dda
exiftool
ffmpeg
git
htop
lm_sensors
mangohud
mediainfo
pciutils # lspci
nmap
#umu-launcher
qrencode
smartmontools
nixpkgs-fmt # nix formatter
];
fonts.packages = with pkgs; [
noto-fonts
noto-fonts-cjk-sans
#noto-fonts-emoji
noto-fonts-extra
whatsapp-emoji-font
corefonts
fantasque-sans-mono
];
programs = {
adb.enable = true;
coolercontrol = {
enable = true;
nvidiaSupport = true;
};
gamescope = {
enable = true;
capSysNice = true;
};
steam = {
enable = true;
gamescopeSession.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
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
};
gamemode.enable = true;
dconf = {
enable = true;
profiles.user.databases = [{
lockAll = true; # prevents overriding
settings = {
"org/gnome/shell" = {
favorite-apps = [
"org.gnome.Nautilus.desktop"
"brave-browser.desktop"
"proton-mail.desktop"
"joplin.desktop"
"signal.desktop"
"steam.desktop"
"org.gnome.Settings.desktop"
"org.gnome.Console.desktop"
"'ca.desrt.dconf-editor.desktop"
];
enabled-extensions = [
pkgs.gnomeExtensions.appindicator.extensionUuid
pkgs.gnomeExtensions.blur-my-shell.extensionUuid
pkgs.gnomeExtensions.caffeine.extensionUuid
pkgs.gnomeExtensions.dash-to-dock.extensionUuid
];
};
"org/gnome/desktop/calendar" = {
show-weekdate = true;
};
"org/gnome/desktop/interface" = {
clock-show-weekday = true;
color-scheme = "prefer-dark";
document-font-name = "Noto Sans 11";
enable-hot-corners = false;
font-name = "Noto Sans 11";
gtk-theme = "Adwaita-dark";
monospace-font-name = "Fantasque Sans Mono 12";
};
"org/gnome/desktop/peripherals/mouse" = {
accel-profile = "flat";
};
"org/gnome/desktop/wm/preferences" = {
button-layout = ":minimize,maximize,close";
};
"org/gnome/nautilus/list-view" = {
default-zoom-level = "small";
};
"org/gnome/nautilus/preferences" = {
default-folder-viewer = "list-view";
};
"org/gnome/shell/extensions/dash-to-dock" = {
click-action = "focus-minimize-or-previews";
dock-fixed = true;
multi-monitor = true;
show-mounts = false;
show-show-apps-button = false;
};
"org/gnome/shell/keybindings" = {
show-screenshot-ui = ["<Shift><Super>s"];
};
};
}];
};
};
}