summaryrefslogtreecommitdiff
path: root/nixos
diff options
context:
space:
mode:
Diffstat (limited to 'nixos')
-rw-r--r--nixos/docs/ADDING_PACKAGES.md183
-rw-r--r--nixos/flake.lock152
-rw-r--r--nixos/flake.nix29
-rw-r--r--nixos/hardware-configuration.nix33
-rw-r--r--nixos/hosts/opus/default.nix87
-rw-r--r--nixos/mi_edid.binbin384 -> 0 bytes
-rw-r--r--nixos/modules/features/appimage/default.nix15
-rw-r--r--nixos/modules/features/audio-tools/default.nix13
-rw-r--r--nixos/modules/features/binary-compat/default.nix23
-rw-r--r--nixos/modules/features/browsers/default.nix10
-rw-r--r--nixos/modules/features/cli-tools/default.nix26
-rw-r--r--nixos/modules/features/desktop-apps/default.nix6
-rw-r--r--nixos/modules/features/dev-tools/default.nix26
-rw-r--r--nixos/modules/features/editors/default.nix12
-rw-r--r--nixos/modules/features/file-managers/default.nix21
-rw-r--r--nixos/modules/features/fonts/default.nix20
-rw-r--r--nixos/modules/features/gaming/default.nix15
-rw-r--r--nixos/modules/features/gst-codecs/default.nix12
-rw-r--r--nixos/modules/features/language-tools/default.nix7
-rw-r--r--nixos/modules/features/media-tools/default.nix7
-rw-r--r--nixos/modules/features/messaging/default.nix9
-rw-r--r--nixos/modules/features/monitoring/default.nix12
-rw-r--r--nixos/modules/features/mouse/default.nix10
-rw-r--r--nixos/modules/features/mpd/default.nix43
-rw-r--r--nixos/modules/features/niri/default.nix19
-rw-r--r--nixos/modules/features/noctalia-greeter/default.nix20
-rw-r--r--nixos/modules/features/noctalia-shell/default.nix12
-rw-r--r--nixos/modules/features/nvidia/default.nix24
-rw-r--r--nixos/modules/features/p2p/default.nix7
-rw-r--r--nixos/modules/features/productivity/default.nix11
-rw-r--r--nixos/modules/features/security/default.nix8
-rw-r--r--nixos/modules/features/swingmusic/default.nix21
-rw-r--r--nixos/modules/features/terminals/default.nix10
-rw-r--r--nixos/modules/features/vpn-utils/default.nix33
-rw-r--r--nixos/modules/features/wayland-tools/default.nix14
-rw-r--r--nixos/modules/features/wireshark/default.nix14
-rw-r--r--nixos/modules/system/audio/default.nix21
-rw-r--r--nixos/modules/system/boot/default.nix19
-rw-r--r--nixos/modules/system/hardware/default.nix20
-rw-r--r--nixos/modules/system/locale/default.nix20
-rw-r--r--nixos/modules/system/network/default.nix38
-rw-r--r--nixos/modules/system/nix/default.nix30
-rw-r--r--nixos/modules/system/printing/default.nix14
-rw-r--r--nixos/modules/system/services/default.nix24
-rw-r--r--nixos/modules/system/users/default.nix69
45 files changed, 0 insertions, 1219 deletions
diff --git a/nixos/docs/ADDING_PACKAGES.md b/nixos/docs/ADDING_PACKAGES.md
deleted file mode 100644
index d1b5eba..0000000
--- a/nixos/docs/ADDING_PACKAGES.md
+++ /dev/null
@@ -1,183 +0,0 @@
-# Dendritic Pattern
-
-Dendritic is the way to organize your packages in NixOS — around features. https://github.com/mightyiam/dendritic this is a good example!
-
-# Adding Packages
-
-This configuration is composed from `hosts/opus/default.nix` and focused modules
-under `modules/features/`. There is no central package list.
-
-## Where a package belongs
-
-| Package type | Module |
-| --- | --- |
-| Terminal | `modules/features/terminals/default.nix` |
-| CLI tool (incl. shell prompts like starship) | `modules/features/cli-tools/default.nix` |
-| Editor or IDE | `modules/features/editors/default.nix` |
-| Compiler, linter, language tool | `modules/features/dev-tools/default.nix` |
-| File manager or archive tool (incl. drag & drop tools) | `modules/features/file-managers/default.nix` |
-| Wayland clipboard, screenshot, or input tool | `modules/features/wayland-tools/default.nix` |
-| Audio application | `modules/features/audio-tools/default.nix` |
-| Media recording or streaming tool | `modules/features/media-tools/default.nix` |
-| System monitor or fetch tool | `modules/features/monitoring/default.nix` |
-| Font | `modules/features/fonts/default.nix` |
-| GStreamer plugin | `modules/features/gst-codecs/default.nix` |
-| Runtime library for external binaries | `modules/features/binary-compat/default.nix` |
-| Web browser | `modules/features/browsers/default.nix` |
-| Messaging or communication app | `modules/features/messaging/default.nix` |
-| Office suite, note-taking app, or document viewer/editor | `modules/features/productivity/default.nix` |
-| Password manager or encryption tool | `modules/features/security/default.nix` |
-| Gaming app, game launcher, or gaming service (Steam, etc.) | `modules/features/gaming/default.nix` |
-| P2P or torrent client | `modules/features/p2p/default.nix` |
-| Language dictionary or spell-check data | `modules/features/language-tools/default.nix` |
-| Desktop application (catch-all for GUI apps without a fitting category) | `modules/features/desktop-apps/default.nix` |
-
-First use an existing category. Create a new feature module only if the package is
-its own service, subsystem, or a group of related packages without a fitting category.
-
-## Add to an existing module
-
-Add the package to that module's `environment.systemPackages` list:
-
-```nix
-{ pkgs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- existing-package
- ripgrep
- ];
-}
-```
-
-Most modules use `with pkgs;`, so use unqualified package names. Use `pkgs.<name>`
-when an explicit path is useful, such as `pkgs.vimPlugins.im-select-nvim`, or when
-applying an override:
-
-```nix
-(emacs.override { withNativeCompilation = true; })
-```
-
-Keep related packages together and follow the local ordering of the file.
-
-## Fonts are different
-
-Fonts belong in `modules/features/fonts/default.nix` under `fonts.packages`, not
-`environment.systemPackages`:
-
-```nix
-fonts.packages = with pkgs; [
- nerd-fonts.jetbrains-mono
- noto-fonts-color-emoji
-];
-```
-
-## Language dictionaries are different
-
-Spell-check dictionaries, transliteration data, and other language data belong in
-`modules/features/language-tools/default.nix` under `environment.systemPackages`, not
-in `fonts.packages` or a general-purpose module:
-
-```nix
-{ pkgs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- hunspellDicts.ru_RU
- ];
-}
-```
-
-## Gaming services live in the gaming module
-
-Gaming-related services and packages — Steam configuration, game launchers, Wine-based
-app runners — belong in `modules/features/gaming/default.nix`. This keeps the host file
-lean and makes the gaming stack reusable across hosts:
-
-```nix
-{ pkgs, ... }:
-
-{
- programs.steam = {
- enable = true;
- remotePlay.openFirewall = true;
- };
-
- environment.systemPackages = with pkgs; [
- pkgs.lutris
- pkgs.prismlauncher
- ];
-}
-```
-
-## Create a new feature module
-
-1. Create `modules/features/<category>/default.nix`:
-
- ```nix
- { pkgs, ... }:
-
- {
- environment.systemPackages = with pkgs; [
- package-name
- ];
- }
- ```
-
-2. Add its directory to the `imports` list in `hosts/opus/default.nix`:
-
- ```nix
- ../../modules/features/<category>
- ```
-
-3. Put services and program options in the same module when they belong to that
- feature, as done by `modules/features/mpd/default.nix`.
-
-## Host-only packages
-
-For a package that is truly specific to this desktop, add it to the small
-`environment.systemPackages` list in `hosts/opus/default.nix`. If that list starts to
-represent a reusable category, extract a feature module.
-
-## Packages from flake inputs
-
-Packages provided by a flake input use `inputs` and the host platform, following
-`modules/features/browsers/default.nix`:
-
-```nix
-{ pkgs, inputs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- inputs.helium-browser.packages.${pkgs.stdenv.hostPlatform.system}.helium
- ];
-}
-```
-
-If an input provides a NixOS module, import it in the feature module, following
-`modules/features/noctalia-greeter/default.nix`:
-
-```nix
-imports = [
- inputs.some-input.nixosModules.default
-];
-```
-
-The input itself must first be declared in `flake.nix`.
-
-## Build and switch
-
-From the `nixos/` directory, first test that the configuration evaluates and builds:
-
-```bash
-doas nixos-rebuild build --flake .#opus
-```
-
-Then activate it:
-
-```bash
-doas nixos-rebuild switch --flake .#opus
-```
-
-If a terminal's font icons do not update after adding fonts, restart the terminal or
-log out and back in after the switch.
diff --git a/nixos/flake.lock b/nixos/flake.lock
deleted file mode 100644
index 6c5bb5d..0000000
--- a/nixos/flake.lock
+++ /dev/null
@@ -1,152 +0,0 @@
-{
- "nodes": {
- "helium-browser": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ],
- "nixpkgs-darwin": "nixpkgs-darwin",
- "utils": "utils"
- },
- "locked": {
- "lastModified": 1786241105,
- "narHash": "sha256-q/iBiqM4g029hhjsQcNyObWBsPrwAxtQo21bkXjeu0E=",
- "owner": "schembriaiden",
- "repo": "helium-browser-nix-flake",
- "rev": "88eb5c7ee75ef26ebaec8987274102063f34745b",
- "type": "github"
- },
- "original": {
- "owner": "schembriaiden",
- "repo": "helium-browser-nix-flake",
- "type": "github"
- }
- },
- "nixpkgs": {
- "locked": {
- "lastModified": 1786247143,
- "narHash": "sha256-8S3Kcxs7D4UtxJxSJZz0m14CGhuW0MxfrIwJxeGWGnQ=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "279b4a8275f032c566576b3f181fa0f27197f588",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs-darwin": {
- "locked": {
- "lastModified": 1785067121,
- "narHash": "sha256-rdJdWxAcg5fnntU4DjPivPdVEN4F+VJavw+UWpEMeUI=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "329c3d2af6d1b618705150ea39f72c15eb4e613e",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixpkgs-26.05-darwin",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_2": {
- "locked": {
- "lastModified": 1786106723,
- "narHash": "sha256-CgKDSHL6rqAAQkkvg1xaZDQXb77+4XW73iGcUMJ+2w0=",
- "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238",
- "type": "tarball",
- "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1049422.f13ff45afd1b/nixexprs.tar.zst"
- },
- "original": {
- "type": "tarball",
- "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.zst"
- }
- },
- "noctalia": {
- "inputs": {
- "nixpkgs": "nixpkgs_2"
- },
- "locked": {
- "lastModified": 1786438148,
- "narHash": "sha256-ZrNuYbzLEQB1jV5TnVQOryO9DPheLfpmqyMFxiqGVMs=",
- "owner": "noctalia-dev",
- "repo": "noctalia",
- "rev": "8a92b7c24dc9d46e9be73fc7f2702f733b646033",
- "type": "github"
- },
- "original": {
- "owner": "noctalia-dev",
- "repo": "noctalia",
- "type": "github"
- }
- },
- "noctalia-greeter": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1786236850,
- "narHash": "sha256-K1AkQg+pZyI/vuIrz7s8sGxqTsCrVJwOOK/ttOwh+q0=",
- "owner": "noctalia-dev",
- "repo": "noctalia-greeter",
- "rev": "763411f5ebd864adba27db9354a1d5724c15704c",
- "type": "github"
- },
- "original": {
- "owner": "noctalia-dev",
- "repo": "noctalia-greeter",
- "type": "github"
- }
- },
- "root": {
- "inputs": {
- "helium-browser": "helium-browser",
- "nixpkgs": "nixpkgs",
- "noctalia": "noctalia",
- "noctalia-greeter": "noctalia-greeter"
- }
- },
- "systems": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- },
- "utils": {
- "inputs": {
- "systems": "systems"
- },
- "locked": {
- "lastModified": 1731533236,
- "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "flake-utils",
- "type": "github"
- }
- }
- },
- "root": "root",
- "version": 7
-}
diff --git a/nixos/flake.nix b/nixos/flake.nix
deleted file mode 100644
index ef43174..0000000
--- a/nixos/flake.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- description = "Noctalia shell conf (dendritic layout)";
-
- inputs = {
- # Main tree
- nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
-
- # Noctalia v5
- noctalia.url = "github:noctalia-dev/noctalia";
- noctalia-greeter = {
- url = "github:noctalia-dev/noctalia-greeter";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- helium-browser = {
- url = "github:schembriaiden/helium-browser-nix-flake";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- };
-
- outputs = { self, nixpkgs, noctalia, ... }@inputs: {
- nixosConfigurations.opus = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- specialArgs = { inherit inputs; };
- modules = [
- ./hosts/opus
- ];
- };
- };
-} \ No newline at end of file
diff --git a/nixos/hardware-configuration.nix b/nixos/hardware-configuration.nix
deleted file mode 100644
index 5163270..0000000
--- a/nixos/hardware-configuration.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-# Do not modify this file! It was generated by ‘nixos-generate-config’
-# and may be overwritten by future invocations. Please make changes
-# to /etc/nixos/configuration.nix instead.
-{ config, lib, pkgs, modulesPath, ... }:
-
-{
- imports =
- [ (modulesPath + "/installer/scan/not-detected.nix")
- ];
-
- boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
- boot.initrd.kernelModules = [ ];
- boot.kernelModules = [ "kvm-amd" ];
- boot.extraModulePackages = [ ];
-
- fileSystems."/" =
- { device = "/dev/disk/by-uuid/363e0f04-0494-4bf5-96e7-33326d8b8a5c";
- fsType = "ext4";
- };
-
- fileSystems."/boot" =
- { device = "/dev/disk/by-uuid/DD1F-3DEF";
- fsType = "vfat";
- options = [ "fmask=0077" "dmask=0077" ];
- };
-
- swapDevices =
- [ { device = "/dev/disk/by-uuid/75ef05e5-75fb-4c5c-9a4d-e5e50f4b6438"; }
- ];
-
- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
- hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
-}
diff --git a/nixos/hosts/opus/default.nix b/nixos/hosts/opus/default.nix
deleted file mode 100644
index 1c6a42b..0000000
--- a/nixos/hosts/opus/default.nix
+++ /dev/null
@@ -1,87 +0,0 @@
-{ config, pkgs, inputs, ... }:
-
-{
- imports = [
- # hardware-configuration.nix stays at the repo root for nixos-generate-config compat
- ../../hardware-configuration.nix
-
- # OS-level modules — no binary wrapped, just system concerns
- ../../modules/system/nix
- ../../modules/system/boot
- ../../modules/system/hardware
- ../../modules/system/locale
- ../../modules/system/users
- ../../modules/system/audio
- ../../modules/system/printing
- ../../modules/system/network
- ../../modules/system/services
-
- # Standalone features (apps with their own binaries)
- ../../modules/features/niri
- ../../modules/features/noctalia-greeter
- ../../modules/features/noctalia-shell
- ../../modules/features/nvidia
- ../../modules/features/appimage
- ../../modules/features/mpd
-# ../../modules/features/swingmusic
- ../../modules/features/monitoring
- ../../modules/features/terminals
- ../../modules/features/cli-tools
- ../../modules/features/binary-compat
- ../../modules/features/editors
- ../../modules/features/file-managers
- ../../modules/features/wayland-tools
- ../../modules/features/audio-tools
- ../../modules/features/gst-codecs
- ../../modules/features/fonts
- ../../modules/features/desktop-apps
- ../../modules/features/browsers
- ../../modules/features/messaging
- ../../modules/features/productivity
- ../../modules/features/security
- ../../modules/features/media-tools
- ../../modules/features/p2p
- ../../modules/features/language-tools
- ../../modules/features/gaming
- ../../modules/features/dev-tools
- ../../modules/features/vpn-utils
- ../../modules/features/wireshark
- ../../modules/features/mouse
- ];
-
- # ────────────────────────────────────────────────────────────────────────
- # Desktop composition (was attrs/desktop)
- # Inline because this host is the only one using the full desktop stack.
- # ────────────────────────────────────────────────────────────────────────
- # Qt styling: use qt5ct to theme Qt apps consistently with the GTK desktop.
- qt = {
- enable = true;
- platformTheme = "qt5ct";
- style = "breeze";
- };
- # Desktop portals let Wayland clients request screenshots, file dialogs, etc.
- # These backends wire the GNOME + GTK portal implementations into the session.
- xdg.portal = {
- enable = true;
- extraPortals = [
- pkgs.xdg-desktop-portal-gnome
- pkgs.xdg-desktop-portal-gtk
- ];
- };
- boot.extraModulePackages = [ config.boot.kernelPackages.amneziawg ];
- boot.kernelModules = [ "amneziawg" ];
- # Qt/HiDPI and GPU renderer hints shared across the desktop.
- environment.sessionVariables = {
- XCURSOR_THEME = "Bibata-Modern-Ice";
- XCURSOR_SIZE = "20";
- CC = "clang";
- ELECTRON_OZONE_PLATFORM_HINT = "auto";
- GSK_RENDERER = "ngl";
- QT_QPA_PLATFORM = "wayland;xcb";
- QT_ENABLE_HIGHDPI_SCALING = "1";
- QT_AUTO_SCREEN_SCALE_FACTOR = "1";
- QT_SCREEN_SCALE_FACTORS = "1.5";
- };
-
- system.stateVersion = "26.05";
-}
diff --git a/nixos/mi_edid.bin b/nixos/mi_edid.bin
deleted file mode 100644
index 98a9522..0000000
--- a/nixos/mi_edid.bin
+++ /dev/null
Binary files differ
diff --git a/nixos/modules/features/appimage/default.nix b/nixos/modules/features/appimage/default.nix
deleted file mode 100644
index e16189b..0000000
--- a/nixos/modules/features/appimage/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ pkgs, ... }:
-
-{
- # AppImage support: binfmt registers the interpreter so you can run
- # AppImages directly. The override pulls in WebKit for GUI AppImages.
- programs.appimage = {
- enable = true;
- binfmt = true;
- package = pkgs.appimage-run.override {
- extraPkgs = pkgs: [
- pkgs.webkitgtk_4_1
- ];
- };
- };
-} \ No newline at end of file
diff --git a/nixos/modules/features/audio-tools/default.nix b/nixos/modules/features/audio-tools/default.nix
deleted file mode 100644
index fa550d8..0000000
--- a/nixos/modules/features/audio-tools/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ pkgs, ... }:
-
-{
- # User-facing audio/media clients (the MPD *server* lives in the `mpd` module)
- environment.systemPackages = with pkgs; [
- mpc
- mpd
- mpd-mpris
- mpv
- rmpc
- pavucontrol
- ];
-} \ No newline at end of file
diff --git a/nixos/modules/features/binary-compat/default.nix b/nixos/modules/features/binary-compat/default.nix
deleted file mode 100644
index 56212e1..0000000
--- a/nixos/modules/features/binary-compat/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ pkgs, ... }:
-
-{
- # Runtime libraries so non-Nix binaries (AppImages, dynamically linked
- # programs loaded via envfs/nix-ld) can resolve their shared-object deps.
- environment.systemPackages = with pkgs; [
- cacert
- libGL
- nss
- cups
- libdrm
- glib
- pango
- gtk3
- zlib
- expat
- alsa-lib
- libxkbcommon
- atk
- pkg-config
- cmake
- ];
-}
diff --git a/nixos/modules/features/browsers/default.nix b/nixos/modules/features/browsers/default.nix
deleted file mode 100644
index 620734c..0000000
--- a/nixos/modules/features/browsers/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ pkgs, inputs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- inputs.helium-browser.packages.${pkgs.stdenv.hostPlatform.system}.helium
- chromium
- tor-browser
- mullvad-browser
- ];
-}
diff --git a/nixos/modules/features/cli-tools/default.nix b/nixos/modules/features/cli-tools/default.nix
deleted file mode 100644
index 55237c4..0000000
--- a/nixos/modules/features/cli-tools/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ pkgs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- tree
- pkgs.libsixel
- fd
- fzf
- eza
- stow
- util-linux
- nftables
- pkgs.rsync
- cryptsetup
- yt-dlp
- caligula
- fetch
- smartmontools
- secretspec
- claude-code
- opencode
- ];
-
- # Cross-shell prompt; its config lives in the dotfiles repo, not NixOS.
- programs.starship.enable = true;
-}
diff --git a/nixos/modules/features/desktop-apps/default.nix b/nixos/modules/features/desktop-apps/default.nix
deleted file mode 100644
index b74384f..0000000
--- a/nixos/modules/features/desktop-apps/default.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{ pkgs, inputs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- ];
-}
diff --git a/nixos/modules/features/dev-tools/default.nix b/nixos/modules/features/dev-tools/default.nix
deleted file mode 100644
index 7613495..0000000
--- a/nixos/modules/features/dev-tools/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ pkgs, ... }:
-
-{
- # Compilers, language tooling, and IDEs for development
- environment.systemPackages = with pkgs; [
- black
- cargo
- clang
- clippy
- gcc
- git
- gnumake
- nodejs
- pyright
- (python3.withPackages (ps: with ps; [ pip ]))
- rust-analyzer
- rustc
- lua5_4
- tree-sitter
- jetbrains.rust-rover
- jetbrains.pycharm
- ];
- environment.sessionVariables = {
- RUST_SRC_PATH = "${pkgs.rustPlatform.rustLibSrc}";
- };
-}
diff --git a/nixos/modules/features/editors/default.nix b/nixos/modules/features/editors/default.nix
deleted file mode 100644
index 5cec5da..0000000
--- a/nixos/modules/features/editors/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ pkgs, ... }:
-
-{
- # Text editors / IDEs
- environment.systemPackages = with pkgs; [
- micro
- neovim
- (emacs.override { withNativeCompilation = true; })
- # IME input method integration for the Vim/Neovim ecosystem.
- pkgs.vimPlugins.im-select-nvim
- ];
-}
diff --git a/nixos/modules/features/file-managers/default.nix b/nixos/modules/features/file-managers/default.nix
deleted file mode 100644
index f3ad4b3..0000000
--- a/nixos/modules/features/file-managers/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ pkgs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- file-roller
- kdePackages.ark
- kdePackages.qt6ct
- loupe
- nautilus
- sushi
- yazi
- # Drag & drop file transfer (yazi plugin + standalone helpers)
- yaziPlugins.drag
- ripdrag
- dragon-drop
- ];
-
- # yazi (terminal file manager) and its drag-and-drop helpers; the module
- # also registers yazi's shell integration.
- programs.yazi.enable = true;
-} \ No newline at end of file
diff --git a/nixos/modules/features/fonts/default.nix b/nixos/modules/features/fonts/default.nix
deleted file mode 100644
index c49876c..0000000
--- a/nixos/modules/features/fonts/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ pkgs, ... }:
-
-{
- # Fonts: installed under fonts.packages (NOT environment.systemPackages) so
- # they land in the fontconfig cache instead of just the PATH.
- fonts.fontconfig.enable = true;
-
- fonts.packages = with pkgs; [
- font-awesome
- nerd-fonts.jetbrains-mono
- nerd-fonts.symbols-only
- jetbrains-mono
- noto-fonts-color-emoji
- adwaita-fonts
- cozette
- roboto
- nerd-fonts.open-dyslexic
- open-dyslexic
- ];
-}
diff --git a/nixos/modules/features/gaming/default.nix b/nixos/modules/features/gaming/default.nix
deleted file mode 100644
index fe3938a..0000000
--- a/nixos/modules/features/gaming/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ pkgs, ... }:
-
-{
- programs.steam = {
- enable = true;
- remotePlay.openFirewall = true;
- dedicatedServer.openFirewall = true;
- };
-
- environment.systemPackages = with pkgs; [
- pkgs.lutris
- pkgs.prismlauncher
- pkgs.bottles
- ];
-}
diff --git a/nixos/modules/features/gst-codecs/default.nix b/nixos/modules/features/gst-codecs/default.nix
deleted file mode 100644
index c3decb8..0000000
--- a/nixos/modules/features/gst-codecs/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ pkgs, ... }:
-
-{
- # GStreamer plugin set so apps (e.g. mpv, totem, browsers) can decode media.
- # Installed system-wide so anything linking GStreamer picks them up.
- environment.systemPackages = with pkgs; [
- gst_all_1.gst-plugins-bad
- gst_all_1.gst-plugins-base
- gst_all_1.gst-plugins-good
- gst_all_1.gst-plugins-ugly
- ];
-}
diff --git a/nixos/modules/features/language-tools/default.nix b/nixos/modules/features/language-tools/default.nix
deleted file mode 100644
index 338d26b..0000000
--- a/nixos/modules/features/language-tools/default.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ pkgs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- hunspellDicts.ru_RU
- ];
-}
diff --git a/nixos/modules/features/media-tools/default.nix b/nixos/modules/features/media-tools/default.nix
deleted file mode 100644
index 00a16da..0000000
--- a/nixos/modules/features/media-tools/default.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ pkgs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- obs-studio
- ];
-}
diff --git a/nixos/modules/features/messaging/default.nix b/nixos/modules/features/messaging/default.nix
deleted file mode 100644
index 55354c2..0000000
--- a/nixos/modules/features/messaging/default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ pkgs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- pkgs.ayugram-desktop
- pkgs.legcord
- pkgs.vesktop
- ];
-}
diff --git a/nixos/modules/features/monitoring/default.nix b/nixos/modules/features/monitoring/default.nix
deleted file mode 100644
index 942e95e..0000000
--- a/nixos/modules/features/monitoring/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ pkgs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- # System monitors / fetch tools
- (btop.override { cudaSupport = true; })
- duf
- fastfetch
- ghfetch
- hyfetch
- ];
-} \ No newline at end of file
diff --git a/nixos/modules/features/mouse/default.nix b/nixos/modules/features/mouse/default.nix
deleted file mode 100644
index c984fbb..0000000
--- a/nixos/modules/features/mouse/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- # Input remapping service (mouse buttons/keys) + its configuration GUI.
- services.input-remapper.enable = true;
- environment.systemPackages = with pkgs; [
- piper
- input-remapper
- ];
-}
diff --git a/nixos/modules/features/mpd/default.nix b/nixos/modules/features/mpd/default.nix
deleted file mode 100644
index a339622..0000000
--- a/nixos/modules/features/mpd/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ pkgs, ... }:
-
-{
- # MPD server (music player daemon). The audio_output points at PipeWire
- # through its PulseAudio compatibility layer, since desktop audio is handled
- # by modules/system/audio.
- services.mpd = {
- enable = true;
- user = "seraphim";
- openFirewall = false;
- settings = {
- music_directory = "/mnt/giga/music";
- bind_to_address = "any";
- port = 6600;
- auto_update = "yes";
- audio_output = [
- {
- type = "pulse";
- name = "PipeWire Output";
- mixer_type = "hardware";
- }
- ];
- };
- };
-
- # MPD runs as a system service, so it needs the per-user runtime dir to
- # reach the PipeWire socket.
- systemd.services.mpd.environment = {
- XDG_RUNTIME_DIR = "/run/user/1000";
- };
-
- # mpd-mpris bridges MPD to the MPRIS media control interface (used by
- # Waybar/media keys). Lives here because it only matters when MPD is on.
- systemd.user.services.mpd-mpris = {
- description = "MPD MPRIS Service for Waybar";
- wantedBy = [ "default.target" ];
- after = [ "graphical-session.target" ];
- serviceConfig = {
- ExecStart = "${pkgs.mpd-mpris}/bin/mpd-mpris -network tcp -host 127.0.0.1 -port 6600";
- Restart = "on-failure";
- };
- };
-} \ No newline at end of file
diff --git a/nixos/modules/features/niri/default.nix b/nixos/modules/features/niri/default.nix
deleted file mode 100644
index 8c1a651..0000000
--- a/nixos/modules/features/niri/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ pkgs, ... }:
-
-{
- # niri: scrollable-tiling Wayland compositor.
- # enableDefaultPath = false stops the bundled unit pre-setting PATH, so the
- # session uses the environment NixOS generates.
- programs.niri.enable = true;
- systemd.user.services.niri.enableDefaultPath = false;
-
- # Icon themes + cursors the compositor and its launchers rely on.
- environment.systemPackages = with pkgs; [
- adwaita-icon-theme
- bibata-cursors
-
- hicolor-icon-theme
- # Shows polkit authentication dialogs as a layer-shell popup.
- hyprpolkitagent
- ];
-}
diff --git a/nixos/modules/features/noctalia-greeter/default.nix b/nixos/modules/features/noctalia-greeter/default.nix
deleted file mode 100644
index c65f806..0000000
--- a/nixos/modules/features/noctalia-greeter/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ pkgs, inputs, ... }:
-
-{
- # Noctalia greeter (display manager login screen).
- # The module comes from the flake input rather than nixpkgs.
- imports = [
- inputs.noctalia-greeter.nixosModules.default
- ];
-
- programs.noctalia-greeter = {
- enable = true;
- settings = {
- cursor = {
- theme = "Bibata-Modern-Ice";
- size = 24;
- path = "${pkgs.bibata-cursors}/share/icons";
- };
- };
- };
-} \ No newline at end of file
diff --git a/nixos/modules/features/noctalia-shell/default.nix b/nixos/modules/features/noctalia-shell/default.nix
deleted file mode 100644
index c9bc20c..0000000
--- a/nixos/modules/features/noctalia-shell/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ pkgs, inputs, ... }:
-
-{
- # Noctalia shell (the desktop shell this configuration is named after).
- # Two copies are installed:
- # - inputs.noctalia: the project built straight from the flake input.
- # - noctalia-shell: the packaged copy shipped in nixpkgs.
- environment.systemPackages = with pkgs; [
- inputs.noctalia.packages.${stdenv.hostPlatform.system}.default
- noctalia-shell
- ];
-}
diff --git a/nixos/modules/features/nvidia/default.nix b/nixos/modules/features/nvidia/default.nix
deleted file mode 100644
index f5f4d8f..0000000
--- a/nixos/modules/features/nvidia/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- # NVIDIA GPU driver. `open = false` uses the proprietary blob; modesetting
- # enables modeset + nvidia-drm for proper Wayland support.
- hardware.nvidia = {
- modesetting.enable = true;
- powerManagement.enable = false;
- open = false;
- nvidiaSettings = true;
- package = config.boot.kernelPackages.nvidiaPackages.latest;
- };
-
- environment.systemPackages = with pkgs; [
- # VA-API translation layer so NVIDIA can accelerate video decode.
- nvidia-vaapi-driver
- ];
-
- environment.sessionVariables = {
- LIBVA_DRIVER_NAME = "nvidia";
- __GLX_VENDOR_LIBRARY_NAME = "nvidia";
- NIXOS_OZONE_WL = "1";
- };
-} \ No newline at end of file
diff --git a/nixos/modules/features/p2p/default.nix b/nixos/modules/features/p2p/default.nix
deleted file mode 100644
index af05afe..0000000
--- a/nixos/modules/features/p2p/default.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ pkgs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- pkgs.qbittorrent
- ];
-}
diff --git a/nixos/modules/features/productivity/default.nix b/nixos/modules/features/productivity/default.nix
deleted file mode 100644
index 2b14ff6..0000000
--- a/nixos/modules/features/productivity/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ pkgs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- libreoffice
- obsidian
- anytype
- evince
- pkgs.masterpdfeditor
- ];
-}
diff --git a/nixos/modules/features/security/default.nix b/nixos/modules/features/security/default.nix
deleted file mode 100644
index 935ef22..0000000
--- a/nixos/modules/features/security/default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ pkgs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- keepassxc
- cryptomator
- ];
-}
diff --git a/nixos/modules/features/swingmusic/default.nix b/nixos/modules/features/swingmusic/default.nix
deleted file mode 100644
index 389e3c8..0000000
--- a/nixos/modules/features/swingmusic/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-#{ ... }:
-
-{
- # Swing Music: self-hosted local music server. Built separately and placed
- # in the user's home; this unit just turns it into a managed session service.
-# systemd.user.services.swingmusic = {
-# description = "Swing Music Local Server";
-# wantedBy = [ "graphical-session.target" ];
-# after = [ "graphical-session.target" ];
-# serviceConfig = {
-# ExecStart = "/home/seraphim/.swingmusic/swingmusic";
-# Restart = "on-failure";
-# WorkingDirectory = "/home/seraphim";
-# NoNewPrivileges = true;
-# PrivateTmp = true;
-# ProtectSystem = "strict";
-# ProtectHome = "false";
-# RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
-# };
-# };
-#}
diff --git a/nixos/modules/features/terminals/default.nix b/nixos/modules/features/terminals/default.nix
deleted file mode 100644
index ec7ead3..0000000
--- a/nixos/modules/features/terminals/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ pkgs, ... }:
-
-{
- programs.foot.settings.main.shell = "tmux";
- environment.systemPackages = with pkgs; [
- foot
- ghostty
- tmux
- ];
-}
diff --git a/nixos/modules/features/vpn-utils/default.nix b/nixos/modules/features/vpn-utils/default.nix
deleted file mode 100644
index ed5bb8d..0000000
--- a/nixos/modules/features/vpn-utils/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ pkgs, ... }:
-
-{
- programs.throne = {
- enable = true;
- tunMode.enable = true;
- };
-
- programs.amnezia-vpn.enable = true;
-
- environment.systemPackages = with pkgs; [
- wireguard-tools
- amneziawg-tools
- amneziawg-go
- ];
-
- # Throne's sing-box core resolves its underlying DNS by running
- # `resolvectl -i <default-iface> dns` and fails to parse the empty
- # per-link output (enp42s0 has no per-link DNS; ours is global Mullvad
- # in services.resolved). Push the same Mullvad servers per-link so the
- # resolvectl parse succeeds and proxy hostnames can be looked up.
- networking.networkmanager.dispatcherScripts = [
- {
- type = "basic";
- source = pkgs.writeText "link-dns.sh" ''
- #!/bin/sh
- if [ "$1" = "enp42s0" ] && { [ "$2" = "up" ] || [ "$2" = "dhcp4-change" ]; }; then
- ${pkgs.systemd}/bin/resolvectl dns enp42s0 194.242.2.2 194.242.2.4 || true
- fi
- '';
- }
- ];
-}
diff --git a/nixos/modules/features/wayland-tools/default.nix b/nixos/modules/features/wayland-tools/default.nix
deleted file mode 100644
index 399fcb0..0000000
--- a/nixos/modules/features/wayland-tools/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ pkgs, ... }:
-
-{
- # Wayland clipboard, screenshot, launcher and input tooling
- environment.systemPackages = with pkgs; [
- cliphist
- fuzzel
- grim
- slurp
- wl-clipboard
- wtype
- xwayland-satellite
- ];
-}
diff --git a/nixos/modules/features/wireshark/default.nix b/nixos/modules/features/wireshark/default.nix
deleted file mode 100644
index afebd39..0000000
--- a/nixos/modules/features/wireshark/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ pkgs, ... }:
-
-{
- # Wireshark: packet capture/analysis. The `wireshark` group grants non-root
- # capture permissions to the user (programs.wireshark sets up dumpcap).
- programs.wireshark = {
- enable = true;
- package = pkgs.wireshark;
- };
-
- users.users.seraphim = {
- extraGroups = [ "wireshark" ];
- };
-} \ No newline at end of file
diff --git a/nixos/modules/system/audio/default.nix b/nixos/modules/system/audio/default.nix
deleted file mode 100644
index 66ab087..0000000
--- a/nixos/modules/system/audio/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ pkgs, ... }:
-
-{
- # Real-time scheduling grants for the audio stack.
- security.rtkit.enable = true;
-
- # PipeWire is the desktop audio server; the PulseAudio shim keeps old
- # clients (e.g. MPD's "pulse" output) working without a real PulseAudio.
- services.pipewire = {
- enable = true;
- alsa.enable = true;
- alsa.support32Bit = true;
- pulse.enable = true;
- };
-
- environment.systemPackages = with pkgs; [
- brightnessctl
- pamixer
- playerctl
- ];
-} \ No newline at end of file
diff --git a/nixos/modules/system/boot/default.nix b/nixos/modules/system/boot/default.nix
deleted file mode 100644
index 54cb1e6..0000000
--- a/nixos/modules/system/boot/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ pkgs, ... }:
-
-{
- # systemd-boot on UEFI
- boot.loader.systemd-boot.enable = true;
- boot.loader.efi.canTouchEfiVariables = true;
-
- # EDID firmware (monitor identity) is exposed to the kernel as firmware so
- # the display can be driven at its native resolution; mi_edid.bin lives at
- # the repo root next to hardware-configuration.nix.
- # NOTE: the matching --kernel-params (drm.edid_firmware / video=) are kept
- # commented out because they hard-pin a specific DP output name.
- hardware.firmware = [
- (pkgs.runCommand "custom-edid" {} ''
- mkdir -p $out/lib/firmware/edid
- cp ${../../../mi_edid.bin} $out/lib/firmware/edid/mi_edid.bin
- '')
- ];
-} \ No newline at end of file
diff --git a/nixos/modules/system/hardware/default.nix b/nixos/modules/system/hardware/default.nix
deleted file mode 100644
index d81b60e..0000000
--- a/nixos/modules/system/hardware/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ config, pkgs, ... }:
-
-{
- # Secondary data drive, mounted as a regular user (rw, no root needed).
- fileSystems."/mnt/giga" = {
- device = "/dev/disk/by-uuid/bfed3a37-05e1-465b-a4b7-d74cd31bf937";
- fsType = "ext4";
- options = [ "defaults" "user" "rw" ];
- };
-
- # Mesa graphics stack (needed even on NVIDIA for software fallbacks / GL).
- hardware.graphics = {
- enable = true;
- enable32Bit = true;
- };
-
- # The actual NVIDIA driver is configured in modules/features/nvidia; this
- # just tells the X server legacy path to prefer the nvidia driver name.
- services.xserver.videoDrivers = [ "nvidia" ];
-}
diff --git a/nixos/modules/system/locale/default.nix b/nixos/modules/system/locale/default.nix
deleted file mode 100644
index f95ba12..0000000
--- a/nixos/modules/system/locale/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ ... }:
-
-{
- # Etc/GMT-7 is the Posix name for UTC+7 (no DST).
- time.timeZone = "Etc/GMT-7";
-
- # Swiss German by default; only LC_TIME uses American English.
- i18n.defaultLocale = "de_CH.UTF-8";
- i18n.extraLocaleSettings = {
- LC_ADDRESS = "de_CH.UTF-8";
- LC_IDENTIFICATION = "de_CH.UTF-8";
- LC_MEASUREMENT = "de_CH.UTF-8";
- LC_MONETARY = "de_CH.UTF-8";
- LC_NAME = "de_CH.UTF-8";
- LC_NUMERIC = "de_CH.UTF-8";
- LC_PAPER = "de_CH.UTF-8";
- LC_TELEPHONE = "de_CH.UTF-8";
- LC_TIME = "en_US.UTF-8";
- };
-} \ No newline at end of file
diff --git a/nixos/modules/system/network/default.nix b/nixos/modules/system/network/default.nix
deleted file mode 100644
index 588314e..0000000
--- a/nixos/modules/system/network/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ ... }:
-
-{
- networking.hostName = "opus";
- networking.networkmanager.enable = true;
-
- # Primary DNS via Mullvad DoT (Base mode).
- # When systemd-resolved is enabled, these servers are fed into its
- # `Resolve.DNS` list. The `#server` suffix is systemd-resolved's
- # DoT (DNS-over-TLS) syntax and is ignored by non-resolved consumers.
- networking.nameservers = [
- "194.242.2.4#base.dns.mullvad.net"
- "194.242.2.2#dns.mullvad.net"
- ];
-
- # systemd-resolved: Mullvad primary, Quad9 fallback.
- # Options live under `settings.Resolve` (the flat `services.resolved.*`
- # aliases were removed upstream — they now emit deprecation warnings).
- services.resolved = {
- enable = true;
- settings.Resolve = {
- DNSOverTLS = "opportunistic";
- DNSSEC = "false";
- Domains = [ "~." ];
- FallbackDNS = [
- "9.9.9.9#dns.quad9.net"
- "149.112.112.112#dns.quad9.net"
- ];
- };
- };
-
- # Avahi (Printer / Network Discovery)
- services.avahi = {
- enable = true;
- nssmdns4 = true;
- openFirewall = true;
- };
-}
diff --git a/nixos/modules/system/nix/default.nix b/nixos/modules/system/nix/default.nix
deleted file mode 100644
index a02cb6f..0000000
--- a/nixos/modules/system/nix/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ config, pkgs, lib, inputs, ... }:
-
-{
- # Nix itself: enable the flake + nix-command features this config relies on.
- nix.settings.experimental-features = [ "nix-command" "flakes" ];
- nixpkgs.config = {
- allowUnfree = true;
- permittedInsecurePackages = [
- "electron-39.8.10"
- ];
- };
-
- # Automatic garbage collection — drop builds older than a week.
- nix.gc = {
- automatic = true;
- dates = "weekly";
- options = "--delete-older-than 7d";
- };
-
- # envfs is the modern replacement for nix-ld: it mounts a FUSE filesystem
- # on /usr/bin and /bin that resolves shebangs (e.g. #!/usr/bin/env) to the
- # executables on the caller's PATH. It supersedes programs.nix-ld entirely.
- services.envfs.enable = true;
- security.polkit.enable = true;
-
- environment.variables = {
- SSL_CERT_FILE = "/etc/ssl/certs/ca-certificates.crt";
- NIX_SSL_CERT_FILE = "/etc/ssl/certs/ca-certificates.crt";
- };
-} \ No newline at end of file
diff --git a/nixos/modules/system/printing/default.nix b/nixos/modules/system/printing/default.nix
deleted file mode 100644
index 91828b2..0000000
--- a/nixos/modules/system/printing/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ pkgs, ... }:
-
-{
- # CUPS printing with drivers for common Brother (brlaser) and generic
- # printers (gutenprint); cups-filters provides the filter backends.
- services.printing = {
- enable = true;
- drivers = with pkgs; [
- brlaser
- gutenprint
- cups-filters
- ];
- };
-} \ No newline at end of file
diff --git a/nixos/modules/system/services/default.nix b/nixos/modules/system/services/default.nix
deleted file mode 100644
index 571ae3a..0000000
--- a/nixos/modules/system/services/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ ... }:
-
-{
- # File indexer (gvfs) + thumbnailer (tumbler) for the desktop shell.
- services.gvfs.enable = true;
- services.tumbler.enable = true;
- # GNOME Keyring: stores secrets for Chrome/keepassxc seams etc.
- services.gnome.gnome-keyring.enable = true;
- # dconf is the config DB used by GSettings-backed apps (nautilus, etc.).
- programs.dconf.enable = true;
-
- # Keep the journal bounded so it can't fill the root partition.
- services.journald.extraConfig = ''
- SystemMaxUse=50M
- MaxRetentionSec=1month
- '';
-
- # Cap core dumps so a crashing app can't fill the root partition with
- # multi-GB crash dumps (e.g. java/electron segfaults).
- systemd.coredump.settings.Coredump = {
- ProcessSizeMax = "512M";
- Storage = "external";
- };
-}
diff --git a/nixos/modules/system/users/default.nix b/nixos/modules/system/users/default.nix
deleted file mode 100644
index d9ac254..0000000
--- a/nixos/modules/system/users/default.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-{ pkgs, ... }:
-
-{
- # Main desktop user.
- users.users."seraphim" = {
- isNormalUser = true;
- description = "seraphim";
- shell = pkgs.zsh;
- # wheel for sudo/doas, networkmanager to manage connections itself.
- extraGroups = [ "networkmanager" "wheel" ];
- packages = with pkgs; [];
- };
-
- # doas (simpler sudo replacement)
- security.doas = {
- enable = true;
- # Give seraphim persistent passwordless-ish privileges, keeping the env.
- extraRules = [
- {
- users = [ "seraphim" ];
- keepEnv = true;
- persist = true;
- }
- ];
- };
-
- # fzf -- proper key bindings + completion for zsh.
- programs.fzf = {
- fuzzyCompletion = true;
- keybindings = true;
- };
-
- # ZSH + completion, oh-my-zsh, autosuggestions.
- programs.zsh = {
- enable = true;
- enableCompletion = true;
- ohMyZsh.enable = true;
- autosuggestions = {
- enable = true;
- highlightStyle = "fg=#6c7086";
- strategy = [ "history" "completion" ];
- };
- interactiveShellInit = ''
- # Fish-style full-screen Ctrl+R history search.
- export FZF_CTRL_R_OPTS="
- --layout=reverse
- --scheme=history
- --height=100%
- --border=sharp
- --border-label=' Ctrl+R '
- --highlight-line
- --pointer=→
- --info=inline-right
- --header-first
- --header='enter: accept · ctrl-/ : toggle preview'
- --preview='echo {}' --preview-window=down:3:hidden:wrap
- --bind=ctrl-/:toggle-preview
- "
- '';
- shellAliases = {
- ls = "eza -al --icons=auto";
- ll = "eza -al --icons=auto";
- fs = "fastfetch";
- hf = "hyfetch";
- sudo = "doas";
- open = "xdg-open";
- };
- };
-}