From 7dd785b1005aec643004c06eaa7af690b00cb48f Mon Sep 17 00:00:00 2001 From: seraphim <18ycm9tx@anonaddy.me> Date: Sun, 16 Aug 2026 21:55:33 +0700 Subject: . --- nixos/docs/ADDING_PACKAGES.md | 183 --------------------- nixos/flake.lock | 152 ----------------- nixos/flake.nix | 29 ---- nixos/hardware-configuration.nix | 33 ---- nixos/hosts/opus/default.nix | 87 ---------- nixos/mi_edid.bin | Bin 384 -> 0 bytes nixos/modules/features/appimage/default.nix | 15 -- nixos/modules/features/audio-tools/default.nix | 13 -- nixos/modules/features/binary-compat/default.nix | 23 --- nixos/modules/features/browsers/default.nix | 10 -- nixos/modules/features/cli-tools/default.nix | 26 --- nixos/modules/features/desktop-apps/default.nix | 6 - nixos/modules/features/dev-tools/default.nix | 26 --- nixos/modules/features/editors/default.nix | 12 -- nixos/modules/features/file-managers/default.nix | 21 --- nixos/modules/features/fonts/default.nix | 20 --- nixos/modules/features/gaming/default.nix | 15 -- nixos/modules/features/gst-codecs/default.nix | 12 -- nixos/modules/features/language-tools/default.nix | 7 - nixos/modules/features/media-tools/default.nix | 7 - nixos/modules/features/messaging/default.nix | 9 - nixos/modules/features/monitoring/default.nix | 12 -- nixos/modules/features/mouse/default.nix | 10 -- nixos/modules/features/mpd/default.nix | 43 ----- nixos/modules/features/niri/default.nix | 19 --- .../modules/features/noctalia-greeter/default.nix | 20 --- nixos/modules/features/noctalia-shell/default.nix | 12 -- nixos/modules/features/nvidia/default.nix | 24 --- nixos/modules/features/p2p/default.nix | 7 - nixos/modules/features/productivity/default.nix | 11 -- nixos/modules/features/security/default.nix | 8 - nixos/modules/features/swingmusic/default.nix | 21 --- nixos/modules/features/terminals/default.nix | 10 -- nixos/modules/features/vpn-utils/default.nix | 33 ---- nixos/modules/features/wayland-tools/default.nix | 14 -- nixos/modules/features/wireshark/default.nix | 14 -- nixos/modules/system/audio/default.nix | 21 --- nixos/modules/system/boot/default.nix | 19 --- nixos/modules/system/hardware/default.nix | 20 --- nixos/modules/system/locale/default.nix | 20 --- nixos/modules/system/network/default.nix | 38 ----- nixos/modules/system/nix/default.nix | 30 ---- nixos/modules/system/printing/default.nix | 14 -- nixos/modules/system/services/default.nix | 24 --- nixos/modules/system/users/default.nix | 69 -------- 45 files changed, 1219 deletions(-) delete mode 100644 nixos/docs/ADDING_PACKAGES.md delete mode 100644 nixos/flake.lock delete mode 100644 nixos/flake.nix delete mode 100644 nixos/hardware-configuration.nix delete mode 100644 nixos/hosts/opus/default.nix delete mode 100644 nixos/mi_edid.bin delete mode 100644 nixos/modules/features/appimage/default.nix delete mode 100644 nixos/modules/features/audio-tools/default.nix delete mode 100644 nixos/modules/features/binary-compat/default.nix delete mode 100644 nixos/modules/features/browsers/default.nix delete mode 100644 nixos/modules/features/cli-tools/default.nix delete mode 100644 nixos/modules/features/desktop-apps/default.nix delete mode 100644 nixos/modules/features/dev-tools/default.nix delete mode 100644 nixos/modules/features/editors/default.nix delete mode 100644 nixos/modules/features/file-managers/default.nix delete mode 100644 nixos/modules/features/fonts/default.nix delete mode 100644 nixos/modules/features/gaming/default.nix delete mode 100644 nixos/modules/features/gst-codecs/default.nix delete mode 100644 nixos/modules/features/language-tools/default.nix delete mode 100644 nixos/modules/features/media-tools/default.nix delete mode 100644 nixos/modules/features/messaging/default.nix delete mode 100644 nixos/modules/features/monitoring/default.nix delete mode 100644 nixos/modules/features/mouse/default.nix delete mode 100644 nixos/modules/features/mpd/default.nix delete mode 100644 nixos/modules/features/niri/default.nix delete mode 100644 nixos/modules/features/noctalia-greeter/default.nix delete mode 100644 nixos/modules/features/noctalia-shell/default.nix delete mode 100644 nixos/modules/features/nvidia/default.nix delete mode 100644 nixos/modules/features/p2p/default.nix delete mode 100644 nixos/modules/features/productivity/default.nix delete mode 100644 nixos/modules/features/security/default.nix delete mode 100644 nixos/modules/features/swingmusic/default.nix delete mode 100644 nixos/modules/features/terminals/default.nix delete mode 100644 nixos/modules/features/vpn-utils/default.nix delete mode 100644 nixos/modules/features/wayland-tools/default.nix delete mode 100644 nixos/modules/features/wireshark/default.nix delete mode 100644 nixos/modules/system/audio/default.nix delete mode 100644 nixos/modules/system/boot/default.nix delete mode 100644 nixos/modules/system/hardware/default.nix delete mode 100644 nixos/modules/system/locale/default.nix delete mode 100644 nixos/modules/system/network/default.nix delete mode 100644 nixos/modules/system/nix/default.nix delete mode 100644 nixos/modules/system/printing/default.nix delete mode 100644 nixos/modules/system/services/default.nix delete mode 100644 nixos/modules/system/users/default.nix (limited to 'nixos') 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.` -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//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/ - ``` - -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 Binary files a/nixos/mi_edid.bin and /dev/null 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 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"; - }; - }; -} -- cgit v1.2.3