{ config, pkgs, ... }: let mainUser = "winston"; plymouthPkg = pkgs.stdenv.mkDerivation { name = "plymouth-theme-catppuccin"; src = pkgs.fetchFromGitHub { owner = "catppuccin"; repo = "plymouth"; rev = "d4105cf336599653783c34c4a2d6ca8c93f9281c"; sha256 = "sha256-quBSH8hx3gD7y1JNWAKQdTk3CmO4t1kVo4cOGbeWlNE="; }; installPhase = '' mkdir -p "$out/share/plymouth/themes/" cp -r "themes/"* "$out/share/plymouth/themes/" themes=("mocha" "macchiato" "frappe" "latte") for dir in "''${themes[@]}"; do cat "themes/catppuccin-''${dir}/catppuccin-''${dir}.plymouth" | sed "s@\/usr\/@''${out}\/@" > "''${out}/share/plymouth/themes/catppuccin-''${dir}/catppuccin-''${dir}.plymouth" done ''; }; in { nix.settings.experimental-features = ["nix-command" "flakes"]; nixpkgs.config.allowUnfree = true; programs.nix-ld.enable = true; imports = [./hardware-configuration.nix]; environment.systemPackages = []; boot = { kernelPackages = pkgs.linuxPackages_6_1; loader.efi.canTouchEfiVariables = true; loader.systemd-boot.enable = true; # for nvidia & minimalism loader.systemd-boot.consoleMode = "0"; # plymouth plymouth = { enable = true; theme = "catppuccin-mocha"; themePackages = [plymouthPkg]; }; kernelParams = ["quiet" "splash" "vt.global_cursor_default=0"]; initrd.systemd.enable = true; }; hardware = { bluetooth.enable = true; pulseaudio.enable = true; }; networking = { hostName = "copium"; networkmanager.enable = true; firewall.enable = true; }; time.timeZone = "Europe/Vienna"; i18n.defaultLocale = "en_US.UTF-8"; programs.dconf.enable = true; programs.steam.enable = true; security.polkit.enable = true; systemd = { packages = [pkgs.polkit_gnome]; user.services.polkit-gnome-authentication-agent-1 = { unitConfig = { Description = "polkit-gnome-authentication-agent-1"; Wants = ["graphical-session.target"]; WantedBy = ["graphical-session.target"]; After = ["graphical-session.target"]; }; serviceConfig = { Type = "simple"; ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; Restart = "on-failure"; RestartSec = 1; TimeoutStopSec = 10; }; }; }; services = { # mounting gvfs.enable = true; udisks2.enable = true; devmon.enable = true; # desktop blueman.enable = true; gnome.gnome-keyring.enable = true; mullvad-vpn.enable = true; pipewire.enable = true; openssh.enable = true; pcscd.enable = true; xserver = { enable = true; desktopManager.xterm.enable = false; displayManager = { defaultSession = "none+i3"; gdm.enable = true; }; libinput.enable = true; windowManager.i3 = { enable = true; package = pkgs.i3-gaps; extraPackages = with pkgs; [ dmenu pavucontrol pcmanfm xclip xdotool ]; }; xkbOptions = "caps:ctrl_modifier"; }; }; users.users."${mainUser}" = { extraGroups = ["wheel"]; isNormalUser = true; openssh.authorizedKeys.keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILm0O46zW/XfVOSwz0okRWYeOAg+wCVkCtCAoVTpZsOh"]; packages = [pkgs.zsh]; shell = pkgs.zsh; }; system = { copySystemConfiguration = true; stateVersion = "22.11"; }; }