diff options
Diffstat (limited to 'systems/hermes')
| -rw-r--r-- | systems/hermes/home-manager/default.nix | 5 | ||||
| -rw-r--r-- | systems/hermes/home-manager/leo/home.nix | 13 | ||||
| -rw-r--r-- | systems/hermes/home-manager/leo/programs.nix | 19 | ||||
| -rw-r--r-- | systems/hermes/nixos/boot.nix | 21 | ||||
| -rw-r--r-- | systems/hermes/nixos/default.nix | 37 | ||||
| -rw-r--r-- | systems/hermes/nixos/gui.nix | 51 | ||||
| -rw-r--r-- | systems/hermes/nixos/hardware.nix | 24 | ||||
| -rw-r--r-- | systems/hermes/nixos/locales.nix | 20 | ||||
| -rw-r--r-- | systems/hermes/nixos/networking.nix | 32 | ||||
| -rw-r--r-- | systems/hermes/nixos/programs.nix | 61 | ||||
| -rw-r--r-- | systems/hermes/nixos/services.nix | 27 |
11 files changed, 310 insertions, 0 deletions
diff --git a/systems/hermes/home-manager/default.nix b/systems/hermes/home-manager/default.nix new file mode 100644 index 0000000..bb6ef28 --- /dev/null +++ b/systems/hermes/home-manager/default.nix @@ -0,0 +1,5 @@ +{...}: { + imports = [ + ./leo/home.nix + ]; +} diff --git a/systems/hermes/home-manager/leo/home.nix b/systems/hermes/home-manager/leo/home.nix new file mode 100644 index 0000000..e0c3d6f --- /dev/null +++ b/systems/hermes/home-manager/leo/home.nix @@ -0,0 +1,13 @@ +{...}: { + imports = [ + ./programs.nix + ]; + + home = { + username = "leo"; + homeDirectory = "/home/leo"; + }; + + # Version + home.stateVersion = "25.05"; +} diff --git a/systems/hermes/home-manager/leo/programs.nix b/systems/hermes/home-manager/leo/programs.nix new file mode 100644 index 0000000..bad305e --- /dev/null +++ b/systems/hermes/home-manager/leo/programs.nix @@ -0,0 +1,19 @@ +{...}: { + imports = [ + ../../../../components/programs/keepassxc.nix + ../../../../components/programs/alacritty.nix + ../../../../components/programs/zed.nix + + ../../../../components/programs/zsh.nix + ../../../../components/programs/tmux.nix + ../../../../components/programs/fastfetch.nix + ]; + + keepassxc.enable = true; + alacritty.enable = true; + zed.enable = true; + + zsh.enable = true; + tmux.enable = true; + fastfetch.enable = true; +} diff --git a/systems/hermes/nixos/boot.nix b/systems/hermes/nixos/boot.nix new file mode 100644 index 0000000..f7ff6b4 --- /dev/null +++ b/systems/hermes/nixos/boot.nix @@ -0,0 +1,21 @@ +{pkgs, ...}: { + boot = { + kernelPackages = pkgs.linuxPackages_latest; + kernelModules = [ "kvm-intel" ]; + kernelParams = [ "boot.shell_on_fail" ]; + + initrd = { + availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "sdhci_pci" ]; + kernelModules = [ ]; + }; + + loader = { + timeout = 3; + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; + + supportedFilesystems = [ "exfat" "ntfs" ]; + extraModulePackages = [ ]; + }; +} diff --git a/systems/hermes/nixos/default.nix b/systems/hermes/nixos/default.nix new file mode 100644 index 0000000..a9c92dd --- /dev/null +++ b/systems/hermes/nixos/default.nix @@ -0,0 +1,37 @@ +{pkgs, ...}: { + imports = [ + ./hardware.nix + ./boot.nix + ./networking.nix + ./locales.nix + + ./gui.nix + ./services.nix + ./programs.nix + ]; + + # Experimental features + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + # Users + users.users.leo = { + isNormalUser = true; + shell = pkgs.zsh; + + extraGroups = [ "wheel" "networkmanager" "video" ]; + }; + + programs.zsh.enable = true; + + environment.shellAliases = { + l = "eza -lh"; + ll = "eza -lah"; + + update-boot = "sudo nixos-rebuild boot --flake ~/nixos#hermes"; + update-system = "sudo nixos-rebuild switch --flake ~/nixos#hermes"; + update-home = "home-manager switch --flake ~/nixos#hermes"; + }; + + # Version + system.stateVersion = "25.05"; +} diff --git a/systems/hermes/nixos/gui.nix b/systems/hermes/nixos/gui.nix new file mode 100644 index 0000000..df28557 --- /dev/null +++ b/systems/hermes/nixos/gui.nix @@ -0,0 +1,51 @@ +{pkgs, ...}: { + imports = [ + ../../../components/gui/xfce.nix + ]; + + # Graphics + hardware.graphics = { + enable = true; + + extraPackages = with pkgs; [ intel-media-driver ]; + }; + + # Ly + services.displayManager.ly = { + enable = true; + x11Support = true; + + settings = { + animation = "gameoflife"; + bigclock = "en"; + session_log = ".ly-session.log"; + }; + }; + + # XDG + xdg = { + icons.enable = true; + autostart.enable = true; + + portal = { + enable = true; + xdgOpenUsePortal = true; + }; + }; + + # X11 + services.xserver = { + xkb = { + layout = "it"; + variant = ""; + }; + }; + + # Security + security = { + rtkit.enable = true; + polkit.enable = true; + }; + + xfce.enable = true; +} diff --git a/systems/hermes/nixos/hardware.nix b/systems/hermes/nixos/hardware.nix new file mode 100644 index 0000000..52ab29c --- /dev/null +++ b/systems/hermes/nixos/hardware.nix @@ -0,0 +1,24 @@ +{inputs, config, lib, modulesPath, ...}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + inputs.nixos-hardware.nixosModules.lenovo-thinkpad-l14-intel + ]; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/d2dbb171-8b65-4c40-9f09-d4e7b83f0094"; + fsType = "ext4"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/ACC0-F37A"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = [ + { device = "/dev/disk/by-uuid/d5e4b700-4eb2-4b19-8d7f-8a8e154a4df1"; } + ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/systems/hermes/nixos/locales.nix b/systems/hermes/nixos/locales.nix new file mode 100644 index 0000000..2d2363d --- /dev/null +++ b/systems/hermes/nixos/locales.nix @@ -0,0 +1,20 @@ +{...}: { + time.timeZone = "Europe/Rome"; + console.keyMap = "it"; + + i18n = { + defaultLocale = "en_US.UTF-8"; + + extraLocaleSettings = { + LC_ADDRESS = "it_IT.UTF-8"; + LC_IDENTIFICATION = "it_IT.UTF-8"; + LC_MEASUREMENT = "it_IT.UTF-8"; + LC_MONETARY = "it_IT.UTF-8"; + LC_NAME = "it_IT.UTF-8"; + LC_NUMERIC = "it_IT.UTF-8"; + LC_PAPER = "it_IT.UTF-8"; + LC_TELEPHONE = "it_IT.UTF-8"; + LC_TIME = "it_IT.UTF-8"; + }; + }; +} diff --git a/systems/hermes/nixos/networking.nix b/systems/hermes/nixos/networking.nix new file mode 100644 index 0000000..2bfc8c1 --- /dev/null +++ b/systems/hermes/nixos/networking.nix @@ -0,0 +1,32 @@ +{lib, pkgs, ...}: { + networking = { + hostName = "hermes"; + useDHCP = lib.mkDefault true; + + nameservers = [ "208.67.222.222" "208.67.220.220" ]; + + networkmanager.enable = true; + firewall.enable = false; + + wg-quick.interfaces."home" = { + privateKeyFile = "/home/leo/.wireguard/private.key"; + address = [ "10.69.0.3/24" ]; + dns = [ "38.242.201.177" ]; + + peers = [ + { + publicKey = "rwUMCdhjQbQt9uGjljfdABj4DSJFgL62bzT13sg8LmU="; + allowedIPs = [ "10.69.0.0/24" ]; + endpoint = "leoflo.me:51820"; + persistentKeepalive = 25; + } + ]; + }; + }; + + # Bluetooth + hardware.bluetooth.enable = true; + + # Packages + environment.systemPackages = with pkgs; [ openfortivpn ]; +} diff --git a/systems/hermes/nixos/programs.nix b/systems/hermes/nixos/programs.nix new file mode 100644 index 0000000..6ff5c45 --- /dev/null +++ b/systems/hermes/nixos/programs.nix @@ -0,0 +1,61 @@ +{inputs, pkgs, ...}: { + imports = [ + ../../../components/programs/git.nix + ../../../components/programs/fonts.nix + ../../../components/programs/games.nix + + inputs.home-manager.nixosModules.home-manager + ]; + + nixpkgs.config.allowUnfree = true; + + # Packages + environment.systemPackages = with pkgs; [ + ascii file fastfetch eza btop dysk + openssh rsync wireguard-tools dig + alacritty zed-editor tmux vim claude-code + nil nixd + exfat ntfs3g android-tools + + # Graphical + librewolf thunderbird keepassxc + veracrypt feather + + # Media + vlc ffmpeg yt-dlp + gpu-screen-recorder gpu-screen-recorder-gtk + + # Unibo stuff + digital + inputs.dbmain-nix.packages.${pkgs.stdenv.hostPlatform.system}.default + + # Home manager + inputs.home-manager.packages.${pkgs.stdenv.hostPlatform.system}.home-manager + ]; + + # Dynamic linking + programs.nix-ld.enable = true; + + # AppImages + programs.appimage = { + enable = true; + binfmt = true; + }; + + # Docker + virtualisation.docker.enable = true; + users.extraGroups."docker".members = [ "leo" ]; + + # Virt manager + virtualisation = { + libvirtd.enable = true; + spiceUSBRedirection.enable = true; + }; + users.groups."libvirtd".members = [ "leo" ]; + programs.virt-manager.enable = true; + + # Custom + git.enable = true; + fonts.enable = true; + games.enable = true; +} diff --git a/systems/hermes/nixos/services.nix b/systems/hermes/nixos/services.nix new file mode 100644 index 0000000..79ab3df --- /dev/null +++ b/systems/hermes/nixos/services.nix @@ -0,0 +1,27 @@ +{...}: { + imports = [ + ../../../components/services/i2pd.nix + ]; + + services = { + dbus.enable = true; + libinput.enable = true; + power-profiles-daemon.enable = true; + printing.enable = true; + + # Flatpaks + flatpak.enable = true; + + # Audio + pulseaudio.enable = false; + pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + }; + + # Custom + i2pd.enable = true; +} |
