init
This commit is contained in:
commit
d91e31b078
194
configuration.nix
Normal file
194
configuration.nix
Normal file
@ -0,0 +1,194 @@
|
||||
{ config, pkgs, fetchFromGitea, ... }:
|
||||
|
||||
{
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
## EARLY LEVEL
|
||||
# Firmware
|
||||
services.fwupd.enable = true;
|
||||
# Bootloader & Booting
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.initrd.luks.devices."luks-970d527c-57c2-4b6a-9d56-32e91f824d80".device = "/dev/disk/by-uuid/970d527c-57c2-4b6a-9d56-32e91f824d80";
|
||||
boot.tmp.cleanOnBoot = true;
|
||||
# Other low-level stuff
|
||||
networking.hostName = "macabre";
|
||||
networking.networkmanager.enable = true;
|
||||
# Geo-Customisation
|
||||
time.timeZone = "Europe/Berlin";
|
||||
i18n.defaultLocale = "de_DE.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";
|
||||
};
|
||||
console.keyMap = "de";
|
||||
|
||||
## SYSTEM LEVEL
|
||||
# Graphic fu
|
||||
services.xserver.enable = true;
|
||||
services.xserver.displayManager.gdm.enable = true;
|
||||
services.xserver.desktopManager.gnome.enable = true;
|
||||
services.xserver.desktopManager.gnome.extraGSettingsOverrides = ''
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout="appmenu:minimize,maximize,close"
|
||||
'';
|
||||
services.xserver.xkb = {
|
||||
layout = "de";
|
||||
variant = "";
|
||||
};
|
||||
# CUPS
|
||||
services.printing.enable = true;
|
||||
services.printing.drivers = [ pkgs.gutenprint pkgs.gutenprintBin pkgs.epson-escpr pkgs.epson-escpr2 ];
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
# Sound
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
security.rtkit.enable = true;
|
||||
# Fingerprint reader support
|
||||
services.fprintd.enable = true;
|
||||
# Firewall
|
||||
networking.firewall.enable = true;
|
||||
networking.firewall.allowedTCPPorts = [ ];
|
||||
networking.firewall.allowedUDPPorts = [ 13337 ];
|
||||
# VPN
|
||||
networking.wireguard.enable = true;
|
||||
networking.wireguard.interfaces = {
|
||||
lynx = {
|
||||
ips = [ "10.42.250.16/32" ];
|
||||
listenPort = 51820;
|
||||
privateKeyFile = "/etc/wireguard/lynx.key";
|
||||
peers = [{
|
||||
publicKey = "lACsN0V8JheoQq7a/tCxj0NykqHy7okoYGMvqeyOKHI=";
|
||||
allowedIPs = [ "10.42.0.0/16" ];
|
||||
endpoint = "lynx.maride.cc:13337";
|
||||
persistentKeepalive = 10;
|
||||
}];
|
||||
};
|
||||
};
|
||||
|
||||
## USER LEVEL
|
||||
users.users.maride = {
|
||||
isNormalUser = true;
|
||||
description = "maride";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
packages = with pkgs; [
|
||||
thunderbird
|
||||
spotify
|
||||
keepassxc
|
||||
obsidian
|
||||
vscode
|
||||
signal-desktop
|
||||
element-desktop
|
||||
vlc
|
||||
virt-manager
|
||||
gimp
|
||||
inkscape
|
||||
libreoffice
|
||||
steam
|
||||
yubikey-manager-qt
|
||||
];
|
||||
};
|
||||
|
||||
## PACKAGE LEVEL
|
||||
environment.systemPackages = with pkgs; [
|
||||
htop
|
||||
neovim
|
||||
alacritty
|
||||
tmux
|
||||
wireguard-tools
|
||||
gnomeExtensions.wireguard-vpn-extension
|
||||
mtr
|
||||
docker
|
||||
git
|
||||
python3
|
||||
dig
|
||||
fprintd
|
||||
usbutils
|
||||
pciutils
|
||||
nmap
|
||||
file
|
||||
tty-solitaire
|
||||
nushell
|
||||
mosh
|
||||
ghostty
|
||||
epson-escpr
|
||||
epson-escpr2
|
||||
a52dec
|
||||
];
|
||||
# GNOME-specific
|
||||
environment.gnome.excludePackages = with pkgs; [
|
||||
gnome-music
|
||||
gnome-maps
|
||||
gnome-weather
|
||||
epiphany
|
||||
gnome-characters
|
||||
totem
|
||||
geary
|
||||
gnome-console
|
||||
gnome-tour
|
||||
];
|
||||
|
||||
## PROGRAM LEVEL
|
||||
# Firefox
|
||||
programs.firefox {
|
||||
enable = true;
|
||||
languagePacks = [ "de" ];
|
||||
}
|
||||
# Steam
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true; # Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Source Dedicated Server
|
||||
localNetworkGameTransfers.openFirewall = true; # Steam Local Network Game Transfers
|
||||
};
|
||||
# KVM & Docker
|
||||
virtualisation.docker.enable = true;
|
||||
virtualisation.libvirtd.enable = true;
|
||||
programs.virt-manager.enable = true;
|
||||
# Neovim
|
||||
programs.neovim = {
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
};
|
||||
|
||||
## WILD WEST LEVEL
|
||||
# one cannot live without a good round of solitaire once in a while
|
||||
nixpkgs.overlays = [
|
||||
(
|
||||
final: prev: {
|
||||
tty-solitaire = prev.tty-solitaire.overrideAttrs(old: {
|
||||
src = pkgs.fetchFromGitea {
|
||||
domain = "git.maride.cc";
|
||||
owner = "maride";
|
||||
repo = "tty-solitaire";
|
||||
rev = "2024d53e48";
|
||||
sha256 = "sha256-9d7Ex7g0QtbWJjyLmGc9UeynrVXALlmgK9mDqBtaql0=";
|
||||
};
|
||||
patches = [];
|
||||
});
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user