nuke it all

This commit is contained in:
2026-02-25 00:25:09 +00:00
parent 1ef5057dff
commit 5325aba1cf
29 changed files with 123 additions and 579 deletions

6
flake.lock generated
View File

@@ -45,11 +45,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1771574726, "lastModified": 1771903837,
"narHash": "sha256-D1PA3xQv/s4W3lnR9yJFSld8UOLr0a/cBWMQMXS+1Qg=", "narHash": "sha256-sdaqdnsQCv3iifzxwB22tUwN/fSHoN7j2myFW5EIkGk=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c217913993d6c6f6805c3b1a3bda5e639adfde6d", "rev": "e764fc9a405871f1f6ca3d1394fb422e0a0c3951",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -36,13 +36,13 @@
stationette = nixpkgs.lib.nixosSystem { stationette = nixpkgs.lib.nixosSystem {
modules = [ modules = [
./system/configuration.nix ./system/configuration.nix
home-manager.nixosModules.home-manager { #home-manager.nixosModules.home-manager {
home-manager.users.chris = import ./home; # home-manager.users.chris = import ./home;
home-manager.extraSpecialArgs = { # home-manager.extraSpecialArgs = {
inherit pkgs-unstable; # inherit pkgs-unstable;
inherit inputs; # inherit inputs;
}; # };
} #}
]; ];
}; };
}; };

View File

@@ -13,7 +13,6 @@
home = { home = {
username = "chris"; username = "chris";
homeDirectory = "/home/chris"; homeDirectory = "/home/chris";
}; };
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion

View File

@@ -1,10 +1,8 @@
{ {
imports = [ imports = [
./scripts.nix
./gtk.nix
./packages.nix ./packages.nix
./programs.nix ./programs.nix
./environment.nix ./scripts.nix
]; ];
nixpkgs = { nixpkgs = {

View File

@@ -1,31 +0,0 @@
{
home.sessionVariables = {
BROWSER = "firefox";
EDITOR = "nvim";
TERMINAL = "kitty";
NIXOS_OZONE_WL = "1";
QT_QPA_PLATFORMTHEME = "gtk3";
QT_SCALE_FACTOR = "1";
MOZ_ENABLE_WAYLAND = "1";
SDL_VIDEODRIVER = "wayland";
QT_QPA_PLATFORM = "wayland-egl";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
QT_AUTO_SCREEN_SCALE_FACTOR = "1";
GTK_CSD = "0";
WLR_DRM_DEVICES = "/dev/dri/card0";
WLR_NO_HARDWARE_CURSORS = "1";
CLUTTER_BACKEND = "wayland";
WLR_RENDERER = "vulkan";
XCURSOR_SIZE = "32";
GTK_THEME = "Catppuccin-Macchiato-Compact-Blue-Dark";
XDG_CURRENT_DESKTOP = "hyprland";
XDG_SESSION_DESKTOP = "Hyprland";
XDG_SESSION_TYPE = "wayland";
GTK_USE_PORTAL = "1";
NIXOS_XDG_OPEN_USE_PORTAL = "1";
XDG_CACHE_HOME = "\${HOME}/.cache";
XDG_CONFIG_HOME = "\${HOME}/.config";
#XDG_BIN_HOME = "\${HOME}/.local/bin";
XDG_DATA_HOME = "\${HOME}/.local/share";
};
}

View File

@@ -1,38 +0,0 @@
{ pkgs, ... }:
{
gtk = {
enable = true;
cursorTheme = {
name = "Catppuccin-Macchiato-Blue";
package = pkgs.catppuccin-cursors.macchiatoBlue;
};
theme = {
name = "Catppuccin-Macchiato-Compact-Blue-dark";
package = pkgs.catppuccin-gtk.override {
size = "compact";
accents = ["blue"];
variant = "macchiato";
};
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-folders;
};
gtk3.extraConfig = {
Settings = ''
gtk-application-prefer-dark-theme = 1;
'';
};
gtk4.extraConfig = {
Settings = ''
gtk-application-prefer-dark-theme = 1;
'';
};
};
}

View File

@@ -2,31 +2,31 @@
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
jetbrains.rider # jetbrains.rider
android-studio # android-studio
beekeeper-studio # beekeeper-studio
brave # brave
discord # discord
spotify # spotify
go # go
lua # lua
nodePackages.pnpm # nodePackages.pnpm
(python3.withPackages (python-pkgs: [ python-pkgs.pip python-pkgs.requests ])) # (python3.withPackages (python-pkgs: [ python-pkgs.pip python-pkgs.requests ]))
rustup # rustup
zig # zig
obsidian # obsidian
thunderbird # thunderbird
libreoffice-qt # libreoffice-qt
# pkgs-unstable.nerd-fonts.fira-code # pkgs-unstable.nerd-fonts.fira-code
hunspell # hunspell
blueberry # blueberry
steam # steam
steam-run # steam-run
viewnior # viewnior
pkgs-unstable.hyprshot # pkgs-unstable.hyprshot
catppuccin-cursors.macchiatoBlue # catppuccin-cursors.macchiatoBlue
catppuccin-gtk # catppuccin-gtk
papirus-folders # papirus-folders
# pkgs-unstable.php84Packages.composer # pkgs-unstable.php84Packages.composer
# pkgs-unstable.php84Packages.xdebug # pkgs-unstable.php84Packages.xdebug
# pkgs-unstable.php84Extensions.sqlite3 # pkgs-unstable.php84Extensions.sqlite3
@@ -36,30 +36,30 @@
# pkgs-unstable.php84Extensions.iconv # pkgs-unstable.php84Extensions.iconv
# pkgs-unstable.php84Extensions.gd # pkgs-unstable.php84Extensions.gd
# pkgs-unstable.php84Extensions.zip # pkgs-unstable.php84Extensions.zip
php # php
# antigravity # antigravity
gimp # gimp
kdePackages.dolphin # kdePackages.dolphin
enpass # enpass
enpass-cli # enpass-cli
expressvpn # expressvpn
jellyfin-ffmpeg # jellyfin-ffmpeg
inkscape # inkscape
krita # krita
libreoffice-fresh # libreoffice-fresh
nextcloud-client # nextcloud-client
nodejs_24 # nodejs_24
signal-desktop # signal-desktop
sxiv # sxiv
tenacity # tenacity
unzip # unzip
zathura # zathura
ghostty # ghostty
wally-cli # wally-cli
kdePackages.wacomtablet # kdePackages.wacomtablet
kdePackages.print-manager # kdePackages.print-manager
mpv # mpv
vlc # vlc
telegram-desktop # telegram-desktop
]; ];
} }

View File

@@ -12,123 +12,64 @@ let
in in
{ {
programs = { programs = {
firefox = { # firefox = {
enable = true; # enable = true;
package = pkgs.wrapFirefox pkgs.firefox-unwrapped { # package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies = { # extraPolicies = {
DisableTelemetry = true; # DisableTelemetry = true;
DisableFirefoxStudies = true; # DisableFirefoxStudies = true;
EnableTrackingProtection = { # EnableTrackingProtection = {
Value= true; # Value= true;
Locked = true; # Locked = true;
Cryptomining = true; # Cryptomining = true;
Fingerprinting = true; # Fingerprinting = true;
}; # };
DisablePocket = true; # DisablePocket = true;
DisableFirefoxAccounts = true; # DisableFirefoxAccounts = true;
DisableAccounts = true; # DisableAccounts = true;
DisableFirefoxScreenshots = true; # DisableFirefoxScreenshots = true;
OverrideFirstRunPage = ""; # OverrideFirstRunPage = "";
OverridePostUpdatePage = ""; # OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true; # DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab" # DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on" # DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate" # SearchBar = "unified"; # alternative: "separate"
/* ---- EXTENSIONS ---- */ # /* ---- EXTENSIONS ---- */
ExtensionSettings = { # ExtensionSettings = {
"*".installation_mode = "allowed"; # blocks all addons except the ones specified below # "*".installation_mode = "allowed"; # blocks all addons except the ones specified below
# Enpass # # Enpass
"firefox-enpass@enpass.io" = { # "firefox-enpass@enpass.io" = {
install_url = "https://dl.enpass.io/stable/extensions/firefox/versions/v6.11.10.2/enpass_password_manager-6.11.10.2.xpi"; # install_url = "https://dl.enpass.io/stable/extensions/firefox/versions/v6.11.10.2/enpass_password_manager-6.11.10.2.xpi";
installation_mode = "force_installed"; # installation_mode = "force_installed";
}; # };
}; # };
/* ---- PREFERENCES ---- */ # /* ---- PREFERENCES ---- */
# Set preferences shared by all profiles. # # Set preferences shared by all profiles.
Preferences = { # Preferences = {
"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; }; # "browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
"extensions.pocket.enabled" = lock-false; # "extensions.pocket.enabled" = lock-false;
"extensions.screenshots.disabled" = lock-true; # "extensions.screenshots.disabled" = lock-true;
"browser.topsites.contile.enabled" = lock-false; # "browser.topsites.contile.enabled" = lock-false;
"browser.formfill.enable" = lock-false; # "browser.formfill.enable" = lock-false;
"browser.search.suggest.enabled" = lock-false; # "browser.search.suggest.enabled" = lock-false;
"browser.search.suggest.enabled.private" = lock-false; # "browser.search.suggest.enabled.private" = lock-false;
"browser.urlbar.suggest.searches" = lock-false; # "browser.urlbar.suggest.searches" = lock-false;
"browser.urlbar.showSearchSuggestionsFirst" = lock-false; # "browser.urlbar.showSearchSuggestionsFirst" = lock-false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false; # "browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false; # "browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false; # "browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false; # "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false; # "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false; # "browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
"browser.newtabpage.activity-stream.showSponsored" = lock-false; # "browser.newtabpage.activity-stream.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false; # "browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; # "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
}; # };
}; # };
}; # };
# };
/* ---- PROFILES ---- */
# Switch profiles via about:profiles page.
# For options that are available in Home-Manager see
# https://nix-community.github.io/home-manager/options.html#opt-programs.firefox.profiles
profiles ={
chris = { # choose a profile name; directory is /home/<user>/.mozilla/firefox/chris
id = 0; # 0 is the default profile; see also option "isDefault"
name = "chris"; # name as listed in about:profiles
isDefault = true; # can be omitted; true if profile ID is 0
settings = { # specify profile-specific preferences here; check about:config for options
"browser.startup.homepage" = "https://tower.scarif.space";
# "browser.newtabpage.pinned" = [{
# title = "NixOS";
# url = "https://nixos.org";
# }];
};
search = {
force = true;
default = "holocron";
engines = {
holocron = {
name = "Holocron";
urls = [{
template = "https://holocron.scarif.space/search";
params = [
{ name = "q"; value = "{searchTerms}"; }
];
}];
iconUpdateURL = "https://holocron.scarif.space/static/themes/simple/img/favicon.png";
definedAliases = [ "@h" ]; # Allows you to type '@s query' in the URL bar
};
nix-packages = {
name = "Nix Packages";
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
nixos-wiki = {
name = "NixOS Wiki";
urls = [{ template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; }];
iconMapObj."16" = "https://wiki.nixos.org/favicon.ico";
definedAliases = [ "@nw" ];
};
bing.metaData.hidden = true;
google.metaData.alias = "@g"; # builtin engines only support specifying one additional alias
};
};
};
};
};
}; };
programs.home-manager.enable = true; programs.home-manager.enable = true;
} }

View File

@@ -11,5 +11,5 @@
]; ];
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "23.05"; system.stateVersion = "25.11";
} }

View File

@@ -2,22 +2,12 @@
{ {
boot = { boot = {
kernelParams = ["nohibernate" "ipv6.disable=1"]; #kernelParams = ["nohibernate" "ipv6.disable=1"];
tmp.cleanOnBoot = true; #tmp.cleanOnBoot = true;
# supportedFilesystems = ["ntfs"]; # supportedFilesystems = ["ntfs"];
loader = { loader = {
grub = { systemd-boot.enable = true;
device = "nodev"; efi.canTouchEfiVariables = true;
efiSupport = true;
enable = true;
useOSProber = true;
timeoutStyle = "menu";
efiInstallAsRemovable = true;
extraConfig = ''
insmod tpm
'';
};
timeout = 300;
}; };
}; };
} }

View File

@@ -3,22 +3,9 @@
{ {
imports = [ imports = [
./boot.nix ./boot.nix
./fonts.nix
./gaming.nix
./hardware.nix
./hyprland.nix
./internationalisation.nix
./networking.nix ./networking.nix
./nixsettings.nix
./packages.nix ./packages.nix
./polkit.nix
./programs.nix ./programs.nix
./security.nix
./services.nix
./sound.nix
./theme.nix
./time.nix
./users.nix ./users.nix
./virtualisation.nix
]; ];
} }

View File

@@ -1,10 +0,0 @@
{ pkgs, ... }:
{
fonts.packages = with pkgs; [
font-awesome
jetbrains-mono
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
];
}

View File

@@ -1,13 +0,0 @@
{ config, pkgs, ... }:
{
nix = {
settings = {
warn-dirty = false;
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
substituters = ["https://nix-gaming.cachix.org"];
trusted-public-keys = ["nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="];
};
};
}

View File

@@ -1,11 +0,0 @@
{ config, pkgs, ... }:
{
hardware = {
bluetooth.enable = true;
opengl = {
enable = true;
driSupport32Bit = true;
};
};
}

View File

@@ -1,21 +0,0 @@
{ config, pkgs, ... }:
{
programs.hyprland = {
enable = true;
};
environment.systemPackages = with pkgs; [
hyprpaper
libnotify
mako
qt5.qtwayland
qt6.qtwayland
swayidle
swaylock-effects
wlogout
wl-clipboard
wofi
waybar
];
}

View File

@@ -1,23 +0,0 @@
{ pkgs, ... }:
{
i18n.defaultLocale = "en_GB.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_GB.UTF-8";
LC_IDENTIFICATION = "en_GB.UTF-8";
LC_MEASUREMENT = "en_GB.UTF-8";
LC_MONETARY = "en_GB.UTF-8";
LC_NAME = "en_GB.UTF-8";
LC_NUMERIC = "en_GB.UTF-8";
LC_PAPER = "en_GB.UTF-8";
LC_TELEPHONE = "en_GB.UTF-8";
LC_TIME = "en_GB.UTF-8";
};
i18n.supportedLocales = [
"en_GB.UTF-8/UTF-8"
"en_US.UTF-8/UTF-8"
"ro_RO.UTF-8/UTF-8"
];
}

View File

@@ -4,7 +4,5 @@
networking = { networking = {
hostName = "stationette"; hostName = "stationette";
networkmanager.enable = true; networkmanager.enable = true;
enableIPv6 = false;
firewall.enable = false;
}; };
} }

View File

@@ -1,23 +0,0 @@
{ config, pkgs, ... }:
{
documentation.nixos.enable = false;
nixpkgs.config.allowUnfree = true;
nix = {
settings = {
warn-dirty = false;
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
substituters = ["https://nix-gaming.cachix.org"];
trusted-public-keys = ["nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="];
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
}

View File

@@ -9,23 +9,13 @@
fzf fzf
git git
gnumake gnumake
lm_sensors
libsForQt5.qt5.qtquickcontrols2
libsForQt5.qt5.qtgraphicaleffects
libsForQt5.qt5.qtsvg
go-task
neofetch neofetch
neovim neovim
ripgrep ripgrep
tldr tldr
unzip unzip
openssl openssl
openssl.dev
pkg-config
wget wget
xfce.thunar
xdg-desktop-portal-gtk
xdg-desktop-portal-wlr
zip zip
zoxide zoxide
jq jq
@@ -38,8 +28,10 @@
tmuxinator tmuxinator
wget wget
zenity zenity
gum
yazi yazi
rsync rsync
p7zip p7zip
impala
]; ];
} }

View File

@@ -1,27 +0,0 @@
{ pkgs, ... }:
{
systemd = {
user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "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;
};
};
# extraConfig = ''
# DefaulTimeoutStopSec=10s
# '';
};
environment.systemPackages = with pkgs; [
polkit
polkit_gnome
];
}

View File

@@ -1,57 +1,9 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
xdg.portal = {
enable = true;
wlr.enable = true;
xdgOpenUsePortal = false;
extraPortals = [
pkgs.xdg-desktop-portal-hyprland
pkgs.xdg-desktop-portal-gtk
];
};
programs = { programs = {
steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
zsh = { zsh = {
enable = true; enable = true;
}; };
hyprland = {
enable = true;
xwayland = {
enable = true;
};
portalPackage = pkgs.xdg-desktop-portal-hyprland;
};
gnupg = {
agent = {
enable = true;
enableSSHSupport = true;
};
};
tmux = {
enable = true;
escapeTime = 0;
# plugins = with pkgs; [
# tmuxPlugins.vim-timux-navigator
# tmuxPlugins.resurrect
# tmuxPlugins.continuum
# tmuxPlugins.catppuccin
# ];
# zsh.enable = true;
# mtr.enable = true;
};
}; };
} }

View File

@@ -1,15 +0,0 @@
{ pkgs }:
pkgs.stdenv.mkDerivation {
name = "sddm-theme";
src = pkgs.fetchFromGitHub {
owner = "gpskwlkr";
repo = "sddm-astronaut-theme";
rev = "468a100460d5feaa701c2215c737b55789cba0fc";
sha256 = "1h20b7n6a4pbqnrj22y8v5gc01zxs58lck3bipmgkpyp52ip3vig";
};
installPhase = ''
mkdir -p $out
cp -R ./* $out/
'';
}

View File

@@ -1,7 +0,0 @@
{ pkgs, ... }:
{
security.polkit.enable = true;
security.pam.services.swaylock = {};
security.pam.services.swaylock.fprintAuth = false;
}

View File

@@ -1,21 +0,0 @@
{ config, pkgs, ... }:
{
services = {
dbus.enable = true;
picom.enable = true;
openssh.enable = true;
spice-vdagentd.enable = true;
xserver = {
enable = true;
layout = "gb, us, ro";
xkbOptions = "grp:alt_shift_toggle, caps:swapescape";
displayManager = {
sddm.enable = true;
sddm.theme = "${import ./sddm-theme.nix { inherit pkgs; }}";
};
};
};
}

View File

@@ -1,21 +0,0 @@
{ pkgs, ... }:
{
# sound.enable = true;
security.rtkit.enable = true;
hardware.pulseaudio.enable = false;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
wireplumber.enable = true;
};
environment.systemPackages = with pkgs; [
pamixer
pavucontrol
];
}

View File

@@ -1,10 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
gnome3.adwaita-icon-theme
glib
gsettings-desktop-schemas
nwg-look
];
}

View File

@@ -1,5 +0,0 @@
{ ... }:
{
time.timeZone = "Europe/London";
}

View File

@@ -5,11 +5,8 @@
isNormalUser = true; isNormalUser = true;
shell = pkgs.zsh; shell = pkgs.zsh;
extraGroups = [ extraGroups = [
"chris"
"wheel" "wheel"
"docker"
"qemu"
"kvm"
"libvirtd"
"networkmanager" "networkmanager"
]; ];
}; };

View File

@@ -1,34 +0,0 @@
{ pkgs, ... }:
{
virtualisation = {
spiceUSBRedirection.enable = true;
libvirtd = {
enable = true;
qemu = {
swtpm.enable = true;
};
};
podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
};
};
environment.systemPackages = with pkgs; [
podman-compose
qemu
spice
spice-gtk
spice-protocol
virt-manager
virt-viewer
win-spice
win-virtio
];
}