From 068eba7c263d989398501a1fa5bff6251ab7a73d Mon Sep 17 00:00:00 2001 From: 0xWheatyz Date: Thu, 19 Feb 2026 22:12:45 -0500 Subject: [PATCH 1/3] feat: working neovim --- configuration.nix | 45 +++++++++++++----- flake.lock | 117 ++++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 44 +++++------------ home.nix | 50 +++++++++++--------- 4 files changed, 188 insertions(+), 68 deletions(-) create mode 100644 flake.lock diff --git a/configuration.nix b/configuration.nix index d607a41..c606e0c 100644 --- a/configuration.nix +++ b/configuration.nix @@ -110,6 +110,7 @@ code-cursor adwaita-icon-theme obsidian + claude-code ]; # Some programs need SUID wrappers, can be configured further or are @@ -216,18 +217,9 @@ # security.pki.certificateFiles = [ /etc/nixos/certs/ipa-ca.crt ]; - programs.hyprland = { - enable = true; - withUWSM = true; # Recommended for NixOS 24.11+ - xwayland.enable = true; - }; - # Enable necessary services xdg.portal = { enable = true; - extraPortals = with pkgs; [ - xdg-desktop-portal-hyprland - ]; }; security.pam.services = { @@ -244,15 +236,34 @@ RUN+="${pkgs.systemd}/bin/loginctl lock-sessions" ''; + # Optimize shutdown handling to prevent user manager hangs + # Reduce timeout for user manager service during shutdown (default is 90s, reducing to 30s) + # This prevents the 2-minute hang when shutting down with linger enabled + systemd.services."user@".serviceConfig = { + TimeoutStopSec = "30s"; + }; + # Reduce default timeout for all user services + systemd.user.extraConfig = '' + DefaultTimeoutStopSec=30s + ''; + # Gnome Configuration fonts.packages = [ pkgs.adwaita-icon-theme pkgs.nerd-fonts._0xproto ]; fonts.fontconfig.enable = true; - services.gnome.core-apps.enable = false; - services.gnome.core-developer-tools.enable = false; - services.gnome.games.enable = false; + services.gnome = { + core-apps.enable = true; + core-developer-tools.enable = true; + games.enable = false; + }; + + services.desktopManager.gnome.extraGSettingsOverrides = '' + [org.gnome.mutter] + experimental-features=['scale-monitor-framebuffer', 'xwayland-native-scaling'] + ''; + environment.gnome.excludePackages = with pkgs; [ gnome-tour gnome-user-docs ]; @@ -263,5 +274,15 @@ style = "adwaita-dark"; }; + + security.wrappers = { + # Low-level unprivileged sandboxing tool, see . + bwrap = { + owner = "root"; + group = "root"; + source = "${pkgs.bubblewrap}/bin/bwrap"; + setuid = true; + }; + }; } diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..1fe054b --- /dev/null +++ b/flake.lock @@ -0,0 +1,117 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1771531206, + "narHash": "sha256-1R3Wx6KUkMb4x4E5UOhW9p6rqiexzSGGWxZqSHqW5n0=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "91be7cce763fa4022c7cf025a71b0c366d1b6e77", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "kickstart-nvim": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1771545825, + "narHash": "sha256-xGrTr8aXGzKBpF+RRwnLR8y8yDweojaoqttfA6RH1ws=", + "owner": "0xWheatyz", + "repo": "kickstart.nvim", + "rev": "cef178c27d1b3840d943f5a28b3a45f9eae049d7", + "type": "github" + }, + "original": { + "owner": "0xWheatyz", + "repo": "kickstart.nvim", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1771369470, + "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0182a361324364ae3f436a63005877674cf45efb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1771369470, + "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0182a361324364ae3f436a63005877674cf45efb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "kickstart-nvim": "kickstart-nvim", + "nixpkgs": "nixpkgs_2" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index 4c55c86..0305c5b 100644 --- a/flake.nix +++ b/flake.nix @@ -1,47 +1,25 @@ { - description = "FrostPhoenix's nixos configuration"; + description = "Home Manager configuration with kickstart.nvim"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - nur.url = "github:nix-community/NUR"; - + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; - - nix-gaming.url = "github:fufexan/nix-gaming"; - nix-flatpak.url = "github:gmodena/nix-flatpak"; - - nix-index-database = { - url = "github:nix-community/nix-index-database"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - maple-mono = { - url = "github:subframe7536/maple-font/variable"; - flake = false; - }; - - superfile.url = "github:yorukot/superfile"; - vicinae.url = "github:vicinaehq/vicinae"; - zen-browser.url = "github:0xc000022070/zen-browser-flake/beta"; + kickstart-nvim.url = "github:0xWheatyz/kickstart.nvim"; }; - outputs = { self, nixpkgs, home-manager, ... }: { - nixosConfigurations = { - yourhostname = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; + outputs = { nixpkgs, home-manager, kickstart-nvim, ... }: { + homeConfigurations = { + "l-wyatt" = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages.x86_64-linux; + modules = [ - ./configuration.nix - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.yourusername = import ./home.nix; - } + ./home.nix + kickstart-nvim.homeManagerModules.default ]; }; }; }; -}` +} diff --git a/home.nix b/home.nix index d9f16ff..c8880ba 100644 --- a/home.nix +++ b/home.nix @@ -114,30 +114,34 @@ }; }; - # Neovim management - programs.neovim = { - enable = true; - defaultEditor = true; + # Neovim management - using kickstart.nvim via flake + # Basic fallback config (uncomment if not using the flake) + #programs.neovim = { + # enable = true; + # defaultEditor = true; + # + # # Load Lua config inline + # extraLuaConfig = '' + # vim.opt.number = true + # vim.opt.tabstop = 2 + # vim.opt.shiftwidth = 2 + # vim.opt.expandtab = true + # vim.opt.relativenumber = true + # + # require("telescope").setup {} + # require("nvim-treesitter.configs").setup { highlight = { enable = true } } + # ''; + # + # plugins = with pkgs.vimPlugins; [ + # telescope-nvim + # nvim-treesitter + # nvim-lspconfig + # gruvbox + # ]; + #}; - # Load Lua config inline - extraLuaConfig = '' - vim.opt.number = true - vim.opt.tabstop = 2 - vim.opt.shiftwidth = 2 - vim.opt.expandtab = true - vim.opt.relativenumber = true - - require("telescope").setup {} - require("nvim-treesitter.configs").setup { highlight = { enable = true } } - ''; - - plugins = with pkgs.vimPlugins; [ - telescope-nvim - nvim-treesitter - nvim-lspconfig - gruvbox - ]; - }; + # Use kickstart.nvim configuration from flake + programs.neovim-kickstart.enable = true; programs.ssh = { enable = true; From 22d0e34139ef37c31fcd0b96d5b0fbee4596abb3 Mon Sep 17 00:00:00 2001 From: 0xWheatyz Date: Sat, 7 Mar 2026 15:46:09 -0500 Subject: [PATCH 2/3] fix: docker rootless now works due to /etc/hosts permissions change --- configuration.nix | 7 ++----- err.log | 32 ++++++++++++++++++++++++++++++++ flake.lock | 15 ++++++++------- flake.nix | 30 ++++++++++++++++++++---------- 4 files changed, 62 insertions(+), 22 deletions(-) create mode 100644 err.log diff --git a/configuration.nix b/configuration.nix index c606e0c..043bbb7 100644 --- a/configuration.nix +++ b/configuration.nix @@ -8,7 +8,6 @@ imports = [ # Include the results of the hardware scan. /etc/nixos/hardware-configuration.nix - ]; ## Commented out as defined at the end of the page @@ -94,9 +93,7 @@ linger = true; extraGroups = [ "networkmanager" "wheel" "docker" "dialout" ]; }; - - home-manager.users.l-wyatt = import /home/l-wyatt/.config/home-manager/home.nix; - + nixpkgs.config.allowUnfree = true; # List packages installed in system profile. To search, run: # $ nix search wget @@ -157,7 +154,7 @@ services.blueman.enable = true; # Allow /etc/hosts to be modified without system rebuild - environment.etc.hosts.mode = "0700"; + environment.etc.hosts.mode = "0644"; # Enable flakes and extras nix.settings.experimental-features = [ "nix-command" "flakes" ]; diff --git a/err.log b/err.log new file mode 100644 index 0000000..7a968ab --- /dev/null +++ b/err.log @@ -0,0 +1,32 @@ +building the system configuration... +error: + … while calling the 'head' builtin + at /nix/store/j4hbw1ws742nmsfhbd9r22k1qgivk7hc-nixos-25.11/nixos/lib/attrsets.nix:1696:13: + 1695| if length values == 1 || pred here (elemAt values 1) (head values) then + 1696| head values + | ^ + 1697| else + + … while evaluating the attribute 'value' + at /nix/store/j4hbw1ws742nmsfhbd9r22k1qgivk7hc-nixos-25.11/nixos/lib/modules.nix:1118:7: + 1117| // { + 1118| value = addErrorContext "while evaluating the option `${showOption loc}':" value; + | ^ + 1119| inherit (res.defsFinal') highestPrio; + + … while evaluating the option `system.build.toplevel': + + … while evaluating definitions from `/nix/store/j4hbw1ws742nmsfhbd9r22k1qgivk7hc-nixos-25.11/nixos/nixos/modules/system/activation/top-level.nix': + + … while evaluating the option `assertions': + + … while evaluating definitions from `/nix/store/qlchl88ml287pcv5xqyrpcq7jjyl3qgm-home-manager-25.11.tar.gz/home-manager/nixos/common.nix': + + (stack trace truncated; use '--show-trace' to show the full, detailed trace) + + error: The option `home-manager.users.l-wyatt.programs.neovim-kickstart' does not exist. Definition values: + - In `/home/l-wyatt/Documents/nixos-configuration/configuration.nix': + { + enable = true; + } +Command 'nix-build '' --attr config.system.build.toplevel --no-out-link' returned non-zero exit status 1. diff --git a/flake.lock b/flake.lock index 1fe054b..2966895 100644 --- a/flake.lock +++ b/flake.lock @@ -25,15 +25,16 @@ ] }, "locked": { - "lastModified": 1771531206, - "narHash": "sha256-1R3Wx6KUkMb4x4E5UOhW9p6rqiexzSGGWxZqSHqW5n0=", + "lastModified": 1772633058, + "narHash": "sha256-SO7JapRy2HPhgmqiLbfnW1kMx5rakPMKZ9z3wtRLQjI=", "owner": "nix-community", "repo": "home-manager", - "rev": "91be7cce763fa4022c7cf025a71b0c366d1b6e77", + "rev": "080657a04188aca25f8a6c70a0fb2ea7e37f1865", "type": "github" }, "original": { "owner": "nix-community", + "ref": "release-25.11", "repo": "home-manager", "type": "github" } @@ -75,16 +76,16 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1771369470, - "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", + "lastModified": 1772822230, + "narHash": "sha256-yf3iYLGbGVlIthlQIk5/4/EQDZNNEmuqKZkQssMljuw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "0182a361324364ae3f436a63005877674cf45efb", + "rev": "71caefce12ba78d84fe618cf61644dce01cf3a96", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-unstable", + "ref": "nixos-25.11", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 0305c5b..3857278 100644 --- a/flake.nix +++ b/flake.nix @@ -1,23 +1,33 @@ { - description = "Home Manager configuration with kickstart.nvim"; + description = "NixOS configuration with home-manager and kickstart.nvim"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; home-manager = { - url = "github:nix-community/home-manager"; + url = "github:nix-community/home-manager/release-25.11"; inputs.nixpkgs.follows = "nixpkgs"; }; kickstart-nvim.url = "github:0xWheatyz/kickstart.nvim"; }; - outputs = { nixpkgs, home-manager, kickstart-nvim, ... }: { - homeConfigurations = { - "l-wyatt" = home-manager.lib.homeManagerConfiguration { - pkgs = nixpkgs.legacyPackages.x86_64-linux; - + outputs = { self, nixpkgs, home-manager, kickstart-nvim, ... }: { + nixosConfigurations = { + nixos = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; modules = [ - ./home.nix - kickstart-nvim.homeManagerModules.default + ./configuration.nix + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.l-wyatt = import /home/l-wyatt/.config/home-manager/home.nix; + home-manager.extraSpecialArgs = { + inherit kickstart-nvim; + }; + home-manager.sharedModules = [ + kickstart-nvim.homeManagerModules.default + ]; + } ]; }; }; From 576cf0dc98011b0743214270193ac75cf3cf4dd1 Mon Sep 17 00:00:00 2001 From: 0xWheatyz Date: Tue, 10 Mar 2026 22:32:31 -0400 Subject: [PATCH 3/3] feat(nvim): applied kickstart nvim from github --- configuration.nix | 49 +++++++++++++++++++++++++++++++++++--- hardware-configuration.nix | 39 ++++++++++++++++++++++++++++++ home.nix | 13 ++++++++-- 3 files changed, 96 insertions(+), 5 deletions(-) create mode 100644 hardware-configuration.nix diff --git a/configuration.nix b/configuration.nix index 043bbb7..32811a7 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,13 +1,27 @@ # Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). +# and in the NixOS manual (accessible by running 'nixos-help'). { config, pkgs, ... }: +let + # Fetch home-manager + home-manager = builtins.fetchTarball { + url = "https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz"; + }; + + # Fetch kickstart-nvim + kickstart-nvim = builtins.fetchGit { + url = "https://github.com/0xWheatyz/kickstart.nvim"; + ref = "master"; + }; +in { imports = [ # Include the results of the hardware scan. - /etc/nixos/hardware-configuration.nix + ./hardware-configuration.nix + # Import home-manager module + (import "${home-manager}/nixos") ]; ## Commented out as defined at the end of the page @@ -136,7 +150,36 @@ # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "25.11"; # Did you read the comment? - + + # Home Manager Configuration + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.l-wyatt = import ./home.nix; + home-manager.sharedModules = [ + # Kickstart-nvim module + ({ config, lib, pkgs, ... }: { + options.programs.neovim-kickstart = { + enable = lib.mkEnableOption "kickstart.nvim configuration"; + }; + + config = lib.mkIf config.programs.neovim-kickstart.enable { + home.file.".config/nvim" = { + source = kickstart-nvim; + recursive = true; + }; + + home.packages = with pkgs; [ + neovim + ripgrep + fd + gcc + gnumake + git + ]; + }; + }) + ]; + ### Start of self configuration # Configure grub to provide ubuntu option boot.loader.grub.enable = true; diff --git a/hardware-configuration.nix b/hardware-configuration.nix new file mode 100644 index 0000000..58855d1 --- /dev/null +++ b/hardware-configuration.nix @@ -0,0 +1,39 @@ +# Do not modify this file! It was generated by 'nixos-generate-config' +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/2e63927a-129d-400a-b532-5e98dd1f53d0"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/6FAB-C1E3"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp193s0f3u2.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/home.nix b/home.nix index c8880ba..f90a7ca 100644 --- a/home.nix +++ b/home.nix @@ -88,6 +88,15 @@ ''; }; + # Configure cursor theme + home.pointerCursor = { + gtk.enable = true; + x11.enable = true; + name = "Adwaita"; + package = pkgs.adwaita-icon-theme; + size = 24; + }; + # Manage your git configuration declaratively programs.git = { enable = true; @@ -172,8 +181,8 @@ proxyJump = "_JumpHost"; }; "git" = { - hostname = "10.0.0.9"; - port = 122; + hostname = "10.0.1.10"; + port = 22; user = "git"; }; };