Compare commits

13 Commits

38 changed files with 1249 additions and 915 deletions

219
flake.lock generated
View File

@ -1,5 +1,28 @@
{
"nodes": {
"alejandra": {
"inputs": {
"fenix": "fenix",
"flakeCompat": "flakeCompat",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1744324181,
"narHash": "sha256-Oi1n2ncF4/AWeY6X55o2FddIRICokbciqFYK64XorYk=",
"owner": "kamadorueda",
"repo": "alejandra",
"rev": "3e2a85506627062313e131bf8a85315f3387c8e0",
"type": "github"
},
"original": {
"owner": "kamadorueda",
"ref": "4.0.0",
"repo": "alejandra",
"type": "github"
}
},
"base16": {
"inputs": {
"fromYaml": "fromYaml"
@ -21,17 +44,17 @@
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1754405784,
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
"lastModified": 1765809053,
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
}
},
@ -68,14 +91,36 @@
"type": "github"
}
},
"fenix": {
"inputs": {
"nixpkgs": [
"alejandra",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1730615655,
"narHash": "sha256-2HBR3zLn57LXKNRtxBb+O+uDqHM4n0pz51rPayMl4cg=",
"owner": "nix-community",
"repo": "fenix",
"rev": "efeb50e2535b17ffd4a135e6e3e5fd60a525180c",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1764724327,
"narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=",
"lastModified": 1764873433,
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047",
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
"type": "github"
},
"original": {
@ -113,11 +158,11 @@
]
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"lastModified": 1767609335,
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
"type": "github"
},
"original": {
@ -126,6 +171,22 @@
"type": "github"
}
},
"flakeCompat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
@ -146,11 +207,11 @@
"flake": false,
"locked": {
"host": "gitlab.gnome.org",
"lastModified": 1764524476,
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=",
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "gitlab"
},
"original": {
@ -186,11 +247,11 @@
]
},
"locked": {
"lastModified": 1765217760,
"narHash": "sha256-BVVyAodLcAD8KOtR3yCStBHSE0WAH/xQWH9f0qsxbmk=",
"lastModified": 1773286336,
"narHash": "sha256-+yFtmhOHterllxWmV6YbdevTXpJdGS0mS0UmJ0k9fh0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e5b1f87841810fc24772bf4389f9793702000c9b",
"rev": "7d06e0cefe6e4a1e85b2b3274dcb0b3da242a557",
"type": "github"
},
"original": {
@ -208,11 +269,11 @@
]
},
"locked": {
"lastModified": 1762964643,
"narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=",
"lastModified": 1772330611,
"narHash": "sha256-UZjPc/d5XRxvjDbk4veAO4XFdvx6BUum2l40V688Xq8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "827f2a23373a774a8805f84ca5344654c31f354b",
"rev": "58fd7ff0eec2cda43e705c4c0585729ec471d400",
"type": "github"
},
"original": {
@ -233,11 +294,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1765258158,
"narHash": "sha256-d35lpzPLgL8gVruRAFt/KPwXQh7a19wR1AzQJHjyyuo=",
"lastModified": 1773303738,
"narHash": "sha256-qrl74wNFMTUzA8z6nSEWNjQcJI/MQEWdWu2Wn+u4Ctg=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "7546342de11138550fcadf104b5257f6534886e2",
"rev": "329df7671b7859abd1cbca5d5af296ed6dc22b46",
"type": "github"
},
"original": {
@ -266,11 +327,11 @@
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1765256153,
"narHash": "sha256-tHey91LxQM6pgnTfguw0jqN45xj8X/0Vu71RPGkGSKg=",
"lastModified": 1773130184,
"narHash": "sha256-3bwx4WqCB06yfQIGB+OgIckOkEDyKxiTD5pOo4Xz2rI=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "83a733e08512d9a6ff5332ef53acc0e8e635c2ea",
"rev": "b07bde3ee82dd73115e6b949e4f3f63695da35ea",
"type": "github"
},
"original": {
@ -281,11 +342,11 @@
},
"nix-flatpak": {
"locked": {
"lastModified": 1754777568,
"narHash": "sha256-0bBqT+3XncgF8F03RFAamw9vdf0VmaDoIJLTGkjfQZs=",
"lastModified": 1768656715,
"narHash": "sha256-Sbh037scxKFm7xL0ahgSCw+X2/5ZKeOwI2clqrYr9j4=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "62f636b87ef6050760a8cb325cadb90674d1e23e",
"rev": "123fe29340a5b8671367055b75a6e7c320d6f89a",
"type": "github"
},
"original": {
@ -296,11 +357,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1764440730,
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=",
"lastModified": 1772972630,
"narHash": "sha256-mUJxsNOrBMNOUJzN0pfdVJ1r2pxeqm9gI/yIKXzVVbk=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3",
"rev": "3966ce987e1a9a164205ac8259a5fe8a64528f72",
"type": "github"
},
"original": {
@ -311,11 +372,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1765271087,
"narHash": "sha256-u38f0e122QdMNWcgUVEzjDklxOauP/k0bEYNMg+Eeac=",
"lastModified": 1773304180,
"narHash": "sha256-e/ctVWU2EYXBOsJHU76lN6vqugD8u1Xl20MJ+A+bPuE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "adf3274db725a05e8c2722e1ca62c781cea33cd0",
"rev": "d5eb8dca28f5be580c26f8fcb2ec4ec4215e9102",
"type": "github"
},
"original": {
@ -327,11 +388,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1764983851,
"narHash": "sha256-y7RPKl/jJ/KAP/VKLMghMgXTlvNIJMHKskl8/Uuar7o=",
"lastModified": 1773068389,
"narHash": "sha256-vMrm7Pk2hjBRPnCSjhq1pH0bg350Z+pXhqZ9ICiqqCs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d9bc5c7dceb30d8d6fafa10aeb6aa8a48c218454",
"rev": "44bae273f9f82d480273bab26f5c50de3724f52f",
"type": "github"
},
"original": {
@ -343,11 +404,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1764950072,
"narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=",
"lastModified": 1773122722,
"narHash": "sha256-FIqHByVqxCprNjor1NqF80F2QQoiiyqanNNefdlvOg4=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "f61125a668a320878494449750330ca58b78c557",
"rev": "62dc67aa6a52b4364dd75994ec00b51fbf474e50",
"type": "github"
},
"original": {
@ -366,11 +427,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1771135771,
"narHash": "sha256-wyvBIhDuyCRyjB3yPg77qoyxrlgQtBR1rVW3c9knV3E=",
"lastModified": 1772402258,
"narHash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "ed0424f0b08d303a7348f52f7850ad1b2704f9ba",
"rev": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10",
"type": "github"
},
"original": {
@ -391,11 +452,11 @@
]
},
"locked": {
"lastModified": 1764773531,
"narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=",
"lastModified": 1767810917,
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
"owner": "nix-community",
"repo": "NUR",
"rev": "1d9616689e98beded059ad0384b9951e967a17fa",
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
"type": "github"
},
"original": {
@ -414,11 +475,11 @@
]
},
"locked": {
"lastModified": 1763909441,
"narHash": "sha256-56LwV51TX/FhgX+5LCG6akQ5KrOWuKgcJa+eUsRMxsc=",
"lastModified": 1772361940,
"narHash": "sha256-B1Cz+ydL1iaOnGlwOFld/C8lBECPtzhiy/pP93/CuyY=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "b24ed4b272256dfc1cc2291f89a9821d5f9e14b4",
"rev": "a4b33606111c9c5dcd10009042bb710307174f51",
"type": "github"
},
"original": {
@ -434,11 +495,11 @@
]
},
"locked": {
"lastModified": 1764663772,
"narHash": "sha256-sHqLmm0wAt3PC4vczJeBozI1/f4rv9yp3IjkClHDXDs=",
"lastModified": 1773291133,
"narHash": "sha256-9Odn+7x5l90HnXRY7MwVYcX+8CYAo+ldJ+GOVs7e2T8=",
"owner": "outfoxxed",
"repo": "quickshell",
"rev": "26531fc46ef17e9365b03770edd3fb9206fcb460",
"rev": "9a9c60525014bcdf83aace03db4b53c19168edcc",
"type": "github"
},
"original": {
@ -449,6 +510,7 @@
},
"root": {
"inputs": {
"alejandra": "alejandra",
"grub2-themes": "grub2-themes",
"home-manager": "home-manager",
"niri": "niri",
@ -462,6 +524,23 @@
"zen-browser": "zen-browser"
}
},
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1730555913,
"narHash": "sha256-KNHZUlqsEibg3YtfUyOFQSofP8hp1HKoY+laoesBxRM=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "f17a5bbfd0969ba2e63a74505a80e55ecb174ed9",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"stylix": {
"inputs": {
"base16": "base16",
@ -483,11 +562,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1765047449,
"narHash": "sha256-VQcqjJ2g0kT9TW4ENwA2HBQJzfbCUd5s1Wm3K+R2QZY=",
"lastModified": 1772296853,
"narHash": "sha256-pAtzPsgHRKw/2Kv8HgAjSJg450FDldHPWsP3AKG/Xj0=",
"owner": "nix-community",
"repo": "stylix",
"rev": "bd00e01aab676aee88e6cc5c9238b4a5a7d6639a",
"rev": "c4b8e80a1020e09a1f081ad0f98ce804a6e85acf",
"type": "github"
},
"original": {
@ -563,11 +642,11 @@
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1763914658,
"narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=",
"lastModified": 1767710407,
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c",
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
"type": "github"
},
"original": {
@ -579,11 +658,11 @@
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1764465359,
"narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=",
"lastModified": 1767489635,
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "edf89a780e239263cc691a987721f786ddc4f6aa",
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
"type": "github"
},
"original": {
@ -595,11 +674,11 @@
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1764464512,
"narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=",
"lastModified": 1767488740,
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a",
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
"type": "github"
},
"original": {
@ -628,11 +707,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1765201946,
"narHash": "sha256-7zkEUqmeWToaTGp29YI7HUN7qiSCauNB2ep0TpB1Jwk=",
"lastModified": 1772429643,
"narHash": "sha256-M+bAeCCcjBnVk6w/4dIVvXvpJwOKnXjwi/lDbaN6Yws=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "2f9981ad0890739980d09cd2a18293a1d47d0f01",
"rev": "10f985b84cdbcc3bbf35b3e7e43d1b2a84fa9ce2",
"type": "github"
},
"original": {
@ -649,11 +728,11 @@
]
},
"locked": {
"lastModified": 1765175766,
"narHash": "sha256-M4zs4bVUv0UNuVGspwwlcGs5FpCDt52LQBA5a9nj5Lg=",
"lastModified": 1773290887,
"narHash": "sha256-L1yMYmFffHfZNP+hKJGRBmrFKkn/VDhu7jEbVftBQuM=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "5126a8426773dc213a8c0f0d646aca116194dab6",
"rev": "9346698c4562819f61b4e5097151ec0b17729fab",
"type": "github"
},
"original": {

View File

@ -37,13 +37,29 @@
inputs.nixpkgs.follows = "nixpkgs";
};
alejandra = {
url = "github:kamadorueda/alejandra/4.0.0";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-flatpak.url = "github:gmodena/nix-flatpak";
grub2-themes.url = "github:vinceliuice/grub2-themes";
};
outputs = inputs@{ nixpkgs, home-manager, plasma-manager, nixos-hardware, stylix, niri, zen-browser, grub2-themes, nix-flatpak, ... }:
let
outputs = inputs @ {
nixpkgs,
alejandra,
home-manager,
plasma-manager,
nixos-hardware,
stylix,
niri,
zen-browser,
grub2-themes,
nix-flatpak,
...
}: let
username = "cookiez";
hostname = "nixos";
project = "NixOS";
@ -52,8 +68,9 @@
pkgs = import nixpkgs {inherit system;};
framework13 = true;
in
{
in {
formatter.${system} = nixpkgs.legacyPackages.${system}.alejandra;
nixosConfigurations = {
${hostname} = nixpkgs.lib.nixosSystem {
inherit system;
@ -63,12 +80,20 @@
inherit version;
inherit system;
inherit project;
inherit alejandra;
host = hostname;
};
modules = [
modules =
[
./modules
#Conditional Modules!
] ++ (if framework13 then [ nixos-hardware.nixosModules.framework-13-7040-amd ] else [ ]) ++ [
]
++ (
if framework13
then [nixos-hardware.nixosModules.framework-13-7040-amd]
else []
)
++ [
];
};
};

View File

@ -1,5 +1,9 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}: {
boot = {
# silence first boot output
consoleLogLevel = 3;

View File

@ -3,17 +3,25 @@
#nmcli device wifi connect <ssid> password <password>
# or if no password (open wifi)
#nmcli device wifi connect <ssid>
{ inputs, config, pkgs, lib, username, project, host, version, system, ... }:
{
inputs,
config,
pkgs,
lib,
username,
project,
host,
version,
system,
...
}: {
#Assign Swap to the PC
#swapDevices = [{
# device = "/swapfile";
# size = 16 * 1024; # 16GB
#}];
imports =
[
imports = [
inputs.home-manager.nixosModules.home-manager
inputs.grub2-themes.nixosModules.default
inputs.nix-flatpak.nixosModules.nix-flatpak
@ -63,7 +71,6 @@
#Manage flags -> Add bios_grub
networking = {
# Enable networking
networkmanager.enable = true;
@ -183,6 +190,11 @@
openssh.enable = true;
};
systemd.services.fprintd = {
wantedBy = ["multi-user.target"];
serviceConfig.Type = "simple";
};
fonts = {
packages = with pkgs; [
font-awesome
@ -301,8 +313,12 @@
sudo.wheelNeedsPassword = false;
pam.services = {
login.fprintAuth = true;
sudo.fprintAuth = true;
sddm.fprintAuth = false; #Because of the bug with 30 seconds on sddm login
sddm-autologin.fprintAuth = false; #Same as above
login.fprintAuth = false;
sudo.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408
kscreenlocker.fprintAuth = true;
polkit-1.fprintAuth = false; #Disabled because of security risk: https://nvd.nist.gov/vuln/detail/cve-2024-37408
kde.fprintAuth = false;
hyprlock = {};
};

View File

@ -1,5 +1,4 @@
{ config, ... }:
{
{config, ...}: {
imports = [
./configuration.nix
@ -43,6 +42,5 @@
environment.etc."nixos-tags".text = "niri";
};
};
};
}

View File

@ -1,5 +1,9 @@
{ pkgs, username, project, ...}:
{
pkgs,
username,
project,
...
}: {
xdg = {
desktopEntries.youtube = {
name = "YouTube";
@ -107,6 +111,5 @@
name = "Discover";
noDisplay = true;
};
};
}

View File

@ -1,5 +1,4 @@
{ username, ... }:
{
{username, ...}: {
programs.firefox = {
enable = true;
profiles = {

View File

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
let
{
config,
pkgs,
...
}: let
lock-false = {
Value = false;
Status = "locked";
@ -9,9 +11,7 @@
Value = true;
Status = "locked";
};
in
{
in {
home-manager.sharedModules = [
./firefox-home.nix
];
@ -21,7 +21,9 @@
enable = true;
languagePacks = ["de" "en-US"];
/* ---- POLICIES ---- */
/*
---- POLICIES ----
*/
# Check about:policies#documentation for options.
policies = {
PasswordManagerEnabled = false;
@ -44,15 +46,15 @@
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
/* ---- EXTENSIONS ---- */
/*
---- EXTENSIONS ----
*/
# Check about:support for extension/add-on ID strings.
# Valid strings for installation_mode are "allowed", "blocked",
# "force_installed" and "normal_installed".
# How to: https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265
ExtensionSettings =
with builtins;
let
ExtensionSettings = with builtins; let
extension = shortId: uuid: {
name = uuid;
value = {
@ -77,10 +79,15 @@
(extension "darkreader" "addon@darkreader.org")
];
/* ---- PREFERENCES ---- */
/*
---- PREFERENCES ----
*/
# Check about:config for options.
Preferences = {
"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
"browser.contentblocking.category" = {
Value = "strict";
Status = "locked";
};
"extensions.pocket.enabled" = lock-false;
"extensions.screenshots.disabled" = lock-true;
"browser.topsites.contile.enabled" = lock-false;

View File

@ -1,11 +1,15 @@
# 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")
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "thunderbolt" "uas" "usbhid" "sd_mod"];
@ -13,13 +17,13 @@
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/af8fdb25-74d8-4b33-8413-bdcb66e0d22a";
fileSystems."/" = {
device = "/dev/disk/by-uuid/af8fdb25-74d8-4b33-8413-bdcb66e0d22a";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/58D5-0C06";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/58D5-0C06";
fsType = "vfat";
options = ["fmask=0077" "dmask=0077"];
};

View File

@ -1,18 +1,30 @@
{ lib, inputs, config, pkgs, username, project, host, version, ... }:
{
lib,
inputs,
config,
pkgs,
username,
project,
host,
version,
...
}: {
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = username;
home.homeDirectory = "/home/${username}";
home.packages = [
(import ./ncli.nix { inherit pkgs host project; backupFiles = [
(import ./ncli.nix {
inherit pkgs host project;
backupFiles = [
".gtkrc-2.0.backup"
".config/gtk-3.0/gtk.css.backup"
".config/gtk-3.0/settings.ini.backup"
".config/gtk-4.0/gtk.css.backup"
".config/gtk-4.0/settings.ini.backup"
".config/niri/config.kdl"
]; })
];
})
];
imports = [
@ -37,7 +49,6 @@
programs = {
home-manager = {enable = true;};
zoxide = {
enable = true;
#enableZshIntegration = true;
@ -56,7 +67,6 @@
};
};
git = {
enable = true;
settings = {
@ -80,7 +90,6 @@
path = "${username}.default";
isDefault = true;
settings = {
};
};
};
@ -101,9 +110,7 @@
OfferToSaveLogins = false;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
ExtensionSettings =
with builtins;
let
ExtensionSettings = with builtins; let
extension = shortId: uuid: {
name = uuid;
value = {

View File

@ -1,5 +1,9 @@
{ config, inputs, pkgs, ... }:
{
config,
inputs,
pkgs,
...
}: {
imports = [
];
@ -7,8 +11,7 @@
./home.nix
];
environment.systemPackages = with pkgs;
[
environment.systemPackages = with pkgs; [
hyprlock
];
}

View File

@ -1,6 +1,9 @@
{pkgs, inputs, username, ...}:
{
pkgs,
inputs,
username,
...
}: {
imports = [
];

View File

@ -1,5 +1,9 @@
{ config, inputs, pkgs, ... }:
{
config,
inputs,
pkgs,
...
}: {
imports = [
];
@ -7,8 +11,7 @@
./home.nix
];
environment.systemPackages = with pkgs;
[
environment.systemPackages = with pkgs; [
hyprpaper
];
}

View File

@ -1,6 +1,10 @@
{pkgs, inputs, username, project, ...}:
{
pkgs,
inputs,
username,
project,
...
}: {
imports = [
];

View File

@ -3,11 +3,15 @@
#nmcli device wifi connect <ssid> password <password>
# or if no password (open wifi)
#nmcli device wifi connect <ssid>
{ config, pkgs, lib, username, version, ... }:
{
imports =
[
config,
pkgs,
lib,
username,
version,
...
}: {
imports = [
./hardware-configuration.nix
./zsh.nix
#./ncli.nix

View File

@ -161,13 +161,64 @@ in
echo -e "Updating flake and rebuilding system for current host: $HOST on generation: $YELLOW$geno$NOCOLOR"
cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; }
echo "Updating flake..."
if nix flake update; then
# --- Selective flake update ---
read -rp "Update [a]ll inputs or [s]elect manually? (a/s): " choice
case "$choice" in
a|A)
echo "Updating all inputs..."
if nix flake update --flake .; then
echo " Flake updated successfully"
else
echo " Flake update failed" >&2
exit 1
fi
;;
s|S)
echo "Fetching available updates (this may take a moment)..."
TEMP_LOCK=$(mktemp)
trap 'rm -f "$TEMP_LOCK"' EXIT
nix flake update --output-lock-file "$TEMP_LOCK" --flake . 2>/dev/null
outdated=$(jq -r --slurpfile new "$TEMP_LOCK" '
.nodes as $old |
$new[0].nodes as $newn |
($old | keys[]) |
select(. != "root") |
select(
($old[.].locked.lastModified // 0) !=
($newn[.].locked.lastModified // 0)
)
' flake.lock)
if [[ -z "$outdated" ]]; then
echo " All inputs are already up to date, skipping flake update."
else
echo
echo "Updates available for:"
printf '%s\n' "$outdated"
echo
echo "Tab to select, Enter to update, Esc to cancel."
selected=$(printf '%s\n' "$outdated" | fzf --multi) || {
echo "No inputs selected, skipping flake update."
selected=""
}
if [[ -n "$selected" ]]; then
if nix flake update --flake . $selected; then
echo " Flake updated successfully"
else
echo " Flake update failed" >&2
exit 1
fi
fi
fi
;;
*)
echo "Invalid choice, skipping flake update."
;;
esac
# --- End selective flake update ---
current=""
@ -261,6 +312,9 @@ in
cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; }
git status
;;
format)
nix fmt .
;;
trim)
echo "Running 'sudo fstrim -v /' may take a few minutes and impact system performance."
read -p "Enter to run now or enter to exit (y/N): " -n 1 -r

View File

@ -1,7 +1,11 @@
{ inputs, config, lib, pkgs, ... }:
{
environment.systemPackages = with pkgs;
[
inputs,
config,
lib,
pkgs,
...
}: {
environment.systemPackages = with pkgs; [
neovim
vimPlugins.LazyVim
vimPlugins.lazygit-nvim
@ -13,7 +17,6 @@
./home.nix
];
# programs.neovim = {
# enable = true;
#};

View File

@ -1,5 +1,10 @@
{ inputs, config, lib, pkgs, ... }:
{
inputs,
config,
lib,
pkgs,
...
}: {
imports = [
inputs.nixvim.homeModules.nixvim
];
@ -108,6 +113,22 @@
check_ts = true; # Use treesitter to avoid pairing inside strings/comments
};
};
conform-nvim = {
enable = true;
settings = {
formatters_by_ft = {
nix = ["alejandra"];
};
format_on_save = {
lsp_format = "fallback";
timeout_ms = 500;
};
};
# Pin the exact binary path so Nix guarantees it's available
settings.formatters = {
alejandra.command = "${pkgs.alejandra}/bin/alejandra";
};
};
};
extraPlugins = with pkgs.vimPlugins; [

View File

@ -1,5 +1,10 @@
{config, pkgs, libs, inputs, ...}:
{
config,
pkgs,
libs,
inputs,
...
}: {
environment.systemPackages = with pkgs; [
#CLI tools
pdftk #PDF toolkit

View File

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
imports = [
./desktop.nix
./cli.nix

View File

@ -1,10 +1,14 @@
{config, pkgs, libs, inputs, ...}:
{
config,
pkgs,
libs,
inputs,
...
}: {
environment.systemPackages = with pkgs; [
#Programming
jetbrains.pycharm-community #The PyCharm IDE to edit Python code
jetbrains.idea-community #The IntelliJ IDE to edit Java 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
@ -33,7 +37,7 @@
atlauncher #Minecraft Launcher
#discord
vesktop #Aternative for discord on Wayland
wineWowPackages.stagingFull
wineWow64Packages.stagingFull
winetricks
wasistlos #Whatsapp
#obs-studio #Screen Recorder

View File

@ -1,12 +1,19 @@
{config, pkgs, libs, inputs, nix-flatpak, ...}:
{
config,
pkgs,
libs,
inputs,
system,
alejandra,
...
}: {
environment.systemPackages = with pkgs; [
#Essentials (CLI Only)
wget #A tool for quickly downloading things from the Web
javaPackages.compiler.openjdk25 #Java Development Kit 25
python312 #Python 3.12
python312Packages.pip #Pip for Python 3.12
python312Packages.cmake #The CMake tool to manage project build configurations
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
@ -21,7 +28,7 @@
konsave #A package to transfer the look and feel of KDE Plasma to other machines
openssh #SSH
zoxide #Alternatice to cd, browse files
fzf-zsh #Search for file names
zsh #Search for file names
coreutils-full #Full set of coreutils, including some missing ones
multipath-tools
docker #Docker ... no need to explain
@ -38,6 +45,8 @@
rocmPackages.rocm-runtime #AMD ROCm runtime
ripgrep #Alternative to grep search for text in files
pipewire #Multimedia handling
fzf #Needed for nix-selective update tool
jq #Needed for nix-selective update tool
distrobox
dbus
cifs-utils
@ -45,5 +54,6 @@
kdePackages.ksshaskpass
ntfs3g
appimage-run
alejandra.defaultPackage.${system}
];
}

View File

@ -1,5 +1,11 @@
{config, pkgs, libs, inputs, nix-flatpak, ...}:
{
config,
pkgs,
libs,
inputs,
nix-flatpak,
...
}: {
services.flatpak = {
enable = true;

View File

@ -1,8 +1,10 @@
{ pkgs, inputs, username, ... }:
{
imports =
[
pkgs,
inputs,
username,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix
];

View File

@ -1,6 +1,9 @@
{pkgs, inputs, username, ...}:
{
pkgs,
inputs,
username,
...
}: {
imports = [
];

View File

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
# xdg.configFile."waybar/config.jsonc".source = ./config.jsonc;
# xdg.configFile."waybar/style.css".source = ./style.css;
}

View File

@ -1,4 +1,10 @@
{ config, pkgs, username, project, ... }: {
{
config,
pkgs,
username,
project,
...
}: {
programs.zsh = {
enable = true;
enableCompletion = false;
@ -19,7 +25,6 @@
#To reset powerlevel10k, write 'p10k configure' in shell!
promptInit = ''
source ${pkgs.zsh-autocomplete}/share/zsh-autocomplete/zsh-autocomplete.plugin.zsh
source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme
# Make and move the cursor on the command line, even when in the menu
@ -35,7 +40,6 @@
pkgs.zsh-completions
pkgs.zsh-powerlevel10k
pkgs.zsh-syntax-highlighting
pkgs.zsh-autocomplete
pkgs.zsh-autosuggestions
];
}

View File

@ -1,6 +1,10 @@
{ config, pkgs, username, project, ... }:
{
config,
pkgs,
username,
project,
...
}: {
#To show logs of services run:
#journalctl --user-unit={service-name} --user
systemd.user.services.niri-waybar = {

View File

@ -1,5 +1,9 @@
{ config, inputs, pkgs, ... }:
{
config,
inputs,
pkgs,
...
}: {
imports = [
./autostart.nix
../modules/hyprlock
@ -11,8 +15,7 @@
./home.nix
];
environment.systemPackages = with pkgs;
[
environment.systemPackages = with pkgs; [
#mako
fuzzel
waybar
@ -26,11 +29,11 @@
xwayland.enable = true;
};
#services.xserver.enable = true;
#services.xserver.displayManager.sddm.enable = true;
xdg.portal = { #Needed for waybar
xdg.portal = {
#Needed for waybar
enable = true;
extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-wlr];
config.common.default = "*";
@ -38,5 +41,4 @@
#sound.enable = true;
#security.rtkit.enable = true;
}

View File

@ -1,6 +1,8 @@
{pkgs, inputs, ...}:
{
pkgs,
inputs,
...
}: {
imports = [
inputs.niri.homeModules.niri
../modules/waybar/home.nix

View File

@ -8,6 +8,7 @@
#-----
alias py="python3"
alias mcrow="echo 'you better try to use nvim you little shit! :3'"
alias vi="nvim"
alias srcals="source $HOME/NixOS/other/aliases && echo 'Sourced Aliases ... successful!'"
alias please="sudo"
alias se="sudoedit"

View File

@ -1,6 +1,10 @@
{ config, pkgs, username, project, ... }:
{
config,
pkgs,
username,
project,
...
}: {
#To show logs of services run: journalctl --user-unit={service-name} --user
systemd.user.services.autostart-yakuake = {

View File

@ -1,5 +1,10 @@
{config, pkgs, username, project, ...}:
let
{
config,
pkgs,
username,
project,
...
}: let
# Define the custom background package with the correct relative path
background-package = pkgs.stdenvNoCC.mkDerivation {
name = "background-image";
@ -12,10 +17,8 @@ let
plasmaTheme = "desktop"; #Possible values are "laptop" or "desktop"
powerProfile = "laptop"; #Possible values are "laptop" or "desktop"
in
{
imports =
[
in {
imports = [
./autostart.nix
../modules/stylix
];
@ -75,7 +78,6 @@ in
'';
environment = {
plasma6.excludePackages = with pkgs; [
kdePackages.elisa
];

View File

@ -1,7 +1,14 @@
{pkgs, lib, inputs, username, project, plasmaTheme, ...}:
{
imports = [
pkgs,
lib,
inputs,
username,
project,
plasmaTheme,
...
}: {
imports =
[
./settings/common.nix
./settings/powerProfile.nix
]

View File

@ -1,5 +1,11 @@
{pkgs, inputs, username, project, plasmaTheme, ...}:
{
pkgs,
inputs,
username,
project,
plasmaTheme,
...
}: {
programs = {
plasma = {
enable = true;
@ -13,10 +19,29 @@
leftHanded = false;
#middleButtonEmulation = false;
#naturalScroll = false;
acceleration = -0.25;
#acceleration = -0.25;
acceleration = 0;
accelerationProfile = "none";
scrollSpeed = 1.0;
}
{
name = "ROCCAT ROCCAT Kone Aimo 16K";
vendorId = "1e7d";
productId = "2e2c";
leftHanded = false;
acceleration = -1;
accelerationProfile = "none";
scrollSpeed = 1.0;
}
#{
# name = "ROCCAT ROCCAT Vulcan AIMO";
# vendorId = "1e7d";
# productId = "3098";
# leftHanded = false;
# acceleration = -1;
# accelerationProfile = "none";
# scrollSpeed = 1.0;
#}
];
shortcuts = {
@ -32,7 +57,6 @@
"Switch to Next Keyboard Layout" = [];
};
#kaccess."Toggle Screen Reader On and Off" = "Meta+Alt+S";
#kcm_touchpad."Disable Touchpad" = "Touchpad Off";
#kcm_touchpad."Enable Touchpad" = "Touchpad On";
@ -293,10 +317,11 @@
#baloofilerc.General."exclude filters version" = 9;
dolphinrc = {
General = {
ShowTerminal = true;
#ShowTerminal = true;
RememberOpenedTabs = false;
# ViewPropsTimestamp = "2024,8,12,15,7,43.15";
};
"MainWindow"."TerminalPanel Visible" = true;
# IconsMode.PreviewSize = 80;
# "KFileDialog Settings"."Places Icons Auto-resize" = false;
# "KFileDialog Settings"."Places Icons Static Size" = 22;
@ -379,6 +404,7 @@
kwinrc = {
# "Activities/LastVirtualDesktop"."0f8d8349-5b1b-4b77-bfa5-22829bfaf459" = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37";
# "Activities/LastVirtualDesktop".e85f493f-046d-4dca-9e07-987ecd4ca4bc = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37";
"EdgeBarrier"."EdgeBarrier" = 15;
Desktops = {
# Id_1 = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37";
# Id_2 = "fc5cf4ff-2e08-4059-ac1f-7c5540efa4fc";

View File

@ -1,5 +1,11 @@
{pkgs, inputs, username, project, plasmaTheme, ...}:
{
pkgs,
inputs,
username,
project,
plasmaTheme,
...
}: {
programs = {
plasma = {
overrideConfig = true;
@ -21,7 +27,8 @@
launchers = [
# optional pinned apps
"applications:org.kde.dolphin.desktop"
"applications:systemsettings.desktop""applications:kitty.desktop"
"applications:systemsettings.desktop"
"applications:kitty.desktop"
"applications:firefox.desktop"
];
};

View File

@ -1,6 +1,11 @@
{pkgs, inputs, username, project, plasmaTheme, ...}:
{
pkgs,
inputs,
username,
project,
plasmaTheme,
...
}: {
programs = {
plasma = {
overrideConfig = true;
@ -111,13 +116,13 @@
launchers = [
# optional pinned apps
"applications:org.kde.dolphin.desktop"
"applications:systemsettings.desktop""applications:kitty.desktop"
"applications:systemsettings.desktop"
"applications:kitty.desktop"
"applications:firefox.desktop"
];
};
};
}
];
}
];

View File

@ -1,5 +1,11 @@
{pkgs, inputs, username, project, powerProfile, ...}:
let
{
pkgs,
inputs,
username,
project,
powerProfile,
...
}: let
profiles = {
laptop = {
AC.powerProfile = "powerSaving";
@ -14,8 +20,7 @@ let
};
selectedProfile = profiles.${powerProfile};
in
{
in {
programs = {
plasma = {
overrideConfig = true;