312 lines
7.9 KiB
Nix
312 lines
7.9 KiB
Nix
{ pkgs, ... }:
|
|
|
|
{
|
|
|
|
#system.includeBuildDependencies = true; # THIS CAN'T BE INCLUDED IN COMMON YET BECAUSE SERVER DOES NOT HAVE ENOUGH STORAGE
|
|
|
|
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;
|
|
services.gnome.gnome-keyring.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;
|
|
services.avahi = {
|
|
enable = true;
|
|
nssmdns4 = true;
|
|
openFirewall = true;
|
|
};
|
|
# services.printing.drivers = [ pkgs.brgenml1lpr pkgs.brgenml1cupswrapper ];
|
|
# hardware.printers = {
|
|
# ensurePrinters = [
|
|
# {
|
|
# name = "DCP-L8410CDWW";
|
|
# location = "Home";
|
|
# deviceUri = "http://192.168.0.177:631/ipp/print";
|
|
# model = "drv:///cupsfilters.drv/pwgrast.ppd";
|
|
# ppdOptions = {
|
|
# PageSize = "A4";
|
|
# };
|
|
# }
|
|
# ];
|
|
# ensureDefaultPrinter = "DCP-L8410CDWW";
|
|
# };
|
|
|
|
# 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;
|
|
|
|
services.ollama = {
|
|
enable = true;
|
|
acceleration = "cuda";
|
|
openFirewall = true;
|
|
host = "0.0.0.0";
|
|
# Optional: preload models, see https://ollama.com/library
|
|
loadModels = [ "deepseek-r1" ];
|
|
};
|
|
|
|
hardware.keyboard.qmk.enable = true;
|
|
|
|
boot = {
|
|
# Graphical boot
|
|
plymouth.enable = true;
|
|
# Allow higher virtual memory for games
|
|
kernel.sysctl."vm.max_map_count" = 2147483642;
|
|
};
|
|
|
|
#services.udev.packages = [ pkgs.via ];
|
|
|
|
environment.gnome.excludePackages = with pkgs; [
|
|
epiphany # web browser
|
|
geary # email
|
|
decibels #audio player
|
|
gnome-calendar
|
|
gnome-music
|
|
gnome-software
|
|
gnome-tour
|
|
totem # video player
|
|
xterm
|
|
yelp # help
|
|
];
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
audacity
|
|
blender
|
|
cura-appimage
|
|
gimp
|
|
gnomeExtensions.appindicator
|
|
gnomeExtensions.blur-my-shell
|
|
gnomeExtensions.caffeine
|
|
gnomeExtensions.dash-to-dock
|
|
inkscape
|
|
kiwix
|
|
libreoffice
|
|
obs-studio
|
|
protonmail-desktop
|
|
prismlauncher
|
|
signal-desktop
|
|
tor-browser
|
|
wireshark
|
|
monero-gui
|
|
vscodium
|
|
dconf-editor
|
|
via
|
|
kdePackages.kdenlive
|
|
|
|
# games
|
|
heroic
|
|
lutris
|
|
cataclysm-dda
|
|
runelite
|
|
zeroad
|
|
unciv
|
|
endless-sky
|
|
wesnoth
|
|
mindustry
|
|
openrct2
|
|
openttd
|
|
xonotic
|
|
|
|
# game utils
|
|
mangohud
|
|
umu-launcher
|
|
|
|
# emu
|
|
ryubing
|
|
xemu
|
|
retroarch-full
|
|
rpcs3
|
|
cemu
|
|
|
|
# media
|
|
yt-dlp
|
|
exiftool
|
|
mediainfo
|
|
ffmpeg-full
|
|
|
|
# barcodes
|
|
qrencode
|
|
zbar
|
|
barcode
|
|
ghostscript
|
|
|
|
# backup
|
|
keepassxc
|
|
];
|
|
|
|
fonts.packages = with pkgs; [
|
|
noto-fonts
|
|
noto-fonts-cjk-sans
|
|
noto-fonts-emoji
|
|
noto-fonts-extra
|
|
corefonts
|
|
fantasque-sans-mono
|
|
];
|
|
|
|
services.sunshine = {
|
|
enable = true;
|
|
autoStart = true;
|
|
capSysAdmin = true;
|
|
openFirewall = true;
|
|
};
|
|
|
|
programs = {
|
|
adb.enable = true;
|
|
|
|
localsend = {
|
|
enable = true;
|
|
openFirewall = 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 = "minimize-or-previews";
|
|
dock-fixed = true;
|
|
multi-monitor = true;
|
|
show-mounts = false;
|
|
show-show-apps-button = true;
|
|
apply-custom-theme = true;
|
|
};
|
|
"org/gnome/shell/keybindings" = {
|
|
show-screenshot-ui = ["<Shift><Super>s"];
|
|
};
|
|
};
|
|
}];
|
|
};
|
|
};
|
|
|
|
fileSystems."/mnt/media" = {
|
|
device = "//192.168.0.30/media";
|
|
fsType = "cifs";
|
|
options = let
|
|
# this line prevents hanging on network split
|
|
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
|
|
|
in ["${automount_opts},username=admin,password=Ch19blizz9,uid=1000,gid=1000"];
|
|
};
|
|
fileSystems."/mnt/services" = {
|
|
device = "//192.168.0.30/services";
|
|
fsType = "cifs";
|
|
options = let
|
|
# this line prevents hanging on network split
|
|
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
|
|
|
in ["${automount_opts},username=admin,password=Ch19blizz9,uid=1000,gid=1000"];
|
|
};
|
|
fileSystems."/mnt/data" = {
|
|
device = "//192.168.0.30/data";
|
|
fsType = "cifs";
|
|
options = let
|
|
# this line prevents hanging on network split
|
|
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
|
|
|
in ["${automount_opts},username=admin,password=Ch19blizz9,uid=1000,gid=1000"];
|
|
};
|
|
|
|
programs.virt-manager.enable = true;
|
|
users.groups.libvirtd.members = ["admin"];
|
|
virtualisation.libvirtd = {
|
|
enable = true;
|
|
qemu.swtpm.enable = true;
|
|
};
|
|
virtualisation.spiceUSBRedirection.enable = true;
|
|
|
|
}
|