Refactoring and cleaning

This commit is contained in:
Nicole 2026-04-30 20:44:17 +02:00
parent 9979d7bc42
commit c33c623bf3
13 changed files with 196 additions and 258 deletions

View file

@ -7,8 +7,8 @@
let let
# TO-DO username = "nicole";
user = "nicole"; userdesc = "Nicole";
in in
@ -25,9 +25,16 @@ in
./modules/nvidia.nix ./modules/nvidia.nix
./modules/ld-fix.nix ./modules/ld-fix.nix
./modules/programs.nix ./modules/programs.nix
./modules/flatpak.nix
./modules/bluetooth.nix ./modules/bluetooth.nix
./modules/KawaiCA49.nix ./modules/KawaiCA49.nix
./modules/logitech.nix ./modules/logitech.nix
./modules/ollama.nix
./modules/sound.nix
./modules/xdg.nix
./modules/gdm.nix
#./modules/gnome.nix
#./modules/kde.nix
./cachix.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; services.blueman.enable = true;
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
@ -135,10 +140,9 @@ in
#░█░█░▀▀█░█▀▀░█▀▄ #░█░█░▀▀█░█▀▀░█▀▄
#░▀▀▀░▀▀▀░▀▀▀░▀░▀ #░▀▀▀░▀▀▀░▀▀▀░▀░▀
users.users.${username} = {
users.users.nicole = {
isNormalUser = true; isNormalUser = true;
description = "Nicole"; description = userdesc;
extraGroups = [ "networkmanager" "wheel" "libvrtd" "kvm" "qemu-libvirtd" "cdrom" "uucp" "docker" "audio"]; extraGroups = [ "networkmanager" "wheel" "libvrtd" "kvm" "qemu-libvirtd" "cdrom" "uucp" "docker" "audio"];
packages = with pkgs; []; packages = with pkgs; [];
}; };
@ -150,88 +154,8 @@ in
]; ];
}; };
#░█░█░█▀█░█▀▀░█▀▄░█▀▀░█▀▀
#░█░█░█░█░█▀▀░█▀▄░█▀▀░█▀▀
#░▀▀▀░▀░▀░▀░░░▀░▀░▀▀▀░▀▀▀
nixpkgs.config.allowUnfree = true;
#nixpkgs.config.cudaSupport = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ]; 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 # # DEFAULTS #
environment = { environment = {
sessionVariables = { sessionVariables = {
@ -241,7 +165,6 @@ in
LIBVIRT_DEFAULT_URI = "qemu:///system"; LIBVIRT_DEFAULT_URI = "qemu:///system";
NIXOS_OZONE_WL = "1"; 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 # # Fonts with emojis uwu #
@ -263,17 +186,20 @@ in
system.stateVersion = "25.11"; system.stateVersion = "25.11";
system.autoUpgrade = { system.autoUpgrade = {
enable = true; enable = false;
flake = inputs.self.outPath; flake = inputs.self.outPath;
flags = [ flags = [
"--update-input" "--update-input"
"nixpkgs" "nixpkgs"
"-L" # print build logs "-L"
]; ];
dates = "02:00"; dates = "02:00";
randomizedDelaySec = "45min"; randomizedDelaySec = "45min";
}; };
hardware.kawaiCA49 = {
enable = true;
user = "nicole";
};
} }

View file

@ -5,116 +5,14 @@
{config, pkgs, pkgs-unstable, lib, inputs, ... }: {config, pkgs, pkgs-unstable, lib, inputs, ... }:
{ {
# Enable GDM # Gnome Keyring (for window managers)
#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)
services.gnome.gnome-keyring.enable = true; 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 # # ENV VARS #
# 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
#];
environment.sessionVariables = { environment.sessionVariables = {
WLR_NO_HARDWARE_CURSOR = "1"; WLR_NO_HARDWARE_CURSOR = "1";
NIXOS_OZONE_WL = "1"; NIXOS_OZONE_WL = "1";
CUDA_HOME = "${pkgs.cudaPackages.cudatoolkit}"; CUDA_HOME = "${pkgs.cudaPackages.cudatoolkit}";
CUDA_MODULE_LOADING = "LAZY"; CUDA_MODULE_LOADING = "LAZY";
}; };
} }

View file

@ -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"
];
}

View file

@ -0,0 +1,8 @@
{ config, ... }:
{
services.displayManager.gdm = {
enable = true;
#autoLogin.enable = true;
#autoLogin.user = "nicole";
};
}

View file

@ -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
#];
}

View file

@ -0,0 +1,8 @@
{ config, ... }:
{
programs.hyprland = {
enable = true;
withUWSM = true;
xwayland.enable = true;
};
}

14
etc/nixos/modules/kde.nix Normal file
View file

@ -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
#];
}

View file

@ -0,0 +1,8 @@
{config, pkgs, pkgs-unstable, input, ... }:
{
nixpkgs.overlays = [ inputs.niri.overlays.niri ];
programs.niri = {
package = pkgs.niri-unstable;
enable = true;
};
}

View file

@ -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";
};
};
}

View file

@ -1,6 +1,3 @@
#░█▀█░█▀█░█▀▀░█░█░█▀█░█▀▀░█▀▀░█▀▀
#░█▀▀░█▀█░█░░░█▀▄░█▀█░█░█░█▀▀░▀▀█
#░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀▀▀░▀▀▀
{config, pkgs, pkgs-unstable, lib, inputs, ... }: {config, pkgs, pkgs-unstable, lib, inputs, ... }:
let let
@ -30,8 +27,11 @@ let
in in
{ {
#░█▀█░█▀█░█▀▀░█░█░█▀█░█▀▀░█▀▀░█▀▀
# RISKY, REMOVE ASAP ### #░█▀▀░█▀█░█░░░█▀▄░█▀█░█░█░█▀▀░▀▀█
#░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀▀▀░▀▀▀
nixpkgs.config.allowUnfree = true;
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [
"qtwebengine-5.15.19" "qtwebengine-5.15.19"
"mbedtls-2.28.10" "mbedtls-2.28.10"
@ -76,7 +76,6 @@ in
# SCREENSHOTS AND RECORDING # # SCREENSHOTS AND RECORDING #
grim grim
slurp slurp
#swappy
satty satty
wl-clipboard wl-clipboard
obs-studio obs-studio
@ -95,7 +94,6 @@ in
rofi rofi
libnotify libnotify
wayvnc wayvnc
#pkgs-unstable.xwayland-satellite
(callPackage ./pkgs/xwayland-satellite/default.nix {}) (callPackage ./pkgs/xwayland-satellite/default.nix {})
xwayland-run xwayland-run
@ -115,21 +113,15 @@ in
ffmpeg ffmpeg
mpv mpv
feishin feishin
#(callPackage ./pkgs/feishin/default.nix {})
#spotify
# jellyfin-media-player
jellyfin-mpv-shim jellyfin-mpv-shim
# INTERNET # # INTERNET #
#pkgs-unstable.telegram-desktop
pkgs-unstable._64gram pkgs-unstable._64gram
element-desktop element-desktop
wasistlos wasistlos
vesktop vesktop
#geary
pkgs-unstable.mailspring pkgs-unstable.mailspring
pkgs-unstable.thunderbird pkgs-unstable.thunderbird
#tutanota-desktop
pkgs-unstable.protonmail-desktop pkgs-unstable.protonmail-desktop
teams-for-linux teams-for-linux
qbittorrent qbittorrent
@ -152,11 +144,8 @@ in
# GAMING # # GAMING #
mangohud mangohud
lutris lutris
#heroic
#protonup-qt
pkgs-unstable.protonplus pkgs-unstable.protonplus
gdlauncher-carbon gdlauncher-carbon
#adwsteamgtk
lug-helper lug-helper
# OTHERS # # OTHERS #
@ -189,13 +178,8 @@ in
# AI # # AI #
(callPackage ./pkgs/msty/default.nix {}) (callPackage ./pkgs/msty/default.nix {})
#pkgs-unstable.jan
#claude-code
pkgs-unstable.lmstudio pkgs-unstable.lmstudio
#(inputs.opencode.packages.${system}.default)
pkgs-unstable.opencode pkgs-unstable.opencode
#pkgs-unstable.codex
#pkgs-unstable.gemini-cli
# AUDIO AND DAW# # AUDIO AND DAW#
helvum helvum
@ -204,16 +188,10 @@ in
bitwig-studio bitwig-studio
yabridge yabridge
yabridgectl yabridgectl
# alsa-scarlett-gui
# qjackctl
alsa-utils alsa-utils
#vital
#(callPackage ./pkgs/vital-stable/default.nix {})
# WINE # # WINE #
wineWowPackages.stable wineWowPackages.stable
#wineWowPackages.waylandFull
#wineWowPackages.staging
winetricks winetricks
bottles bottles
@ -222,44 +200,41 @@ in
(callPackage ./pkgs/anycubic-slicer-next/default.nix {}) (callPackage ./pkgs/anycubic-slicer-next/default.nix {})
]; ];
# Enable Flaktpak # STEAM #
services.flatpak.enable = true; programs.steam.enable = true;
services.flatpak.packages = [ programs.steam.package = pkgs.millennium-steam;
"com.github.tchx84.Flatseal" programs.steam.gamescopeSession.enable = true;
"org.pitivi.Pitivi" programs.gamemode.enable = true;
"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"
];
#programs.firefox = { # ISO mounting utils #
# enable = true; programs.cdemu.enable = true;
#};
# KDE Connect
programs.kdeconnect.enable = true;
services.hardware.openrgb = { # OPENRGB #
enable = true; services.hardware.openrgb = {
package = pkgs-unstable.openrgb-with-all-plugins; enable = true;
}; package = pkgs-unstable.openrgb-with-all-plugins;
};
programs.spicetify = {
enable = true; # SPICETIFY #
enabledExtensions = with spicePkgs.extensions; [ programs.spicetify = {
adblockify enable = true;
hidePodcasts enabledExtensions = with spicePkgs.extensions; [
shuffle # shuffle+ (special characters are sanitized out of extension names) adblockify
]; hidePodcasts
#theme = spicePkgs.themes.sleek; shuffle # shuffle+ (special characters are sanitized out of extension names)
#colorScheme = "matugen"; ];
}; #theme = spicePkgs.themes.sleek;
#colorScheme = "matugen";
virtualisation.docker.rootless = { };
enable = true;
setSocketVariable = true; # DOCKER #
}; virtualisation.docker.rootless = {
enable = true;
setSocketVariable = true;
};
security.pam.loginLimits = [{ security.pam.loginLimits = [{
domain = "nicole"; domain = "nicole";

View file

@ -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;
}

View file

@ -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;
}

23
etc/nixos/modules/xdg.nix Normal file
View file

@ -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" ];
};
};
};
}