Compare commits

...

5 Commits

Author SHA1 Message Date
TheCrazyInsanity
67c9ce550d Merge branch 'master' of https://gitea.thecrazyinsanity.win/TheCrazyInsanity/nixos-configv3 2026-03-13 16:22:07 +00:00
TheCrazyInsanity
000ab8fa93 huh 2026-03-13 16:18:27 +00:00
TheCrazyInsanity
346b2eac88 gyatt 2026-03-13 16:16:56 +00:00
TheCrazyInsanity
b085512775 h 2026-01-08 18:39:49 +00:00
TheCrazyInsanity
68f8144c18 ough 2026-01-08 15:39:33 +00:00
9 changed files with 254 additions and 36 deletions

26
flake.lock generated
View File

@@ -93,11 +93,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_2"
"nixpkgs": "nixpkgs",
"plasma-manager": "plasma-manager"
}
}
},

View File

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

View File

@@ -61,6 +61,7 @@
"Documents"
"Videos"
"nixos-configv3"
".config/cura"
{
directory = ".local/share/Steam";
mode = "0777";

View File

@@ -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.

View File

@@ -19,27 +19,37 @@
"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" = {
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";
device = "/dev/disk/by-label/BUTTER";
fsType = "btrfs";
options = [ "compress=zstd" "noatime" "subvol=nix" ];
options = [
"compress=zstd"
"noatime"
"subvol=nix"
];
};
# fileSystems."/swap" = {
@@ -52,7 +62,10 @@
device = "/dev/disk/by-label/BUTTER";
fsType = "btrfs";
neededForBoot = true;
options = [ "compress=zstd" "subvol=persist" ];
options = [
"compress=zstd"
"subvol=persist"
];
};
fileSystems."/boot" = {
@@ -76,6 +89,45 @@
# { 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;

View File

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

View File

@@ -1,8 +1,24 @@
{ 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.
chromium
];
home-manager.sharedModules = [
(
{ pkgs, ... }:
{
programs.vscode = {
enable = true;
extensions = with pkgs.vscode-extensions; [
jnoortheen.nix-ide
];
userSettings = {
"editor.formatOnSave" = true;
};
};
}
)
];
}

View File

@@ -8,9 +8,22 @@
programs.kdeconnect.enable = true;
environment.systemPackages = with pkgs; [
firefox # Odd spot, but my choice of browser is determined by environment.
kdePackages.kate
kdePackages.filelight
# 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;
}

97
modules/kde/home.nix Executable file
View File

@@ -0,0 +1,97 @@
{ pkgs, ... }:
{
programs.plasma = {
enable = true;
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";
}
];
};
}