diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/apps.nix | 61 | ||||
| -rw-r--r-- | modules/desktop.nix | 107 | ||||
| -rw-r--r-- | modules/development.nix | 46 | ||||
| -rw-r--r-- | modules/display.nix | 35 | ||||
| -rw-r--r-- | modules/networking.nix | 12 | ||||
| -rw-r--r-- | modules/nvidia.nix | 48 |
6 files changed, 0 insertions, 309 deletions
diff --git a/modules/apps.nix b/modules/apps.nix index f6f3db3..885c650 100644 --- a/modules/apps.nix +++ b/modules/apps.nix @@ -14,9 +14,6 @@ }; config = lib.mkIf config.apps.enable { - - programs.firefox.enable = true; - programs.kdeconnect.enable = true; # Opens TCP/UDP ports (does not when it's a pkg) environment.systemPackages = with pkgs; [ @@ -34,10 +31,6 @@ piper # ^ GUI frontend # Utility - obs-studio - gimp - inkscape - keepassxc protonvpn-gui (python312.withPackages (pypkgs: [ pypkgs.matplotlib @@ -45,85 +38,39 @@ pypkgs.pygithub pypkgs.pipx ])) - kdePackages.filelight kdePackages.korganizer kdePackages.kaddressbook syncthingtray - libreoffice - albert - aseprite cloudflare-warp - haruna mpv vlc - gparted gnome-clocks - inputs.zen-browser.packages."${system}".twilight - krita pipeline # Youtube desktop app - (flameshot.override { enableWlrSupport = true; }) - qdirstat # WizTree for linux - kdePackages.ark - kdePackages.dolphin - eog kopia-ui rclone-ui - kdePackages.spectacle binsider - filezilla yt-dlp spotify inotify-tools _010editor - chromium - fsearch warpd wl-kbptr nnd # Terminal debugger for linux cppcheck smartmontools # For ZFS monitoring apparently - libsodium # Needed for webzfs, seems to be a python crypto library - libsodium.dev - libsodium.out - python313Packages.libnacl - # syncoid # ZFS Syncing across pools - sanoid # ZFS Scheduled snapshots # Communication wasistlos # Whatsapp - vesktop inputs.eko.packages."${system}".eko # Terminal - ghostty - oh-my-posh - tmux - neovim tree-sitter # CLI - git - delta - gh - stow - eza - keychain - bc - bat - fd - ripgrep wakatime-cli - fastfetch - btop - sqlite - unzip - fzf - zoxide watchexec - gitleaks rar dig minisign libisoburn - dua mprocs imagemagick ghostscript # for imagemagick to support pdf files @@ -131,15 +78,10 @@ duf tldr bottom - hyperfine # for benchmarking - wget tectonic mermaid-cli - ffmpeg - nh kondo # Cleans build caches kopia - appimage-run rclone usbutils ]; @@ -148,9 +90,6 @@ # Note, will break discord, also tried proton VPN, still has conn issues services.cloudflare-warp.enable = true; - # Mouse config service (used with piper) - services.ratbagd.enable = true; - # Install Docker (without using root access) #virtualisation.docker.enable = true; virtualisation.docker.rootless = { diff --git a/modules/desktop.nix b/modules/desktop.nix index 3b3bc21..899d5db 100644 --- a/modules/desktop.nix +++ b/modules/desktop.nix @@ -1,114 +1,11 @@ { pkgs, ... }: { - imports = [ - # ./nvidia.nix - ]; - environment.systemPackages = with pkgs; [ openrgb-with-all-plugins phoronix-test-suite - - libsodium # Needed for webzfs, seems to be a python crypto library - libsodium.dev - libsodium.out - python313Packages.libnacl ]; - users.groups.webzfs = { }; - users.users.webzfs = { - isNormalUser = true; - password = ""; - }; - - hardware.keyboard.qmk.enable = true; - services.udev.extraRules = '' - # Match ANY Keychron device via hidraw (covers Q1 HE in all modes) - KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", MODE="0666", TAG+="uaccess", TAG+="udev-acl" - - # STM bootloader for flashing firmware - SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0666", TAG+="uaccess" - ''; - - security.sudo.extraRules = [ - { - users = [ "webzfs" ]; - commands = [ - { - command = "/nix/store/*-zfs-user-*/bin/zpool"; - options = [ "NOPASSWD" ]; - } - { - command = "/nix/store/*-zfs-user-*/bin/zfs"; - options = [ "NOPASSWD" ]; - } - ]; - } - ]; - security.sudo.extraConfig = '' - Defaults env_reset,always_set_home,secure_path="/run/current-system/sw/bin:/run/wrappers/bin:/nix/store" - Defaults secure_path="/run/current-system/sw/bin:/bin:/usr/bin" - Defaults env_reset - Defaults ignore_dot - Defaults !requiretty - ''; - environment.etc."sudoers.d/webzfs".text = '' - # WebZFS sudo permissions - # Allow webzfs user to execute ZFS and SMART commands - - # ZFS commands (multiple paths for different distributions) - webzfs ALL=(ALL) NOPASSWD: zpool, zfs, zdb -l *, /run/current-system/sw/bin/zpool - - # SMART monitoring (multiple paths for different distributions) - webzfs ALL=(ALL) NOPASSWD: smartctl - - # Disk utilities - webzfs ALL=(ALL) NOPASSWD: blkid - - # Sanoid/Syncoid (optional) - webzfs ALL=(ALL) NOPASSWD: sanoid, syncoid - - # Service management (systemctl for system services page) - webzfs ALL=(ALL) NOPASSWD: systemctl - - # Crontab editing - webzfs ALL=(ALL) NOPASSWD: crontab - - # File editing (for config files like smartd.conf, sanoid.conf) - webzfs ALL=(ALL) NOPASSWD: mkdir - - # Read system journal and plain-text syslog files for the - # Observability -> System Log page. journalctl needs sudo (or - # systemd-journal group) on most distros. tail covers Debian/Ubuntu - # (/var/log/syslog) and old RHEL (/var/log/messages). - webzfs ALL=(ALL) NOPASSWD: tail - ''; - - systemd.units."webzfs.service".text = '' - [Unit] - Description=WebZFS Web Management Interface - After=network.target zfs-mount.service - - [Service] - Type=notify - User=root - Group=root - WorkingDirectory=/opt/webzfs - Environment="PATH=/opt/webzfs/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/run/current-system/sw/bin:/sbin:/bin" - ExecStart=/opt/webzfs/.venv/bin/gunicorn -c config/gunicorn.conf.py - Restart=always - RestartSec=5 - - # Runtime directory for unix socket support - # Creates /run/webzfs/ on service start, removes on stop - # To use: set BIND=unix:/run/webzfs/webzfs.sock in .env - RuntimeDirectory=webzfs - RuntimeDirectoryMode=0755 - - [Install] - WantedBy=multi-user.target - ''; - # Automaticaly mount C drive fileSystems."/mnt/c" = { device = "/dev/nvme1n1p4"; @@ -121,10 +18,6 @@ ]; }; - boot.supportedFilesystems = [ "zfs" ]; - boot.zfs.forceImportRoot = false; - networking.hostId = "7223ffff"; - # Automatically mount E drive # fileSystems."/mnt/e" = { # device = "/dev/sda2"; diff --git a/modules/development.nix b/modules/development.nix index cd2c148..8520fc1 100644 --- a/modules/development.nix +++ b/modules/development.nix @@ -9,69 +9,23 @@ config = lib.mkIf config.development.enable { environment.systemPackages = with pkgs; [ - jetbrains.idea-community - zed-editor - jetbrains.clion - - # LSP - asm-lsp - astro-language-server - basedpyright - bash-language-server - vscode-langservers-extracted # html/css/json - gopls - lemminx # xml - lua-language-server - markdown-oxide - marksman - mdx-language-server - neocmakelsp - nil # nix - tailwindcss-language-server - taplo # toml - typescript-language-server - yaml-language-server - # pnpm i -g css-variables-language-server - # pnpm install -g gh-actions-language-server - jdt-language-server - kotlin-language-server # Tools - stylua - gofumpt golangci-lint - prettierd - jq - lldb # codelldb debugger shellcheck beautysh # shell formatter - gdb - nasm rustup - tokei # count lines of code - go - pnpm - nodejs_24 - clang - clang-tools - gcc - gnumake goose sqlc maven gradle kotlin - mold # fast linker, for rust gomodifytags - sops go-tools # staticcheck gosec devtoolbox busybox # A bunch of utils like lsof and fuser - cmake libllvm - lld - file universal-ctags valgrind diff --git a/modules/display.nix b/modules/display.nix deleted file mode 100644 index 87b183a..0000000 --- a/modules/display.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ pkgs, ... }: { - - # Enable the KDE Plasma Desktop Environment. - services.displayManager.sddm.enable = true; - services.desktopManager.plasma6.enable = true; - services.displayManager.sddm.settings = { - Autologin = { - Session = "plasma.desktop"; - User = "kyren"; - }; - }; - - # Enable the X11 windowing system. - # You can disable this if you're only using the Wayland session. - services.xserver.enable = true; - - # Configure keymap in X11 - services.xserver.xkb = { - layout = "us"; - variant = ""; - }; - - # From when I tried hyprland, might aswell keep this? - xdg.portal = { - enable = true; - xdgOpenUsePortal = true; - - extraPortals = with pkgs; [ - kdePackages.xdg-desktop-portal-kde - xdg-desktop-portal-gtk - xdg-desktop-portal-wlr - ]; - }; - -} diff --git a/modules/networking.nix b/modules/networking.nix deleted file mode 100644 index 27246dd..0000000 --- a/modules/networking.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: { - - # Enable networking - networking.networkmanager.enable = true; - - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - - #networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - -} diff --git a/modules/nvidia.nix b/modules/nvidia.nix deleted file mode 100644 index 0bc9b32..0000000 --- a/modules/nvidia.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ config, ... }: { - - # Fix "graphics reset" issue with nvidia GPU - # See section 10 of https://wiki.archlinux.org/title/NVIDIA/Tips_and_tricks - boot.extraModprobeConfig = '' - options nvidia NVreg_PreserveVideoMemoryAllocations=1 - ''; - - # Enable OpenGL - hardware.graphics = { - enable = true; - }; - - # Load nvidia driver for Xorg and Wayland - services.xserver.videoDrivers = ["nvidia"]; - - hardware.nvidia = { - - # Modesetting is required. - modesetting.enable = true; - - # Nvidia power management. Experimental, and can cause sleep/suspend to fail. - # Enable this if you have graphical corruption issues or application crashes after waking - # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead - # of just the bare essentials. - powerManagement.enable = false; - - # Fine-grained power management. Turns off GPU when not in use. - # Experimental and only works on modern Nvidia GPUs (Turing or newer). - powerManagement.finegrained = false; - - # Use the NVidia open source kernel module (not to be confused with the - # independent third-party "nouveau" open source driver). - # Support is limited to the Turing and later architectures. Full list of - # supported GPUs is at: - # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus - # Only available from driver 515.43.04+ - open = false; - - # Enable the Nvidia settings menu, - # accessible via `nvidia-settings`. - nvidiaSettings = true; - - # Optionally, you may need to select the appropriate driver version for your specific GPU. - package = config.boot.kernelPackages.nvidiaPackages.stable; - }; - -} |
