From 68f8144c18d14af8a1af082e831f654384b84cff Mon Sep 17 00:00:00 2001 From: TheCrazyInsanity Date: Thu, 8 Jan 2026 15:39:33 +0000 Subject: [PATCH 1/4] ough --- flake.lock | 26 ++++- flake.nix | 10 +- .../workstation/hardware-configuration.nix | 10 +- machines/workstation/home.nix | 12 ++- modules/kde/default.nix | 1 + modules/kde/home.nix | 96 +++++++++++++++++++ 6 files changed, 146 insertions(+), 9 deletions(-) create mode 100644 modules/kde/home.nix diff --git a/flake.lock b/flake.lock index 8dfe8a8..7fb24b0 100755 --- a/flake.lock +++ b/flake.lock @@ -52,11 +52,35 @@ "type": "github" } }, + "plasma-manager": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1767662275, + "narHash": "sha256-d5Q1GmQ+sW1Bt8cgDE0vOihzLaswsm8cSdg8124EqXE=", + "owner": "nix-community", + "repo": "plasma-manager", + "rev": "51816be33a1ff0d4b22427de83222d5bfa96d30e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "plasma-manager", + "type": "github" + } + }, "root": { "inputs": { "home-manager": "home-manager", "impermanence": "impermanence", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "plasma-manager": "plasma-manager" } } }, diff --git a/flake.nix b/flake.nix index ff4e681..12502b0 100755 --- a/flake.nix +++ b/flake.nix @@ -12,6 +12,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; impermanence.url = "github:nix-community/impermanence"; + plasma-manager = { + url = "github:nix-community/plasma-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.home-manager.follows = "home-manager"; + }; # nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0"; }; @@ -21,6 +26,7 @@ nixpkgs, home-manager, impermanence, + plasma-manager, # nix-flatpak, }@inputs: let @@ -43,6 +49,7 @@ home-manager.useUserPackages = true; home-manager.users.laythe = import ./machines/homepc/home.nix; + home-manager.sharedModules = [ plasma-manager.homeModules.plasma-manager ]; } ]; }; @@ -58,7 +65,8 @@ home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; - home-manager.users.laythe = import ./machines/homepc/home.nix; + home-manager.users.laythe = import ./machines/workstation/home.nix; + home-manager.sharedModules = [ plasma-manager.homeModules.plasma-manager ]; } ]; }; diff --git a/machines/workstation/hardware-configuration.nix b/machines/workstation/hardware-configuration.nix index b6f2738..5b2d711 100755 --- a/machines/workstation/hardware-configuration.nix +++ b/machines/workstation/hardware-configuration.nix @@ -29,11 +29,11 @@ options = [ "compress=zstd" "subvol=root" ]; }; - fileSystems."/home" = { - device = "/dev/disk/by-label/BUTTER"; - fsType = "btrfs"; - options = [ "compress=zstd" "subvol=home" ]; - }; + # fileSystems."/home" = { + # device = "/dev/disk/by-label/BUTTER"; + # fsType = "btrfs"; + # options = [ "compress=zstd" "subvol=home" ]; + # }; fileSystems."/nix" = { # device = "/dev/disk/by-uuid/3c89fa92-1d43-4c48-b228-e2725fa70ee9"; diff --git a/machines/workstation/home.nix b/machines/workstation/home.nix index b9f3cc3..7428e0d 100755 --- a/machines/workstation/home.nix +++ b/machines/workstation/home.nix @@ -1,4 +1,11 @@ -{config, pkgs, lib, inputs, outputs, ...}: +{ + config, + pkgs, + lib, + inputs, + outputs, + ... +}: { # These both are probably always going to be the same, but I'll keep them local just in case:tm: home.username = "laythe"; @@ -6,9 +13,10 @@ imports = [ ../../home/default.nix + ../../modules/kde/home.nix ]; - home.stateVersion = "25.11"; + home.stateVersion = "24.11"; programs.home-manager.enable = true; } diff --git a/modules/kde/default.nix b/modules/kde/default.nix index 7499abd..b6eb566 100755 --- a/modules/kde/default.nix +++ b/modules/kde/default.nix @@ -12,4 +12,5 @@ kdePackages.kate # kdePackages.kdeconnect-kde ]; + services.automatic-timezoned.enable = true; } diff --git a/modules/kde/home.nix b/modules/kde/home.nix new file mode 100644 index 0000000..fdaf3ac --- /dev/null +++ b/modules/kde/home.nix @@ -0,0 +1,96 @@ +{ pkgs, ... }: +{ + progrmams.plasma = { + workspace = { + lookAndFeel = "org.kde.breezedark.desktop"; + }; + panels = [ + # Windows-like panel at the bottom + { + location = "bottom"; + widgets = [ + # We can configure the widgets by adding the name and config + # attributes. For example to add the the kickoff widget and set the + # icon to "nix-snowflake-white" use the below configuration. This will + # add the "icon" key to the "General" group for the widget in + # ~/.config/plasma-org.kde.plasma.desktop-appletsrc. + { + name = "org.kde.plasma.kickoff"; + config = { + General = { + icon = "nix-snowflake-white"; + alphaSort = true; + }; + }; + } + # Or you can configure the widgets by adding the widget-specific options for it. + # See modules/widgets for supported widgets and options for these widgets. + # For example: + # { + # kickoff = { + # sortAlphabetically = true; + # icon = "nix-snowflake-white"; + # }; + # } + # Adding configuration to the widgets can also for example be used to + # pin apps to the task-manager, which this example illustrates by + # pinning dolphin and konsole to the task-manager by default with widget-specific options. + # { + # iconTasks = { + # launchers = [ + # "applications:org.kde.dolphin.desktop" + # "applications:org.kde.konsole.desktop" + # ]; + # }; + # } + # Or you can do it manually, for example: + { + name = "org.kde.plasma.icontasks"; + config = { + General = { + launchers = [ + "applications:org.kde.dolphin.desktop" + "applications:org.kde.konsole.desktop" + ]; + }; + }; + } + # If no configuration is needed, specifying only the name of the + # widget will add them with the default configuration. + "org.kde.plasma.marginsseparator" + # If you need configuration for your widget, instead of specifying the + # the keys and values directly using the config attribute as shown + # above, plasma-manager also provides some higher-level interfaces for + # configuring the widgets. See modules/widgets for supported widgets + # and options for these widgets. The widgets below shows two examples + # of usage, one where we add a digital clock, setting 12h time and + # first day of the week to Sunday and another adding a systray with + # some modifications in which entries to show. + { + digitalClock = { + calendar.firstDayOfWeek = "monday"; + time.format = "12h"; + }; + } + { + systemTray.items = { + # We explicitly show bluetooth and battery + shown = [ + "org.kde.plasma.battery" + "org.kde.plasma.networkmanagement" + "org.kde.plasma.volume" + ]; + # And explicitly hide networkmanagement and volume + hidden = [ + # "org.kde.plasma.networkmanagement" + # "org.kde.plasma.volume" + "org.kde.plasma.bluetooth" + ]; + }; + } + ]; + hiding = "none"; + } + ]; + }; +} From b0855127752fa2974234f84d8560b1a910ae6062 Mon Sep 17 00:00:00 2001 From: TheCrazyInsanity Date: Thu, 8 Jan 2026 18:39:49 +0000 Subject: [PATCH 2/4] h --- modules/kde/default.nix | 14 +++++++++++++- modules/kde/home.nix | 3 ++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/kde/default.nix b/modules/kde/default.nix index b6eb566..27ba72a 100755 --- a/modules/kde/default.nix +++ b/modules/kde/default.nix @@ -8,9 +8,21 @@ programs.kdeconnect.enable = true; environment.systemPackages = with pkgs; [ - firefox # Odd spot, but my choice of browser is determined by environment. kdePackages.kate # kdePackages.kdeconnect-kde ]; + + programs.firefox = { + enable = true; + policies.ExtensionSettings = { + "*".installation_mode = "blocked"; # blocks all addons except the ones specified below + # uBlock Origin: + "uBlock0@raymondhill.net" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; + installation_mode = "force_installed"; + }; + }; + }; + services.automatic-timezoned.enable = true; } diff --git a/modules/kde/home.nix b/modules/kde/home.nix index fdaf3ac..ca43f87 100644 --- a/modules/kde/home.nix +++ b/modules/kde/home.nix @@ -1,6 +1,7 @@ { pkgs, ... }: { - progrmams.plasma = { + programs.plasma = { + enable = true; workspace = { lookAndFeel = "org.kde.breezedark.desktop"; }; From 346b2eac88f797a31fddc18450f365355f6d7306 Mon Sep 17 00:00:00 2001 From: TheCrazyInsanity Date: Fri, 13 Mar 2026 16:16:56 +0000 Subject: [PATCH 3/4] gyatt --- global/eraseyourdarlings.nix | 3 +- machines/workstation/configuration.nix | 7 +- .../workstation/hardware-configuration.nix | 90 +++++++++++++++---- modules/development/default.nix | 17 +++- 4 files changed, 91 insertions(+), 26 deletions(-) diff --git a/global/eraseyourdarlings.nix b/global/eraseyourdarlings.nix index 1c37167..e0b9c13 100755 --- a/global/eraseyourdarlings.nix +++ b/global/eraseyourdarlings.nix @@ -61,6 +61,7 @@ "Documents" "Videos" "nixos-configv3" + ".config/cura" { directory = ".local/share/Steam"; mode = "0777"; @@ -92,5 +93,5 @@ ]; }; }; - users.users.laythe.hashedPasswordFile="/persistent/etc/passwdfile"; + users.users.laythe.hashedPasswordFile = "/persistent/etc/passwdfile"; } diff --git a/machines/workstation/configuration.nix b/machines/workstation/configuration.nix index 6ad7bc3..9cd45b9 100755 --- a/machines/workstation/configuration.nix +++ b/machines/workstation/configuration.nix @@ -87,10 +87,9 @@ # List packages installed in system profile. # You can use https://search.nixos.org/ to find more packages (and options). - # environment.systemPackages = with pkgs; [ - # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. - # wget - # ]; + environment.systemPackages = with pkgs; [ + cura-appimage # I want cura but not kicad so i dont pull in fabrication + ]; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. diff --git a/machines/workstation/hardware-configuration.nix b/machines/workstation/hardware-configuration.nix index 5b2d711..c037622 100755 --- a/machines/workstation/hardware-configuration.nix +++ b/machines/workstation/hardware-configuration.nix @@ -19,14 +19,20 @@ "btrfs" ]; boot.initrd.kernelModules = [ "btrfs" ]; - boot.kernelModules = [ "kvm-intel" "btrfs" ]; + boot.kernelModules = [ + "kvm-intel" + "btrfs" + ]; boot.extraModulePackages = [ ]; boot.supportedFilesystems = [ "btrfs" ]; fileSystems."/" = { device = "/dev/disk/by-label/BUTTER"; fsType = "btrfs"; - options = [ "compress=zstd" "subvol=root" ]; + options = [ + "compress=zstd" + "subvol=root" + ]; }; # fileSystems."/home" = { @@ -39,20 +45,27 @@ # device = "/dev/disk/by-uuid/3c89fa92-1d43-4c48-b228-e2725fa70ee9"; device = "/dev/disk/by-label/BUTTER"; fsType = "btrfs"; - options = [ "compress=zstd" "noatime" "subvol=nix" ]; + options = [ + "compress=zstd" + "noatime" + "subvol=nix" + ]; }; -# fileSystems."/swap" = { -# device = "/dev/disk/by-label/BUTTER"; -# fsType = "btrfs"; -# options = [ "noatime" "subvol=swap" ]; -# }; + # fileSystems."/swap" = { + # device = "/dev/disk/by-label/BUTTER"; + # fsType = "btrfs"; + # options = [ "noatime" "subvol=swap" ]; + # }; fileSystems."/persistent" = { device = "/dev/disk/by-label/BUTTER"; fsType = "btrfs"; neededForBoot = true; - options = [ "compress=zstd" "subvol=persist" ]; + options = [ + "compress=zstd" + "subvol=persist" + ]; }; fileSystems."/boot" = { @@ -64,17 +77,56 @@ ]; }; -# fileSystems = { -# "/".options = [ "compress=zstd" ]; -# "/home".options = [ "compress=zstd" ]; -# "/persist".options = [ "compress=zstd" ]; -# "/nix".options = [ "compress=zstd" "noatime" ]; -# "/swap".options = [ "noatime" ]; -# }; + # fileSystems = { + # "/".options = [ "compress=zstd" ]; + # "/home".options = [ "compress=zstd" ]; + # "/persist".options = [ "compress=zstd" ]; + # "/nix".options = [ "compress=zstd" "noatime" ]; + # "/swap".options = [ "noatime" ]; + # }; -# swapDevices = [ -# { device = "/swap/swapfile"; } -# ]; + # swapDevices = [ + # { device = "/swap/swapfile"; } + # ]; + + # Enable OpenGL + hardware.graphics = { + enable = true; + }; + + # Load nvidia driver for Xorg and Wayland + services.xserver.videoDrivers = [ "nvidia" ]; + + hardware.nvidia = { + + # Modesetting is required. + modesetting.enable = true; + + # Nvidia power management. Experimental, and can cause sleep/suspend to fail. + # Enable this if you have graphical corruption issues or application crashes after waking + # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead + # of just the bare essentials. + powerManagement.enable = false; + + # Fine-grained power management. Turns off GPU when not in use. + # Experimental and only works on modern Nvidia GPUs (Turing or newer). + powerManagement.finegrained = false; + + # Use the NVidia open source kernel module (not to be confused with the + # independent third-party "nouveau" open source driver). + # Support is limited to the Turing and later architectures. Full list of + # supported GPUs is at: + # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus + # Only available from driver 515.43.04+ + open = false; + + # Enable the Nvidia settings menu, + # accessible via `nvidia-settings`. + nvidiaSettings = true; + + # Optionally, you may need to select the appropriate driver version for your specific GPU. + package = config.boot.kernelPackages.nvidiaPackages.stable; + }; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; diff --git a/modules/development/default.nix b/modules/development/default.nix index c824997..3fcfb15 100755 --- a/modules/development/default.nix +++ b/modules/development/default.nix @@ -1,7 +1,20 @@ -{pkgs, ...}: +{ pkgs, ... }: { environment.systemPackages = with pkgs; [ - vscode antigravity # Free Gemini 3 credits was too good of an offer to not take up, even if it requires selling my soul. ]; + + home-manager.sharedModules = [ + ({ pkgs, ... }: { + programs.vscode = { + enable = true; + extensions = with pkgs.vscode-extensions; [ + jnoortheen.nix-ide + ]; + userSettings = { + "editor.formatOnSave" = true; + }; + }; + }) + ]; } \ No newline at end of file From 000ab8fa93cdd6330df165732cf9429ee49499e5 Mon Sep 17 00:00:00 2001 From: TheCrazyInsanity Date: Fri, 13 Mar 2026 16:18:27 +0000 Subject: [PATCH 4/4] huh --- modules/kde/home.nix | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 modules/kde/home.nix diff --git a/modules/kde/home.nix b/modules/kde/home.nix old mode 100644 new mode 100755