From c33c623bf34f50769823183b71eb9befe367af2e Mon Sep 17 00:00:00 2001 From: Nicole Date: Thu, 30 Apr 2026 20:44:17 +0200 Subject: [PATCH] Refactoring and cleaning --- etc/nixos/configuration.nix | 108 ++++++--------------------------- etc/nixos/modules/desktop.nix | 106 +------------------------------- etc/nixos/modules/flatpak.nix | 16 +++++ etc/nixos/modules/gdm.nix | 8 +++ etc/nixos/modules/gnome.nix | 22 +++++++ etc/nixos/modules/hyprland.nix | 8 +++ etc/nixos/modules/kde.nix | 14 +++++ etc/nixos/modules/niri.nix | 8 +++ etc/nixos/modules/ollama.nix | 14 +++++ etc/nixos/modules/programs.nix | 101 ++++++++++++------------------ etc/nixos/modules/sddm.nix | 12 ++++ etc/nixos/modules/sound.nix | 14 +++++ etc/nixos/modules/xdg.nix | 23 +++++++ 13 files changed, 196 insertions(+), 258 deletions(-) create mode 100644 etc/nixos/modules/flatpak.nix create mode 100644 etc/nixos/modules/gdm.nix create mode 100644 etc/nixos/modules/gnome.nix create mode 100644 etc/nixos/modules/hyprland.nix create mode 100644 etc/nixos/modules/kde.nix create mode 100644 etc/nixos/modules/niri.nix create mode 100644 etc/nixos/modules/ollama.nix create mode 100644 etc/nixos/modules/sddm.nix create mode 100644 etc/nixos/modules/sound.nix create mode 100644 etc/nixos/modules/xdg.nix diff --git a/etc/nixos/configuration.nix b/etc/nixos/configuration.nix index fbb37c8..e404ba9 100644 --- a/etc/nixos/configuration.nix +++ b/etc/nixos/configuration.nix @@ -7,8 +7,8 @@ let - # TO-DO - user = "nicole"; + username = "nicole"; + userdesc = "Nicole"; in @@ -25,9 +25,16 @@ in ./modules/nvidia.nix ./modules/ld-fix.nix ./modules/programs.nix + ./modules/flatpak.nix ./modules/bluetooth.nix ./modules/KawaiCA49.nix ./modules/logitech.nix + ./modules/ollama.nix + ./modules/sound.nix + ./modules/xdg.nix + ./modules/gdm.nix + #./modules/gnome.nix + #./modules/kde.nix ./cachix.nix ]; @@ -41,8 +48,6 @@ in #░█▀▄░█░█░█░█░░█░░█░░░█░█░█▀█░█░█░█▀▀░█▀▄ #░▀▀░░▀▀▀░▀▀▀░░▀░░▀▀▀░▀▀▀░▀░▀░▀▀░░▀▀▀░▀░▀ - #hardware.bluetooth.enable = true; # enables support for Bluetooth - #hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot services.blueman.enable = true; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; @@ -135,10 +140,9 @@ in #░█░█░▀▀█░█▀▀░█▀▄ #░▀▀▀░▀▀▀░▀▀▀░▀░▀ - - users.users.nicole = { + users.users.${username} = { isNormalUser = true; - description = "Nicole"; + description = userdesc; extraGroups = [ "networkmanager" "wheel" "libvrtd" "kvm" "qemu-libvirtd" "cdrom" "uucp" "docker" "audio"]; packages = with pkgs; []; }; @@ -150,88 +154,8 @@ in ]; }; -#░█░█░█▀█░█▀▀░█▀▄░█▀▀░█▀▀ -#░█░█░█░█░█▀▀░█▀▄░█▀▀░█▀▀ -#░▀▀▀░▀░▀░▀░░░▀░▀░▀▀▀░▀▀▀ - nixpkgs.config.allowUnfree = true; - #nixpkgs.config.cudaSupport = true; nix.settings.experimental-features = [ "nix-command" "flakes" ]; - -#░█░█░█▀▄░█▀▀ -#░▄▀▄░█░█░█░█ -#░▀░▀░▀▀░░▀▀▀ - - xdg.portal = { - enable = true; - extraPortals = with pkgs; [ - xdg-desktop-portal-gtk - xdg-desktop-portal-gnome - ]; - config = { - common = { - default = [ "*" ]; - }; - niri = { - default = [ - "gtk" - "gnome" - ]; - "org.freedesktop.impl.portal.ScreenCast" = [ "gnome" ]; - "org.freedesktop.impl.portal.Screenshot" = [ "gnome" ]; - }; - }; - }; - - - -#░█▀▀░█▀█░█░█░█▀█░█▀▄ -#░▀▀█░█░█░█░█░█░█░█░█ -#░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀▀░ - - - security.rtkit.enable = true; - services.pipewire = { - enable = true; - audio.enable = true; - wireplumber.enable = true; - pulse.enable = true; - alsa.enable = true; - alsa.support32Bit = true; - jack.enable = true; - }; - - musnix.enable = true; - - hardware.kawaiCA49 = { - enable = true; - user = "nicole"; - }; - - # ISO mounting utils # - programs.cdemu.enable = true; - - # KDE Connect - programs.kdeconnect.enable = true; - - # OLLAMA # - services.ollama = { - enable = true; - acceleration = "cuda"; - package = pkgs-unstable.ollama-cuda; - environmentVariables = { - CUDA_VISIBLE_DEVICES = "0"; - NVIDIA_VISIBLE_DEVICES = "all"; - LD_LIBRARY_PATH = "${pkgs.cudaPackages.cudatoolkit}/lib:${pkgs.cudaPackages.cudatoolkit}/lib64"; - }; - }; - - # STEAM # - programs.steam.enable = true; - programs.steam.package = pkgs.millennium-steam; - programs.steam.gamescopeSession.enable = true; - programs.gamemode.enable = true; - # DEFAULTS # environment = { sessionVariables = { @@ -241,7 +165,6 @@ in LIBVIRT_DEFAULT_URI = "qemu:///system"; NIXOS_OZONE_WL = "1"; }; - #etc."nvidia/nvidia-application-profiles-rc.d/50-limit-free-buffer-pool.json".source = ./50-limit-free-buffer-pool.json; }; # Fonts with emojis uwu # @@ -263,17 +186,20 @@ in system.stateVersion = "25.11"; system.autoUpgrade = { - enable = true; + enable = false; flake = inputs.self.outPath; flags = [ "--update-input" "nixpkgs" - "-L" # print build logs + "-L" ]; dates = "02:00"; randomizedDelaySec = "45min"; }; - + hardware.kawaiCA49 = { + enable = true; + user = "nicole"; + }; } diff --git a/etc/nixos/modules/desktop.nix b/etc/nixos/modules/desktop.nix index 4e6342c..f7fac75 100644 --- a/etc/nixos/modules/desktop.nix +++ b/etc/nixos/modules/desktop.nix @@ -5,116 +5,14 @@ {config, pkgs, pkgs-unstable, lib, inputs, ... }: { - # Enable GDM - #services.xserver.displayManager.gdm = { # 25.05 - services.displayManager.gdm = { # 25.11 - enable = true; - #autoLogin.enable = true; - #autoLogin.user = "nicole"; - }; - - systemd.services.copyGdmMonitorsXml = { - description = "Copy monitors.xml to GDM config"; - after = [ "network.target" "systemd-user-sessions.service" "display-manager.service" ]; - - serviceConfig = { - ExecStart = "${pkgs.bash}/bin/bash -c 'mkdir -p /var/lib/gdm/seat0/config && cp /home/nicole/.config/monitors.xml /var/lib/gdm/seat0/config/monitors.xml && chown gdm:gdm /var/lib/gdm/seat0/config/monitors.xml'"; - Type = "oneshot"; - }; - - wantedBy = [ "multi-user.target" ]; -}; - - # Enable SDDM - #services.xserver.displayManager.sddm.enable = true; - #services.displayManager.sddm.wayland.enable = true; - #environment.systemPackages = with pkgs; [ - # kdePackages.qtmultimedia - # libsForQt5.qt5.qtgraphicaleffects - # sddm-astronaut - # ]; - #services.displayManager.sddm.theme = "${pkgs.sddm-chili-theme}/share/sddm/themes/chili"; - #services.displayManager.sddm.wayland.enable = true; - - # Gnome Keyring (for window managers) + # Gnome Keyring (for window managers) services.gnome.gnome-keyring.enable = true; - - # HYPRLAND # - #programs.hyprland = { - # enable = true; - # withUWSM = true; - # xwayland.enable = true; - #}; - - # NIRI # - nixpkgs.overlays = [ inputs.niri.overlays.niri ]; - programs.niri = { - package = pkgs.niri-unstable; - enable = true; - }; - # MANGO # - # programs.mango.enable = true; - - # i3 - #services.xserver = { - # enable = true; - # windowManager.i3 = { - # enable = true; - # extraPackages = with pkgs; [ - # dmenu #application launcher most people use - # i3status # gives you the default i3 status bar - # i3blocks #if you are planning on using i3blocks over i3status - # ]; - # }; - #}; - #programs.i3lock.enable = true; #default i3 screen locker - - # SWAY - #programs.sway = { - # enable = true; - # wrapperFeatures.gtk = true; - #}; - - # GNOME - #services.desktopManager.gnome.enable = true; - #environment.gnome.excludePackages = with pkgs; [ - # baobab # disk usage analyzer - # cheese # photo booth - # eog # image viewer - # epiphany # web browser - # gedit # text editor - # simple-scan # document scanner - # totem # video player - # yelp # help viewer - # evince # document viewer - # file-roller # archive manager - # geary # email client - # seahorse # password manager - - # gnome-calculator gnome-calendar gnome-characters gnome-clocks gnome-contacts - # gnome-font-viewer gnome-logs gnome-maps gnome-music gnome-photos gnome-screenshot - # gnome-system-monitor gnome-weather gnome-disk-utility pkgs.gnome-connections - #]; - - # KDE - #services.desktopManager.plasma6.enable = true; - #environment.plasma6.excludePackages = with pkgs; [ - #kdePackages.elisa # Music player - #kdePackages.kdepim-runtime # Akonadi agents - #kdePackages.kmahjongg - #kdePackages.kmines - #kdePackages.konversation # IRC client - #kdePackages.kpat # Solitaire - #kdePackages.ksudoku - #kdePackages.ktorrent - #]; - + # ENV VARS # environment.sessionVariables = { WLR_NO_HARDWARE_CURSOR = "1"; NIXOS_OZONE_WL = "1"; CUDA_HOME = "${pkgs.cudaPackages.cudatoolkit}"; CUDA_MODULE_LOADING = "LAZY"; }; - } diff --git a/etc/nixos/modules/flatpak.nix b/etc/nixos/modules/flatpak.nix new file mode 100644 index 0000000..ee76854 --- /dev/null +++ b/etc/nixos/modules/flatpak.nix @@ -0,0 +1,16 @@ +{ config, ... }: +{ + services.flatpak.enable = true; + services.flatpak.packages = [ + "com.github.tchx84.Flatseal" + "org.pitivi.Pitivi" + "app.zen_browser.zen" + "org.blender.Blender" + "org.onlyoffice.desktopeditors" + "com.rustdesk.RustDesk" + "org.gimp.GIMP" + "com.anydesk.Anydesk" + "com.github.iwalton3.jellyfin-media-player" + ]; + +} diff --git a/etc/nixos/modules/gdm.nix b/etc/nixos/modules/gdm.nix new file mode 100644 index 0000000..27c7b89 --- /dev/null +++ b/etc/nixos/modules/gdm.nix @@ -0,0 +1,8 @@ +{ config, ... }: +{ + services.displayManager.gdm = { + enable = true; + #autoLogin.enable = true; + #autoLogin.user = "nicole"; + }; +} diff --git a/etc/nixos/modules/gnome.nix b/etc/nixos/modules/gnome.nix new file mode 100644 index 0000000..7c89daa --- /dev/null +++ b/etc/nixos/modules/gnome.nix @@ -0,0 +1,22 @@ +{ config, pkgs, ... }: +{ + services.desktopManager.gnome.enable = true; + #environment.gnome.excludePackages = with pkgs; [ + # baobab # disk usage analyzer + # cheese # photo booth + # eog # image viewer + # epiphany # web browser + # gedit # text editor + # simple-scan # document scanner + # totem # video player + # yelp # help viewer + # evince # document viewer + # file-roller # archive manager + # geary # email client + # seahorse # password manager + + # gnome-calculator gnome-calendar gnome-characters gnome-clocks gnome-contacts + # gnome-font-viewer gnome-logs gnome-maps gnome-music gnome-photos gnome-screenshot + # gnome-system-monitor gnome-weather gnome-disk-utility pkgs.gnome-connections + #]; +} diff --git a/etc/nixos/modules/hyprland.nix b/etc/nixos/modules/hyprland.nix new file mode 100644 index 0000000..01bbe21 --- /dev/null +++ b/etc/nixos/modules/hyprland.nix @@ -0,0 +1,8 @@ +{ config, ... }: +{ + programs.hyprland = { + enable = true; + withUWSM = true; + xwayland.enable = true; + }; +} diff --git a/etc/nixos/modules/kde.nix b/etc/nixos/modules/kde.nix new file mode 100644 index 0000000..9e58c9e --- /dev/null +++ b/etc/nixos/modules/kde.nix @@ -0,0 +1,14 @@ +{ config, pkgs, ... }: +{ + services.desktopManager.plasma6.enable = true; + #environment.plasma6.excludePackages = with pkgs; [ + #kdePackages.elisa # Music player + #kdePackages.kdepim-runtime # Akonadi agents + #kdePackages.kmahjongg + #kdePackages.kmines + #kdePackages.konversation # IRC client + #kdePackages.kpat # Solitaire + #kdePackages.ksudoku + #kdePackages.ktorrent + #]; +} diff --git a/etc/nixos/modules/niri.nix b/etc/nixos/modules/niri.nix new file mode 100644 index 0000000..b5f22e0 --- /dev/null +++ b/etc/nixos/modules/niri.nix @@ -0,0 +1,8 @@ +{config, pkgs, pkgs-unstable, input, ... }: +{ + nixpkgs.overlays = [ inputs.niri.overlays.niri ]; + programs.niri = { + package = pkgs.niri-unstable; + enable = true; + }; +} diff --git a/etc/nixos/modules/ollama.nix b/etc/nixos/modules/ollama.nix new file mode 100644 index 0000000..444d317 --- /dev/null +++ b/etc/nixos/modules/ollama.nix @@ -0,0 +1,14 @@ +{ config, pkgs, pkgs-unstable, ... }: +{ + # OLLAMA # + services.ollama = { + enable = true; + acceleration = "cuda"; + package = pkgs-unstable.ollama-cuda; + environmentVariables = { + CUDA_VISIBLE_DEVICES = "0"; + NVIDIA_VISIBLE_DEVICES = "all"; + LD_LIBRARY_PATH = "${pkgs.cudaPackages.cudatoolkit}/lib:${pkgs.cudaPackages.cudatoolkit}/lib64"; + }; + }; +} diff --git a/etc/nixos/modules/programs.nix b/etc/nixos/modules/programs.nix index 4dac9a6..140dd01 100644 --- a/etc/nixos/modules/programs.nix +++ b/etc/nixos/modules/programs.nix @@ -1,6 +1,3 @@ -#░█▀█░█▀█░█▀▀░█░█░█▀█░█▀▀░█▀▀░█▀▀ -#░█▀▀░█▀█░█░░░█▀▄░█▀█░█░█░█▀▀░▀▀█ -#░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀▀▀░▀▀▀ {config, pkgs, pkgs-unstable, lib, inputs, ... }: let @@ -30,8 +27,11 @@ let in { - - # RISKY, REMOVE ASAP ### +#░█▀█░█▀█░█▀▀░█░█░█▀█░█▀▀░█▀▀░█▀▀ +#░█▀▀░█▀█░█░░░█▀▄░█▀█░█░█░█▀▀░▀▀█ +#░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀▀▀░▀▀▀ + + nixpkgs.config.allowUnfree = true; nixpkgs.config.permittedInsecurePackages = [ "qtwebengine-5.15.19" "mbedtls-2.28.10" @@ -76,7 +76,6 @@ in # SCREENSHOTS AND RECORDING # grim slurp - #swappy satty wl-clipboard obs-studio @@ -95,7 +94,6 @@ in rofi libnotify wayvnc - #pkgs-unstable.xwayland-satellite (callPackage ./pkgs/xwayland-satellite/default.nix {}) xwayland-run @@ -115,21 +113,15 @@ in ffmpeg mpv feishin - #(callPackage ./pkgs/feishin/default.nix {}) - #spotify - # jellyfin-media-player jellyfin-mpv-shim # INTERNET # - #pkgs-unstable.telegram-desktop pkgs-unstable._64gram element-desktop wasistlos vesktop - #geary pkgs-unstable.mailspring pkgs-unstable.thunderbird - #tutanota-desktop pkgs-unstable.protonmail-desktop teams-for-linux qbittorrent @@ -152,11 +144,8 @@ in # GAMING # mangohud lutris - #heroic - #protonup-qt pkgs-unstable.protonplus gdlauncher-carbon - #adwsteamgtk lug-helper # OTHERS # @@ -189,13 +178,8 @@ in # AI # (callPackage ./pkgs/msty/default.nix {}) - #pkgs-unstable.jan - #claude-code pkgs-unstable.lmstudio - #(inputs.opencode.packages.${system}.default) pkgs-unstable.opencode - #pkgs-unstable.codex - #pkgs-unstable.gemini-cli # AUDIO AND DAW# helvum @@ -204,16 +188,10 @@ in bitwig-studio yabridge yabridgectl - # alsa-scarlett-gui - # qjackctl alsa-utils - #vital - #(callPackage ./pkgs/vital-stable/default.nix {}) # WINE # wineWowPackages.stable - #wineWowPackages.waylandFull - #wineWowPackages.staging winetricks bottles @@ -222,44 +200,41 @@ in (callPackage ./pkgs/anycubic-slicer-next/default.nix {}) ]; - # Enable Flaktpak - services.flatpak.enable = true; - services.flatpak.packages = [ - "com.github.tchx84.Flatseal" - "org.pitivi.Pitivi" - "app.zen_browser.zen" - "org.blender.Blender" - "org.onlyoffice.desktopeditors" - "com.rustdesk.RustDesk" - "org.gimp.GIMP" - "com.anydesk.Anydesk" - "com.github.iwalton3.jellyfin-media-player" - ]; + # STEAM # + programs.steam.enable = true; + programs.steam.package = pkgs.millennium-steam; + programs.steam.gamescopeSession.enable = true; + programs.gamemode.enable = true; -#programs.firefox = { -# enable = true; -#}; + # ISO mounting utils # + programs.cdemu.enable = true; + + # KDE Connect + programs.kdeconnect.enable = true; -services.hardware.openrgb = { - enable = true; - package = pkgs-unstable.openrgb-with-all-plugins; -}; - -programs.spicetify = { - enable = true; - enabledExtensions = with spicePkgs.extensions; [ - adblockify - hidePodcasts - shuffle # shuffle+ (special characters are sanitized out of extension names) - ]; - #theme = spicePkgs.themes.sleek; - #colorScheme = "matugen"; -}; - -virtualisation.docker.rootless = { - enable = true; - setSocketVariable = true; -}; + # OPENRGB # + services.hardware.openrgb = { + enable = true; + package = pkgs-unstable.openrgb-with-all-plugins; + }; + + # SPICETIFY # + programs.spicetify = { + enable = true; + enabledExtensions = with spicePkgs.extensions; [ + adblockify + hidePodcasts + shuffle # shuffle+ (special characters are sanitized out of extension names) + ]; + #theme = spicePkgs.themes.sleek; + #colorScheme = "matugen"; + }; + + # DOCKER # + virtualisation.docker.rootless = { + enable = true; + setSocketVariable = true; + }; security.pam.loginLimits = [{ domain = "nicole"; diff --git a/etc/nixos/modules/sddm.nix b/etc/nixos/modules/sddm.nix new file mode 100644 index 0000000..39fa4ab --- /dev/null +++ b/etc/nixos/modules/sddm.nix @@ -0,0 +1,12 @@ +{ config, pkgs, ... }: +{ + services.xserver.displayManager.sddm.enable = true; + services.displayManager.sddm.wayland.enable = true; + environment.systemPackages = with pkgs; [ + kdePackages.qtmultimedia + libsForQt5.qt5.qtgraphicaleffects + sddm-astronaut + ]; + services.displayManager.sddm.theme = "${pkgs.sddm-chili-theme}/share/sddm/themes/chili"; + services.displayManager.sddm.wayland.enable = true; +} diff --git a/etc/nixos/modules/sound.nix b/etc/nixos/modules/sound.nix new file mode 100644 index 0000000..ee697f6 --- /dev/null +++ b/etc/nixos/modules/sound.nix @@ -0,0 +1,14 @@ +{ config, ... }: +{ + security.rtkit.enable = true; + services.pipewire = { + enable = true; + audio.enable = true; + wireplumber.enable = true; + pulse.enable = true; + alsa.enable = true; + alsa.support32Bit = true; + jack.enable = true; + }; + musnix.enable = true; +} diff --git a/etc/nixos/modules/xdg.nix b/etc/nixos/modules/xdg.nix new file mode 100644 index 0000000..10d5720 --- /dev/null +++ b/etc/nixos/modules/xdg.nix @@ -0,0 +1,23 @@ +{ config, pkgs, ... }: +{ + xdg.portal = { + enable = true; + extraPortals = with pkgs; [ + xdg-desktop-portal-gtk + xdg-desktop-portal-gnome + ]; + config = { + common = { + default = [ "*" ]; + }; + niri = { + default = [ + "gtk" + "gnome" + ]; + "org.freedesktop.impl.portal.ScreenCast" = [ "gnome" ]; + "org.freedesktop.impl.portal.Screenshot" = [ "gnome" ]; + }; + }; + }; +}