diff options
| author | seraphim <18ycm9tx@anonaddy.me> | 2026-08-16 21:55:33 +0700 |
|---|---|---|
| committer | seraphim <18ycm9tx@anonaddy.me> | 2026-08-16 21:55:33 +0700 |
| commit | 7dd785b1005aec643004c06eaa7af690b00cb48f (patch) | |
| tree | bd8700ef4dfb8c0a1315f4eb41784d1d4ba43001 /nixos/modules | |
| parent | 100094fe8b9398c083fa6351925a00f5b3a9d36a (diff) | |
.
Diffstat (limited to 'nixos/modules')
39 files changed, 0 insertions, 735 deletions
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"; - }; - }; -} |
