Compare commits

...

22 Commits

Author SHA1 Message Date
7ed6185b1d Changed url of pam-fprint-grosshack input 2026-04-08 11:49:51 +02:00
3d751291ab Hardened firefox and set default search engine to self hosted searxng 2026-04-08 11:34:14 +02:00
594e078929 Added lossless cut 2026-04-08 09:49:36 +02:00
dc4ff6d8d2 Changed grub timeout to 5 sec and disabled ollama service 2026-04-08 09:23:09 +02:00
b341ca2c87 Renamed 'firefox-home' module to only 'home' 2026-03-26 10:24:02 +01:00
762bab2c0b Moved Firefox config to its own folder in modules
Added youtube shorts blocker extension to firefox
2026-03-26 10:20:28 +01:00
0f1d51c246 Removed Zen Browser 2026-03-26 10:07:36 +01:00
b953cdb4be Fixed SDDM fingerprint not working.
- Added a new custom flake input of pam_fprintd_grosshack so it accepts either password or fingerprint
2026-03-25 11:16:30 +01:00
cf1470cb63 Added Neovim Plugins:
- Remenber where you exited file
- Limited treesitter header context
- Added autocompletion
2026-03-24 09:30:30 +01:00
4962c1bb03 Plasma manager now longer overrides everything. New aliases for searching plasma settings differences 2026-03-24 09:22:18 +01:00
ce797e1a65 Added alejandra formatter to neovim 2026-03-12 10:09:55 +01:00
93bc7644f5 Added edge barrier setting to plasma manager 2026-03-12 10:09:29 +01:00
c986ac4bf7 Updated Flake packages 2026-03-12 09:40:09 +01:00
b25430abc9 Modifed ncli update to ask which packages to update so it is possible to only update wanted packages 2026-03-12 09:39:52 +01:00
c6862c78db - Formatted everything using Alejandra
- Added 'ncli format' as a quick command to format everything
2026-03-11 16:03:16 +01:00
25ecab4a70 Addednvi as an alias for nvim 2026-03-11 15:53:53 +01:00
8de85492a6 Removed ZSH autocomplete as it was slowing down terminal startup 2026-03-11 15:53:37 +01:00
059b424d87 Configured mpre fingerprint settings, also for security 2026-03-11 15:53:00 +01:00
8dba82f523 Tried to configure Kone aimo sensitivity (not yet working) 2026-03-11 15:51:55 +01:00
70fc8a0c9a Updated flake and some packages to newest versions 2026-03-05 17:10:36 +01:00
ea977f8253 Changed Logitech mouse sensitivity 2026-03-05 16:07:50 +01:00
9abff2dfd7 Added formatter to nix flake
(Still needs to be configred how I like it)
2026-03-05 16:07:00 +01:00
40 changed files with 1425 additions and 1111 deletions

211
flake.lock generated
View File

@ -44,17 +44,17 @@
"base16-fish": { "base16-fish": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1754405784, "lastModified": 1765809053,
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=", "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
"owner": "tomyun", "owner": "tomyun",
"repo": "base16-fish", "repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tomyun", "owner": "tomyun",
"repo": "base16-fish", "repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github" "type": "github"
} }
}, },
@ -116,11 +116,11 @@
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1764724327, "lastModified": 1764873433,
"narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=", "narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047", "rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -158,11 +158,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1763759067, "lastModified": 1767609335,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", "narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", "rev": "250481aafeb741edfe23d29195671c19b36b6dca",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -207,11 +207,11 @@
"flake": false, "flake": false,
"locked": { "locked": {
"host": "gitlab.gnome.org", "host": "gitlab.gnome.org",
"lastModified": 1764524476, "lastModified": 1767737596,
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=", "narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME", "owner": "GNOME",
"repo": "gnome-shell", "repo": "gnome-shell",
"rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22", "rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -247,11 +247,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765217760, "lastModified": 1773286336,
"narHash": "sha256-BVVyAodLcAD8KOtR3yCStBHSE0WAH/xQWH9f0qsxbmk=", "narHash": "sha256-+yFtmhOHterllxWmV6YbdevTXpJdGS0mS0UmJ0k9fh0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e5b1f87841810fc24772bf4389f9793702000c9b", "rev": "7d06e0cefe6e4a1e85b2b3274dcb0b3da242a557",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -261,27 +261,6 @@
"type": "github" "type": "github"
} }
}, },
"home-manager_2": {
"inputs": {
"nixpkgs": [
"zen-browser",
"nixpkgs"
]
},
"locked": {
"lastModified": 1762964643,
"narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "827f2a23373a774a8805f84ca5344654c31f354b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"niri": { "niri": {
"inputs": { "inputs": {
"niri-stable": "niri-stable", "niri-stable": "niri-stable",
@ -294,11 +273,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
"locked": { "locked": {
"lastModified": 1765258158, "lastModified": 1773303738,
"narHash": "sha256-d35lpzPLgL8gVruRAFt/KPwXQh7a19wR1AzQJHjyyuo=", "narHash": "sha256-qrl74wNFMTUzA8z6nSEWNjQcJI/MQEWdWu2Wn+u4Ctg=",
"owner": "sodiboo", "owner": "sodiboo",
"repo": "niri-flake", "repo": "niri-flake",
"rev": "7546342de11138550fcadf104b5257f6534886e2", "rev": "329df7671b7859abd1cbca5d5af296ed6dc22b46",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -327,11 +306,11 @@
"niri-unstable": { "niri-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1765256153, "lastModified": 1773130184,
"narHash": "sha256-tHey91LxQM6pgnTfguw0jqN45xj8X/0Vu71RPGkGSKg=", "narHash": "sha256-3bwx4WqCB06yfQIGB+OgIckOkEDyKxiTD5pOo4Xz2rI=",
"owner": "YaLTeR", "owner": "YaLTeR",
"repo": "niri", "repo": "niri",
"rev": "83a733e08512d9a6ff5332ef53acc0e8e635c2ea", "rev": "b07bde3ee82dd73115e6b949e4f3f63695da35ea",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -342,11 +321,11 @@
}, },
"nix-flatpak": { "nix-flatpak": {
"locked": { "locked": {
"lastModified": 1754777568, "lastModified": 1768656715,
"narHash": "sha256-0bBqT+3XncgF8F03RFAamw9vdf0VmaDoIJLTGkjfQZs=", "narHash": "sha256-Sbh037scxKFm7xL0ahgSCw+X2/5ZKeOwI2clqrYr9j4=",
"owner": "gmodena", "owner": "gmodena",
"repo": "nix-flatpak", "repo": "nix-flatpak",
"rev": "62f636b87ef6050760a8cb325cadb90674d1e23e", "rev": "123fe29340a5b8671367055b75a6e7c320d6f89a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -357,11 +336,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1764440730, "lastModified": 1772972630,
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=", "narHash": "sha256-mUJxsNOrBMNOUJzN0pfdVJ1r2pxeqm9gI/yIKXzVVbk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3", "rev": "3966ce987e1a9a164205ac8259a5fe8a64528f72",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -372,11 +351,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1765271087, "lastModified": 1773304180,
"narHash": "sha256-u38f0e122QdMNWcgUVEzjDklxOauP/k0bEYNMg+Eeac=", "narHash": "sha256-e/ctVWU2EYXBOsJHU76lN6vqugD8u1Xl20MJ+A+bPuE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "adf3274db725a05e8c2722e1ca62c781cea33cd0", "rev": "d5eb8dca28f5be580c26f8fcb2ec4ec4215e9102",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -388,11 +367,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1764983851, "lastModified": 1773068389,
"narHash": "sha256-y7RPKl/jJ/KAP/VKLMghMgXTlvNIJMHKskl8/Uuar7o=", "narHash": "sha256-vMrm7Pk2hjBRPnCSjhq1pH0bg350Z+pXhqZ9ICiqqCs=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d9bc5c7dceb30d8d6fafa10aeb6aa8a48c218454", "rev": "44bae273f9f82d480273bab26f5c50de3724f52f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -404,11 +383,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1764950072, "lastModified": 1773122722,
"narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=", "narHash": "sha256-FIqHByVqxCprNjor1NqF80F2QQoiiyqanNNefdlvOg4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "f61125a668a320878494449750330ca58b78c557", "rev": "62dc67aa6a52b4364dd75994ec00b51fbf474e50",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -427,11 +406,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1771135771, "lastModified": 1772402258,
"narHash": "sha256-wyvBIhDuyCRyjB3yPg77qoyxrlgQtBR1rVW3c9knV3E=", "narHash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "ed0424f0b08d303a7348f52f7850ad1b2704f9ba", "rev": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -452,11 +431,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1764773531, "lastModified": 1767810917,
"narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=", "narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "1d9616689e98beded059ad0384b9951e967a17fa", "rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -465,6 +444,43 @@
"type": "github" "type": "github"
} }
}, },
"pam-fprint-grosshack": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"pam-fprint-src": "pam-fprint-src"
},
"locked": {
"lastModified": 1774432303,
"narHash": "sha256-IdsKBu1HV1mYJMVuAL0GJiWeEkMrdW691aW8D6Zr15I=",
"ref": "refs/heads/main",
"rev": "7ad351f85a92fee40806cb81777430c33499be41",
"revCount": 1,
"type": "git",
"url": "https://gitea.cookiee.org/cookiez/nix-fprint-grosshack-flake.git"
},
"original": {
"type": "git",
"url": "https://gitea.cookiee.org/cookiez/nix-fprint-grosshack-flake.git"
}
},
"pam-fprint-src": {
"flake": false,
"locked": {
"lastModified": 1658952526,
"narHash": "sha256-obczZbf/oH4xGaVvp3y3ZyDdYhZnxlCWvL0irgEYIi0=",
"owner": "mishakmak",
"repo": "pam-fprint-grosshack",
"rev": "45b42524fb5783e1e555067743d7e0f70d27888a",
"type": "gitlab"
},
"original": {
"owner": "mishakmak",
"repo": "pam-fprint-grosshack",
"type": "gitlab"
}
},
"plasma-manager": { "plasma-manager": {
"inputs": { "inputs": {
"home-manager": [ "home-manager": [
@ -475,11 +491,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1763909441, "lastModified": 1772361940,
"narHash": "sha256-56LwV51TX/FhgX+5LCG6akQ5KrOWuKgcJa+eUsRMxsc=", "narHash": "sha256-B1Cz+ydL1iaOnGlwOFld/C8lBECPtzhiy/pP93/CuyY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "plasma-manager", "repo": "plasma-manager",
"rev": "b24ed4b272256dfc1cc2291f89a9821d5f9e14b4", "rev": "a4b33606111c9c5dcd10009042bb710307174f51",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -495,11 +511,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1764663772, "lastModified": 1773291133,
"narHash": "sha256-sHqLmm0wAt3PC4vczJeBozI1/f4rv9yp3IjkClHDXDs=", "narHash": "sha256-9Odn+7x5l90HnXRY7MwVYcX+8CYAo+ldJ+GOVs7e2T8=",
"owner": "outfoxxed", "owner": "outfoxxed",
"repo": "quickshell", "repo": "quickshell",
"rev": "26531fc46ef17e9365b03770edd3fb9206fcb460", "rev": "9a9c60525014bcdf83aace03db4b53c19168edcc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -518,10 +534,10 @@
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixvim": "nixvim", "nixvim": "nixvim",
"pam-fprint-grosshack": "pam-fprint-grosshack",
"plasma-manager": "plasma-manager", "plasma-manager": "plasma-manager",
"quickshell": "quickshell", "quickshell": "quickshell",
"stylix": "stylix", "stylix": "stylix"
"zen-browser": "zen-browser"
} }
}, },
"rust-analyzer-src": { "rust-analyzer-src": {
@ -562,11 +578,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1765047449, "lastModified": 1772296853,
"narHash": "sha256-VQcqjJ2g0kT9TW4ENwA2HBQJzfbCUd5s1Wm3K+R2QZY=", "narHash": "sha256-pAtzPsgHRKw/2Kv8HgAjSJg450FDldHPWsP3AKG/Xj0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "stylix", "repo": "stylix",
"rev": "bd00e01aab676aee88e6cc5c9238b4a5a7d6639a", "rev": "c4b8e80a1020e09a1f081ad0f98ce804a6e85acf",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -642,11 +658,11 @@
"tinted-schemes": { "tinted-schemes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1763914658, "lastModified": 1767710407,
"narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=", "narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "schemes", "repo": "schemes",
"rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c", "rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -658,11 +674,11 @@
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1764465359, "lastModified": 1767489635,
"narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=", "narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "edf89a780e239263cc691a987721f786ddc4f6aa", "rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -674,11 +690,11 @@
"tinted-zed": { "tinted-zed": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1764464512, "lastModified": 1767488740,
"narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=", "narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-zed", "repo": "base16-zed",
"rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a", "rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -707,11 +723,11 @@
"xwayland-satellite-unstable": { "xwayland-satellite-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1765201946, "lastModified": 1772429643,
"narHash": "sha256-7zkEUqmeWToaTGp29YI7HUN7qiSCauNB2ep0TpB1Jwk=", "narHash": "sha256-M+bAeCCcjBnVk6w/4dIVvXvpJwOKnXjwi/lDbaN6Yws=",
"owner": "Supreeeme", "owner": "Supreeeme",
"repo": "xwayland-satellite", "repo": "xwayland-satellite",
"rev": "2f9981ad0890739980d09cd2a18293a1d47d0f01", "rev": "10f985b84cdbcc3bbf35b3e7e43d1b2a84fa9ce2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -719,27 +735,6 @@
"repo": "xwayland-satellite", "repo": "xwayland-satellite",
"type": "github" "type": "github"
} }
},
"zen-browser": {
"inputs": {
"home-manager": "home-manager_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1765175766,
"narHash": "sha256-M4zs4bVUv0UNuVGspwwlcGs5FpCDt52LQBA5a9nj5Lg=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "5126a8426773dc213a8c0f0d646aca116194dab6",
"type": "github"
},
"original": {
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@ -4,8 +4,8 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware"; #To Provide Framework13 hardware modules nixos-hardware.url = "github:NixOS/nixos-hardware"; #To Provide Framework13 hardware modules
home-manager.url = "github:nix-community/home-manager/master"; home-manager.url = "github:nix-community/home-manager/master";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
@ -14,19 +14,16 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager"; inputs.home-manager.follows = "home-manager";
}; };
zen-browser.url = "github:0xc000022070/zen-browser-flake";
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
#stylix.url = "github:nix-community/stylix/"; #stylix.url = "github:nix-community/stylix/";
stylix.url = "github:nix-community/stylix/master"; #Had to use branch or it would not build corrently stylix.url = "github:nix-community/stylix/master"; #Had to use branch or it would not build corrently
stylix.inputs.nixpkgs.follows = "nixpkgs"; stylix.inputs.nixpkgs.follows = "nixpkgs";
quickshell = { quickshell = {
url = "github:outfoxxed/quickshell"; url = "github:outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
niri = { niri = {
url = "github:sodiboo/niri-flake"; url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@ -42,40 +39,65 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
pam-fprint-grosshack = {
url = "git+https://gitea.cookiee.org/cookiez/nix-fprint-grosshack-flake.git";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-flatpak.url = "github:gmodena/nix-flatpak"; nix-flatpak.url = "github:gmodena/nix-flatpak";
grub2-themes.url = "github:vinceliuice/grub2-themes"; grub2-themes.url = "github:vinceliuice/grub2-themes";
}; };
outputs = inputs@{ nixpkgs, alejandra, home-manager, plasma-manager, nixos-hardware, stylix, niri, zen-browser, grub2-themes, nix-flatpak, ... }: outputs = inputs @ {
let nixpkgs,
alejandra,
pam-fprint-grosshack,
home-manager,
plasma-manager,
nixos-hardware,
stylix,
niri,
grub2-themes,
nix-flatpak,
...
}: let
username = "cookiez"; username = "cookiez";
hostname = "nixos"; hostname = "nixos";
project = "NixOS"; project = "NixOS";
version = "26.05"; #DO NOT change to "unstable" as it is not a valid option for all cascading uses of this variable version = "26.05"; #DO NOT change to "unstable" as it is not a valid option for all cascading uses of this variable
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; }; pkgs = import nixpkgs {inherit system;};
framework13 = true;
in {
formatter.${system} = nixpkgs.legacyPackages.${system}.alejandra;
framework13 = true;
in
{
nixosConfigurations = { nixosConfigurations = {
${hostname} = nixpkgs.lib.nixosSystem { ${hostname} = nixpkgs.lib.nixosSystem {
inherit system; inherit system;
specialArgs = { specialArgs = {
inherit inputs; inherit inputs;
inherit username; inherit username;
inherit version; inherit version;
inherit system; inherit system;
inherit project; inherit project;
inherit alejandra; inherit alejandra;
pam-fprint-grosshack-pkg = pam-fprint-grosshack.packages.${system}.default;
host = hostname; host = hostname;
}; };
modules = [ modules =
./modules [
#Conditional Modules! ./modules
] ++ (if framework13 then [ nixos-hardware.nixosModules.framework-13-7040-amd ] else [ ]) ++ [ #Conditional Modules!
]; ]
++ (
if framework13
then [nixos-hardware.nixosModules.framework-13-7040-amd]
else []
)
++ [
];
}; };
}; };
}; };

View File

@ -1,22 +1,26 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
boot = { boot = {
# silence first boot output # silence first boot output
consoleLogLevel = 3; consoleLogLevel = 3;
initrd.verbose = false; initrd.verbose = false;
initrd.systemd.enable = true; initrd.systemd.enable = true;
kernelParams = [ kernelParams = [
"quiet" "quiet"
"splash" "splash"
"intremap=on" "intremap=on"
"boot.shell_on_fail" "boot.shell_on_fail"
"udev.log_priority=3" "udev.log_priority=3"
"rd.systemd.show_status=auto" "rd.systemd.show_status=auto"
]; ];
# plymouth, showing after LUKS unlock # plymouth, showing after LUKS unlock
plymouth.enable = true; plymouth.enable = true;
plymouth.font = "${pkgs.hack-font}/share/fonts/truetype/Hack-Regular.ttf"; plymouth.font = "${pkgs.hack-font}/share/fonts/truetype/Hack-Regular.ttf";
plymouth.logo = "${pkgs.nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png"; plymouth.logo = "${pkgs.nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png";
}; };
} }

View File

@ -3,23 +3,32 @@
#nmcli device wifi connect <ssid> password <password> #nmcli device wifi connect <ssid> password <password>
# or if no password (open wifi) # or if no password (open wifi)
#nmcli device wifi connect <ssid> #nmcli device wifi connect <ssid>
{ inputs, config, pkgs, lib, username, project, host, version, system, ... }:
{ {
inputs,
config,
pkgs,
lib,
username,
project,
host,
version,
system,
pam-fprint-grosshack-pkg,
...
}: {
#Assign Swap to the PC #Assign Swap to the PC
#swapDevices = [{ #swapDevices = [{
# device = "/swapfile"; # device = "/swapfile";
# size = 16 * 1024; # 16GB # size = 16 * 1024; # 16GB
#}]; #}];
imports = imports = [
[
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
inputs.grub2-themes.nixosModules.default inputs.grub2-themes.nixosModules.default
inputs.nix-flatpak.nixosModules.nix-flatpak inputs.nix-flatpak.nixosModules.nix-flatpak
./hardware-configuration.nix ./hardware-configuration.nix
./firefox.nix ./firefox
./boot-splash.nix ./boot-splash.nix
./zsh.nix ./zsh.nix
./neovim ./neovim
@ -28,10 +37,10 @@
# Bootloader. # Bootloader.
boot = { boot = {
kernelParams = [ "quiet" "splash" ]; kernelParams = ["quiet" "splash"];
initrd = { initrd = {
verbose = false; verbose = false;
kernelModules = [ "amdgpu" ]; kernelModules = ["amdgpu"];
}; };
loader = { loader = {
systemd-boot.enable = false; systemd-boot.enable = false;
@ -40,7 +49,7 @@
grub = { grub = {
enable = true; enable = true;
device = "/dev/nvme0n1"; #Needs to be changed when using a new computer! (Make grub partition - look below!) device = "/dev/nvme0n1"; #Needs to be changed when using a new computer! (Make grub partition - look below!)
#devices = [ "nodev" ]; #devices = [ "nodev" ];
efiSupport = true; efiSupport = true;
useOSProber = true; useOSProber = true;
@ -48,22 +57,21 @@
}; };
grub2-theme = { grub2-theme = {
enable = true; enable = true;
theme = "whitesur"; theme = "whitesur";
footer = true; footer = true;
}; };
timeout = 10; timeout = 5;
}; };
}; };
#Ensure there is a grub_bios partition: (gparted) #Ensure there is a grub_bios partition: (gparted)
#Create a new parititon. File System: Unformatted - Size: ~5 Mib #Create a new parititon. File System: Unformatted - Size: ~5 Mib
#Apply #Apply
#Manage flags -> Add bios_grub #Manage flags -> Add bios_grub
networking = { networking = {
# Enable networking # Enable networking
networkmanager.enable = true; networkmanager.enable = true;
@ -90,9 +98,9 @@
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
users.${username} = ./home.nix; users.${username} = ./home.nix;
backupFileExtension = "backup"; # Automatically backs up conflicting files during activation backupFileExtension = "backup"; # Automatically backs up conflicting files during activation
extraSpecialArgs = { inherit inputs username project version system host; }; extraSpecialArgs = {inherit inputs username project version system host;};
sharedModules = [ inputs.plasma-manager.homeModules.plasma-manager ]; sharedModules = [inputs.plasma-manager.homeModules.plasma-manager];
}; };
# Set your time zone. # Set your time zone.
@ -112,11 +120,11 @@
LC_TELEPHONE = "de_DE.UTF-8"; LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8"; LC_TIME = "de_DE.UTF-8";
}; };
# List services that you want to enable: # List services that you want to enable:
services = { services = {
ollama = { ollama = {
enable = true; enable = false;
# Optional: load models on startup # Optional: load models on startup
#loadModels = [ ... ]; #loadModels = [ ... ];
}; };
@ -135,7 +143,7 @@
fprintd.tod.enable = true; fprintd.tod.enable = true;
fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix; fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
fwupd.enable = true; #Allows BIOS updates fwupd.enable = true; #Allows BIOS updates
locate = { locate = {
enable = true; enable = true;
@ -146,8 +154,8 @@
enable = true; enable = true;
useRoutingFeatures = "client"; useRoutingFeatures = "client";
extraSetFlags = [ extraSetFlags = [
"--operator=${username}" "--operator=${username}"
"--accept-routes" "--accept-routes"
]; ];
}; };
@ -165,8 +173,8 @@
"10-bluez-monitor.properties" = { "10-bluez-monitor.properties" = {
"bluez5.msbc-support" = false; "bluez5.msbc-support" = false;
"bluez5.hfphsp-support" = false; "bluez5.hfphsp-support" = false;
"bluez5.hfphsp-backend" = "none"; # Key addition: no backend "bluez5.hfphsp-backend" = "none"; # Key addition: no backend
"bluez5.roles" = [ "a2dp_sink" ]; "bluez5.roles" = ["a2dp_sink"];
}; };
"11-bluetooth-policy" = { "11-bluetooth-policy" = {
"wireplumber.settings" = { "wireplumber.settings" = {
@ -175,14 +183,19 @@
}; };
}; };
}; };
#Enable CUPS to print documents. #Enable CUPS to print documents.
printing.enable = true; printing.enable = true;
# Enable the OpenSSH daemon. # Enable the OpenSSH daemon.
openssh.enable = true; openssh.enable = true;
}; };
systemd.services.fprintd = {
wantedBy = ["multi-user.target"];
serviceConfig.Type = "simple";
};
fonts = { fonts = {
packages = with pkgs; [ packages = with pkgs; [
font-awesome font-awesome
@ -196,11 +209,11 @@
fontconfig = { fontconfig = {
enable = true; enable = true;
defaultFonts = { defaultFonts = {
monospace = [ "JetBrainsMono Nerd Font" "MesloLGS NF" ]; monospace = ["JetBrainsMono Nerd Font" "MesloLGS NF"];
sansSerif = [ "Inter" "Noto Sans" ]; sansSerif = ["Inter" "Noto Sans"];
serif = [ "Noto Serif" ]; serif = ["Noto Serif"];
}; };
}; };
}; };
@ -262,7 +275,7 @@
users.users.${username} = { users.users.${username} = {
isNormalUser = true; isNormalUser = true;
description = "Cookiez"; description = "Cookiez";
extraGroups = [ "networkmanager" "wheel" "docker" ]; extraGroups = ["networkmanager" "wheel" "docker"];
packages = with pkgs; [ packages = with pkgs; [
#User Packages Here #User Packages Here
]; ];
@ -291,7 +304,7 @@
}; };
sessionVariables = { sessionVariables = {
NIXOS_OZONE_WL = "1"; #For chromium to work under wayland and with virtual Keyboards (Only really needed for virtual keyboards, but doest hurt ...) NIXOS_OZONE_WL = "1"; #For chromium to work under wayland and with virtual Keyboards (Only really needed for virtual keyboards, but doest hurt ...)
TERMINAL = "kitty"; TERMINAL = "kitty";
}; };
}; };
@ -301,16 +314,34 @@
sudo.wheelNeedsPassword = false; sudo.wheelNeedsPassword = false;
pam.services = { pam.services = {
login.fprintAuth = true; login.fprintAuth = false;
sudo.fprintAuth = true; 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; kde.fprintAuth = false;
hyprlock = {}; hyprlock = {};
sddm = {
fprintAuth = false; # prevent NixOS from adding its own pam_fprintd block
text = lib.mkForce ''
auth sufficient ${pam-fprint-grosshack-pkg}/lib/security/pam_fprintd_grosshack.so
auth sufficient pam_unix.so try_first_pass nullok
auth sufficient ${pkgs.fprintd}/lib/security/pam_fprintd.so
account required pam_unix.so
password required pam_deny.so
session required pam_unix.so
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
'';
};
}; };
}; };
#Allow Nix Commands #Allow Nix Commands
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = ["nix-command" "flakes"];
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;

View File

@ -1,5 +1,4 @@
{ config, ... }: {config, ...}: {
{
imports = [ imports = [
./configuration.nix ./configuration.nix
@ -21,16 +20,16 @@
}; };
}; };
# "minimal" = { # "minimal" = {
# inheritParentConfig = false; # inheritParentConfig = false;
# configuration = { # configuration = {
# imports = [ # imports = [
# ./minimal.nix # ./minimal.nix
# ]; # ];
# #
# environment.etc."nixos-tags".text = "minimal"; # environment.etc."nixos-tags".text = "minimal";
# }; # };
# }; # };
"niri" = { "niri" = {
inheritParentConfig = false; inheritParentConfig = false;
@ -43,6 +42,5 @@
environment.etc."nixos-tags".text = "niri"; environment.etc."nixos-tags".text = "niri";
}; };
}; };
};
};
} }

View File

@ -1,5 +1,9 @@
{ pkgs, username, project, ...}:
{ {
pkgs,
username,
project,
...
}: {
xdg = { xdg = {
desktopEntries.youtube = { desktopEntries.youtube = {
name = "YouTube"; name = "YouTube";
@ -7,16 +11,16 @@
terminal = false; terminal = false;
type = "Application"; type = "Application";
icon = "applications-multimedia"; icon = "applications-multimedia";
categories = [ "AudioVideo" "Player" "Network" ]; categories = ["AudioVideo" "Player" "Network"];
}; };
desktopEntries."org.kde.konsole" = { desktopEntries."org.kde.konsole" = {
name = "Konsole"; name = "Konsole";
noDisplay = true; noDisplay = true;
}; };
desktopEntries."discord" = { desktopEntries."discord" = {
categories = [ "Network" "InstantMessaging" "Chat" ]; categories = ["Network" "InstantMessaging" "Chat"];
exec = "vesktop %U"; exec = "vesktop %U";
genericName = "Internet Messenger"; genericName = "Internet Messenger";
icon = "/home/${username}/${project}/other/discord.app.png"; icon = "/home/${username}/${project}/other/discord.app.png";
@ -26,7 +30,7 @@
desktopEntries."vesktop" = { desktopEntries."vesktop" = {
noDisplay = true; noDisplay = true;
categories = [ "Network" "InstantMessaging" "Chat" ]; categories = ["Network" "InstantMessaging" "Chat"];
exec = "vesktop %U"; exec = "vesktop %U";
genericName = "Internet Messenger"; genericName = "Internet Messenger";
name = "Vesktop"; name = "Vesktop";
@ -39,7 +43,7 @@
comment = "Fast, feature-rich, GPU based terminal"; comment = "Fast, feature-rich, GPU based terminal";
exec = "kitty"; exec = "kitty";
terminal = false; terminal = false;
categories = [ "System" "TerminalEmulator" ]; categories = ["System" "TerminalEmulator"];
icon = "/home/${username}/${project}/other/kitty.app.png"; icon = "/home/${username}/${project}/other/kitty.app.png";
}; };
@ -107,6 +111,5 @@
name = "Discover"; name = "Discover";
noDisplay = true; noDisplay = true;
}; };
}; };
} }

View File

@ -1,18 +0,0 @@
{ username, ... }:
{
programs.firefox = {
enable = true;
profiles = {
"${username}" = {
extensions.force = true;
};
};
};
systemd.user.services."firefox-autostart" = {
serviceConfig = {
ExecStart = "";
ExecStop = "";
};
};
}

View File

@ -1,105 +0,0 @@
{ config, pkgs, ... }:
let
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in
{
home-manager.sharedModules = [
./firefox-home.nix
];
programs = {
firefox = {
enable = true;
languagePacks = [ "de" "en-US" ];
/* ---- POLICIES ---- */
# Check about:policies#documentation for options.
policies = {
PasswordManagerEnabled = false;
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value= true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
#DisableFirefoxAccounts = true;
#DisableAccounts = true;
#DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
/* ---- 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
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "normal_installed";
};
};
in
listToAttrs [
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
#(extension "2fas-two-factor-authentication" "admin@2fas.com")
(extension "sponsorblock" "sponsorBlocker@ajay.app")
#(extension "dearrow" "deArrow@ajay.app")
#(extension "enhancer-for-youtube" "enhancerforyoutube@maximerf.addons.mozilla.org")
#(extension "tabliss" "extension@tabliss.io")
#(extension "don-t-fuck-with-paste" "DontFuckWithPaste@raim.ist")
#(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
#(extension "react-devtools" "@react-devtools")
(extension "keepa" "amptra@keepa.com")
(extension "redditUntranslate" "reddit-url-redirector@kichkoupi.com")
(extension "darkreader" "addon@darkreader.org")
];
/* ---- PREFERENCES ---- */
# Check about:config for options.
Preferences = {
"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
"extensions.pocket.enabled" = lock-false;
"extensions.screenshots.disabled" = lock-true;
"browser.topsites.contile.enabled" = lock-false;
#"browser.formfill.enable" = lock-false;
#"browser.search.suggest.enabled" = lock-false;
#"browser.search.suggest.enabled.private" = lock-false;
#"browser.urlbar.suggest.searches" = lock-false;
"browser.urlbar.showSearchSuggestionsFirst" = lock-false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
"browser.newtabpage.activity-stream.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
};
};
};
};
}

171
modules/firefox/default.nix Normal file
View File

@ -0,0 +1,171 @@
{
config,
pkgs,
...
}: let
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in {
home-manager.sharedModules = [
./home.nix
];
programs = {
firefox = {
enable = true;
languagePacks = ["de" "en-US"];
/*
---- POLICIES ----
*/
# Check about:policies#documentation for options.
policies = {
PasswordManagerEnabled = false;
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
#DisableFirefoxAccounts = true;
#DisableAccounts = true;
#DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
/*
---- 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
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "force_installed";
};
};
in
listToAttrs [
#(extension "{name in url}" "{about:support Add-ons on }")
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
(extension "sponsorblock" "sponsorBlocker@ajay.app")
(extension "keepa" "amptra@keepa.com")
(extension "redditUntranslate" "reddit-url-redirector@kichkoupi.com")
(extension "darkreader" "addon@darkreader.org")
(extension "youtube-shorts-block" "{34daeb50-c2d2-4f14-886a-7160b24d66a4}")
(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
];
/*
---- PREFERENCES ----
*/
# Check about:config for options.
Preferences = {
"browser.contentblocking.category" = {
Value = "strict"; # strictest tracker/ad blocking mode
Status = "locked";
};
"extensions.pocket.enabled" = lock-false; # disables Pocket integration
"extensions.screenshots.disabled" = lock-true; # disables Firefox Screenshots
"browser.topsites.contile.enabled" = lock-false; # disables sponsored tiles on newtab
"browser.formfill.enable" = lock-false; # disables form autofill (prevents local data leakage)
"browser.search.suggest.enabled" = lock-false; # disables search suggestions in normal mode
"browser.search.suggest.enabled.private" = lock-false; # disables search suggestions in private mode
"browser.urlbar.suggest.searches" = lock-false; # disables search suggestions in address bar dropdown
"browser.urlbar.showSearchSuggestionsFirst" = lock-false; # hides search suggestions in address bar
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false; # disables sponsored stories on newtab
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false; # disables news snippets on newtab
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false; # removes Pocket from highlights
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false; # removes bookmarks from highlights
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false; # removes downloads from highlights
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false; # removes visited sites from highlights
"browser.newtabpage.activity-stream.showSponsored" = lock-false; # disables all sponsored content
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false; # disables system-level sponsored content
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; # disables sponsored top sites
"privacy.resistFingerprinting" = lock-true; # spoofs/normalizes fingerprinting signals (screen, timezone, fonts)
"privacy.firstparty.isolate" = lock-true; # isolates cookies/storage per top-level domain (breaks cross-site tracking)
"network.dns.disablePrefetch" = lock-true; # stops speculative DNS lookups for unclicked links
"network.predictor.enabled" = lock-false; # disables ML-based prefetch predictions
"network.prefetch-next" = lock-false; # disables link-hover prefetching
"toolkit.telemetry.enabled" = lock-false; # disables core telemetry reporting
"toolkit.telemetry.unified" = lock-false; # disables unified telemetry pipeline
"datareporting.healthreport.uploadEnabled" = lock-false; # disables Firefox Health Report uploads
"dom.battery.enabled" = lock-false; # blocks Battery Status API fingerprinting
"dom.gamepad.enabled" = lock-false; # blocks Gamepad API fingerprinting
"browser.startup.homepage" = {
Value = "about:blank";
Status = "locked";
};
"browser.startup.page" = {
Value = 0;
Status = "locked";
}; # 0=blank, 3=homepage
"browser.startup.homepage_override.mstone" = {
Value = "ignore";
Status = "locked";
};
# HTTPSonly / mixedcontent
"dom.security.https_only_mode" = {
Value = true;
Status = "locked";
};
"dom.security.https_only_mode_ever_enabled" = {
Value = true;
Status = "locked";
};
# Referrer / headers tightening
"network.http.referer.XOriginPolicy" = {
Value = 2;
Status = "locked";
}; # strict crossorigin
"network.http.referer.XOriginTrimmingPolicy" = {
Value = 2;
Status = "locked";
};
# DNSoverHTTPS (if you want enforced DoH)
"network.trr.mode" = {
Value = 2;
Status = "locked";
}; # 2=prefer TRR
"network.trr.custom_uri" = {
Value = "https://dns.quad9.net/dns-query";
Status = "locked";
};
# Disable various Web APIs that can leak or be abused
"dom.webnotifications.enabled" = lock-false; # disable desktop notifications
"media.navigator.enabled" = lock-false; # disable getUserMedia permission prompts
"media.webrtc.legacy_global_callback" = lock-false;
# Disable geolocation / sensors
"geo.enabled" = lock-false;
"device.sensors.enabled" = lock-false;
};
};
};
};
}

44
modules/firefox/home.nix Normal file
View File

@ -0,0 +1,44 @@
{username, ...}: {
programs.firefox = {
enable = true;
profiles = {
"${username}" = {
extensions.force = true;
#Create multiple containers, like "work" "social media" ..., for cookies to reside in so they dont cross leak
#containers.force = true;
search = {
force = true;
default = "SearXNG";
order = ["SearXNG"];
engines = {
"SearXNG" = {
name = "SearXNG";
urls = [
{
template = "https://searxng.cookiee.org/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
iconMapObj."16" = "https://searxng.cookiee.org/favicon.ico";
definedAliases = ["@sx"];
};
};
};
};
};
};
systemd.user.services."firefox-autostart" = {
serviceConfig = {
ExecStart = "";
ExecStop = "";
};
};
}

View File

@ -1,30 +1,34 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "uas" "usbhid" "sd_mod" ]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "thunderbolt" "uas" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/af8fdb25-74d8-4b33-8413-bdcb66e0d22a"; device = "/dev/disk/by-uuid/af8fdb25-74d8-4b33-8413-bdcb66e0d22a";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/58D5-0C06"; device = "/dev/disk/by-uuid/58D5-0C06";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = ["fmask=0077" "dmask=0077"];
}; };
swapDevices = [ ]; swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's

View File

@ -1,25 +1,34 @@
{ 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 # Home Manager needs a bit of information about you and the
# paths it should manage. # paths it should manage.
home.username = username; home.username = username;
home.homeDirectory = "/home/${username}"; home.homeDirectory = "/home/${username}";
home.packages = [ home.packages = [
(import ./ncli.nix { inherit pkgs host project; backupFiles = [ (import ./ncli.nix {
".gtkrc-2.0.backup" inherit pkgs host project;
".config/gtk-3.0/gtk.css.backup" backupFiles = [
".config/gtk-3.0/settings.ini.backup" ".gtkrc-2.0.backup"
".config/gtk-4.0/gtk.css.backup" ".config/gtk-3.0/gtk.css.backup"
".config/gtk-4.0/settings.ini.backup" ".config/gtk-3.0/settings.ini.backup"
".config/niri/config.kdl" ".config/gtk-4.0/gtk.css.backup"
]; }) ".config/gtk-4.0/settings.ini.backup"
".config/niri/config.kdl"
];
})
]; ];
imports = [ imports = [
inputs.zen-browser.homeModules.beta #./neovim-home.nix
# or inputs.zen-browser.homeModules.twilight
# or inputs.zen-browser.homeModules.twilight-official
#./neovim-home.nix
./desktop-entries.nix ./desktop-entries.nix
]; ];
@ -35,9 +44,8 @@
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.
programs = { programs = {
home-manager = { enable = true; }; home-manager = {enable = true;};
zoxide = { zoxide = {
enable = true; enable = true;
#enableZshIntegration = true; #enableZshIntegration = true;
@ -56,9 +64,8 @@
}; };
}; };
git = {
git = { enable = true;
enable = true;
settings = { settings = {
user = { user = {
name = "Cookiez"; name = "Cookiez";
@ -68,75 +75,5 @@
}; };
}; };
}; };
zen-browser = {
enable = false;
#package = inputs.zen-browser.packages.${pkgs.system}.default;
profiles = {
${username} = {
id = 0;
name = username;
# profileAvatarPath = "chrome://browser/content/zen-avatars/avatar-57.svg";
path = "${username}.default";
isDefault = true;
settings = {
};
};
};
policies = {
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
PasswordManagerEnabled = false;
NoDefaultBookmarks = true;
DisableAppUpdate = true;
DisableFirefoxStudies = true;
DontCheckDefaultBrowser = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
OfferToSaveLogins = false;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
ExtensionSettings =
with builtins;
let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "force_installed";
};
};
in
listToAttrs [
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
#(extension "2fas-two-factor-authentication" "admin@2fas.com")
(extension "sponsorblock" "sponsorBlocker@ajay.app")
#(extension "dearrow" "deArrow@ajay.app")
#(extension "enhancer-for-youtube" "enhancerforyoutube@maximerf.addons.mozilla.org")
#(extension "tabliss" "extension@tabliss.io")
#(extension "don-t-fuck-with-paste" "DontFuckWithPaste@raim.ist")
#(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
#(extension "react-devtools" "@react-devtools")
(extension "keepa" "amptra@keepa.com")
(extension "redditUntranslate" "reddit-url-redirector@kichkoupi.com")
];
# To add additional extensions, find it on addons.mozilla.org, find
# the short ID in the url (like https=//addons.mozilla.org/en-US/firefox/addon/!SHORT_ID!/)
# Then, download the XPI by filling it in to the install_url template, unzip it,
# run `jq .browser_specific_settings.gecko.id manifest.json` or
# `jq .applications.gecko.id manifest.json` to get the UUID
Preferences = {
#"browser.contentblocking.category" = { Value = "strict"; Status = "locked"; };
"browser.urlbar.showSearchSuggestionsFirst" = false;
"browser.sessionstore.resume_session_once" = false;
};
};
};
}; #End of programs = {}; }; #End of programs = {};
} }

View File

@ -1,14 +1,17 @@
{ config, inputs, pkgs, ... }:
{ {
config,
inputs,
pkgs,
...
}: {
imports = [ imports = [
]; ];
home-manager.sharedModules = [ home-manager.sharedModules = [
./home.nix ./home.nix
]; ];
environment.systemPackages = with pkgs; environment.systemPackages = with pkgs; [
[
hyprlock hyprlock
]; ];
} }

View File

@ -1,10 +1,13 @@
{pkgs, inputs, username, ...}:
{ {
pkgs,
inputs,
username,
...
}: {
imports = [ imports = [
]; ];
programs = { programs = {
hyprlock.enable = true; hyprlock.enable = true;
}; };
} }

View File

@ -1,14 +1,17 @@
{ config, inputs, pkgs, ... }:
{ {
config,
inputs,
pkgs,
...
}: {
imports = [ imports = [
]; ];
home-manager.sharedModules = [ home-manager.sharedModules = [
./home.nix ./home.nix
]; ];
environment.systemPackages = with pkgs; environment.systemPackages = with pkgs; [
[
hyprpaper hyprpaper
]; ];
} }

View File

@ -1,13 +1,17 @@
{pkgs, inputs, username, project, ...}:
{ {
pkgs,
inputs,
username,
project,
...
}: {
imports = [ imports = [
]; ];
services = { services = {
hyprpaper = { hyprpaper = {
enable = false; enable = false;
settings = { settings = {
preload = [ preload = [
#"/home/${username}/${project}/other/wallpaper1.png" #"/home/${username}/${project}/other/wallpaper1.png"

View File

@ -3,17 +3,21 @@
#nmcli device wifi connect <ssid> password <password> #nmcli device wifi connect <ssid> password <password>
# or if no password (open wifi) # or if no password (open wifi)
#nmcli device wifi connect <ssid> #nmcli device wifi connect <ssid>
{ config, pkgs, lib, username, version, ... }:
{ {
imports = config,
[ pkgs,
./hardware-configuration.nix lib,
./zsh.nix username,
#./ncli.nix version,
#./neovim.nix ...
./packages.nix }: {
]; imports = [
./hardware-configuration.nix
./zsh.nix
#./ncli.nix
#./neovim.nix
./packages.nix
];
#networking.hostName = "nixos"; #networking.hostName = "nixos";
# Define your hostname. # Define your hostname.
@ -38,7 +42,7 @@
LC_TELEPHONE = "de_DE.UTF-8"; LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8"; LC_TIME = "de_DE.UTF-8";
}; };
services = { services = {
# Enable the OpenSSH daemon. # Enable the OpenSSH daemon.
openssh.enable = true; openssh.enable = true;
@ -51,7 +55,7 @@
users.users.cookiez = { users.users.cookiez = {
isNormalUser = true; isNormalUser = true;
description = "Cookiez"; description = "Cookiez";
extraGroups = [ "networkmanager" "wheel" "docker" ]; extraGroups = ["networkmanager" "wheel" "docker"];
packages = with pkgs; [ packages = with pkgs; [
#User Packages Here #User Packages Here
]; ];
@ -60,21 +64,21 @@
virtualisation.docker.enable = true; virtualisation.docker.enable = true;
#So no user in the group Wheel has to input the password in order to use sudo #So no user in the group Wheel has to input the password in order to use sudo
security.sudo.wheelNeedsPassword = false; security.sudo.wheelNeedsPassword = false;
#Allow Nix Commands #Allow Nix Commands
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = ["nix-command" "flakes"];
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
environment.variables = { environment.variables = {
EDITOR = "nvim"; EDITOR = "nvim";
# XKB_DEFAULT_LAYOUT = "de"; # XKB_DEFAULT_LAYOUT = "de";
}; };
environment.sessionVariables = { environment.sessionVariables = {
NIXOS_OZONE_WL = "1"; #For chromium to work under wayland and with virtual Keyboards (Only really needed for virtual keyboards, but doest hurt ...) NIXOS_OZONE_WL = "1"; #For chromium to work under wayland and with virtual Keyboards (Only really needed for virtual keyboards, but doest hurt ...)
TERMINAL = "kitty"; TERMINAL = "kitty";
}; };

View File

@ -1,7 +1,7 @@
{ {
pkgs, pkgs,
host, host,
backupFiles ? [ ".config/mimeapps.list.backup" ], backupFiles ? [".config/mimeapps.list.backup"],
project, project,
... ...
}: let }: let
@ -146,7 +146,7 @@ in
else else
echo "No specialization tag found, staying on default system." echo "No specialization tag found, staying on default system."
fi fi
genn=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | grep current | awk '{print $1}') genn=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | grep current | awk '{print $1}')
echo -e "Running on new generation: $YELLOW $geno $NOCOLOR-> $GREEN$genn$NOCOLOR" echo -e "Running on new generation: $YELLOW $geno $NOCOLOR-> $GREEN$genn$NOCOLOR"
@ -161,13 +161,64 @@ in
echo -e "Updating flake and rebuilding system for current host: $HOST on generation: $YELLOW$geno$NOCOLOR" 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; } cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; }
echo "Updating flake..." # --- Selective flake update ---
if nix flake update; then read -rp "Update [a]ll inputs or [s]elect manually? (a/s): " choice
echo " Flake updated successfully"
else case "$choice" in
echo " Flake update failed" >&2 a|A)
exit 1 echo "Updating all inputs..."
fi 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="" current=""
@ -261,6 +312,9 @@ in
cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; } cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; }
git status git status
;; ;;
format)
nix fmt .
;;
trim) trim)
echo "Running 'sudo fstrim -v /' may take a few minutes and impact system performance." 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 read -p "Enter to run now or enter to exit (y/N): " -n 1 -r

View File

@ -1,20 +1,23 @@
{ inputs, config, lib, pkgs, ... }:
{ {
environment.systemPackages = with pkgs; inputs,
[ config,
neovim lib,
vimPlugins.LazyVim pkgs,
vimPlugins.lazygit-nvim ...
wl-clipboard }: {
xclip environment.systemPackages = with pkgs; [
neovim
vimPlugins.LazyVim
vimPlugins.lazygit-nvim
wl-clipboard
xclip
]; ];
home-manager.sharedModules = [ home-manager.sharedModules = [
./home.nix ./home.nix
]; ];
# programs.neovim = {
# programs.neovim = { # enable = true;
# enable = true; #};
#};
} }

View File

@ -1,34 +1,39 @@
{ inputs, config, lib, pkgs, ... }:
{ {
inputs,
config,
lib,
pkgs,
...
}: {
imports = [ imports = [
inputs.nixvim.homeModules.nixvim inputs.nixvim.homeModules.nixvim
]; ];
programs.nixvim = { programs.nixvim = {
enable = true; enable = true;
waylandSupport = true; waylandSupport = true;
# Basic options # Basic options
opts = { opts = {
autoindent = true; autoindent = true;
clipboard = "unnamedplus"; clipboard = "unnamedplus";
shiftwidth = 2; shiftwidth = 2;
mousescroll = "ver:0,hor:0"; mousescroll = "ver:0,hor:0";
expandtab = true; # Always insert spaces, never hard tab characters expandtab = true; # Always insert spaces, never hard tab characters
tabstop = 2; # Make hard tabs display as 2 columns (matches shiftwidth) tabstop = 2; # Make hard tabs display as 2 columns (matches shiftwidth)
softtabstop = 2; # Backspace deletes 2 spaces at a time softtabstop = 2; # Backspace deletes 2 spaces at a time
number = true; number = true;
relativenumber = true; relativenumber = true;
cursorline = true; # Highlights the entire current line cursorline = true; # Highlights the entire current line
cursorlineopt = "both"; # Highlights both the line AND the line number cursorlineopt = "both"; # Highlights both the line AND the line number
termguicolors = true; termguicolors = true;
}; };
colorschemes.catppuccin = { colorschemes.catppuccin = {
enable = true; enable = true;
settings = { settings = {
@ -36,30 +41,32 @@
term_colors = true; term_colors = true;
styles = { styles = {
booleans = [ "bold" "italic" ]; booleans = ["bold" "italic"];
conditionals = [ "bold" ]; conditionals = ["bold"];
functions = [ "bold" ]; functions = ["bold"];
keywords = [ "italic" ]; keywords = ["italic"];
}; };
}; };
}; };
keymaps = [ keymaps = [
{ {
mode = "v"; mode = "v";
key = ">"; key = ">";
action = ">gv"; action = ">gv";
options.desc = "Indent and keep selection"; options.desc = "Indent and keep selection";
} }
{ {
mode = "v"; mode = "v";
key = "<"; key = "<";
action = "<gv"; action = "<gv";
options.desc = "Unindent and keep selection"; options.desc = "Unindent and keep selection";
} }
]; ];
plugins = { plugins = {
# Remeber where you left the file last time
lastplace.enable = true;
# Statusline at the bottom of the screen # Statusline at the bottom of the screen
lualine.enable = true; lualine.enable = true;
# Tab bar at the top of the screen # Tab bar at the top of the screen
@ -79,7 +86,40 @@
}; };
}; };
# Shows the current function/class context pinned at the top of the buffer # Shows the current function/class context pinned at the top of the buffer
treesitter-context.enable = true; treesitter-context = {
enable = true;
settings = {
# Cap the context header
max_lines = 4;
# When over the limit, drop outermost context
trim_scope = "outer";
# Only show context in tall-enough windows
min_window_height = 20;
};
};
# Provides autocompletion suggestions
blink-cmp = {
enable = true;
settings = {
keymap.preset = "default"; # Tab/S-Tab to navigate, Enter to confirm
sources.default = ["lsp" "path" "snippets" "buffer"];
completion = {
documentation.auto_show = true;
ghost_text.enabled = true; # inline preview of the top suggestion
};
};
};
lsp = {
enable = true;
servers = {
nixd.enable = true; # Nix
ts_ls.enable = true; # TypeScript/JavaScript
# ... add more as needed
};
};
# Text objects based on treesitter nodes (e.g. select a function body) # Text objects based on treesitter nodes (e.g. select a function body)
treesitter-textobjects.enable = true; treesitter-textobjects.enable = true;
# Auto-closes and renames HTML/JSX tags using treesitter # Auto-closes and renames HTML/JSX tags using treesitter
@ -90,24 +130,40 @@
settings = { settings = {
indent = { indent = {
char = ""; char = "";
tab_char = ""; # Explicitly define the tab indent guide character tab_char = ""; # Explicitly define the tab indent guide character
}; };
scope = { scope = {
enabled = true; enabled = true;
}; };
whitespace = { whitespace = {
remove_blankline_trail = false; remove_blankline_trail = false;
}; };
}; };
}; };
# Highlights and searches TODO/FIXME/HACK comments # Highlights and searches TODO/FIXME/HACK comments
todo-comments.enable = true; todo-comments.enable = true;
nvim-autopairs = { nvim-autopairs = {
enable = true; enable = true;
settings = { settings = {
check_ts = true; # Use treesitter to avoid pairing inside strings/comments 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; [ extraPlugins = with pkgs.vimPlugins; [
@ -115,8 +171,8 @@
# Additional Lua configuration # Additional Lua configuration
extraConfigLua = '' extraConfigLua = ''
-- Custom Lua config here -- Custom Lua config here
vim.opt.cpoptions:append('I') vim.opt.cpoptions:append('I')
''; '';
}; };
} }

View File

@ -1,22 +1,27 @@
{config, pkgs, libs, inputs, ...}:
{ {
config,
pkgs,
libs,
inputs,
...
}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
#CLI tools #CLI tools
pdftk #PDF toolkit pdftk #PDF toolkit
yt-dlp #YouTube and others video downloader yt-dlp #YouTube and others video downloader
tailscale #VPN tailscale #VPN
speedtest-cli #Internet speed tester speedtest-cli #Internet speed tester
#duplicati #duplicati
ollama-rocm ollama-rocm
open-webui open-webui
cloudflare-warp cloudflare-warp
ddrescue ddrescue
texliveFull #LaTeX PDF maker texliveFull #LaTeX PDF maker
lazygit #Git CLI tool with TUI lazygit #Git CLI tool with TUI
gtypist #Typing tutor gtypist #Typing tutor
powertop #Power consumption monitor and optimizer powertop #Power consumption monitor and optimizer
file #File type identifier file #File type identifier
hashcat #Password recovery/cracking tool hashcat #Password recovery/cracking tool
packwiz #A Minecraft modpack editor packwiz #A Minecraft modpack editor
]; ];
} }

View File

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

View File

@ -1,57 +1,62 @@
{config, pkgs, libs, inputs, ...}:
{ {
config,
pkgs,
libs,
inputs,
...
}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
#Programming #Programming
jetbrains.pycharm-community #The PyCharm IDE to edit Python code jetbrains.pycharm #The PyCharm IDE to edit Python code
jetbrains.idea-community #The IntelliJ IDE to edit Java code jetbrains.idea #The IntelliJ IDE to edit Java code
jetbrains.clion #The CLion IDE to edit and compile c/c++ code jetbrains.clion #The CLion IDE to edit and compile c/c++ code
jetbrains.datagrip #The DataGrip IDE to manage Databases jetbrains.datagrip #The DataGrip IDE to manage Databases
#jetbrains-toolbox #jetbrains-toolbox
#racket #The racket Programming language, with DrRacket IDE, for University (*Not* because it's my favourite) #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 #go #Go Programming Language
gcc #C/C++ Compiler gcc #C/C++ Compiler
pkg-config pkg-config
vscode #Editor for all kinds of programms vscode #Editor for all kinds of programms
nodejs_22 #NodeJS for JavaScript programming nodejs_22 #NodeJS for JavaScript programming
#Hochschule #Hochschule
postgresql #Database system postgresql #Database system
dbeaver-bin #Database Management Tool dbeaver-bin #Database Management Tool
sqlite #Lightweight Database system sqlite #Lightweight Database system
#Desktop Applications #Desktop Applications
drawio drawio
ryubing #Nintendo Switch Emulator ryubing #Nintendo Switch Emulator
vlc #VLC Media Player vlc #VLC Media Player
lutris #Gaming Platform lutris #Gaming Platform
mission-center #For a Task Manager like GUI mission-center #For a Task Manager like GUI
trayscale #Tailscale unofficial GUI trayscale #Tailscale unofficial GUI
spotify #Spotify Music Client spotify #Spotify Music Client
rpi-imager #Raspberry Pi Imager rpi-imager #Raspberry Pi Imager
atlauncher #Minecraft Launcher atlauncher #Minecraft Launcher
#discord #discord
vesktop #Aternative for discord on Wayland vesktop #Aternative for discord on Wayland
wineWowPackages.stagingFull wineWow64Packages.stagingFull
winetricks winetricks
wasistlos #Whatsapp wasistlos #Whatsapp
losslesscut-bin #Lossless cut for quckly cutting videos
#obs-studio #Screen Recorder #obs-studio #Screen Recorder
gparted #Disk partition Manager gparted #Disk partition Manager
#rustdesk #Remote Desktop Client #rustdesk #Remote Desktop Client
realvnc-vnc-viewer #VNC Remote Desktop Client realvnc-vnc-viewer #VNC Remote Desktop Client
eddie #AirVPN desktop client eddie #AirVPN desktop client
chromium #Chromium browser for Youtube app to work chromium #Chromium browser for Youtube app to work
moonlight-qt #Game Streaming Client moonlight-qt #Game Streaming Client
kitty #Kitty Terminal Emulator kitty #Kitty Terminal Emulator
wmctrl #To Force windows into fullscreen wmctrl #To Force windows into fullscreen
kdePackages.dolphin #KDE File Browser kdePackages.dolphin #KDE File Browser
libreoffice-still #Office Suite libreoffice-still #Office Suite
kdePackages.kservice kdePackages.kservice
qbittorrent #Torrent Client qbittorrent #Torrent Client
waydroid #Android emulator on Linux waydroid #Android emulator on Linux
gimp2-with-plugins #Image Editor gimp2-with-plugins #Image Editor
kdePackages.filelight #Disk Usage Analyzer kdePackages.filelight #Disk Usage Analyzer
filezilla filezilla
audacity audacity
freecad freecad

View File

@ -1,43 +1,52 @@
{config, pkgs, libs, inputs, system, alejandra, ...}:
{ {
config,
pkgs,
libs,
inputs,
system,
alejandra,
...
}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
#Essentials (CLI Only) #Essentials (CLI Only)
wget #A tool for quickly downloading things from the Web wget #A tool for quickly downloading things from the Web
javaPackages.compiler.openjdk25 #Java Development Kit 25 javaPackages.compiler.openjdk25 #Java Development Kit 25
python312 #Python 3.12 python314 #Python
python312Packages.pip #Pip for Python 3.12 python314Packages.pip #Pip for Python 3.12
python312Packages.cmake #The CMake tool to manage project build configurations python314Packages.cmake #The CMake tool to manage project build configurations
fastfetch #A utility to see information about your machine fastfetch #A utility to see information about your machine
btop #A replacement for htop to see your machines resources btop #A replacement for htop to see your machines resources
git #Git ... no need to explain 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 zip #A utility for ZIP archives
unzip #A utility for ZIP archives unzip #A utility for ZIP archives
rar #A utility for RAR archives rar #A utility for RAR archives
gnutar #A utility for .tar archives gnutar #A utility for .tar archives
cron #A tool to set up commands to run scheduled cron #A tool to set up commands to run scheduled
tmux #A tool to let command windows contiune to run in the background 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 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 openssh #SSH
zoxide #Alternatice to cd, browse files 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 coreutils-full #Full set of coreutils, including some missing ones
multipath-tools multipath-tools
docker #Docker ... no need to explain docker #Docker ... no need to explain
docker-compose #Docker Compose for docker docker-compose #Docker Compose for docker
plymouth #Boot Splash screen plymouth #Boot Splash screen
mesa #Graphics drivers mesa #Graphics drivers
fprintd #Fingerprint reader support fprintd #Fingerprint reader support
nh nh
whois #To find out domain information whois #To find out domain information
networkmanagerapplet #For managing network manager connections networkmanagerapplet #For managing network manager connections
zoxide #Alternative to cd, browse files zoxide #Alternative to cd, browse files
pocl #Portable OpenCL implementation pocl #Portable OpenCL implementation
clinfo #OpenCL info tool clinfo #OpenCL info tool
rocmPackages.rocm-runtime #AMD ROCm runtime rocmPackages.rocm-runtime #AMD ROCm runtime
ripgrep #Alternative to grep search for text in files ripgrep #Alternative to grep search for text in files
pipewire #Multimedia handling pipewire #Multimedia handling
fzf #Needed for nix-selective update tool
jq #Needed for nix-selective update tool
distrobox distrobox
dbus dbus
cifs-utils cifs-utils

View File

@ -1,20 +1,26 @@
{config, pkgs, libs, inputs, nix-flatpak, ...}:
{ {
services.flatpak = { config,
enable = true; pkgs,
libs,
inputs,
nix-flatpak,
...
}: {
services.flatpak = {
enable = true;
remotes = [ remotes = [
{ {
name = "flathub"; name = "flathub";
location = "https://dl.flathub.org/repo/flathub.flatpakrepo"; location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
} }
]; ];
packages = [ packages = [
{ {
appId = "org.vinegarhq.Sober"; appId = "org.vinegarhq.Sober";
origin = "flathub"; origin = "flathub";
#commit = "e28fd81675b0871614ccdc8fc66c6da6761dd11333a65900a0451edf07ef0ea6"; #commit = "e28fd81675b0871614ccdc8fc66c6da6761dd11333a65900a0451edf07ef0ea6";
} }
]; ];
}; };
} }

View File

@ -1,8 +1,10 @@
{ pkgs, inputs, username, ... }:
{ {
pkgs,
imports = inputs,
[ username,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
]; ];
@ -12,7 +14,7 @@
stylix = { stylix = {
enable = true; enable = true;
autoEnable = false; #So I can choose my programs it targets myself! autoEnable = false; #So I can choose my programs it targets myself!
#image = ../../other/wallpaper2.png; #image = ../../other/wallpaper2.png;
#autoEnable = true; #Auto generate theme based on wallpaper #autoEnable = true; #Auto generate theme based on wallpaper
base16Scheme = "${pkgs.base16-schemes}/share/themes/dracula.yaml"; base16Scheme = "${pkgs.base16-schemes}/share/themes/dracula.yaml";
@ -39,7 +41,7 @@
targets = { targets = {
plymouth.enable = true; plymouth.enable = true;
plymouth.logoAnimated = true; plymouth.logoAnimated = true;
console.enable = true; #Default console without desktop environment! (NOT KITTY!) console.enable = true; #Default console without desktop environment! (NOT KITTY!)
grub.enable = false; grub.enable = false;
#qt.enable = false; #qt.enable = false;
}; };

View File

@ -1,12 +1,15 @@
{pkgs, inputs, username, ...}:
{ {
pkgs,
inputs,
username,
...
}: {
imports = [ imports = [
]; ];
services = { services = {
}; };
stylix = { stylix = {
targets = { targets = {
kitty.enable = false; kitty.enable = false;
@ -18,7 +21,6 @@
qt.enable = true; qt.enable = true;
qt.platform = "kde"; qt.platform = "kde";
#kde.enable = false; #kde.enable = false;
zen-browser.profileNames = [ "${username}" ];
}; };
}; };
} }

View File

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

View File

@ -1,15 +1,21 @@
{ config, pkgs, username, project, ... }: { {
config,
pkgs,
username,
project,
...
}: {
programs.zsh = { programs.zsh = {
enable = true; enable = true;
enableCompletion = false; enableCompletion = false;
autosuggestions = { autosuggestions = {
enable = true; enable = true;
highlightStyle = "fg=242"; # Lighter gray shadow (0-255 scale) highlightStyle = "fg=242"; # Lighter gray shadow (0-255 scale)
}; };
ohMyZsh = { ohMyZsh = {
enable = true; enable = true;
plugins = [ "git" ]; plugins = ["git"];
}; };
shellInit = '' shellInit = ''
@ -17,9 +23,8 @@
eval "$(${pkgs.zoxide}/bin/zoxide init zsh --cmd cd)" eval "$(${pkgs.zoxide}/bin/zoxide init zsh --cmd cd)"
''; '';
#To reset powerlevel10k, write 'p10k configure' in shell! #To reset powerlevel10k, write 'p10k configure' in shell!
promptInit = '' promptInit = ''
source ${pkgs.zsh-autocomplete}/share/zsh-autocomplete/zsh-autocomplete.plugin.zsh
source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme
# Make and move the cursor on the command line, even when in the menu # Make and move the cursor on the command line, even when in the menu
@ -27,7 +32,7 @@
bindkey -M menuselect '^[[C' .forward-char '^[OC' .forward-char bindkey -M menuselect '^[[C' .forward-char '^[OC' .forward-char
''; '';
}; };
users.users.cookiez.shell = pkgs.zsh; users.users.cookiez.shell = pkgs.zsh;
environment.systemPackages = [ environment.systemPackages = [
pkgs.oh-my-zsh pkgs.oh-my-zsh
@ -35,7 +40,6 @@
pkgs.zsh-completions pkgs.zsh-completions
pkgs.zsh-powerlevel10k pkgs.zsh-powerlevel10k
pkgs.zsh-syntax-highlighting pkgs.zsh-syntax-highlighting
pkgs.zsh-autocomplete
pkgs.zsh-autosuggestions pkgs.zsh-autosuggestions
]; ];
} }

View File

@ -1,17 +1,21 @@
{ config, pkgs, username, project, ... }:
{ {
config,
#To show logs of services run: pkgs,
#journalctl --user-unit={service-name} --user username,
project,
...
}: {
#To show logs of services run:
#journalctl --user-unit={service-name} --user
systemd.user.services.niri-waybar = { systemd.user.services.niri-waybar = {
description = "Waybar status bar for Niri"; description = "Waybar status bar for Niri";
# "wantedBy" replaces the [Install] section # "wantedBy" replaces the [Install] section
wantedBy = [ "graphical-session.target" ]; wantedBy = ["graphical-session.target"];
# "partOf" and "after" replace the [Unit] section dependencies # "partOf" and "after" replace the [Unit] section dependencies
partOf = [ "graphical-session.target" ]; partOf = ["graphical-session.target"];
after = [ "graphical-session.target" ]; after = ["graphical-session.target"];
# [Unit] configuration goes here # [Unit] configuration goes here
unitConfig = { unitConfig = {
@ -32,9 +36,9 @@
# it forcibly stops the graphical-session.target to ensure a clean state for the next login. # it forcibly stops the graphical-session.target to ensure a clean state for the next login.
systemd.user.services.niri-session-manager = { systemd.user.services.niri-session-manager = {
description = "Niri Session Management"; description = "Niri Session Management";
wantedBy = [ "graphical-session.target" ]; wantedBy = ["graphical-session.target"];
partOf = [ "graphical-session.target" ]; partOf = ["graphical-session.target"];
# Only run this cleanup logic for Niri # Only run this cleanup logic for Niri
unitConfig.ConditionEnvironment = "XDG_CURRENT_DESKTOP=niri"; unitConfig.ConditionEnvironment = "XDG_CURRENT_DESKTOP=niri";
@ -42,7 +46,7 @@
Type = "simple"; Type = "simple";
# A dummy command that stays alive. 'sleep infinity' is low resource. # A dummy command that stays alive. 'sleep infinity' is low resource.
ExecStart = "${pkgs.coreutils}/bin/sleep infinity"; ExecStart = "${pkgs.coreutils}/bin/sleep infinity";
# IMPORTANT: When this service stops (which happens when niri kills its children), # IMPORTANT: When this service stops (which happens when niri kills its children),
# it brings down the whole target. # it brings down the whole target.
ExecStopPost = "${pkgs.systemd}/bin/systemctl --user stop graphical-session.target"; ExecStopPost = "${pkgs.systemd}/bin/systemctl --user stop graphical-session.target";

View File

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

View File

@ -1,6 +1,8 @@
{pkgs, inputs, ...}:
{ {
pkgs,
inputs,
...
}: {
imports = [ imports = [
inputs.niri.homeModules.niri inputs.niri.homeModules.niri
../modules/waybar/home.nix ../modules/waybar/home.nix
@ -15,19 +17,19 @@
package = pkgs.niri; package = pkgs.niri;
enable = true; enable = true;
#xwayland.enable = true; #xwayland.enable = true;
# config = '' # config = ''
# binds { # binds {
# Super+Return { spawn "kitty"; } # Super+Return { spawn "kitty"; }
# Super+Space { spawn "fuzzel"; } # Super+Space { spawn "fuzzel"; }
# Super+Q { close-window; } # Super+Q { close-window; }
# Super+Left { focus-column-left; } # Super+Left { focus-column-left; }
# Super+Right { focus-column-right; } # Super+Right { focus-column-right; }
# Super+Up { focus-workspace-up; } # Super+Up { focus-workspace-up; }
# Super+Down { focus-workspace-down; } # Super+Down { focus-workspace-down; }
# Super+L { spawn "hyprlock"; } # Super+L { spawn "hyprlock"; }
# Super+Shift+E { "quit"; } # Super+Shift+E { "quit"; }
# } # }
# ''; # '';
config = '' config = ''
input { input {
keyboard { keyboard {

View File

@ -8,6 +8,7 @@
#----- #-----
alias py="python3" alias py="python3"
alias mcrow="echo 'you better try to use nvim you little shit! :3'" 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 srcals="source $HOME/NixOS/other/aliases && echo 'Sourced Aliases ... successful!'"
alias please="sudo" alias please="sudo"
alias se="sudoedit" alias se="sudoedit"
@ -25,7 +26,8 @@ alias nix-clear="sudo nix-store --gc"
#KDE Plasma Specific #KDE Plasma Specific
#----- #-----
alias kde-theme-apply="source $HOME/NixOS/plasma/konsave.sh" alias plasma-snap="cp ~/.config/plasma-org.kde.plasma.desktop-appletsrc ~/appletsrc.snap"
alias plasma-diff="diff ~/appletsrc.snap ~/.config/plasma-org.kde.plasma.desktop-appletsrc"
#LaTeX Commands #LaTeX Commands
alias makepdf="makeglossaries main && pdflatex main.tex" alias makepdf="makeglossaries main && pdflatex main.tex"

View File

@ -1,34 +1,38 @@
{ config, pkgs, username, project, ... }:
{ {
config,
#To show logs of services run: journalctl --user-unit={service-name} --user pkgs,
username,
systemd.user.services.autostart-yakuake = { project,
enable = true; ...
description = "Automatically start Yakuake"; }: {
after = [ "graphical-session.target" ]; #To show logs of services run: journalctl --user-unit={service-name} --user
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
ExecStart = [ "${pkgs.kdePackages.yakuake}/bin/yakuake" ];
Type = "oneshot"; systemd.user.services.autostart-yakuake = {
Restart = "on-failure"; enable = true;
RestartSec = "5s"; description = "Automatically start Yakuake";
Environment = "PATH=/run/current-system/sw/bin:/etc/profiles/per-user/$USER/bin"; after = ["graphical-session.target"];
}; wantedBy = ["graphical-session.target"];
serviceConfig = {
ExecStart = ["${pkgs.kdePackages.yakuake}/bin/yakuake"];
Type = "oneshot";
Restart = "on-failure";
RestartSec = "5s";
Environment = "PATH=/run/current-system/sw/bin:/etc/profiles/per-user/$USER/bin";
};
}; };
systemd.user.services.autostart-trayscale = { systemd.user.services.autostart-trayscale = {
enable = true; enable = true;
description = "Automatically start Trayscale"; description = "Automatically start Trayscale";
#after = [ "plasma-desktop.service" ]; #after = [ "plasma-desktop.service" ];
wantedBy = [ "default.target" ]; wantedBy = ["default.target"];
serviceConfig = { serviceConfig = {
ExecStart = [ "${pkgs.trayscale}/bin/trayscale --hide-window" ]; ExecStart = ["${pkgs.trayscale}/bin/trayscale --hide-window"];
Type = "oneshot"; Type = "oneshot";
Restart = "on-failure"; Restart = "on-failure";
RestartSec = "5s"; RestartSec = "5s";
}; };
}; };
} }

View File

@ -1,26 +1,29 @@
{config, pkgs, username, project, ...}: {
let config,
pkgs,
username,
project,
...
}: let
# Define the custom background package with the correct relative path # Define the custom background package with the correct relative path
background-package = pkgs.stdenvNoCC.mkDerivation { background-package = pkgs.stdenvNoCC.mkDerivation {
name = "background-image"; name = "background-image";
src = ../other/wallpaper4.png; # Place wallpaper.jpg in the same directory as this config file src = ../other/wallpaper4.png; # Place wallpaper.jpg in the same directory as this config file
dontUnpack = true; dontUnpack = true;
installPhase = '' installPhase = ''
cp $src $out cp $src $out
''; '';
}; };
plasmaTheme = "desktop"; #Possible values are "laptop" or "desktop" plasmaTheme = "desktop"; #Possible values are "laptop" or "desktop"
powerProfile = "laptop"; #Possible values are "laptop" or "desktop" powerProfile = "laptop"; #Possible values are "laptop" or "desktop"
in in {
{ imports = [
imports =
[
./autostart.nix ./autostart.nix
../modules/stylix ../modules/stylix
]; ];
# Pass the variable to home-manager # Pass the variable to home-manager
home-manager.extraSpecialArgs = { home-manager.extraSpecialArgs = {
inherit plasmaTheme powerProfile; inherit plasmaTheme powerProfile;
}; };
@ -40,7 +43,7 @@ in
services = { services = {
xserver = { xserver = {
enable = true; enable = true;
videoDrivers = [ "amdgpu" ]; videoDrivers = ["amdgpu"];
xkb = { xkb = {
layout = "de"; layout = "de";
@ -52,7 +55,7 @@ in
xterm.enable = false; xterm.enable = false;
}; };
excludePackages = [ pkgs.xterm ]; excludePackages = [pkgs.xterm];
## Enable sound with pipewire. ## Enable sound with pipewire.
#services.pulseaudio.enable = false; #services.pulseaudio.enable = false;
}; };
@ -61,7 +64,7 @@ in
sddm = { sddm = {
enable = true; enable = true;
theme = "breeze"; theme = "breeze";
wayland.enable = true; wayland.enable = true;
}; };
}; };
@ -72,10 +75,9 @@ in
system.activationScripts.script.text = '' system.activationScripts.script.text = ''
source /home/${username}/${project}/other/colors.sh source /home/${username}/${project}/other/colors.sh
source /home/${username}/${project}/other/pfp.sh source /home/${username}/${project}/other/pfp.sh
''; '';
environment = { environment = {
plasma6.excludePackages = with pkgs; [ plasma6.excludePackages = with pkgs; [
kdePackages.elisa kdePackages.elisa
]; ];
@ -84,15 +86,15 @@ in
(pkgs.writeTextDir "share/sddm/themes/breeze/theme.conf.user" '' (pkgs.writeTextDir "share/sddm/themes/breeze/theme.conf.user" ''
[General] [General]
background = "${background-package}" background = "${background-package}"
'') #Custom SDDM theme with background image '') #Custom SDDM theme with background image
kdePackages.plymouth-kcm kdePackages.plymouth-kcm
xdg-desktop-portal xdg-desktop-portal
kdePackages.xdg-desktop-portal-kde kdePackages.xdg-desktop-portal-kde
kdePackages.plasma-workspace kdePackages.plasma-workspace
kdePackages.kdialog kdePackages.kdialog
kdePackages.yakuake #Drop down Terminal kdePackages.yakuake #Drop down Terminal
kdePackages.bluez-qt #Bluetooth management for KDE Plasma kdePackages.bluez-qt #Bluetooth management for KDE Plasma
kdePackages.kconfig #To Get infos about the current config, such as themes kdePackages.kconfig #To Get infos about the current config, such as themes
]; ];
}; };
} }

View File

@ -1,10 +1,17 @@
{pkgs, lib, inputs, username, project, plasmaTheme, ...}:
{ {
pkgs,
imports = [ lib,
./settings/common.nix inputs,
./settings/powerProfile.nix username,
] project,
++ lib.optionals (plasmaTheme == "laptop") [ ./settings/laptop.nix ] plasmaTheme,
++ lib.optionals (plasmaTheme == "desktop") [ ./settings/desktop.nix ]; ...
}: {
imports =
[
./settings/common.nix
./settings/powerProfile.nix
]
++ lib.optionals (plasmaTheme == "laptop") [./settings/laptop.nix]
++ lib.optionals (plasmaTheme == "desktop") [./settings/desktop.nix];
} }

View File

@ -1,389 +1,415 @@
{pkgs, inputs, username, project, plasmaTheme, ...}:
{ {
pkgs,
inputs,
username,
project,
plasmaTheme,
...
}: {
programs = { programs = {
plasma = { plasma = {
enable = true; enable = true;
overrideConfig = true; overrideConfig = false;
input.mice = [ input.mice = [
{ {
name = "Logitech Wireless Mouse"; name = "Logitech Wireless Mouse";
vendorId = "046d"; # 046D lowercase vendorId = "046d"; # 046D lowercase
productId = "4091"; # inner HID device, not the receiver (C534) productId = "4091"; # inner HID device, not the receiver (C534)
leftHanded = false; leftHanded = false;
#middleButtonEmulation = false; #middleButtonEmulation = false;
#naturalScroll = false; #naturalScroll = false;
acceleration = -0.25; #acceleration = -0.25;
accelerationProfile = "none"; acceleration = 0;
scrollSpeed = 1.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 = { shortcuts = {
# ActivityManager = { #ActivityManager = {
# switch-to-activity-0f8d8349-5b1b-4b77-bfa5-22829bfaf459 = [ ]; # switch-to-activity-0f8d8349-5b1b-4b77-bfa5-22829bfaf459 = [ ];
# switch-to-activity-7dbb43d7-7e06-4b20-907c-a1dbf4afe6c7 = [ ]; # switch-to-activity-7dbb43d7-7e06-4b20-907c-a1dbf4afe6c7 = [ ];
# switch-to-activity-e85f493f-046d-4dca-9e07-987ecd4ca4bc = [ ]; # switch-to-activity-e85f493f-046d-4dca-9e07-987ecd4ca4bc = [ ];
# }; #};
"KDE Keyboard Layout Switcher" = { "KDE Keyboard Layout Switcher" = {
"Switch keyboard layout to English (US)" = [ ]; "Switch keyboard layout to English (US)" = [];
"Switch keyboard layout to German" = [ ]; "Switch keyboard layout to German" = [];
"Switch to Last-Used Keyboard Layout" = [ ]; "Switch to Last-Used Keyboard Layout" = [];
"Switch to Next Keyboard Layout" = [ ]; "Switch to Next Keyboard Layout" = [];
}; };
#kaccess."Toggle Screen Reader On and Off" = "Meta+Alt+S";
# kaccess."Toggle Screen Reader On and Off" = "Meta+Alt+S"; #kcm_touchpad."Disable Touchpad" = "Touchpad Off";
# kcm_touchpad."Disable Touchpad" = "Touchpad Off"; #kcm_touchpad."Enable Touchpad" = "Touchpad On";
# kcm_touchpad."Enable Touchpad" = "Touchpad On"; #kcm_touchpad."Toggle Touchpad" = ["Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku"];
# kcm_touchpad."Toggle Touchpad" = ["Touchpad Toggle" "Meta+Ctrl+Zenkaku Hankaku"]; #kmix = {
# kmix = { # decrease_microphone_volume = "Microphone Volume Down";
# decrease_microphone_volume = "Microphone Volume Down"; # decrease_volume = "Volume Down";
# decrease_volume = "Volume Down"; # decrease_volume_small = "Shift+Volume Down";
# decrease_volume_small = "Shift+Volume Down"; # increase_microphone_volume = "Microphone Volume Up";
# increase_microphone_volume = "Microphone Volume Up"; # increase_volume = "Volume Up";
# increase_volume = "Volume Up"; # increase_volume_small = "Shift+Volume Up";
# increase_volume_small = "Shift+Volume Up"; # mic_mute = ["Microphone Mute" "Meta+Volume Mute"];
# mic_mute = ["Microphone Mute" "Meta+Volume Mute"]; # mute = "Volume Mute";
# mute = "Volume Mute"; #};
# }; #kmserver = {
# kmserver = { # "Halt Without Confirmation" = [ ];
# "Halt Without Confirmation" = [ ]; # "Lock Session" = ["Meta+L" "Screensaver"];
# "Lock Session" = ["Meta+L" "Screensaver"]; # "Log Out" = "Ctrl+Alt+Del";
# "Log Out" = "Ctrl+Alt+Del"; # "Log Out Without Confirmation" = [ ];
# "Log Out Without Confirmation" = [ ]; # LogOut = [ ];
# LogOut = [ ]; # Reboot = [ ];
# Reboot = [ ]; # "Reboot Without Confirmation" = [ ];
# "Reboot Without Confirmation" = [ ]; # "Shut Down" = [ ];
# "Shut Down" = [ ]; #};
# };
kwin = { kwin = {
# "Activate Window Demanding Attention" = "Meta+Ctrl+A"; # "Activate Window Demanding Attention" = "Meta+Ctrl+A";
Cube = "Meta+C"; Cube = "Meta+C";
# "Cycle Overview" = [ ]; # "Cycle Overview" = [ ];
# "Cycle Overview Opposite" = [ ]; # "Cycle Overview Opposite" = [ ];
# "Decrease Opacity" = [ ]; # "Decrease Opacity" = [ ];
# "Edit Tiles" = "Meta+T"; # "Edit Tiles" = "Meta+T";
# Expose = "Ctrl+F9"; # Expose = "Ctrl+F9";
# ExposeAll = ["Ctrl+F10" "Launch (C)"]; # ExposeAll = ["Ctrl+F10" "Launch (C)"];
# ExposeClass = "Ctrl+F7"; # ExposeClass = "Ctrl+F7";
# ExposeClassCurrentDesktop = [ ]; # ExposeClassCurrentDesktop = [ ];
"Grid View" = "Meta+G"; "Grid View" = "Meta+G";
# "Increase Opacity" = [ ]; # "Increase Opacity" = [ ];
# "Kill Window" = "Meta+Ctrl+Esc"; # "Kill Window" = "Meta+Ctrl+Esc";
# "Move Tablet to Next Output" = [ ]; # "Move Tablet to Next Output" = [ ];
# MoveMouseToCenter = "Meta+F6"; # MoveMouseToCenter = "Meta+F6";
# MoveMouseToFocus = "Meta+F5"; # MoveMouseToFocus = "Meta+F5";
# MoveZoomDown = [ ]; # MoveZoomDown = [ ];
# MoveZoomLeft = [ ]; # MoveZoomLeft = [ ];
# MoveZoomRight = [ ]; # MoveZoomRight = [ ];
# MoveZoomUp = [ ]; # MoveZoomUp = [ ];
# Overview = "Meta+W"; # Overview = "Meta+W";
# "Setup Window Shortcut" = [ ]; # "Setup Window Shortcut" = [ ];
# "Show Desktop" = "Meta+D"; # "Show Desktop" = "Meta+D";
# "Suspend Compositing" = "Alt+Shift+F12"; # "Suspend Compositing" = "Alt+Shift+F12";
"Switch One Desktop Down" = "Meta+Ctrl+Down"; "Switch One Desktop Down" = "Meta+Ctrl+Down";
"Switch One Desktop Up" = "Meta+Ctrl+Up"; "Switch One Desktop Up" = "Meta+Ctrl+Up";
"Switch One Desktop to the Left" = "Meta+Ctrl+Left"; "Switch One Desktop to the Left" = "Meta+Ctrl+Left";
"Switch One Desktop to the Right" = "Meta+Ctrl+Right"; "Switch One Desktop to the Right" = "Meta+Ctrl+Right";
# "Switch Window Down" = "Meta+Alt+Down"; # "Switch Window Down" = "Meta+Alt+Down";
# "Switch Window Left" = "Meta+Alt+Left"; # "Switch Window Left" = "Meta+Alt+Left";
# "Switch Window Right" = "Meta+Alt+Right"; # "Switch Window Right" = "Meta+Alt+Right";
# "Switch Window Up" = "Meta+Alt+Up"; # "Switch Window Up" = "Meta+Alt+Up";
# "Switch to Desktop 1" = "Ctrl+F1"; # "Switch to Desktop 1" = "Ctrl+F1";
# "Switch to Desktop 10" = [ ]; # "Switch to Desktop 10" = [ ];
# "Switch to Desktop 11" = [ ]; # "Switch to Desktop 11" = [ ];
# "Switch to Desktop 12" = [ ]; # "Switch to Desktop 12" = [ ];
# "Switch to Desktop 13" = [ ]; # "Switch to Desktop 13" = [ ];
# "Switch to Desktop 14" = [ ]; # "Switch to Desktop 14" = [ ];
# "Switch to Desktop 15" = [ ]; # "Switch to Desktop 15" = [ ];
# "Switch to Desktop 16" = [ ]; # "Switch to Desktop 16" = [ ];
# "Switch to Desktop 17" = [ ]; # "Switch to Desktop 17" = [ ];
# "Switch to Desktop 18" = [ ]; # "Switch to Desktop 18" = [ ];
# "Switch to Desktop 19" = [ ]; # "Switch to Desktop 19" = [ ];
# "Switch to Desktop 2" = "Ctrl+F2"; # "Switch to Desktop 2" = "Ctrl+F2";
# "Switch to Desktop 20" = [ ]; # "Switch to Desktop 20" = [ ];
# "Switch to Desktop 3" = "Ctrl+F3"; # "Switch to Desktop 3" = "Ctrl+F3";
# "Switch to Desktop 4" = "Ctrl+F4"; # "Switch to Desktop 4" = "Ctrl+F4";
# "Switch to Desktop 5" = [ ]; # "Switch to Desktop 5" = [ ];
# "Switch to Desktop 6" = [ ]; # "Switch to Desktop 6" = [ ];
# "Switch to Desktop 7" = [ ]; # "Switch to Desktop 7" = [ ];
# "Switch to Desktop 8" = [ ]; # "Switch to Desktop 8" = [ ];
# "Switch to Desktop 9" = [ ]; # "Switch to Desktop 9" = [ ];
# "Switch to Next Desktop" = [ ]; # "Switch to Next Desktop" = [ ];
# "Switch to Next Screen" = [ ]; # "Switch to Next Screen" = [ ];
# "Switch to Previous Desktop" = [ ]; # "Switch to Previous Desktop" = [ ];
# "Switch to Previous Screen" = [ ]; # "Switch to Previous Screen" = [ ];
# "Switch to Screen 0" = [ ]; # "Switch to Screen 0" = [ ];
# "Switch to Screen 1" = [ ]; # "Switch to Screen 1" = [ ];
# "Switch to Screen 2" = [ ]; # "Switch to Screen 2" = [ ];
# "Switch to Screen 3" = [ ]; # "Switch to Screen 3" = [ ];
# "Switch to Screen 4" = [ ]; # "Switch to Screen 4" = [ ];
# "Switch to Screen 5" = [ ]; # "Switch to Screen 5" = [ ];
# "Switch to Screen 6" = [ ]; # "Switch to Screen 6" = [ ];
# "Switch to Screen 7" = [ ]; # "Switch to Screen 7" = [ ];
# "Switch to Screen Above" = [ ]; # "Switch to Screen Above" = [ ];
# "Switch to Screen Below" = [ ]; # "Switch to Screen Below" = [ ];
# "Switch to Screen to the Left" = [ ]; # "Switch to Screen to the Left" = [ ];
# "Switch to Screen to the Right" = [ ]; # "Switch to Screen to the Right" = [ ];
# "Toggle Night Color" = [ ]; # "Toggle Night Color" = [ ];
# "Toggle Window Raise/Lower" = [ ]; # "Toggle Window Raise/Lower" = [ ];
# "Walk Through Windows" = "Alt+Tab"; # "Walk Through Windows" = "Alt+Tab";
# "Walk Through Windows (Reverse)" = "Alt+Shift+Tab"; # "Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
# "Walk Through Windows Alternative" = [ ]; # "Walk Through Windows Alternative" = [ ];
# "Walk Through Windows Alternative (Reverse)" = [ ]; # "Walk Through Windows Alternative (Reverse)" = [ ];
# "Walk Through Windows of Current Application" = "Alt+`"; # "Walk Through Windows of Current Application" = "Alt+`";
# "Walk Through Windows of Current Application (Reverse)" = "Alt+~"; # "Walk Through Windows of Current Application (Reverse)" = "Alt+~";
# "Walk Through Windows of Current Application Alternative" = [ ]; # "Walk Through Windows of Current Application Alternative" = [ ];
# "Walk Through Windows of Current Application Alternative (Reverse)" = [ ]; # "Walk Through Windows of Current Application Alternative (Reverse)" = [ ];
# "Window Above Other Windows" = [ ]; # "Window Above Other Windows" = [ ];
# "Window Below Other Windows" = [ ]; # "Window Below Other Windows" = [ ];
"Window Close" = "Alt+F4"; "Window Close" = "Alt+F4";
# "Window Custom Quick Tile Bottom" = [ ]; # "Window Custom Quick Tile Bottom" = [ ];
# "Window Custom Quick Tile Left" = [ ]; # "Window Custom Quick Tile Left" = [ ];
# "Window Custom Quick Tile Right" = [ ]; # "Window Custom Quick Tile Right" = [ ];
# "Window Custom Quick Tile Top" = [ ]; # "Window Custom Quick Tile Top" = [ ];
"Window Fullscreen" = "Meta+Shift+F"; "Window Fullscreen" = "Meta+Shift+F";
# "Window Grow Horizontal" = [ ]; # "Window Grow Horizontal" = [ ];
# "Window Grow Vertical" = [ ]; # "Window Grow Vertical" = [ ];
# "Window Lower" = [ ]; # "Window Lower" = [ ];
"Window Maximize" = ["Meta+F" "Meta+PgUp"]; "Window Maximize" = ["Meta+F" "Meta+PgUp"];
# "Window Maximize Horizontal" = [ ]; # "Window Maximize Horizontal" = [ ];
# "Window Maximize Vertical" = [ ]; # "Window Maximize Vertical" = [ ];
# "Window Minimize" = "Meta+PgDown"; # "Window Minimize" = "Meta+PgDown";
# "Window Move" = [ ]; # "Window Move" = [ ];
# "Window Move Center" = [ ]; # "Window Move Center" = [ ];
# "Window No Border" = [ ]; # "Window No Border" = [ ];
# "Window On All Desktops" = [ ]; # "Window On All Desktops" = [ ];
"Window One Desktop Down" = "Meta+Ctrl+Shift+Down"; "Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
"Window One Desktop Up" = "Meta+Ctrl+Shift+Up"; "Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
"Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left"; "Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
"Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right"; "Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
# "Window One Screen Down" = [ ]; # "Window One Screen Down" = [ ];
# "Window One Screen Up" = [ ]; # "Window One Screen Up" = [ ];
# "Window One Screen to the Left" = [ ]; # "Window One Screen to the Left" = [ ];
# "Window One Screen to the Right" = [ ]; # "Window One Screen to the Right" = [ ];
# "Window Operations Menu" = "Alt+F3"; # "Window Operations Menu" = "Alt+F3";
# "Window Pack Down" = [ ]; # "Window Pack Down" = [ ];
# "Window Pack Left" = [ ]; # "Window Pack Left" = [ ];
# "Window Pack Right" = [ ]; # "Window Pack Right" = [ ];
# "Window Pack Up" = [ ]; # "Window Pack Up" = [ ];
# "Window Quick Tile Bottom" = "Meta+Down"; # "Window Quick Tile Bottom" = "Meta+Down";
# "Window Quick Tile Bottom Left" = [ ]; # "Window Quick Tile Bottom Left" = [ ];
# "Window Quick Tile Bottom Right" = [ ]; # "Window Quick Tile Bottom Right" = [ ];
# "Window Quick Tile Left" = "Meta+Left"; # "Window Quick Tile Left" = "Meta+Left";
# "Window Quick Tile Right" = "Meta+Right"; # "Window Quick Tile Right" = "Meta+Right";
# "Window Quick Tile Top" = "Meta+Up"; # "Window Quick Tile Top" = "Meta+Up";
# "Window Quick Tile Top Left" = [ ]; # "Window Quick Tile Top Left" = [ ];
# "Window Quick Tile Top Right" = [ ]; # "Window Quick Tile Top Right" = [ ];
# "Window Raise" = [ ]; # "Window Raise" = [ ];
# "Window Resize" = [ ]; # "Window Resize" = [ ];
# "Window Shade" = [ ]; # "Window Shade" = [ ];
# "Window Shrink Horizontal" = [ ]; # "Window Shrink Horizontal" = [ ];
# "Window Shrink Vertical" = [ ]; # "Window Shrink Vertical" = [ ];
# "Window to Desktop 1" = [ ]; # "Window to Desktop 1" = [ ];
# "Window to Desktop 10" = [ ]; # "Window to Desktop 10" = [ ];
# "Window to Desktop 11" = [ ]; # "Window to Desktop 11" = [ ];
# "Window to Desktop 12" = [ ]; # "Window to Desktop 12" = [ ];
# "Window to Desktop 13" = [ ]; # "Window to Desktop 13" = [ ];
# "Window to Desktop 14" = [ ]; # "Window to Desktop 14" = [ ];
# "Window to Desktop 15" = [ ]; # "Window to Desktop 15" = [ ];
# "Window to Desktop 16" = [ ]; # "Window to Desktop 16" = [ ];
# "Window to Desktop 17" = [ ]; # "Window to Desktop 17" = [ ];
# "Window to Desktop 18" = [ ]; # "Window to Desktop 18" = [ ];
# "Window to Desktop 19" = [ ]; # "Window to Desktop 19" = [ ];
# "Window to Desktop 2" = [ ]; # "Window to Desktop 2" = [ ];
# "Window to Desktop 20" = [ ]; # "Window to Desktop 20" = [ ];
# "Window to Desktop 3" = [ ]; # "Window to Desktop 3" = [ ];
# "Window to Desktop 4" = [ ]; # "Window to Desktop 4" = [ ];
# "Window to Desktop 5" = [ ]; # "Window to Desktop 5" = [ ];
# "Window to Desktop 6" = [ ]; # "Window to Desktop 6" = [ ];
# "Window to Desktop 7" = [ ]; # "Window to Desktop 7" = [ ];
# "Window to Desktop 8" = [ ]; # "Window to Desktop 8" = [ ];
# "Window to Desktop 9" = [ ]; # "Window to Desktop 9" = [ ];
# "Window to Next Desktop" = [ ]; # "Window to Next Desktop" = [ ];
# "Window to Next Screen" = "Meta+Shift+Right"; # "Window to Next Screen" = "Meta+Shift+Right";
# "Window to Previous Desktop" = [ ]; # "Window to Previous Desktop" = [ ];
# "Window to Previous Screen" = "Meta+Shift+Left"; # "Window to Previous Screen" = "Meta+Shift+Left";
# "Window to Screen 0" = [ ]; # "Window to Screen 0" = [ ];
# "Window to Screen 1" = [ ]; # "Window to Screen 1" = [ ];
# "Window to Screen 2" = [ ]; # "Window to Screen 2" = [ ];
# "Window to Screen 3" = [ ]; # "Window to Screen 3" = [ ];
# "Window to Screen 4" = [ ]; # "Window to Screen 4" = [ ];
# "Window to Screen 5" = [ ]; # "Window to Screen 5" = [ ];
# "Window to Screen 6" = [ ]; # "Window to Screen 6" = [ ];
# "Window to Screen 7" = [ ]; # "Window to Screen 7" = [ ];
# disableInputCapture = "Meta+Shift+Esc"; # disableInputCapture = "Meta+Shift+Esc";
# view_actual_size = "Meta+0"; # view_actual_size = "Meta+0";
# view_zoom_in = ["Meta++" "Meta+="]; # view_zoom_in = ["Meta++" "Meta+="];
# view_zoom_out = "Meta+-"; # view_zoom_out = "Meta+-";
}; };
# mediacontrol = { #mediacontrol = {
# mediacontrol.mediavolumedown = [ ]; #mediacontrol.mediavolumedown = [ ];
# mediacontrol.mediavolumeup = [ ]; #mediacontrol.mediavolumeup = [ ];
# mediacontrol.nextmedia = "Media Next"; #mediacontrol.nextmedia = "Media Next";
# mediacontrol.pausemedia = "Media Pause"; #mediacontrol.pausemedia = "Media Pause";
# mediacontrol.playmedia = [ ]; #mediacontrol.playmedia = [ ];
# mediacontrol.playpausemedia = "Media Play"; #mediacontrol.playpausemedia = "Media Play";
# mediacontrol.previousmedia = "Media Previous"; #mediacontrol.previousmedia = "Media Previous";
# mediacontrol.stopmedia = "Media Stop"; #mediacontrol.stopmedia = "Media Stop";
# }; #};
org_kde_powerdevil = { org_kde_powerdevil = {
# "Decrease Keyboard Brightness" = "Keyboard Brightness Down"; # "Decrease Keyboard Brightness" = "Keyboard Brightness Down";
# "Decrease Screen Brightness" = "Monitor Brightness Down"; # "Decrease Screen Brightness" = "Monitor Brightness Down";
# "Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down"; # "Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
# Hibernate = "Hibernate"; # Hibernate = "Hibernate";
# "Increase Keyboard Brightness" = "Keyboard Brightness Up"; # "Increase Keyboard Brightness" = "Keyboard Brightness Up";
# "Increase Screen Brightness" = "Monitor Brightness Up"; # "Increase Screen Brightness" = "Monitor Brightness Up";
# "Increase Screen Brightness Small" = "Shift+Monitor Brightness Up"; # "Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
# PowerDown = "Power Down"; # PowerDown = "Power Down";
# PowerOff = "Power Off"; # PowerOff = "Power Off";
# Sleep = "Sleep"; # Sleep = "Sleep";
# "Toggle Keyboard Backlight" = "Keyboard Light On/Off"; # "Toggle Keyboard Backlight" = "Keyboard Light On/Off";
# "Turn Off Screen" = [ ]; # "Turn Off Screen" = [ ];
powerProfile = ["Battery" "Meta+B"]; powerProfile = ["Battery" "Meta+B"];
}; };
plasmashell = { plasmashell = {
"activate application launcher" = "Meta"; "activate application launcher" = "Meta";
# "activate task manager entry 1" = "Meta+1"; # "activate task manager entry 1" = "Meta+1";
# "activate task manager entry 10" = [ ]; # "activate task manager entry 10" = [ ];
# "activate task manager entry 2" = "Meta+2"; # "activate task manager entry 2" = "Meta+2";
# "activate task manager entry 3" = "Meta+3"; # "activate task manager entry 3" = "Meta+3";
# "activate task manager entry 4" = "Meta+4"; # "activate task manager entry 4" = "Meta+4";
# "activate task manager entry 5" = "Meta+5"; # "activate task manager entry 5" = "Meta+5";
# "activate task manager entry 6" = "Meta+6"; # "activate task manager entry 6" = "Meta+6";
# "activate task manager entry 7" = "Meta+7"; # "activate task manager entry 7" = "Meta+7";
# "activate task manager entry 8" = "Meta+8"; # "activate task manager entry 8" = "Meta+8";
# "activate task manager entry 9" = "Meta+9"; # "activate task manager entry 9" = "Meta+9";
# clear-history = [ ]; # clear-history = [ ];
# clipboard_action = "Meta+Ctrl+X"; # clipboard_action = "Meta+Ctrl+X";
# cycle-panels = "Meta+Alt+P"; # cycle-panels = "Meta+Alt+P";
# cycleNextAction = [ ]; # cycleNextAction = [ ];
# cyclePrevAction = [ ]; # cyclePrevAction = [ ];
# "manage activities" = "Meta+Q"; # "manage activities" = "Meta+Q";
# "next activity" = "Meta+A"; # "next activity" = "Meta+A";
# "previous activity" = "Meta+Shift+A"; # "previous activity" = "Meta+Shift+A";
# repeat_action = "Meta+Ctrl+R"; # repeat_action = "Meta+Ctrl+R";
# "show dashboard" = "Ctrl+F12"; # "show dashboard" = "Ctrl+F12";
# show-barcode = [ ]; # show-barcode = [ ];
# show-on-mouse-pos = "Meta+V"; # show-on-mouse-pos = "Meta+V";
# "stop current activity" = "Meta+S"; # "stop current activity" = "Meta+S";
# "switch to next activity" = [ ]; # "switch to next activity" = [ ];
# "switch to previous activity" = [ ]; # "switch to previous activity" = [ ];
# "toggle do not disturb" = [ ]; # "toggle do not disturb" = [ ];
}; };
# "services/org.kde.plasma-systemmonitor.desktop"._launch = [ ]; #"services/org.kde.plasma-systemmonitor.desktop"._launch = [ ];
# "services/org.kde.spectacle.desktop".RecordWindow = [ ]; #"services/org.kde.spectacle.desktop".RecordWindow = [ ];
# "services/org.kde.spectacle.desktop".RectangularRegionScreenShot = ["Meta+Shift+Print" "Meta+Shift+S"]; #"services/org.kde.spectacle.desktop".RectangularRegionScreenShot = ["Meta+Shift+Print" "Meta+Shift+S"];
# "services/org.kde.spectacle.desktop"._launch = "Print"; #"services/org.kde.spectacle.desktop"._launch = "Print";
# wacomtablet."Map to fullscreen" = "Meta+Ctrl+F"; #wacomtablet."Map to fullscreen" = "Meta+Ctrl+F";
# wacomtablet."Map to screen 1" = "Meta+Ctrl+1"; #wacomtablet."Map to screen 1" = "Meta+Ctrl+1";
# wacomtablet."Map to screen 2" = "Meta+Ctrl+2"; #wacomtablet."Map to screen 2" = "Meta+Ctrl+2";
# wacomtablet."Next Profile" = "Meta+Ctrl+N"; #wacomtablet."Next Profile" = "Meta+Ctrl+N";
# wacomtablet."Previous Profile" = "Meta+Ctrl+P"; #wacomtablet."Previous Profile" = "Meta+Ctrl+P";
# wacomtablet."Toggle screen map selection" = "Meta+Ctrl+M"; #wacomtablet."Toggle screen map selection" = "Meta+Ctrl+M";
# wacomtablet."Toggle stylus mode" = "Meta+Ctrl+S"; #wacomtablet."Toggle stylus mode" = "Meta+Ctrl+S";
# wacomtablet."Toggle touch tool" = "Meta+Ctrl+T"; #wacomtablet."Toggle touch tool" = "Meta+Ctrl+T";
yakuake.toggle-window-state = "Meta+F12"; yakuake.toggle-window-state = "Meta+F12";
}; };
configFile = { configFile = {
# baloofilerc.General.dbVersion = 2; #baloofilerc.General.dbVersion = 2;
# baloofilerc.General."exclude filters" = "*~,*.part,*.o,*.la,*.lo,*.loT,*.moc,moc_*.cpp,qrc_*.cpp,ui_*.h,cmake_install.cmake,CMakeCache.txt,CTestTestfile.cmake,libtool,config.status,confdefs.h,autom4te,conftest,confstat,Makefile.am,*.gcode,.ninja_deps,.ninja_log,build.ninja,*.csproj,*.m4,*.rej,*.gmo,*.pc,*.omf,*.aux,*.tmp,*.po,*.vm*,*.nvram,*.rcore,*.swp,*.swap,lzo,litmain.sh,*.orig,.histfile.*,.xsession-errors*,*.map,*.so,*.a,*.db,*.qrc,*.ini,*.init,*.img,*.vdi,*.vbox*,vbox.log,*.qcow2,*.vmdk,*.vhd,*.vhdx,*.sql,*.sql.gz,*.ytdl,*.tfstate*,*.class,*.pyc,*.pyo,*.elc,*.qmlc,*.jsc,*.fastq,*.fq,*.gb,*.fasta,*.fna,*.gbff,*.faa,po,CVS,.svn,.git,_darcs,.bzr,.hg,CMakeFiles,CMakeTmp,CMakeTmpQmake,.moc,.obj,.pch,.uic,.npm,.yarn,.yarn-cache,__pycache__,node_modules,node_packages,nbproject,.terraform,.venv,venv,core-dumps,lost+found"; #baloofilerc.General."exclude filters" = "*~,*.part,*.o,*.la,*.lo,*.loT,*.moc,moc_*.cpp,qrc_*.cpp,ui_*.h,cmake_install.cmake,CMakeCache.txt,CTestTestfile.cmake,libtool,config.status,confdefs.h,autom4te,conftest,confstat,Makefile.am,*.gcode,.ninja_deps,.ninja_log,build.ninja,*.csproj,*.m4,*.rej,*.gmo,*.pc,*.omf,*.aux,*.tmp,*.po,*.vm*,*.nvram,*.rcore,*.swp,*.swap,lzo,litmain.sh,*.orig,.histfile.*,.xsession-errors*,*.map,*.so,*.a,*.db,*.qrc,*.ini,*.init,*.img,*.vdi,*.vbox*,vbox.log,*.qcow2,*.vmdk,*.vhd,*.vhdx,*.sql,*.sql.gz,*.ytdl,*.tfstate*,*.class,*.pyc,*.pyo,*.elc,*.qmlc,*.jsc,*.fastq,*.fq,*.gb,*.fasta,*.fna,*.gbff,*.faa,po,CVS,.svn,.git,_darcs,.bzr,.hg,CMakeFiles,CMakeTmp,CMakeTmpQmake,.moc,.obj,.pch,.uic,.npm,.yarn,.yarn-cache,__pycache__,node_modules,node_packages,nbproject,.terraform,.venv,venv,core-dumps,lost+found";
# baloofilerc.General."exclude filters version" = 9; #baloofilerc.General."exclude filters version" = 9;
dolphinrc = { dolphinrc = {
General = { General = {
ShowTerminal = true; #ShowTerminal = true;
RememberOpenedTabs = false; RememberOpenedTabs = false;
# ViewPropsTimestamp = "2024,8,12,15,7,43.15"; # ViewPropsTimestamp = "2024,8,12,15,7,43.15";
}; };
# IconsMode.PreviewSize = 80; "MainWindow"."TerminalPanel Visible" = true;
# "KFileDialog Settings"."Places Icons Auto-resize" = false; # IconsMode.PreviewSize = 80;
# "KFileDialog Settings"."Places Icons Static Size" = 22; # "KFileDialog Settings"."Places Icons Auto-resize" = false;
# PreviewSettings.Plugins = "appimagethumbnail,audiothumbnail,avif,comicbookthumbnail,cursorthumbnail,djvuthumbnail,ebookthumbnail,exrthumbnail,directorythumbnail,fontthumbnail,imagethumbnail,jpegthumbnail,jxl,kraorathumbnail,windowsexethumbnail,windowsimagethumbnail,opendocumentthumbnail,gdk-pixbuf-thumbnailer,svgthumbnail"; # "KFileDialog Settings"."Places Icons Static Size" = 22;
# PreviewSettings.Plugins = "appimagethumbnail,audiothumbnail,avif,comicbookthumbnail,cursorthumbnail,djvuthumbnail,ebookthumbnail,exrthumbnail,directorythumbnail,fontthumbnail,imagethumbnail,jpegthumbnail,jxl,kraorathumbnail,windowsexethumbnail,windowsimagethumbnail,opendocumentthumbnail,gdk-pixbuf-thumbnailer,svgthumbnail";
}; };
# kactivitymanagerdrc.activities.e85f493f-046d-4dca-9e07-987ecd4ca4bc = "Default"; #kactivitymanagerdrc.activities.e85f493f-046d-4dca-9e07-987ecd4ca4bc = "Default";
# kactivitymanagerdrc.main.currentActivity = "e85f493f-046d-4dca-9e07-987ecd4ca4bc"; #kactivitymanagerdrc.main.currentActivity = "e85f493f-046d-4dca-9e07-987ecd4ca4bc";
katerc = { katerc = {
# General."Days Meta Infos" = 30; # General."Days Meta Infos" = 30;
# General."Save Meta Infos" = true; # General."Save Meta Infos" = true;
# General."Show Full Path in Title" = false; # General."Show Full Path in Title" = false;
# General."Show Menu Bar" = true; # General."Show Menu Bar" = true;
# General."Show Status Bar" = true; # General."Show Status Bar" = true;
# General."Show Tab Bar" = true; # General."Show Tab Bar" = true;
# General."Show Url Nav Bar" = true; # General."Show Url Nav Bar" = true;
# "KTextEditor Renderer"."Animate Bracket Matching" = false; # "KTextEditor Renderer"."Animate Bracket Matching" = false;
# "KTextEditor Renderer"."Auto Color Theme Selection" = true; # "KTextEditor Renderer"."Auto Color Theme Selection" = true;
# "KTextEditor Renderer"."Color Theme" = "Breeze Dark"; # "KTextEditor Renderer"."Color Theme" = "Breeze Dark";
# "KTextEditor Renderer"."Line Height Multiplier" = 1; # "KTextEditor Renderer"."Line Height Multiplier" = 1;
# "KTextEditor Renderer"."Show Indentation Lines" = false; # "KTextEditor Renderer"."Show Indentation Lines" = false;
# "KTextEditor Renderer"."Show Whole Bracket Expression" = false; # "KTextEditor Renderer"."Show Whole Bracket Expression" = false;
# "KTextEditor Renderer"."Text Font" = "Hack,10,-1,7,400,0,0,0,0,0,0,0,0,0,0,1"; # "KTextEditor Renderer"."Text Font" = "Hack,10,-1,7,400,0,0,0,0,0,0,0,0,0,0,1";
# "KTextEditor Renderer"."Text Font Features" = ""; # "KTextEditor Renderer"."Text Font Features" = "";
# "KTextEditor Renderer"."Word Wrap Marker" = false; # "KTextEditor Renderer"."Word Wrap Marker" = false;
# "KTextEditor::Search"."Search History" = "availabilityDomain,subnetId"; # "KTextEditor::Search"."Search History" = "availabilityDomain,subnetId";
"KTextEditor Document" = { "KTextEditor Document" = {
"Indentation Width" = 2; "Indentation Width" = 2;
"Tab Width" = 2; "Tab Width" = 2;
"Replace Tabs" = true; "Replace Tabs" = true;
};
#filetree.editShade = "31,81,106";
#filetree.listMode = false;#kdeglobals.KDE.widgetStyle = "Breeze";
#filetree.middleClickToClose = false;
#filetree.shadingEnabled = true;
#filetree.showCloseButton = false;
#filetree.showFullPathOnRoots = false;
#filetree.showToolbar = true;
#filetree.sortRole = 0;
#filetree.viewShade = "81,49,95";
}; };
# filetree.editShade = "31,81,106"; #kded5rc.Module-browserintegrationreminder.autoload = false;
# filetree.listMode = false;# kdeglobals.KDE.widgetStyle = "Breeze"; #kded5rc.Module-device_automounter.autoload = false;
# filetree.middleClickToClose = false; #kdeglobals."DirSelect Dialog"."DirSelectDialog Size" = "960,540";
# filetree.shadingEnabled = true; #kdeglobals.KDE.ShowDeleteCommand = false;
# filetree.showCloseButton = false; #kdeglobals."KFileDialog Settings"."Allow Expansion" = false;
# filetree.showFullPathOnRoots = false; #kdeglobals."KFileDialog Settings"."Automatically select filename extension" = true;
# filetree.showToolbar = true; #kdeglobals."KFileDialog Settings"."Breadcrumb Navigation" = false;
# filetree.sortRole = 0; #kdeglobals."KFileDialog Settings"."Decoration position" = 2;
# filetree.viewShade = "81,49,95"; #kdeglobals."KFileDialog Settings"."LocationCombo Completionmode" = 5;
}; #kdeglobals."KFileDialog Settings"."PathCombo Completionmode" = 5;
# kded5rc.Module-browserintegrationreminder.autoload = false; #kdeglobals."KFileDialog Settings"."Show Bookmarks" = false;
# kded5rc.Module-device_automounter.autoload = false; #kdeglobals."KFileDialog Settings"."Show Full Path" = false;
# kdeglobals."DirSelect Dialog"."DirSelectDialog Size" = "960,540"; #kdeglobals."KFileDialog Settings"."Show Inline Previews" = true;
# kdeglobals.KDE.ShowDeleteCommand = false; #kdeglobals."KFileDialog Settings"."Show Preview" = false;
# kdeglobals."KFileDialog Settings"."Allow Expansion" = false; #kdeglobals."KFileDialog Settings"."Show Speedbar" = true;
# kdeglobals."KFileDialog Settings"."Automatically select filename extension" = true; #kdeglobals."KFileDialog Settings"."Show hidden files" = false;
# kdeglobals."KFileDialog Settings"."Breadcrumb Navigation" = false; #kdeglobals."KFileDialog Settings"."Sort by" = "Name";
# kdeglobals."KFileDialog Settings"."Decoration position" = 2; #kdeglobals."KFileDialog Settings"."Sort directories first" = true;
# kdeglobals."KFileDialog Settings"."LocationCombo Completionmode" = 5; #kdeglobals."KFileDialog Settings"."Sort hidden files last" = false;
# kdeglobals."KFileDialog Settings"."PathCombo Completionmode" = 5; #kdeglobals."KFileDialog Settings"."Sort reversed" = true;
# kdeglobals."KFileDialog Settings"."Show Bookmarks" = false; #kdeglobals."KFileDialog Settings"."Speedbar Width" = 147;
# kdeglobals."KFileDialog Settings"."Show Full Path" = false; #kdeglobals."KFileDialog Settings"."View Style" = "DetailTree";
# kdeglobals."KFileDialog Settings"."Show Inline Previews" = true; #kdeglobals."KShortcutsDialog Settings"."Dialog Size" = "600,480";
# kdeglobals."KFileDialog Settings"."Show Preview" = false; #kdeglobals.PreviewSettings.EnableRemoteFolderThumbnail = false;
# kdeglobals."KFileDialog Settings"."Show Speedbar" = true; #kdeglobals.PreviewSettings.MaximumRemoteSize = 0;
# kdeglobals."KFileDialog Settings"."Show hidden files" = false; #kdeglobals.Sounds.Theme = "freedesktop";
# kdeglobals."KFileDialog Settings"."Sort by" = "Name"; #kdeglobals.WM.activeBackground = "49,54,59";
# kdeglobals."KFileDialog Settings"."Sort directories first" = true; #kdeglobals.WM.activeBlend = "252,252,252";
# kdeglobals."KFileDialog Settings"."Sort hidden files last" = false; #kdeglobals.WM.activeForeground = "252,252,252";
# kdeglobals."KFileDialog Settings"."Sort reversed" = true; #kdeglobals.WM.inactiveBackground = "42,46,50";
# kdeglobals."KFileDialog Settings"."Speedbar Width" = 147; #kdeglobals.WM.inactiveBlend = "161,169,177";
# kdeglobals."KFileDialog Settings"."View Style" = "DetailTree"; #kdeglobals.WM.inactiveForeground = "161,169,177";
# kdeglobals."KShortcutsDialog Settings"."Dialog Size" = "600,480"; #kiorc.Confirmations.ConfirmDelete = true;
# kdeglobals.PreviewSettings.EnableRemoteFolderThumbnail = false;
# kdeglobals.PreviewSettings.MaximumRemoteSize = 0;
# kdeglobals.Sounds.Theme = "freedesktop";
# kdeglobals.WM.activeBackground = "49,54,59";
# kdeglobals.WM.activeBlend = "252,252,252";
# kdeglobals.WM.activeForeground = "252,252,252";
# kdeglobals.WM.inactiveBackground = "42,46,50";
# kdeglobals.WM.inactiveBlend = "161,169,177";
# kdeglobals.WM.inactiveForeground = "161,169,177";
# kiorc.Confirmations.ConfirmDelete = true;
kscreenlockerrc.Daemon.Autolock = false; kscreenlockerrc.Daemon.Autolock = false;
kscreenlockerrc.Daemon.Timeout = 0; kscreenlockerrc.Daemon.Timeout = 0;
# kscreenlockerrc."Greeter/Wallpaper/org.kde.image/General".Image = "/usr/share/wallpapers/ScarletTree/"; #kscreenlockerrc."Greeter/Wallpaper/org.kde.image/General".Image = "/usr/share/wallpapers/ScarletTree/";
# kscreenlockerrc."Greeter/Wallpaper/org.kde.image/General".PreviewImage = "/usr/share/wallpapers/ScarletTree/"; #kscreenlockerrc."Greeter/Wallpaper/org.kde.image/General".PreviewImage = "/usr/share/wallpapers/ScarletTree/";
ksmserverrc.General.loginMode = "emptySession"; ksmserverrc.General.loginMode = "emptySession";
# kwalletrc.Wallet."First Use" = false; #kwalletrc.Wallet."First Use" = false;
kwinrc = { kwinrc = {
# "Activities/LastVirtualDesktop"."0f8d8349-5b1b-4b77-bfa5-22829bfaf459" = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37"; # "Activities/LastVirtualDesktop"."0f8d8349-5b1b-4b77-bfa5-22829bfaf459" = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37";
# "Activities/LastVirtualDesktop".e85f493f-046d-4dca-9e07-987ecd4ca4bc = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37"; # "Activities/LastVirtualDesktop".e85f493f-046d-4dca-9e07-987ecd4ca4bc = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37";
"EdgeBarrier"."EdgeBarrier" = 15;
Desktops = { Desktops = {
# Id_1 = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37"; # Id_1 = "4a2f44cc-dfe7-45dc-8439-fe34a6866d37";
# Id_2 = "fc5cf4ff-2e08-4059-ac1f-7c5540efa4fc"; # Id_2 = "fc5cf4ff-2e08-4059-ac1f-7c5540efa4fc";
# Id_3 = "375e6952-2ebc-473c-bd50-58090b95b184"; # Id_3 = "375e6952-2ebc-473c-bd50-58090b95b184";
# Id_4 = "6cf07176-c30b-401a-b7f4-cf63067a7191"; # Id_4 = "6cf07176-c30b-401a-b7f4-cf63067a7191";
Number = 4; Number = 4;
Rows = 2; Rows = 2;
}; };
@ -397,16 +423,16 @@
Plugins.sheetEnabled = true; Plugins.sheetEnabled = true;
Plugins.translucencyEnabled = true; Plugins.translucencyEnabled = true;
Tiling.padding = 4; Tiling.padding = 4;
# "Tiling/01df8341-b6c7-5a80-b8b8-9d45585f515f".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}"; #"Tiling/01df8341-b6c7-5a80-b8b8-9d45585f515f".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
# "Tiling/1c624b6b-fbd3-5af5-93a9-4a7d55ba7893".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}"; #"Tiling/1c624b6b-fbd3-5af5-93a9-4a7d55ba7893".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
# "Tiling/f18ce12b-2106-508f-9542-e4e6c6fbf75f".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}"; #"Tiling/f18ce12b-2106-508f-9542-e4e6c6fbf75f".tiles = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
# Xwayland.Scale = 2; #Xwayland.Scale = 2;
"org.kde.kdecoration2".BorderSize = "Tiny"; "org.kde.kdecoration2".BorderSize = "Tiny";
"org.kde.kdecoration2".BorderSizeAuto = false; "org.kde.kdecoration2".BorderSizeAuto = false;
"org.kde.kdecoration2".ButtonsOnLeft = ""; "org.kde.kdecoration2".ButtonsOnLeft = "";
# "org.kde.kdecoration2".theme = "__aurorae__svg__Nordic"; #"org.kde.kdecoration2".theme = "__aurorae__svg__Nordic";
}; };
# plasma-localerc.Formats.LANG = "en_US.UTF-8"; #plasma-localerc.Formats.LANG = "en_US.UTF-8";
#plasmanotifyrc."Applications/dev.deedles.Trayscale".Seen = true; #plasmanotifyrc."Applications/dev.deedles.Trayscale".Seen = true;
}; };
}; };

View File

@ -1,11 +1,16 @@
{pkgs, inputs, username, project, plasmaTheme, ...}:
{ {
pkgs,
inputs,
username,
project,
plasmaTheme,
...
}: {
programs = { programs = {
plasma = { plasma = {
overrideConfig = true;
panels = [ panels = [
{ {
screen = "all";
height = 44; height = 44;
location = "bottom"; location = "bottom";
alignment = "center"; alignment = "center";
@ -21,7 +26,8 @@
launchers = [ launchers = [
# optional pinned apps # optional pinned apps
"applications:org.kde.dolphin.desktop" "applications:org.kde.dolphin.desktop"
"applications:systemsettings.desktop""applications:kitty.desktop" "applications:systemsettings.desktop"
"applications:kitty.desktop"
"applications:firefox.desktop" "applications:firefox.desktop"
]; ];
}; };
@ -104,7 +110,8 @@
theme = "Win10OS-cursors"; theme = "Win10OS-cursors";
size = 24; size = 24;
}; };
wallpaper = /home/${username}/${project}/other/wallpaper1.png; # Do not use wallpaper option here as it causes issues! Use it in configFile
# wallpaper = /home/${username}/${project}/other/wallpaper1.png;
soundTheme = "ocean"; soundTheme = "ocean";
iconTheme = "We10X"; iconTheme = "We10X";
splashScreen = { splashScreen = {
@ -115,6 +122,9 @@
theme = "__aurorae__svg__Win11OS-dark"; theme = "__aurorae__svg__Win11OS-dark";
}; };
}; };
configFile = {
plasmarc.Wallpapers.usersWallpapers = "/home/cookiez/NixOS/other/wallpaper1.png";
};
}; };
}; };
} }

View File

@ -1,12 +1,16 @@
{pkgs, inputs, username, project, plasmaTheme, ...}:
{ {
pkgs,
inputs,
username,
project,
plasmaTheme,
...
}: {
programs = { programs = {
plasma = { plasma = {
overrideConfig = true;
panels = [ panels = [
{ {
screen = "all";
height = 44; height = 44;
location = "top"; location = "top";
alignment = "center"; alignment = "center";
@ -111,13 +115,13 @@
launchers = [ launchers = [
# optional pinned apps # optional pinned apps
"applications:org.kde.dolphin.desktop" "applications:org.kde.dolphin.desktop"
"applications:systemsettings.desktop""applications:kitty.desktop" "applications:systemsettings.desktop"
"applications:kitty.desktop"
"applications:firefox.desktop" "applications:firefox.desktop"
]; ];
}; };
}; };
} }
]; ];
} }
]; ];
@ -129,7 +133,8 @@
theme = "Breeze_Light"; theme = "Breeze_Light";
size = 24; size = 24;
}; };
wallpaper = /home/${username}/${project}/other/wallpaper3.png; # Do not use wallpaper option here as it causes issues! Use it in configFile
# wallpaper = /home/${username}/${project}/other/wallpaper3.png;
soundTheme = "freedesktop"; soundTheme = "freedesktop";
iconTheme = "Breeze-LaCapitaine-apps"; iconTheme = "Breeze-LaCapitaine-apps";
splashScreen = { splashScreen = {

View File

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