dotfiles/root-conf/nixos/shared-conf.nix
2026-08-15 16:45:48 +02:00

209 lines
4.3 KiB
Nix

{ config, pkgs, pkgs-unstable, ... }:
{
system.activationScripts.ciscoPreHook = {
text = ''
echo "Prefetching Cisco Packet Tracer dependencies..."
${pkgs.nix}/bin/nix-prefetch-url --type sha256 file:///etc/nixos/local-pkgs/CiscoPacketTracer_900_Ubuntu_64bit.deb
'';
deps = [];
};
# Enable nix flakes
nix.settings = {
experimental-features = ["nix-command" "flakes" ];
trusted-users = [ "root" "someone" ];
};
environment.pathsToLink = [ "/share/applications" "/share/xdg-desktop-portal" ];
# Set your time zone.
time.timeZone = "Europe/Berlin";
# Select internationalisation properties.
console.keyMap = "de";
i18n.defaultLocale = "en_GB.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
networking = {
networkmanager = {
enable = true;
plugins = with pkgs; [networkmanager-openvpn];
};
};
hardware.bluetooth.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;
};
powerManagement.enable = true;
services.power-profiles-daemon.enable = true;
# Suspend first then hibernate when closing the lid
services.logind.settings.Login.lidSwitch = "suspend-then-hibernate";
# Hibernate on power button pressed
services.logind.settings.Login.powerKey = "hibernate";
services.logind.settings.Login.powerKeyLongPress = "poweroff";
# Hibernation
boot.resumeDevice = "/dev/disk/by-label/swap";
# resume offset from: filefrag -v /swapfile # under 0. physical offset
boot.kernelParams = ["mem_sleep_default=freeze" "resume_offset=0" ];
# Define time delay for hibernation
systemd.sleep.settings.Sleep = {
HibernateDelaySec = "30m";
SuspendState = "mem";
};
users.users.someone = {
uid = 1000;
isNormalUser = true;
description = "someone";
extraGroups = [ "wheel" "docker" "libvirtd" "gpio" "wireshark" "adbusers" "networking" ];
packages = with pkgs; [];
shell = pkgs.zsh;
};
programs.wireshark = {
enable = true;
usbmon.enable = true; # Allow USB monitoring
dumpcap.enable = true; # Allow network capture
};
# Add zsh
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestions.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
ll = "ls -l";
};
};
programs.git = {
enable = true;
lfs.enable = true;
};
# Allow dynamicly linked executables
programs.nix-ld.enable = true;
# Libvirt
programs.virt-manager.enable = true;
virtualisation.libvirtd = {
enable = true;
qemu = {
package = pkgs.qemu_kvm;
runAsRoot = true;
swtpm.enable = true;
};
};
virtualisation.spiceUSBRedirection.enable = true;
systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
# printing
# Enable CUPS to print documents.
services.printing = {
enable = true;
drivers = [ pkgs.cnijfilter2 ];
};
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
fonts.packages = with pkgs; [
liberation_ttf
carlito
];
nixpkgs.config.allowUnfree = true;
nixpkgs.config.permittedInsecurePackages = [
"electron-39.8.10"
];
environment.systemPackages = with pkgs; [
# CLI
starship
fzf
jq
bc
vim
wget
colordiff
git
# Nix / Lang
nil
nixd
devenv
rustup
php
# Web
librewolf
# Apps
rnote
logseq
pdfarranger
textpieces
normcap
nextcloud-client
thunderbird
libreoffice
# Graphics
gimp3
ciscoPacketTracer9
pkgs-unstable.zed-editor
# VM
qemu
virtiofsd
virt-manager
spice
spice-gtk
spice-protocol
# Printing
cnijfilter2 # canon printer
# Net
wireshark
# Misc
python3
lldb
hunspell
wl-clipboard
hunspellDicts.en_US
hunspellDicts.de_DE
docker-buildx
];
}