From e165d31d4008b83b69c53351cb4f5ea2d518dab3 Mon Sep 17 00:00:00 2001 From: Cookiez Date: Thu, 30 Apr 2026 10:47:42 +0200 Subject: [PATCH 01/18] Added a dev shell command to ncli and enabled nix-direnv so development shells automatically get enabled upon entering a directory --- modules/configuration.nix | 6 + modules/home.nix | 7 + modules/ncli.nix | 398 +++++++++++++++++++++++++++++++++++++- other/dev-template.nix | 75 +++++++ 4 files changed, 485 insertions(+), 1 deletion(-) mode change 100644 => 100755 modules/ncli.nix create mode 100644 other/dev-template.nix diff --git a/modules/configuration.nix b/modules/configuration.nix index 5c3c52b..fd4bf4b 100644 --- a/modules/configuration.nix +++ b/modules/configuration.nix @@ -221,6 +221,12 @@ programs = { steam.enable = true; + direnv = { + enable = true; + silent = true; # Suppresses direnv's output in the terminal + nix-direnv.enable = true; + }; + ssh.askPassword = lib.mkForce "${pkgs.kdePackages.ksshaskpass}/bin/ksshaskpass"; #In order for dynamically linked executables to work diff --git a/modules/home.nix b/modules/home.nix index 045432a..d51cc02 100644 --- a/modules/home.nix +++ b/modules/home.nix @@ -24,6 +24,7 @@ ".config/gtk-4.0/settings.ini.backup" ".config/niri/config.kdl" ]; + devTemplate = ../other/dev-template.nix; }) ]; @@ -54,6 +55,12 @@ #]; }; + direnv = { + enable = true; + enableZshIntegration = true; + nix-direnv.enable = true; + }; + kitty = { enable = true; settings = { diff --git a/modules/ncli.nix b/modules/ncli.nix old mode 100644 new mode 100755 index 31ccfff..854f25d --- a/modules/ncli.nix +++ b/modules/ncli.nix @@ -15,7 +15,7 @@ in PROJECT="${project}" HOST="${host}" BACKUP_FILES_STR="${backupFilesString}" - VERSION="2.0.0" + VERSION="2.1.3" FLAKE_NIX_PATH="$HOME/$PROJECT/flake.nix" read -r -a BACKUP_FILES <<< "$BACKUP_FILES_STR" @@ -45,6 +45,11 @@ in echo " pull - Pull latest changes from origin." echo " status - Show git status." echo "" + echo "Development Commands:" + echo " dev - Initialize a Nix development environment (flake.nix + direnv)." + echo " dev track - Remove assume-unchanged flag from flake files." + echo " dev untrack - Mark flake files as assume-unchanged in a directory." + echo "" echo " help - Show this help message." echo "" } @@ -65,6 +70,27 @@ in done } + # --- Dev Init Helper Functions --- + print_header() { + echo "" + echo -e "''${BLUE}==============================================''${NOCOLOR}" + echo -e "''${BLUE} Nix Flake Development Environment Initializer''${NOCOLOR}" + echo -e "''${BLUE}==============================================''${NOCOLOR}" + echo "" + } + + print_success() { + echo -e "''${GREEN}[OK]''${NOCOLOR} $1" + } + + print_error() { + echo -e "''${RED}[ERR]''${NOCOLOR} $1" + } + + print_info() { + echo -e "''${YELLOW}[->]''${NOCOLOR} $1" + } + # --- Main Logic --- if [ "$#" -eq 0 ]; then echo "Error: No command provided." >&2 @@ -327,6 +353,376 @@ in echo "Trim operation cancelled." fi ;; + dev) + # Only flake files need assume-unchanged (Nix requires them in the index). + # .envrc and .direnv are handled via .git/info/exclude instead. + DEV_FILES=(flake.nix flake.lock) + DIRENV_LOCAL_FILES=(.envrc .direnv) + + _dev_resolve_dir() { + read -rp " Enter target directory [./]: " TARGET_DIR + TARGET_DIR="''${TARGET_DIR:-./}" + if [[ ! -d "$TARGET_DIR" ]]; then + print_error "Directory '$TARGET_DIR' does not exist." + exit 1 + fi + TARGET_ABS="$(cd "$TARGET_DIR" && pwd)" + if ! git -C "$TARGET_ABS" rev-parse --git-dir > /dev/null 2>&1; then + print_error "No Git repository found at '$TARGET_ABS'." + exit 1 + fi + } + + # Add .envrc and .direnv to .git/info/exclude (local-only, never committed). + _add_local_excludes() { + local repo_abs="$1" + local git_dir exclude_file + git_dir="$(git -C "$repo_abs" rev-parse --git-dir)" + exclude_file="$git_dir/info/exclude" + mkdir -p "$(dirname "$exclude_file")" + touch "$exclude_file" + + for entry in "''${DIRENV_LOCAL_FILES[@]}"; do + if ! grep -qxF "$entry" "$exclude_file" 2>/dev/null; then + echo "$entry" >> "$exclude_file" + print_success "$entry → ignored via .git/info/exclude (local only)" + else + print_info "$entry already in .git/info/exclude, skipping." + fi + done + } + + _remove_local_excludes() { + local repo_abs="$1" + local git_dir exclude_file tmp_file + git_dir="$(git -C "$repo_abs" rev-parse --git-dir)" + exclude_file="$git_dir/info/exclude" + + [[ -f "$exclude_file" ]] || return 0 + + tmp_file="$(mktemp)" + cp "$exclude_file" "$tmp_file" + + for entry in "''${DIRENV_LOCAL_FILES[@]}"; do + if grep -qxF "$entry" "$tmp_file" 2>/dev/null; then + grep -vxF "$entry" "$tmp_file" > "''${tmp_file}.new" || true + mv "''${tmp_file}.new" "$tmp_file" + print_success "$entry → removed from .git/info/exclude" + else + print_info "$entry not present in .git/info/exclude, skipping." + fi + done + + mv "$tmp_file" "$exclude_file" + } + + case "''${2:-init}" in + + untrack) + echo "" + echo -e "''${BLUE}--- Dev: Track Files (assume-unchanged) ---''${NOCOLOR}" + echo "" + _dev_resolve_dir + + acted=false + for f in "''${DEV_FILES[@]}"; do + full="$TARGET_ABS/$f" + if [[ ! -f "$full" ]]; then + print_info "$f not found in $TARGET_ABS — skipping." + continue + fi + if ! git -C "$TARGET_ABS" ls-files --error-unmatch "$f" > /dev/null 2>&1; then + git -C "$TARGET_ABS" add --intent-to-add "$f" + fi + git -C "$TARGET_ABS" update-index --assume-unchanged "$f" + print_success "$f → untracked (assume-unchanged)" + acted=true + done + + _add_local_excludes "$TARGET_ABS" + + if ! $acted; then + print_info "No dev files found in '$TARGET_ABS' to track." + fi + ;; + + track) + echo "" + echo -e "''${BLUE}--- Dev: Untrack Files (remove assume-unchanged) ---''${NOCOLOR}" + echo "" + _dev_resolve_dir + + acted=false + for f in "''${DEV_FILES[@]}"; do + if git -C "$TARGET_ABS" ls-files -v "$f" 2>/dev/null | grep -q "^h "; then + git -C "$TARGET_ABS" update-index --no-assume-unchanged "$f" + print_success "$f → tracked (assume-unchanged removed)" + acted=true + else + print_info "$f is not marked assume-unchanged — skipping." + fi + done + + _remove_local_excludes "$TARGET_ABS" + + if ! $acted; then + print_info "No files in '$TARGET_ABS' had the assume-unchanged bit set." + fi + ;; + + init|*) + # ---- Defaults ----- + SOURCE_FLAKE="$HOME/$PROJECT/other/dev-template.nix" + + # ---- Check source flake exists ------------------------------ + if [[ ! -f "$SOURCE_FLAKE" ]]; then + print_error "Source flake template not found: $SOURCE_FLAKE" + echo "Please ensure dev-template.nix exists in $HOME/$PROJECT/other/" + exit 1 + fi + + print_header + + # ---- Step 1: Target Directory ----------------------------------- + echo -e "''${YELLOW}Step 1/5: Target Directory''${NOCOLOR}" + echo "" + read -p " Enter target directory [./]: " TARGET_DIR + + if [[ -z "$TARGET_DIR" ]]; then + TARGET_DIR="./" + fi + + if [[ ! -d "$TARGET_DIR" ]]; then + print_error "Directory '$TARGET_DIR' does not exist. Exiting." + exit 1 + fi + + print_success "Target directory: $TARGET_DIR" + echo "" + + # ---- Check for existing flake ---------------------------------- + if [[ -f "$TARGET_DIR/flake.nix" ]]; then + echo "" + print_error "A flake.nix already exists in '$TARGET_DIR'!" + echo "" + read -p " Would you like to just place the .envrc instead? [y/N]: " ENVRC_ONLY + ENVRC_ONLY="''${ENVRC_ONLY:-N}" + + if [[ "$ENVRC_ONLY" =~ ^[Yy]$ ]]; then + TARGET_ABS="$(cd "$TARGET_DIR" && pwd)" + echo "" + print_info "Placing .envrc only..." + if ! grep -qxF "use flake" "$TARGET_ABS/.envrc" 2>/dev/null; then + echo "use flake" >> "$TARGET_ABS/.envrc" + print_success ".envrc created at $TARGET_ABS/" + else + print_info ".envrc already contains 'use flake', nothing to do." + fi + + echo "" + print_info "Next steps:" + echo " cd $TARGET_DIR" + echo " direnv allow" + echo "" + exit 0 + else + print_info "Aborting. No files were changed." + exit 1 + fi + fi + + # ---- Step 2: Project Name --------------------------------------- + echo -e "''${YELLOW}Step 2/5: Project Name''${NOCOLOR}" + echo "" + read -p " Enter development environment name [devShell]: " PROJECT_NAME + + if [[ -z "$PROJECT_NAME" ]]; then + PROJECT_NAME="devShell" + fi + + print_success "Project name: $PROJECT_NAME" + echo "" + + # ---- Step 3: Select template ---------------------------------------- + echo -e "''${YELLOW}Step 3/5: Select Template''${NOCOLOR}" + echo "" + echo " 1) Empty - Basic shell, add packages yourself" + echo " 2) Python - Python 3, pip, venv setup" + echo " 3) Node.js - Node.js, npm" + echo " 4) Rust - Rustc, cargo, rust-analyzer" + echo " 5) Go - Go, gopls, golangci-lint" + echo " 6) C/C++ - GCC, CMake, GDB, pkg-config" + echo " 7) Java - JDK 21, Maven" + echo "" + + read -p " Select template [1-7] (default: 1): " TEMPLATE_CHOICE + + case "$TEMPLATE_CHOICE" in + 2) + TEMPLATE="python3" + PACKAGES="python3 python3Packages.pip python3Packages.virtualenv" + BUILD_INPUTS="" + SHELL_HOOK_EXTRA=" + # Create venv if it doesn't exist + if [ ! -d .venv ]; then + echo 'Creating Python virtual environment...' + python3 -m venv .venv + fi + + # Activate venv + source .venv/bin/activate + + echo 'Python venv activated.' + " + ;; + 3) + TEMPLATE="node" + PACKAGES="nodejs_22" + BUILD_INPUTS="" + SHELL_HOOK_EXTRA='echo "Node.js $(node --version) ready."' + ;; + 4) + TEMPLATE="rust" + PACKAGES="rustc cargo rust-analyzer" + BUILD_INPUTS="openssl pkg-config" + SHELL_HOOK_EXTRA='echo "Rust $(rustc --version) ready."' + ;; + 5) + TEMPLATE="go" + PACKAGES="go gopls golangci-lint" + BUILD_INPUTS="" + SHELL_HOOK_EXTRA=' + export GOPATH="$PWD/.gopath" + export PATH="$GOPATH/bin:$PATH" + mkdir -p "$GOPATH" + echo "Go $(go version) ready. GOPATH: $GOPATH" + ' + ;; + 6) + TEMPLATE="cpp" + PACKAGES="gcc gdb cmake gnumake" + BUILD_INPUTS="pkg-config" + SHELL_HOOK_EXTRA='echo "GCC $(gcc --version | head -1) ready."' + ;; + 7) + TEMPLATE="java" + PACKAGES="jdk21 maven" + BUILD_INPUTS="" + SHELL_HOOK_EXTRA='echo "Java $(java --version | head -1) ready."' + ;; + *) + TEMPLATE="empty" + PACKAGES="" + BUILD_INPUTS="" + SHELL_HOOK_EXTRA="" + ;; + esac + + print_success "Selected template: $TEMPLATE" + echo "" + + # ---- Step 4: Copy and modify flake ---------------------------------- + echo -e "''${YELLOW}Step 4/5: Generating flake.nix''${NOCOLOR}" + echo "" + + cp "$SOURCE_FLAKE" "$TARGET_DIR/flake.nix" + print_success "Copied flake.nix to $TARGET_DIR/" + + sed -i "s|name = \"replaceNameHere\";|name = \"''${PROJECT_NAME}\";|" "$TARGET_DIR/flake.nix" + print_success "Set project name: $PROJECT_NAME" + + if [[ -n "$PACKAGES" ]]; then + sed -i "s|# replacePackagesHere|$PACKAGES|" "$TARGET_DIR/flake.nix" + print_success "Added packages: $PACKAGES" + fi + + if [[ -n "$BUILD_INPUTS" ]]; then + BUILD_INPUTS_LINE="buildInputs = with pkgs; [ $BUILD_INPUTS ];" + sed -i "s|# replaceBuildInputsHere|$BUILD_INPUTS_LINE|" "$TARGET_DIR/flake.nix" + print_success "Added build inputs: $BUILD_INPUTS" + fi + + if [[ -n "$SHELL_HOOK_EXTRA" ]]; then + awk -v hook="$SHELL_HOOK_EXTRA" '/# replaceShellHookHere/ { print hook; next } { print }' \ + "$TARGET_DIR/flake.nix" > "$TARGET_DIR/flake.nix.tmp" \ + && mv "$TARGET_DIR/flake.nix.tmp" "$TARGET_DIR/flake.nix" + print_success "Added template-specific shell hook" + fi + + # ---- Step 5: Git Integration & .envrc -------------------------------- + echo -e "''${YELLOW}Step 5/5: Git Integration''${NOCOLOR}" + echo "" + + TARGET_ABS="$(cd "$TARGET_DIR" && pwd)" + + echo "Creating .envrc for direnv to automatically work!" + if ! grep -qxF "use flake" "$TARGET_ABS/.envrc" 2>/dev/null; then + echo "use flake" >> "$TARGET_ABS/.envrc" + print_success ".envrc created at $TARGET_ABS/" + else + print_info ".envrc already contains 'use flake', skipping." + fi + + if git -C "$TARGET_ABS" rev-parse --git-dir > /dev/null 2>&1; then + echo " A Git repository was detected at:" + echo " $(git -C "$TARGET_ABS" rev-parse --show-toplevel)" + echo "" + + # Always add .envrc and .direnv to local exclude — no prompt needed, + # these should never be committed regardless. + _add_local_excludes "$TARGET_ABS" + echo "" + + echo " Nix flakes require flake.nix (and flake.lock) to be Git-tracked." + echo " This script can stage them as 'assume-unchanged' so Nix sees them," + echo " but they will NEVER be committed or show up in git status." + echo "" + read -p " Set up flake files as tracked-but-invisible to Git? [y/N]: " GIT_CHOICE + + GIT_CHOICE="''${GIT_CHOICE:-N}" + + if [[ "$GIT_CHOICE" =~ ^[Yy]$ ]]; then + cat > "$TARGET_ABS/flake.lock" << 'EOF' + { + "nodes": { + "root": {} + }, + "root": "root", + "version": 7 + } + EOF + print_success "flake.lock ready (Nix will populate it on first run if empty)" + + git -C "$TARGET_ABS" add --intent-to-add flake.nix flake.lock + git -C "$TARGET_ABS" update-index --assume-unchanged flake.nix flake.lock + print_success "flake.nix + flake.lock → tracked (assume-unchanged)" + else + print_info "Skipped. You can do this manually later:" + echo "" + echo " git -C \"$TARGET_ABS\" add --intent-to-add flake.nix flake.lock" + echo " git -C \"$TARGET_ABS\" update-index --assume-unchanged flake.nix flake.lock" + echo "" + fi + else + print_info "No Git repository detected — skipping Git integration." + echo "" + fi + + # ---- Done --------------------------------------------------- + echo -e "''${GREEN}==============================================''${NOCOLOR}" + echo -e "''${GREEN} Done! Your flake is ready at:''${NOCOLOR}" + echo -e "''${GREEN} $TARGET_DIR/flake.nix''${NOCOLOR}" + echo -e "''${GREEN}==============================================''${NOCOLOR}" + echo "" + print_info "Next steps:" + echo " cd $TARGET_DIR" + echo " direnv allow # Trust the .envrc so direnv auto-activates" + echo " nix develop # Or just: cd out and back in" + echo "" + ;; + + esac + ;; *) echo "Error: Invalid command '$1'" >&2 print_help diff --git a/other/dev-template.nix b/other/dev-template.nix new file mode 100644 index 0000000..f33dfd5 --- /dev/null +++ b/other/dev-template.nix @@ -0,0 +1,75 @@ +{ + description = "A reproducible development environment"; + + # ───────────────────────────────────────────── + # Inputs – external flakes this flake depends on + # ───────────────────────────────────────────── + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + + # flake-utils generates per-system outputs so you don't + # have to repeat yourself for every architecture. + flake-utils.url = "github:numtide/flake-utils"; + }; + + # ───────────────────────────────────────────── + # Outputs – everything this flake exposes + # ───────────────────────────────────────────── + outputs = { self, nixpkgs, flake-utils, ... }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { + inherit system; + # Allow non-free packages + config.allowUnfree = true; + }; + in + { + + # ───────────────────────────────────────── + # `nix develop` drops you into this shell + # ───────────────────────────────────────── + devShells.default = pkgs.mkShell { + + # Human-readable name shown in the shell prompt + name = "replaceNameHere"; + + # ── Runtime packages available inside the shell ────────────── + # Add or remove anything from https://search.nixos.org/packages + packages = with pkgs; [ + # Version control + git + + # Common utilities + curl + wget + bat + + # ── Language toolchains ────────────────────────────────── + # replacePackagesHere + ]; + + # ── Build inputs (headers, libraries needed at compile time) ── + # Use this for native C libraries, e.g.: + # buildInputs = with pkgs; [ openssl zlib pkg-config ]; + + # replaceBuildInputsHere + + # ── Shell hook – runs every time you enter the shell ────────── + shellHook = '' + echo "" + echo " 🐚 Development shell ready!" + echo " 📦 nixpkgs: ${nixpkgs.rev or "unknown"}" + echo "" + + # replaceShellHookHere + ''; + + # ── Environment variables always present in the shell ───────── + + # Allow broken or insecure packages + # NIX_CONFIG = "allow-broken = true"; + }; + } + ); +} From 758a1dce3d42e408b1f89103c9f146aad4820d82 Mon Sep 17 00:00:00 2001 From: Cookiez Date: Wed, 6 May 2026 13:00:32 +0200 Subject: [PATCH 02/18] Commented out a lot of currently unused packages to speed up rebuilds. --- modules/packages/cli.nix | 26 +++++++++--------- modules/packages/default.nix | 1 + modules/packages/desktop.nix | 48 ++++++++++++++++----------------- modules/packages/essentials.nix | 14 +++++----- modules/packages/overlays.nix | 11 ++++++++ 5 files changed, 56 insertions(+), 44 deletions(-) create mode 100644 modules/packages/overlays.nix diff --git a/modules/packages/cli.nix b/modules/packages/cli.nix index 9a62806..bc7bd69 100644 --- a/modules/packages/cli.nix +++ b/modules/packages/cli.nix @@ -7,21 +7,21 @@ }: { environment.systemPackages = with pkgs; [ #CLI tools - pdftk #PDF toolkit - yt-dlp #YouTube and others video downloader + #pdftk #PDF toolkit + #yt-dlp #YouTube and others video downloader tailscale #VPN - speedtest-cli #Internet speed tester + #speedtest-cli #Internet speed tester #duplicati - ollama-rocm - open-webui - cloudflare-warp - ddrescue - texliveFull #LaTeX PDF maker + #ollama-rocm + #open-webui + #cloudflare-warp + #ddrescue + #texliveFull #LaTeX PDF maker lazygit #Git CLI tool with TUI - gtypist #Typing tutor - powertop #Power consumption monitor and optimizer - file #File type identifier - hashcat #Password recovery/cracking tool - packwiz #A Minecraft modpack editor + #gtypist #Typing tutor + #powertop #Power consumption monitor and optimizer + #file #File type identifier + #hashcat #Password recovery/cracking tool + #packwiz #A Minecraft modpack editor ]; } diff --git a/modules/packages/default.nix b/modules/packages/default.nix index 582ed20..519ad18 100644 --- a/modules/packages/default.nix +++ b/modules/packages/default.nix @@ -4,5 +4,6 @@ ./cli.nix ./essentials.nix ./flatpak.nix + ./overlays.nix ]; } diff --git a/modules/packages/desktop.nix b/modules/packages/desktop.nix index 04ca7cc..4b6911b 100644 --- a/modules/packages/desktop.nix +++ b/modules/packages/desktop.nix @@ -7,23 +7,23 @@ }: { environment.systemPackages = with pkgs; [ #Programming - jetbrains.pycharm #The PyCharm IDE to edit Python code - jetbrains.idea #The IntelliJ IDE to edit Java code - jetbrains.clion #The CLion IDE to edit and compile c/c++ code + #jetbrains.pycharm #The PyCharm IDE to edit Python code + #jetbrains.idea #The IntelliJ IDE to edit Java code + #jetbrains.clion #The CLion IDE to edit and compile c/c++ code jetbrains.datagrip #The DataGrip IDE to manage Databases #jetbrains-toolbox #racket #The racket Programming language, with DrRacket IDE, for University (*Not* because it's my favourite) - rustup #Rust Programming Toolchain + #rustup #Rust Programming Toolchain #go #Go Programming Language - gcc #C/C++ Compiler - pkg-config + #gcc #C/C++ Compiler + #pkg-config vscode #Editor for all kinds of programms - nodejs_22 #NodeJS for JavaScript programming + #nodejs_22 #NodeJS for JavaScript programming #Hochschule - postgresql #Database system - dbeaver-bin #Database Management Tool - sqlite #Lightweight Database system + #postgresql #Database system + #dbeaver-bin #Database Management Tool + #sqlite #Lightweight Database system #Desktop Applications drawio @@ -32,33 +32,33 @@ lutris #Gaming Platform mission-center #For a Task Manager like GUI trayscale #Tailscale unofficial GUI - spotify #Spotify Music Client - rpi-imager #Raspberry Pi Imager + #spotify #Spotify Music Client + #rpi-imager #Raspberry Pi Imager atlauncher #Minecraft Launcher #discord vesktop #Aternative for discord on Wayland wineWow64Packages.stagingFull winetricks - wasistlos #Whatsapp - losslesscut-bin #Lossless cut for quckly cutting videos + #karere #Whatsapp + #losslesscut-bin #Lossless cut for quckly cutting videos #obs-studio #Screen Recorder gparted #Disk partition Manager #rustdesk #Remote Desktop Client - realvnc-vnc-viewer #VNC Remote Desktop Client + #realvnc-vnc-viewer #VNC Remote Desktop Client eddie #AirVPN desktop client chromium #Chromium browser for Youtube app to work - moonlight-qt #Game Streaming Client + #moonlight-qt #Game Streaming Client kitty #Kitty Terminal Emulator wmctrl #To Force windows into fullscreen kdePackages.dolphin #KDE File Browser - libreoffice-still #Office Suite + #libreoffice-still #Office Suite kdePackages.kservice - qbittorrent #Torrent Client - waydroid #Android emulator on Linux - gimp2-with-plugins #Image Editor - kdePackages.filelight #Disk Usage Analyzer - filezilla - audacity - freecad + #qbittorrent #Torrent Client + #waydroid #Android emulator on Linux + #gimp2-with-plugins #Image Editor + #kdePackages.filelight #Disk Usage Analyzer + #filezilla + #audacity + #freecad ]; } diff --git a/modules/packages/essentials.nix b/modules/packages/essentials.nix index 0fa3b83..458b6e4 100644 --- a/modules/packages/essentials.nix +++ b/modules/packages/essentials.nix @@ -10,14 +10,14 @@ environment.systemPackages = with pkgs; [ #Essentials (CLI Only) wget #A tool for quickly downloading things from the Web - javaPackages.compiler.openjdk25 #Java Development Kit 25 - python314 #Python - python314Packages.pip #Pip for Python 3.12 - python314Packages.cmake #The CMake tool to manage project build configurations + #javaPackages.compiler.openjdk25 #Java Development Kit 25 + #python314 #Python + #python314Packages.pip #Pip for Python 3.12 + #python314Packages.cmake #The CMake tool to manage project build configurations fastfetch #A utility to see information about your machine btop #A replacement for htop to see your machines resources git #Git ... no need to explain - efibootmgr #A tool to manage UEFI boot entries + #efibootmgr #A tool to manage UEFI boot entries zip #A utility for ZIP archives unzip #A utility for ZIP archives rar #A utility for RAR archives @@ -25,7 +25,7 @@ cron #A tool to set up commands to run scheduled tmux #A tool to let command windows contiune to run in the background home-manager #A package to also edit the user Configuration, like with nix - konsave #A package to transfer the look and feel of KDE Plasma to other machines + #konsave #A package to transfer the look and feel of KDE Plasma to other machines openssh #SSH zoxide #Alternatice to cd, browse files zsh #Search for file names @@ -47,7 +47,7 @@ pipewire #Multimedia handling fzf #Needed for nix-selective update tool jq #Needed for nix-selective update tool - distrobox + #distrobox dbus cifs-utils samba diff --git a/modules/packages/overlays.nix b/modules/packages/overlays.nix new file mode 100644 index 0000000..0cc3552 --- /dev/null +++ b/modules/packages/overlays.nix @@ -0,0 +1,11 @@ +{...}: { + nixpkgs.overlays = [ + #(final: prev: { + # openldap = prev.openldap.overrideAttrs (_: {doCheck = false;}); + # # Also covers 32-bit builds pulled in by lutris + # pkgsi686Linux = prev.pkgsi686Linux.extend (_: p: { + # openldap = p.openldap.overrideAttrs (_: {doCheck = false;}); + # }); + #}) + ]; +} From 507ccca228da7fed6d03dd946c598a6fffce7fc0 Mon Sep 17 00:00:00 2001 From: Cookiez Date: Wed, 6 May 2026 16:19:12 +0200 Subject: [PATCH 03/18] Added linux kernel config, so the latest stable kernel is used --- modules/configuration.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/configuration.nix b/modules/configuration.nix index fd4bf4b..6e3826b 100644 --- a/modules/configuration.nix +++ b/modules/configuration.nix @@ -37,6 +37,7 @@ # Bootloader. boot = { + kernelPackages = pkgs.linuxPackages_latest; kernelParams = ["quiet" "splash"]; initrd = { verbose = false; From 60376586a212af8501bf526631ca9541808aaf0a Mon Sep 17 00:00:00 2001 From: Cookiez Date: Thu, 7 May 2026 14:37:08 +0200 Subject: [PATCH 04/18] Updated flake inputs --- flake.lock | 152 +++++++++++++++------------------- modules/packages/overlays.nix | 14 ++-- 2 files changed, 73 insertions(+), 93 deletions(-) diff --git a/flake.lock b/flake.lock index 7e93802..2ee182c 100644 --- a/flake.lock +++ b/flake.lock @@ -61,11 +61,11 @@ "base16-helix": { "flake": false, "locked": { - "lastModified": 1760703920, - "narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=", + "lastModified": 1776754714, + "narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=", "owner": "tinted-theming", "repo": "base16-helix", - "rev": "d646af9b7d14bff08824538164af99d0c521b185", + "rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581", "type": "github" }, "original": { @@ -116,11 +116,11 @@ "firefox-gnome-theme": { "flake": false, "locked": { - "lastModified": 1764873433, - "narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=", + "lastModified": 1776136500, + "narHash": "sha256-r0gN2brVWA351zwMV0Flmlcd6SGMvYqFbvC3DfKFM8Y=", "owner": "rafaelmardojai", "repo": "firefox-gnome-theme", - "rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92", + "rev": "0f8ba203d475587f477e7ae12661bd8459e225b7", "type": "github" }, "original": { @@ -137,11 +137,11 @@ ] }, "locked": { - "lastModified": 1769996383, - "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", + "lastModified": 1777932387, + "narHash": "sha256-nUYVPiqrzr36ThiQOAr5MKeGHDBSDM3OFWkz0uDjOvc=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", + "rev": "71a3a77326609675e9f8b51084cf23d5d1945899", "type": "github" }, "original": { @@ -158,11 +158,11 @@ ] }, "locked": { - "lastModified": 1767609335, - "narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=", + "lastModified": 1775087534, + "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "250481aafeb741edfe23d29195671c19b36b6dca", + "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", "type": "github" }, "original": { @@ -206,20 +206,18 @@ "gnome-shell": { "flake": false, "locked": { - "host": "gitlab.gnome.org", "lastModified": 1767737596, "narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=", "owner": "GNOME", "repo": "gnome-shell", "rev": "ef02db02bf0ff342734d525b5767814770d85b49", - "type": "gitlab" + "type": "github" }, "original": { - "host": "gitlab.gnome.org", "owner": "GNOME", - "ref": "gnome-49", "repo": "gnome-shell", - "type": "gitlab" + "rev": "ef02db02bf0ff342734d525b5767814770d85b49", + "type": "github" } }, "grub2-themes": { @@ -247,11 +245,11 @@ ] }, "locked": { - "lastModified": 1773286336, - "narHash": "sha256-+yFtmhOHterllxWmV6YbdevTXpJdGS0mS0UmJ0k9fh0=", + "lastModified": 1778009629, + "narHash": "sha256-nUoQtf4Zq7DRYJrfv904hjrxjAlWVP6a1pNNFKx3FCg=", "owner": "nix-community", "repo": "home-manager", - "rev": "7d06e0cefe6e4a1e85b2b3274dcb0b3da242a557", + "rev": "00ed86e58bb6979a7921859fd1615d19382eac5c", "type": "github" }, "original": { @@ -273,11 +271,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1773303738, - "narHash": "sha256-qrl74wNFMTUzA8z6nSEWNjQcJI/MQEWdWu2Wn+u4Ctg=", + "lastModified": 1778022358, + "narHash": "sha256-M/FR4z0m6KyN1wJpHbUKrF1T/EJKP1qSXdJOujkS5SE=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "329df7671b7859abd1cbca5d5af296ed6dc22b46", + "rev": "6e900d2d23f32b88a1d97c38d1f24413cce66c90", "type": "github" }, "original": { @@ -306,11 +304,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1773130184, - "narHash": "sha256-3bwx4WqCB06yfQIGB+OgIckOkEDyKxiTD5pOo4Xz2rI=", + "lastModified": 1778009434, + "narHash": "sha256-kbT+bAdT8U1KRPVwwXpTCLQuRzER2yIkiv2E9/F/jhw=", "owner": "YaLTeR", "repo": "niri", - "rev": "b07bde3ee82dd73115e6b949e4f3f63695da35ea", + "rev": "56654034e9a9b74f6fcf268ebfe114a8c74a8c0b", "type": "github" }, "original": { @@ -321,11 +319,11 @@ }, "nix-flatpak": { "locked": { - "lastModified": 1768656715, - "narHash": "sha256-Sbh037scxKFm7xL0ahgSCw+X2/5ZKeOwI2clqrYr9j4=", + "lastModified": 1777402031, + "narHash": "sha256-6gkfl9y3+ti0Z6dgby8/R4/DRT8sWU0I0TLCIxwWtjk=", "owner": "gmodena", "repo": "nix-flatpak", - "rev": "123fe29340a5b8671367055b75a6e7c320d6f89a", + "rev": "22a3adbe7c5c8c8a10a635d32c9ef7fc01a6e4b8", "type": "github" }, "original": { @@ -336,11 +334,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1772972630, - "narHash": "sha256-mUJxsNOrBMNOUJzN0pfdVJ1r2pxeqm9gI/yIKXzVVbk=", + "lastModified": 1777917524, + "narHash": "sha256-k+LVe9YaO2BEPB9AaCtTtOMCeGi4dxDo6gt4Un3qoPY=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "3966ce987e1a9a164205ac8259a5fe8a64528f72", + "rev": "df7783100babf59001340a7a874ba3824e441ecb", "type": "github" }, "original": { @@ -351,11 +349,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1773304180, - "narHash": "sha256-e/ctVWU2EYXBOsJHU76lN6vqugD8u1Xl20MJ+A+bPuE=", + "lastModified": 1778076718, + "narHash": "sha256-SdLqBFaW391MUpG+ptxUoFEjE8GPHH4dxjjHsOF1Aec=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d5eb8dca28f5be580c26f8fcb2ec4ec4215e9102", + "rev": "d79d8c526190fef1ae1d098750a75850fff120d2", "type": "github" }, "original": { @@ -367,11 +365,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1773068389, - "narHash": "sha256-vMrm7Pk2hjBRPnCSjhq1pH0bg350Z+pXhqZ9ICiqqCs=", + "lastModified": 1778003029, + "narHash": "sha256-q/nkKLDtHIyLjZpKhWk3cSK5IYsFqtMd6UtXF3ddjgA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "44bae273f9f82d480273bab26f5c50de3724f52f", + "rev": "0c88e1f2bdb93d5999019e99cb0e61e1fe2af4c5", "type": "github" }, "original": { @@ -383,11 +381,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1773122722, - "narHash": "sha256-FIqHByVqxCprNjor1NqF80F2QQoiiyqanNNefdlvOg4=", + "lastModified": 1777954456, + "narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "62dc67aa6a52b4364dd75994ec00b51fbf474e50", + "rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1", "type": "github" }, "original": { @@ -406,11 +404,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1772402258, - "narHash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=", + "lastModified": 1777991353, + "narHash": "sha256-DFwjggMV+nzCZpwK6Obxj9F+P59rbLVowGqHETfctBk=", "owner": "nix-community", "repo": "nixvim", - "rev": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10", + "rev": "7986a276960b4dfaed9bb2c3c438b5ba71ae08f1", "type": "github" }, "original": { @@ -431,11 +429,11 @@ ] }, "locked": { - "lastModified": 1767810917, - "narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=", + "lastModified": 1777598946, + "narHash": "sha256-X239dAGaU1+gfDj8jKH8GzlqKMcxaVfXOio+uzBOkeE=", "owner": "nix-community", "repo": "NUR", - "rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4", + "rev": "5d55af01c0f86be583931fe99207fc56c14134b3", "type": "github" }, "original": { @@ -491,11 +489,11 @@ ] }, "locked": { - "lastModified": 1772361940, - "narHash": "sha256-B1Cz+ydL1iaOnGlwOFld/C8lBECPtzhiy/pP93/CuyY=", + "lastModified": 1775856943, + "narHash": "sha256-b7Mp7P+q2Md5AGt4rjHfMcBykzMumFTen10ST++AuTU=", "owner": "nix-community", "repo": "plasma-manager", - "rev": "a4b33606111c9c5dcd10009042bb710307174f51", + "rev": "a524a6160e6df89f7673ba293cf7d78b559eb1a5", "type": "github" }, "original": { @@ -511,11 +509,11 @@ ] }, "locked": { - "lastModified": 1773291133, - "narHash": "sha256-9Odn+7x5l90HnXRY7MwVYcX+8CYAo+ldJ+GOVs7e2T8=", + "lastModified": 1777871389, + "narHash": "sha256-gU+VGpwGJ2vvg0mtYqVvj5u+2LteuHlpokH6JSAtueY=", "owner": "outfoxxed", "repo": "quickshell", - "rev": "9a9c60525014bcdf83aace03db4b53c19168edcc", + "rev": "59e9c47b0eb48a9e4bcf9631fa062ee939bd2e83", "type": "github" }, "original": { @@ -571,18 +569,17 @@ ], "nur": "nur", "systems": "systems_2", - "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", "tinted-tmux": "tinted-tmux", "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1772296853, - "narHash": "sha256-pAtzPsgHRKw/2Kv8HgAjSJg450FDldHPWsP3AKG/Xj0=", + "lastModified": 1777835090, + "narHash": "sha256-VLH8zPweblCOvpnQXp4fVs7f6Q79YhXF5XFKlOrvIFk=", "owner": "nix-community", "repo": "stylix", - "rev": "c4b8e80a1020e09a1f081ad0f98ce804a6e85acf", + "rev": "7989a1054b01153212dede6005abfd1576b8328c", "type": "github" }, "original": { @@ -622,23 +619,6 @@ "type": "github" } }, - "tinted-foot": { - "flake": false, - "locked": { - "lastModified": 1726913040, - "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", - "owner": "tinted-theming", - "repo": "tinted-foot", - "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "tinted-foot", - "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", - "type": "github" - } - }, "tinted-kitty": { "flake": false, "locked": { @@ -658,11 +638,11 @@ "tinted-schemes": { "flake": false, "locked": { - "lastModified": 1767710407, - "narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=", + "lastModified": 1777041405, + "narHash": "sha256-BAGZ7ObFV/9Z61OJZun7ifPyhkuHqNuW1QIhQ8LuzCo=", "owner": "tinted-theming", "repo": "schemes", - "rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2", + "rev": "5f868b3a338b6904c47f3833b9c411be641983a8", "type": "github" }, "original": { @@ -674,11 +654,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1767489635, - "narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=", + "lastModified": 1777169200, + "narHash": "sha256-h7dDbIzP5hDr9v97w9PL6jdAgXawmj6krcH+959rqpU=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184", + "rev": "f798c2dce44ef815bb6b8f05a82135c7942d35ac", "type": "github" }, "original": { @@ -690,11 +670,11 @@ "tinted-zed": { "flake": false, "locked": { - "lastModified": 1767488740, - "narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=", + "lastModified": 1777463218, + "narHash": "sha256-Bhkozqtq3BKLqWTlmKm8uAptfX4aRGI8QX3eEL54Vpc=", "owner": "tinted-theming", "repo": "base16-zed", - "rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40", + "rev": "5768d08ed2e7944a26a958868cdb073cb8856dae", "type": "github" }, "original": { @@ -723,11 +703,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1772429643, - "narHash": "sha256-M+bAeCCcjBnVk6w/4dIVvXvpJwOKnXjwi/lDbaN6Yws=", + "lastModified": 1773622265, + "narHash": "sha256-wToKwH7IgWdGLMSIWksEDs4eumR6UbbsuPQ42r0oTXQ=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "10f985b84cdbcc3bbf35b3e7e43d1b2a84fa9ce2", + "rev": "a879e5e0896a326adc79c474bf457b8b99011027", "type": "github" }, "original": { diff --git a/modules/packages/overlays.nix b/modules/packages/overlays.nix index 0cc3552..bb2beb2 100644 --- a/modules/packages/overlays.nix +++ b/modules/packages/overlays.nix @@ -1,11 +1,11 @@ {...}: { nixpkgs.overlays = [ - #(final: prev: { - # openldap = prev.openldap.overrideAttrs (_: {doCheck = false;}); - # # Also covers 32-bit builds pulled in by lutris - # pkgsi686Linux = prev.pkgsi686Linux.extend (_: p: { - # openldap = p.openldap.overrideAttrs (_: {doCheck = false;}); - # }); - #}) + (final: prev: { + openldap = prev.openldap.overrideAttrs (_: {doCheck = false;}); + # Also covers 32-bit builds pulled in by lutris + pkgsi686Linux = prev.pkgsi686Linux.extend (_: p: { + openldap = p.openldap.overrideAttrs (_: {doCheck = false;}); + }); + }) ]; } From 74c14e48b4228f3d01c66bf70f731629722bf053 Mon Sep 17 00:00:00 2001 From: Cookiez Date: Sat, 9 May 2026 13:36:42 +0200 Subject: [PATCH 05/18] Set isDefault to true for Firefox profile --- modules/firefox/home.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/firefox/home.nix b/modules/firefox/home.nix index e4c403c..1eddd6e 100644 --- a/modules/firefox/home.nix +++ b/modules/firefox/home.nix @@ -3,6 +3,7 @@ enable = true; profiles = { "${username}" = { + isDefault = true; extensions.force = true; #Create multiple containers, like "work" "social media" ..., for cookies to reside in so they dont cross leak From 234b126da2a19f980de3a3b7af456658612c968d Mon Sep 17 00:00:00 2001 From: Cookiez Date: Sat, 16 May 2026 13:31:18 +0200 Subject: [PATCH 06/18] Added comma to be able to execute commands without needing to install packages --- flake.lock | 21 +++++++++++++++++++++ flake.nix | 6 ++++++ modules/configuration.nix | 9 ++++++++- 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/flake.lock b/flake.lock index 2ee182c..85fbbfe 100644 --- a/flake.lock +++ b/flake.lock @@ -332,6 +332,26 @@ "type": "github" } }, + "nix-index-database": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1778240325, + "narHash": "sha256-d2HIS7LpfI0lgxiXCXLjxrHl3eIdNvAVexOu0xiM488=", + "owner": "nix-community", + "repo": "nix-index-database", + "rev": "dd2d0e3f6ba00af01b9498f5697173bdc2524bee", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-index-database", + "type": "github" + } + }, "nixos-hardware": { "locked": { "lastModified": 1777917524, @@ -529,6 +549,7 @@ "home-manager": "home-manager", "niri": "niri", "nix-flatpak": "nix-flatpak", + "nix-index-database": "nix-index-database", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_2", "nixvim": "nixvim", diff --git a/flake.nix b/flake.nix index 9861608..c125431 100644 --- a/flake.nix +++ b/flake.nix @@ -4,6 +4,11 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nix-index-database = { + url = "github:nix-community/nix-index-database"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nixos-hardware.url = "github:NixOS/nixos-hardware"; #To Provide Framework13 hardware modules home-manager.url = "github:nix-community/home-manager/master"; @@ -60,6 +65,7 @@ niri, grub2-themes, nix-flatpak, + nix-index-database, ... }: let username = "cookiez"; diff --git a/modules/configuration.nix b/modules/configuration.nix index 6e3826b..b71d16f 100644 --- a/modules/configuration.nix +++ b/modules/configuration.nix @@ -21,8 +21,13 @@ # device = "/swapfile"; # size = 16 * 1024; # 16GB #}]; + nix = { + settings.nix-path = config.nix.nixPath; + nixPath = ["nixpkgs=${inputs.nixpkgs}"]; + }; imports = [ + inputs.nix-index-database.nixosModules.nix-index inputs.home-manager.nixosModules.home-manager inputs.grub2-themes.nixosModules.default inputs.nix-flatpak.nixosModules.nix-flatpak @@ -222,6 +227,8 @@ programs = { steam.enable = true; + nix-index-database.comma.enable = true; + direnv = { enable = true; silent = true; # Suppresses direnv's output in the terminal @@ -296,7 +303,7 @@ # dockerCompat = true; #}; - waydroid.enable = true; + waydroid.enable = false; }; environment = { From dcece454e120e5daec8cea1424a5e47003f44c70 Mon Sep 17 00:00:00 2001 From: Cookiez Date: Sat, 16 May 2026 13:32:15 +0200 Subject: [PATCH 07/18] Changed plasma autostart services type, so the systemd services dont stay running --- plasma/autostart.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plasma/autostart.nix b/plasma/autostart.nix index e044f0d..9730a58 100644 --- a/plasma/autostart.nix +++ b/plasma/autostart.nix @@ -15,7 +15,7 @@ serviceConfig = { ExecStart = ["${pkgs.kdePackages.yakuake}/bin/yakuake"]; - Type = "oneshot"; + Type = "simple"; Restart = "on-failure"; RestartSec = "5s"; Environment = "PATH=/run/current-system/sw/bin:/etc/profiles/per-user/$USER/bin"; @@ -30,7 +30,7 @@ serviceConfig = { ExecStart = ["${pkgs.trayscale}/bin/trayscale --hide-window"]; - Type = "oneshot"; + Type = "simple"; Restart = "on-failure"; RestartSec = "5s"; }; From 0eaf7a718f9b8730df1cb0421dff6426c1c25cff Mon Sep 17 00:00:00 2001 From: Cookiez Date: Sat, 16 May 2026 21:48:13 +0200 Subject: [PATCH 08/18] Resolved qtct styling warning on rebuild (Disabled it for now) --- modules/stylix/home.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/stylix/home.nix b/modules/stylix/home.nix index a90145a..ef99ade 100644 --- a/modules/stylix/home.nix +++ b/modules/stylix/home.nix @@ -18,7 +18,7 @@ # colorTheme.enable = true; # profileNames = [ "${username}" ]; #}; - qt.enable = true; + qt.enable = false; qt.platform = "kde"; #kde.enable = false; }; From 9a3e50be1fe877c168869e5750711610fb23bb8e Mon Sep 17 00:00:00 2001 From: Cookiez Date: Sat, 16 May 2026 21:49:56 +0200 Subject: [PATCH 09/18] Added more binary caches for faster build times. And configured Sleepy Launcher for Zenless Zone Zero --- flake.lock | 60 +++++++++++++++++++++++++++++++++ flake.nix | 6 ++++ modules/configuration.nix | 34 +++++++++++++++++-- modules/packages/cli.nix | 1 + modules/packages/desktop.nix | 1 + modules/packages/essentials.nix | 1 + 6 files changed, 101 insertions(+), 2 deletions(-) diff --git a/flake.lock b/flake.lock index 85fbbfe..bdacaab 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,27 @@ { "nodes": { + "aagl": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": [ + "nixpkgs" + ], + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1778493762, + "narHash": "sha256-PG7vz7Dk3U3hB8OXtIS3bJ4QmJEw08ycFprJuAO7YS0=", + "owner": "ezKEa", + "repo": "aagl-gtk-on-nix", + "rev": "75aac6845b47e913b53c2a0af7fd124fdb8fe84a", + "type": "github" + }, + "original": { + "owner": "ezKEa", + "repo": "aagl-gtk-on-nix", + "type": "github" + } + }, "alejandra": { "inputs": { "fenix": "fenix", @@ -129,6 +151,22 @@ "type": "github" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -544,6 +582,7 @@ }, "root": { "inputs": { + "aagl": "aagl", "alejandra": "alejandra", "grub2-themes": "grub2-themes", "home-manager": "home-manager", @@ -576,6 +615,27 @@ "type": "github" } }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "aagl", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1777605393, + "narHash": "sha256-Hjp0VOOHgHcTrX23iVvnfAudPcuCmfkfpQNFwv2v/ks=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "ff88db34cfa486fc4964a6991cab1678d82eee8c", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "stylix": { "inputs": { "base16": "base16", diff --git a/flake.nix b/flake.nix index c125431..5feb3d9 100644 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + aagl = { + url = "github:ezKEa/aagl-gtk-on-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nixos-hardware.url = "github:NixOS/nixos-hardware"; #To Provide Framework13 hardware modules home-manager.url = "github:nix-community/home-manager/master"; @@ -61,6 +66,7 @@ home-manager, plasma-manager, nixos-hardware, + aagl, stylix, niri, grub2-themes, diff --git a/modules/configuration.nix b/modules/configuration.nix index b71d16f..f632808 100644 --- a/modules/configuration.nix +++ b/modules/configuration.nix @@ -31,6 +31,7 @@ inputs.home-manager.nixosModules.home-manager inputs.grub2-themes.nixosModules.default inputs.nix-flatpak.nixosModules.nix-flatpak + inputs.aagl.nixosModules.default ./hardware-configuration.nix ./firefox @@ -237,8 +238,28 @@ ssh.askPassword = lib.mkForce "${pkgs.kdePackages.ksshaskpass}/bin/ksshaskpass"; + sleepy-launcher.enable = true; #Zenless zone zero launcher + #In order for dynamically linked executables to work - nix-ld.enable = true; + nix-ld = { + enable = true; + #To ensure that the neccesary libraries are included in the wrapper + libraries = with pkgs; [ + wayland + libadwaita + gtk4 + gtk3 + glib + gdk-pixbuf + pango + cairo + libGL + openssl + dbus + fontconfig + freetype + ]; + }; }; # Configure console keymap @@ -354,7 +375,16 @@ }; #Allow Nix Commands - nix.settings.experimental-features = ["nix-command" "flakes"]; + nix.settings = { + experimental-features = ["nix-command" "flakes"]; + + max-substitution-jobs = 32; + http-connections = 50; + + #Both needed for sleepy-launcher to work + extra-substituters = ["https://ezkea.cachix.org" "https://nix-community.cachix.org"]; + extra-trusted-public-keys = ["ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="]; + }; # Allow unfree packages nixpkgs.config.allowUnfree = true; diff --git a/modules/packages/cli.nix b/modules/packages/cli.nix index bc7bd69..b8d9985 100644 --- a/modules/packages/cli.nix +++ b/modules/packages/cli.nix @@ -7,6 +7,7 @@ }: { environment.systemPackages = with pkgs; [ #CLI tools + imagemagick #Used as a dependency for Zenless Zone Zero #pdftk #PDF toolkit #yt-dlp #YouTube and others video downloader tailscale #VPN diff --git a/modules/packages/desktop.nix b/modules/packages/desktop.nix index 4b6911b..7de683f 100644 --- a/modules/packages/desktop.nix +++ b/modules/packages/desktop.nix @@ -26,6 +26,7 @@ #sqlite #Lightweight Database system #Desktop Applications + protonup-qt #For managing proton versions drawio ryubing #Nintendo Switch Emulator vlc #VLC Media Player diff --git a/modules/packages/essentials.nix b/modules/packages/essentials.nix index 458b6e4..acd8d85 100644 --- a/modules/packages/essentials.nix +++ b/modules/packages/essentials.nix @@ -20,6 +20,7 @@ #efibootmgr #A tool to manage UEFI boot entries zip #A utility for ZIP archives unzip #A utility for ZIP archives + p7zip rar #A utility for RAR archives gnutar #A utility for .tar archives cron #A tool to set up commands to run scheduled From 97670b5b48c2c00197d587e563efab2b246de735 Mon Sep 17 00:00:00 2001 From: Cookiez Date: Sat, 23 May 2026 20:42:02 +0200 Subject: [PATCH 10/18] Unhided desktop entries for KMenuEdit and Discover. --- modules/configuration.nix | 2 ++ modules/desktop-entries.nix | 10 ---------- plasma/settings/powerProfile.nix | 4 ++-- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/modules/configuration.nix b/modules/configuration.nix index f632808..95556c7 100644 --- a/modules/configuration.nix +++ b/modules/configuration.nix @@ -204,6 +204,8 @@ }; fonts = { + fontDir.enable = true; + packages = with pkgs; [ font-awesome nerd-fonts.jetbrains-mono diff --git a/modules/desktop-entries.nix b/modules/desktop-entries.nix index 77758f2..53976aa 100644 --- a/modules/desktop-entries.nix +++ b/modules/desktop-entries.nix @@ -58,11 +58,6 @@ noDisplay = true; }; - desktopEntries."org.kde.kmenuedit" = { - name = "Menu Editor"; - noDisplay = true; - }; - desktopEntries."micro" = { name = "Micro"; noDisplay = true; @@ -106,10 +101,5 @@ name = "KWrite"; noDisplay = true; }; - - desktopEntries."org.kde.discover" = { - name = "Discover"; - noDisplay = true; - }; }; } diff --git a/plasma/settings/powerProfile.nix b/plasma/settings/powerProfile.nix index 2c915fd..8e49453 100644 --- a/plasma/settings/powerProfile.nix +++ b/plasma/settings/powerProfile.nix @@ -8,8 +8,8 @@ }: let profiles = { laptop = { - AC.powerProfile = "powerSaving"; - battery.powerProfile = "powerSaving"; + AC.powerProfile = null; #Set to null so it doesnt change on plugging it in. + battery.powerProfile = null; lowBattery.powerProfile = "powerSaving"; }; desktop = { From 4e27abcb7021796fd4e2aab719407328fcae01a9 Mon Sep 17 00:00:00 2001 From: Cookiez Date: Mon, 25 May 2026 11:11:18 +0200 Subject: [PATCH 11/18] Added mangohud package --- modules/packages/desktop.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/packages/desktop.nix b/modules/packages/desktop.nix index 7de683f..8c87b9a 100644 --- a/modules/packages/desktop.nix +++ b/modules/packages/desktop.nix @@ -26,6 +26,7 @@ #sqlite #Lightweight Database system #Desktop Applications + mangohud protonup-qt #For managing proton versions drawio ryubing #Nintendo Switch Emulator From 978e7b4b62f4bcdfc7e99b4343859854cfc4f4d8 Mon Sep 17 00:00:00 2001 From: Cookiez Date: Mon, 25 May 2026 11:13:05 +0200 Subject: [PATCH 12/18] Removed ollama and open webui --- modules/configuration.nix | 16 ---------------- modules/packages/cli.nix | 1 - 2 files changed, 17 deletions(-) diff --git a/modules/configuration.nix b/modules/configuration.nix index 95556c7..a4bf96c 100644 --- a/modules/configuration.nix +++ b/modules/configuration.nix @@ -130,22 +130,6 @@ # List services that you want to enable: services = { - ollama = { - enable = false; - # Optional: load models on startup - #loadModels = [ ... ]; - }; - - open-webui = { - enable = true; - package = pkgs.open-webui; - #environment = { - # DATA_DIR = "/var/lib/open-webui"; # System-wide writable dir - # OLLAMA_API_BASE_URL = "http://127.0.0.1:11434"; - #}; - #openFirewall = true; - }; - fprintd.enable = true; fprintd.tod.enable = true; fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix; diff --git a/modules/packages/cli.nix b/modules/packages/cli.nix index b8d9985..6246ddf 100644 --- a/modules/packages/cli.nix +++ b/modules/packages/cli.nix @@ -13,7 +13,6 @@ tailscale #VPN #speedtest-cli #Internet speed tester #duplicati - #ollama-rocm #open-webui #cloudflare-warp #ddrescue From 9285f2f3ef52fd9a88adf64ea2d53b260f3f0cfc Mon Sep 17 00:00:00 2001 From: Cookiez Date: Mon, 25 May 2026 11:18:58 +0200 Subject: [PATCH 13/18] Removed follows from nixvim flake input as it causes issues. --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 5feb3d9..009dc7f 100644 --- a/flake.nix +++ b/flake.nix @@ -41,7 +41,7 @@ nixvim = { url = "github:nix-community/nixvim"; - inputs.nixpkgs.follows = "nixpkgs"; + #Do not use follows here as it will throw warnings with nixvim's built-in source }; alejandra = { From 5f2eedbc5311dfefd98c7ad55570ead7b6631375 Mon Sep 17 00:00:00 2001 From: Cookiez Date: Mon, 25 May 2026 11:22:16 +0200 Subject: [PATCH 14/18] Refactored flake inputs to all follow the same schema --- flake.nix | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/flake.nix b/flake.nix index 009dc7f..1379c33 100644 --- a/flake.nix +++ b/flake.nix @@ -16,8 +16,10 @@ nixos-hardware.url = "github:NixOS/nixos-hardware"; #To Provide Framework13 hardware modules - home-manager.url = "github:nix-community/home-manager/master"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; + home-manager = { + url = "github:nix-community/home-manager/master"; + inputs.nixpkgs.follows = "nixpkgs"; + }; plasma-manager = { url = "github:nix-community/plasma-manager"; @@ -25,9 +27,10 @@ inputs.home-manager.follows = "home-manager"; }; - #stylix.url = "github:nix-community/stylix/"; - stylix.url = "github:nix-community/stylix/master"; #Had to use branch or it would not build corrently - stylix.inputs.nixpkgs.follows = "nixpkgs"; + stylix = { + url = "github:nix-community/stylix/master"; #Had to use branch or it would not build corrently + inputs.nixpkgs.follows = "nixpkgs"; + }; quickshell = { url = "github:outfoxxed/quickshell"; From 60dcf24b8085bdd76cbcad0df09d673676b593e8 Mon Sep 17 00:00:00 2001 From: Cookiez Date: Mon, 25 May 2026 19:23:21 +0200 Subject: [PATCH 15/18] Added swapfile and enabled swap --- modules/configuration.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/configuration.nix b/modules/configuration.nix index a4bf96c..4accfb6 100644 --- a/modules/configuration.nix +++ b/modules/configuration.nix @@ -17,10 +17,13 @@ ... }: { #Assign Swap to the PC - #swapDevices = [{ - # device = "/swapfile"; - # size = 16 * 1024; # 16GB - #}]; + swapDevices = [ + { + device = "/swapfile"; + size = 34 * 1024; # 34GB + #randomEncryption.enable = true; #Doesnt work with hybernation + } + ]; nix = { settings.nix-path = config.nix.nixPath; nixPath = ["nixpkgs=${inputs.nixpkgs}"]; @@ -46,6 +49,7 @@ kernelPackages = pkgs.linuxPackages_latest; kernelParams = ["quiet" "splash"]; initrd = { + systemd.enable = true; #For swap to automatically work verbose = false; kernelModules = ["amdgpu"]; }; From b04faa3602e0fc4b269067eccc764d2fbdb72db7 Mon Sep 17 00:00:00 2001 From: Cookiez Date: Mon, 25 May 2026 19:23:54 +0200 Subject: [PATCH 16/18] Updated flake inputs --- flake.lock | 104 +++++++++++++++++++--------------- modules/packages/overlays.nix | 7 +-- 2 files changed, 62 insertions(+), 49 deletions(-) diff --git a/flake.lock b/flake.lock index bdacaab..7d1d698 100644 --- a/flake.lock +++ b/flake.lock @@ -9,11 +9,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1778493762, - "narHash": "sha256-PG7vz7Dk3U3hB8OXtIS3bJ4QmJEw08ycFprJuAO7YS0=", + "lastModified": 1779290455, + "narHash": "sha256-FsCEzxL4NotctEIiQnzvIGDcANWasc+RZ/2d6QJVD+Q=", "owner": "ezKEa", "repo": "aagl-gtk-on-nix", - "rev": "75aac6845b47e913b53c2a0af7fd124fdb8fe84a", + "rev": "1e9a8def348c046a626d087998782c2ae7779434", "type": "github" }, "original": { @@ -175,11 +175,11 @@ ] }, "locked": { - "lastModified": 1777932387, - "narHash": "sha256-nUYVPiqrzr36ThiQOAr5MKeGHDBSDM3OFWkz0uDjOvc=", + "lastModified": 1778716662, + "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "71a3a77326609675e9f8b51084cf23d5d1945899", + "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", "type": "github" }, "original": { @@ -283,11 +283,11 @@ ] }, "locked": { - "lastModified": 1778009629, - "narHash": "sha256-nUoQtf4Zq7DRYJrfv904hjrxjAlWVP6a1pNNFKx3FCg=", + "lastModified": 1779678629, + "narHash": "sha256-gHcIFg0mm+KFsg7iZQt67kni3+qR5U3PhEC9P7vKlZ4=", "owner": "nix-community", "repo": "home-manager", - "rev": "00ed86e58bb6979a7921859fd1615d19382eac5c", + "rev": "612bbe3b405ad5f71d7bf9edecc04b678a061652", "type": "github" }, "original": { @@ -309,11 +309,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1778022358, - "narHash": "sha256-M/FR4z0m6KyN1wJpHbUKrF1T/EJKP1qSXdJOujkS5SE=", + "lastModified": 1779622619, + "narHash": "sha256-CoyW4Uy3DEpI252S6vTV6/UeQ+6wsIHvi94ggC1Ev/E=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "6e900d2d23f32b88a1d97c38d1f24413cce66c90", + "rev": "f9e8b871f11137d4b9e15296ea134522dc7a7cb4", "type": "github" }, "original": { @@ -342,11 +342,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1778009434, - "narHash": "sha256-kbT+bAdT8U1KRPVwwXpTCLQuRzER2yIkiv2E9/F/jhw=", + "lastModified": 1779374863, + "narHash": "sha256-qKWgJ2MUODpg+b8tOwWMdMKREvs8TdGBz63SHaQZCeA=", "owner": "YaLTeR", "repo": "niri", - "rev": "56654034e9a9b74f6fcf268ebfe114a8c74a8c0b", + "rev": "4294948cf1c70c50e938383c2c865d7ca455ac7e", "type": "github" }, "original": { @@ -377,11 +377,11 @@ ] }, "locked": { - "lastModified": 1778240325, - "narHash": "sha256-d2HIS7LpfI0lgxiXCXLjxrHl3eIdNvAVexOu0xiM488=", + "lastModified": 1779604987, + "narHash": "sha256-ZQ5z+fVhxYKtIFwtqGp5O0PD84BM1riASvqDaN5Xs+s=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "dd2d0e3f6ba00af01b9498f5697173bdc2524bee", + "rev": "8fba98c80b48fa013820e0163c5096922fea4ddd", "type": "github" }, "original": { @@ -392,11 +392,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1777917524, - "narHash": "sha256-k+LVe9YaO2BEPB9AaCtTtOMCeGi4dxDo6gt4Un3qoPY=", + "lastModified": 1779258371, + "narHash": "sha256-j1iZsLy6oFApqR1oiDmHhvkwxXqcNi0aoSJj643LuwU=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "df7783100babf59001340a7a874ba3824e441ecb", + "rev": "c97bc4d15bd3473dd095e8e8ba57330ab1943a77", "type": "github" }, "original": { @@ -407,11 +407,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1778076718, - "narHash": "sha256-SdLqBFaW391MUpG+ptxUoFEjE8GPHH4dxjjHsOF1Aec=", + "lastModified": 1779700212, + "narHash": "sha256-1pEdBfcjgfrSoYfP06BXC/ypGhwONP+PMO44yEb2Aqc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d79d8c526190fef1ae1d098750a75850fff120d2", + "rev": "415536cd2b4165c658dd130f53fbd316333b182b", "type": "github" }, "original": { @@ -423,11 +423,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1778003029, - "narHash": "sha256-q/nkKLDtHIyLjZpKhWk3cSK5IYsFqtMd6UtXF3ddjgA=", + "lastModified": 1779467186, + "narHash": "sha256-nOesoDCiXcUftqbRBMz9tt4blI5PvljMWbm3kuCA+0s=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0c88e1f2bdb93d5999019e99cb0e61e1fe2af4c5", + "rev": "b77b3de8775677f84492abe84635f87b0e153f0f", "type": "github" }, "original": { @@ -439,11 +439,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1777954456, - "narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=", + "lastModified": 1779508470, + "narHash": "sha256-Ap9KJX+5xHIn3bPIpfNgT6MEXdAECECwo4/rmlQD74M=", "owner": "nixos", "repo": "nixpkgs", - "rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1", + "rev": "29916453413845e54a65b8a1cf996842300cd299", "type": "github" }, "original": { @@ -453,20 +453,34 @@ "type": "github" } }, + "nixpkgs_3": { + "locked": { + "lastModified": 1779259093, + "narHash": "sha256-7DKWmH23hL2eYdkxCKeqj2i+yljTKuU+3Nk1UPHOnxc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d99b013d5d1931ad77fe3912ed218170dec5d9a4", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixvim": { "inputs": { "flake-parts": "flake-parts", - "nixpkgs": [ - "nixpkgs" - ], + "nixpkgs": "nixpkgs_3", "systems": "systems" }, "locked": { - "lastModified": 1777991353, - "narHash": "sha256-DFwjggMV+nzCZpwK6Obxj9F+P59rbLVowGqHETfctBk=", + "lastModified": 1779683452, + "narHash": "sha256-Ksx8jghpDBCPDiTaTyGhYUXG1BUwqPjf5pajl0q0cqA=", "owner": "nix-community", "repo": "nixvim", - "rev": "7986a276960b4dfaed9bb2c3c438b5ba71ae08f1", + "rev": "afec1bae0e6f7983a5c03ec559f7ed2ec0e714a9", "type": "github" }, "original": { @@ -567,11 +581,11 @@ ] }, "locked": { - "lastModified": 1777871389, - "narHash": "sha256-gU+VGpwGJ2vvg0mtYqVvj5u+2LteuHlpokH6JSAtueY=", + "lastModified": 1779430452, + "narHash": "sha256-zTslhsxLqUlRTML506iougTGzyR38Fzhzn7t4KDEuuE=", "owner": "outfoxxed", "repo": "quickshell", - "rev": "59e9c47b0eb48a9e4bcf9631fa062ee939bd2e83", + "rev": "4b4fca3224ab977dc515ac0bb78d00b3dfa71e00", "type": "github" }, "original": { @@ -656,11 +670,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1777835090, - "narHash": "sha256-VLH8zPweblCOvpnQXp4fVs7f6Q79YhXF5XFKlOrvIFk=", + "lastModified": 1779378391, + "narHash": "sha256-IsDb9erotvx9npI94UDosvMeYQK17p7/vmU2v9batrY=", "owner": "nix-community", "repo": "stylix", - "rev": "7989a1054b01153212dede6005abfd1576b8328c", + "rev": "c1456cc4ba3c9485e7b4158c909eeca5a752cd59", "type": "github" }, "original": { @@ -784,11 +798,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1773622265, - "narHash": "sha256-wToKwH7IgWdGLMSIWksEDs4eumR6UbbsuPQ42r0oTXQ=", + "lastModified": 1779591853, + "narHash": "sha256-osTG6d7BfV5CchHjETh3jcmZwDYrHpNcpAIyh1KyIs0=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "a879e5e0896a326adc79c474bf457b8b99011027", + "rev": "3273a0fccd71da21c6362c74f3b1d1c0a89ff3ba", "type": "github" }, "original": { diff --git a/modules/packages/overlays.nix b/modules/packages/overlays.nix index bb2beb2..fe0372f 100644 --- a/modules/packages/overlays.nix +++ b/modules/packages/overlays.nix @@ -1,10 +1,9 @@ {...}: { nixpkgs.overlays = [ + #Skip checks of openldap (dependency for Lutris) as it is already tested enough upstream and is not needed directly (final: prev: { - openldap = prev.openldap.overrideAttrs (_: {doCheck = false;}); - # Also covers 32-bit builds pulled in by lutris - pkgsi686Linux = prev.pkgsi686Linux.extend (_: p: { - openldap = p.openldap.overrideAttrs (_: {doCheck = false;}); + openldap = prev.openldap.overrideAttrs (old: { + doCheck = false; }); }) ]; From 6b601135522832c212b338918ef18efa4e755224 Mon Sep 17 00:00:00 2001 From: Cookiez Date: Tue, 26 May 2026 16:23:09 +0200 Subject: [PATCH 17/18] Added error reason to ncli if rebuilds fail with memory overload --- modules/ncli.nix | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) mode change 100755 => 100644 modules/ncli.nix diff --git a/modules/ncli.nix b/modules/ncli.nix old mode 100755 new mode 100644 index 854f25d..a31ffd6 --- a/modules/ncli.nix +++ b/modules/ncli.nix @@ -91,7 +91,32 @@ in echo -e "''${YELLOW}[->]''${NOCOLOR} $1" } - # --- Main Logic --- + handle_build_error() { + local exit_code=$? + # Exit code 137 = 128+9 = SIGKILL, almost always OOM killer + if [ "$exit_code" -eq 137 ]; then + echo "" + echo -e "''${RED}╔══════════════════════════════════════════════════════════╗''${NOCOLOR}" + echo -e "''${RED}║ BUILD KILLED — Signal 9 (SIGKILL) detected ║''${NOCOLOR}" + echo -e "''${RED}╚══════════════════════════════════════════════════════════╝''${NOCOLOR}" + echo "" + echo -e "''${YELLOW}What happened:''${NOCOLOR}" + echo " The build process was forcefully terminated by the OS." + echo " This is almost always the Linux kernel OOM killer running out" + echo " of RAM + swap during Nix evaluation or compilation." + echo "" + echo -e "''${YELLOW}Suggested fixes (try in order):''${NOCOLOR}" + echo "" + echo -e " ''${GREEN}1. Reduce parallel jobs''${NOCOLOR} (lowest RAM usage):" + echo " sudo nixos-rebuild switch --flake . --max-jobs 1 --cores 1" + echo "" + echo -e " ''${GREEN}2. Confirm OOM killer fired:''${NOCOLOR}" + echo " journalctl -k --since '5 minutes ago' | grep -i oom" + echo "" + fi + } + + # --- Main Logic --- if [ "$#" -eq 0 ]; then echo "Error: No command provided." >&2 print_help @@ -164,7 +189,8 @@ in current=$(cat /etc/nixos-tags) fi - if sudo nixos-rebuild switch --flake .; then + sudo nixos-rebuild switch --flake . ; _rebuild_exit=$? + if [ "$_rebuild_exit" -eq 0 ]; then echo "✓ Rebuild finished successfully for $HOST" if [ -n "$current" ]; then @@ -177,6 +203,7 @@ in echo -e "Running on new generation: $YELLOW $geno $NOCOLOR-> $GREEN$genn$NOCOLOR" else + ( exit "$_rebuild_exit" ); handle_build_error echo "✗ Rebuild failed for $HOST" >&2 exit 1 fi @@ -258,7 +285,8 @@ in echo "Rebuilding system... Staying on current specialization" fi - if sudo nixos-rebuild switch --flake .; then + sudo nixos-rebuild switch --flake . ; _rebuild_exit=$? + if [ "$_rebuild_exit" -eq 0 ]; then echo "✓ Update and rebuild finished successfully for $HOST" if [ -n "$current" ]; then @@ -271,6 +299,7 @@ in echo -e "Running on new generation: $YELLOW $geno $NOCOLOR-> $GREEN$genn$NOCOLOR" else + ( exit "$_rebuild_exit" ); handle_build_error echo "✗ Update and rebuild failed for $HOST" >&2 exit 1 fi From efca1819b44c200156a07a867272cc05c41b9dc2 Mon Sep 17 00:00:00 2001 From: Cookiez Date: Wed, 27 May 2026 14:53:28 +0200 Subject: [PATCH 18/18] Added gamescope and moved gamemode from plasma to general settings --- modules/configuration.nix | 6 +++++- plasma/default.nix | 2 -- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/configuration.nix b/modules/configuration.nix index 4accfb6..0c18d80 100644 --- a/modules/configuration.nix +++ b/modules/configuration.nix @@ -218,6 +218,10 @@ programs = { steam.enable = true; + gamemode.enable = true; + + gamescope.enable = true; + nix-index-database.comma.enable = true; direnv = { @@ -300,7 +304,7 @@ users.users.${username} = { isNormalUser = true; description = "Cookiez"; - extraGroups = ["networkmanager" "wheel" "docker"]; + extraGroups = ["networkmanager" "wheel" "docker" "gamemode"]; packages = with pkgs; [ #User Packages Here ]; diff --git a/plasma/default.nix b/plasma/default.nix index e5f764d..38a5ed5 100644 --- a/plasma/default.nix +++ b/plasma/default.nix @@ -38,8 +38,6 @@ in { "sddm".serviceConfig.KillMode = "mixed"; }; - programs.gamemode.enable = true; - services = { xserver = { enable = true;