Compare commits

..
24 Commits
Author SHA1 Message Date
Weckyy702 149877f31e Keith: Add NAPS2 for scanning 2026-08-03 21:38:28 +02:00
Weckyy702 b0a83e2ad5 Misc: Add nixfmt-tree and run nix fmt 2026-07-30 15:03:14 +02:00
Weckyy702 3831cc1540 Nixvim/lsp: Enable tinymist and typst 2026-07-30 15:01:27 +02:00
Weckyy702 3939a7c0cf Tux: Add Synchthing 2026-07-30 09:59:20 +02:00
Weckyy702 dc341b6644 Keith: remove spicetify 2026-07-26 12:55:10 +02:00
Weckyy702 8df7bf8925 SANE: Add sane for plug-and-play scanner support 2026-07-24 14:28:16 +02:00
Weckyy702 359526182e Add ZSA keyboard udev rules 2026-07-24 14:26:51 +02:00
Weckyy702 99cd12bbc6 Devtools: Add more default development tools for convenience 2026-07-11 13:20:36 +02:00
Weckyy702 1827e1e8d7 Audio: Use Pipewire for audio handling
this fixed some annyoing issues with multiple audio outputs
2026-07-11 13:15:27 +02:00
Weckyy702 82023d7721 Keith: Add Rust toolchain 2026-07-10 02:30:48 +02:00
Weckyy702 99966bc87f Keith/Weckyy702: Remove qbittorrent and add ashell 2026-06-24 23:23:25 +02:00
Weckyy702 ab75bec987 Hyprland: Add more keybinds for window and workspace handling 2026-06-24 23:23:03 +02:00
Weckyy702 5bb60f75e6 Keith: Update git config 2026-06-24 23:22:27 +02:00
Weckyy702 de577756a6 Services: Add sunshine for remote game streaming 2026-06-24 23:21:21 +02:00
Weckyy702 8712ea4baf Update .gitignore 2026-06-23 14:24:48 +02:00
Weckyy702 9c101ab211 Tux/Weckyy702: Clean up user specific modules
Generic modules should live in generic locations :^)
2026-06-23 14:24:22 +02:00
Weckyy702 7c83ca07de Git: Split git home-manager config into user-specific and machine-user specific parts 2026-06-23 14:16:36 +02:00
Weckyy702 46e85e815d Flake: Update dependencies 2026-06-20 04:14:30 +02:00
Weckyy702 3fa5ef2441 wpaperd+tux: Implement wallpaper switching by keybind
required using the unstable version of wpaperd
2026-06-20 04:13:28 +02:00
Weckyy702 7fb5a0515a Tux: Rename submodules to more closely adhere to the dendritic pattern 2026-06-18 16:20:51 +02:00
Weckyy702 1cf44c97cc Docker: Simplify docker module by making usernames adjustable 2026-06-18 16:20:07 +02:00
Weckyy702 7fc9d10092 Filesystems: Unify local NAS mounting for all hosts 2026-06-18 16:04:42 +02:00
Weckyy702 61f4e15fb2 Merge branch 'upgrade-26.05' 2026-06-18 13:51:40 +02:00
Weckyy702 24146bede1 Upgrade to NixOS 26.05
Had to redo hyprland config since they use lua in the newest versions
2026-06-18 13:50:32 +02:00
60 changed files with 573 additions and 456 deletions
+1
View File
@@ -0,0 +1 @@
result
Generated
+42 -127
View File
@@ -60,16 +60,16 @@
]
},
"locked": {
"lastModified": 1768256610,
"narHash": "sha256-IyL6nZo242nDLoLQVwkqAZXp8FO5kBfjL6Fuh+gZO10=",
"lastModified": 1780143400,
"narHash": "sha256-jN9RJ4OeuLdCxZ1G0d4zqy0HuHnqODxxgN6pQoYfAH8=",
"owner": "catppuccin",
"repo": "nix",
"rev": "0734ad8c91342df34f1a1e5c183d053d70ba87c7",
"rev": "096f4670cf078d810a931fae59b57db4cc3fb4d3",
"type": "github"
},
"original": {
"owner": "catppuccin",
"ref": "release-25.11",
"ref": "release-26.05",
"repo": "nix",
"type": "github"
}
@@ -98,11 +98,11 @@
},
"flake-file": {
"locked": {
"lastModified": 1777679829,
"narHash": "sha256-zQxY90pq7BDbeimAiOfuK2U0huzo6oHOiC8zEpRgsbQ=",
"lastModified": 1781217157,
"narHash": "sha256-N3q/SP2Ropk336e9KSgLh7kpROY6P70dprYdbPIfd5c=",
"owner": "vic",
"repo": "flake-file",
"rev": "04ca28cf570276e70a9a5f694791ab2a60f1f300",
"rev": "ce63eaf7ebfe04a176653f66385a7f0a36380cee",
"type": "github"
},
"original": {
@@ -116,11 +116,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1777988971,
"narHash": "sha256-qIoWPDs+0/8JecyYgE3gpKQxW/4bLW/gp45vow9ioCQ=",
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "0678d8986be1661af6bb555f3489f2fdfc31f6ff",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github"
},
"original": {
@@ -137,11 +137,11 @@
]
},
"locked": {
"lastModified": 1768135262,
"narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github"
},
"original": {
@@ -150,24 +150,6 @@
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -175,27 +157,27 @@
]
},
"locked": {
"lastModified": 1777851538,
"narHash": "sha256-Gp8qwTEYNoy2yvmErVGlvLOQvrtEECCAKbonW7VJef8=",
"lastModified": 1781319724,
"narHash": "sha256-ZGuxexEMo4Xv28KJ0dX/m/PHN4oZIOnxHZpNTyrvx4M=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "cc09c0f9b7eaa95c2d9827338a5eb03d32505ca5",
"rev": "8355f0a16b2dbb06a97959a918af5b239bbe05ae",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.11",
"ref": "release-26.05",
"repo": "home-manager",
"type": "github"
}
},
"import-tree": {
"locked": {
"lastModified": 1773693634,
"narHash": "sha256-BtZ2dtkBdSUnFPPFc+n0kcMbgaTxzFNPv2iaO326Ffg=",
"lastModified": 1778781969,
"narHash": "sha256-Jjuz5CmSkur8KvLDoGa+vylEp+RkQtv4mt/qcMznpH0=",
"owner": "vic",
"repo": "import-tree",
"rev": "c41e7d58045f9057880b0d85e1152d6a4430dbf1",
"rev": "d321337efd0f23a9eb14a42adb7b2c29313ab274",
"type": "github"
},
"original": {
@@ -204,46 +186,18 @@
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1754860581,
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.1.1",
"repo": "ixx",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1778003029,
"narHash": "sha256-q/nkKLDtHIyLjZpKhWk3cSK5IYsFqtMd6UtXF3ddjgA=",
"lastModified": 1781216227,
"narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "0c88e1f2bdb93d5999019e99cb0e61e1fe2af4c5",
"rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.11",
"ref": "nixos-26.05",
"repo": "nixpkgs",
"type": "github"
}
@@ -265,11 +219,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1777954456,
"narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=",
"lastModified": 1781577229,
"narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1",
"rev": "567a49d1913ce81ac6e9582e3553dd90a955875f",
"type": "github"
},
"original": {
@@ -285,47 +239,23 @@
"nixpkgs": [
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch",
"systems": "systems_3"
"systems": "systems_2"
},
"locked": {
"lastModified": 1769049374,
"narHash": "sha256-h0Os2qqNyycDY1FyZgtbn28VF1ySP74/n0f+LDd8j+w=",
"lastModified": 1781915791,
"narHash": "sha256-LT1typkmETNVtWQncEByIR64ycmzZqxqtzZ5I9QkyTY=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "b8f76bf5751835647538ef8784e4e6ee8deb8f95",
"rev": "62019d53fd44f9fe20e3e20c891fbca567f3d331",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "nixos-25.11",
"ref": "nixos-26.05",
"repo": "nixvim",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1768249818,
"narHash": "sha256-ANfn5OqIxq3HONPIXZ6zuI5sLzX1sS+2qcf/Pa0kQEc=",
"owner": "NuschtOS",
"repo": "search",
"rev": "b6f77b88e9009bfde28e2130e218e5123dc66796",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"orly-covers": {
"flake": false,
"locked": {
@@ -369,11 +299,11 @@
]
},
"locked": {
"lastModified": 1778037418,
"narHash": "sha256-EZnAOkPgEeOO2rCRhwkTvesCq/E6dbsyxhMyaefgIWM=",
"lastModified": 1781850613,
"narHash": "sha256-UL/f++6fbg1MSC63NSynUVsww+DSay0N5TsbFzLZIsQ=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "adf987c76af8d17b8256d23631bcf203f81e1a63",
"rev": "4baecb43a008cd004e5220a777e1724bd8d43e43",
"type": "github"
},
"original": {
@@ -399,14 +329,14 @@
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_4"
"systems": "systems_3"
},
"locked": {
"lastModified": 1777789800,
"narHash": "sha256-XHCvLGu/bEEZRzXVKFu1i+2YB102Nr00n8e7xrzsfVs=",
"lastModified": 1781425310,
"narHash": "sha256-GTBka4Df/ZOacmisI/DI2LICyNChEqn/giah83LucdM=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
"rev": "d0e921cc48aab6137d203a3eab19601dc2bdc0c3",
"rev": "aeaf7c81a45d3761da61cb05bfc370ac6d1b0441",
"type": "github"
},
"original": {
@@ -460,21 +390,6 @@
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"zen-browser": {
"inputs": {
"nixpkgs": [
@@ -482,11 +397,11 @@
]
},
"locked": {
"lastModified": 1777612697,
"narHash": "sha256-h+tXBNMDrsKbD1UnYw0IeSIT4RalHtIJ1GLOviib7/8=",
"lastModified": 1781847955,
"narHash": "sha256-1OSYOGuJp/NoODmSHjsz+6TB/kSilJ+BsFihjY7TTnc=",
"owner": "youwen5",
"repo": "zen-browser-flake",
"rev": "f9f70d14f9a57c7962c5cfe589461c1391044448",
"rev": "4bca251cd556677f7b765ff324d1638ae215be13",
"type": "github"
},
"original": {
+4 -4
View File
@@ -20,20 +20,20 @@
flake = false;
};
catppuccin = {
url = "github:catppuccin/nix/release-25.11";
url = "github:catppuccin/nix/release-26.05";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-file.url = "github:vic/flake-file";
flake-parts.url = "github:hercules-ci/flake-parts";
home-manager = {
url = "github:nix-community/home-manager/release-25.11";
url = "github:nix-community/home-manager/release-26.05";
inputs.nixpkgs.follows = "nixpkgs";
};
import-tree.url = "github:vic/import-tree";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixvim = {
url = "github:nix-community/nixvim/nixos-25.11";
url = "github:nix-community/nixvim/nixos-26.05";
inputs.nixpkgs.follows = "nixpkgs";
};
orly-covers = {
+1 -1
View File
@@ -15,7 +15,7 @@
programs.zsh.profileExtra = ''
if [ -z "$WAYLAND_DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
exec hyprland
exec start-hyprland
fi
'';
};
+9 -8
View File
@@ -1,13 +1,14 @@
{
config.flake.factory.mount-cifs =
{ host
, resource
, destination
, credentials_path
, UID
, GID
,
}: { pkgs, ... }: {
{
host,
resource,
destination,
credentials_path,
UID,
GID,
}:
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
cifs-utils
];
+6 -4
View File
@@ -1,10 +1,12 @@
{ self, ... }: {
config.flake.factory.user = username: isAdmin: {
nixos."${username}" =
{ lib
, pkgs
, ...
}: {
{
lib,
pkgs,
...
}:
{
users.users."${username}" = {
isNormalUser = true;
home = "/home/${username}";
+2 -1
View File
@@ -1,8 +1,9 @@
{
config.flake.factory.wpaperd = config: {
config.flake.factory.wpaperd = config: { pkgs, ... }: {
services.wpaperd = {
enable = true;
settings = config;
package = pkgs.unstable.wpaperd;
};
};
}
+6
View File
@@ -0,0 +1,6 @@
{
config.flake.factory.zsa-moonlander = user: { pkgs, ... }: {
users.users.${user}.extraGroups = [ "plugdev" ];
hardware.keyboard.zsa.enable = true;
};
}
+5
View File
@@ -0,0 +1,5 @@
{
perSystem = { pkgs, ... }: {
formatter = pkgs.nixfmt-tree;
};
}
+7 -2
View File
@@ -1,12 +1,17 @@
{ inputs, ... }: {
flake.modules.nixos.keith = {
imports = with inputs.self.modules.nixos;
with inputs.self.factory; [
imports =
with inputs.self.modules.nixos;
with inputs.self.factory;
[
system-desktop
(autologin "weckyy702")
(grub-boot "/dev/nvme0n1")
development-tools
i18n-de
mount-duke-smb
keith-devtools
# (sunshine "weckyy702")
#TODO: moar aspects
];
+11
View File
@@ -0,0 +1,11 @@
{ inputs, ... }: {
flake.modules.nixos.keith-devtools = {
imports =
with inputs.self.modules.nixos;
with inputs.self.factory;
[
development-tools
rust-dev
];
};
}
+8 -1
View File
@@ -5,7 +5,14 @@
amd-gpu
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.availableKernelModules = [
"nvme"
"xhci_pci"
"ahci"
"usbhid"
"usb_storage"
"sd_mod"
];
nixpkgs.hostPlatform = "x86_64-linux";
hardware.cpu.amd.updateMicrocode = true;
+6 -4
View File
@@ -1,7 +1,9 @@
{ self
, inputs
, ...
}: {
{
self,
inputs,
...
}:
{
flake.modules.nixos.keith = { config, ... }: {
age.secrets.upsmon.file = "${inputs.secrets}/upsmon.age";
@@ -0,0 +1,5 @@
{
flake.modules.homeManager.keith-weckyy702-git = {
programs.git.signing.key = "/home/weckyy702/.ssh/id_ed25519";
};
}
@@ -4,22 +4,25 @@
weckyy702
steam
mullvad
naps2
];
home-manager.users.weckyy702 = { config, ... }: {
imports = with inputs.self.modules.homeManager;
with inputs.self.factory; [
imports =
with inputs.self.modules.homeManager;
with inputs.self.factory;
[
(wpaperd {
default = {
path = "${inputs.assets}/horizontal_16x9.png";
};
})
ashell
keith-weckyy702-git
vesktop
spicetify
borgmatic
qbittorrent
prusa-slicer
];
};
+6 -4
View File
@@ -1,7 +1,9 @@
{ inputs, ... }: {
flake.modules.nixos.tux = {
imports = with inputs.self.modules.nixos;
with inputs.self.factory; [
flake.modules.nixos.tux-devtools = {
imports =
with inputs.self.modules.nixos;
with inputs.self.factory;
[
development-tools
rust-dev
@@ -9,7 +11,7 @@
udev-pio
udev-lauterbach
docker
(docker [ "weckyy702" ])
];
};
}
+11 -10
View File
@@ -1,20 +1,21 @@
{
flake.modules.nixos.tux = {
fileSystems."/" =
{ device = "/dev/mapper/luks-9d836ef1-a7f9-430f-8fb8-f202f6336e5a";
flake.modules.nixos.tux-filesystems = {
fileSystems."/" = {
device = "/dev/mapper/luks-9d836ef1-a7f9-430f-8fb8-f202f6336e5a";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/15FA-55CF";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/15FA-55CF";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
options = [
"fmask=0077"
"dmask=0077"
];
};
swapDevices =
[ { device = "/dev/mapper/luks-46e78828-ab23-48b8-8e2a-de7a21adbe24"; }
swapDevices = [
{ device = "/dev/mapper/luks-46e78828-ab23-48b8-8e2a-de7a21adbe24"; }
];
};
}
+12 -4
View File
@@ -1,12 +1,20 @@
{ inputs, ... }: {
flake.modules.nixos.tux = {
flake.modules.nixos.tux-hardware = {
imports = with inputs.self.modules.nixos; [
intel-gpu
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "sdhci_pci" ];
boot.initrd.luks.devices."luks-9d836ef1-a7f9-430f-8fb8-f202f6336e5a".device = "/dev/disk/by-uuid/9d836ef1-a7f9-430f-8fb8-f202f6336e5a";
boot.initrd.luks.devices."luks-46e78828-ab23-48b8-8e2a-de7a21adbe24".device = "/dev/disk/by-uuid/46e78828-ab23-48b8-8e2a-de7a21adbe24";
boot.initrd.availableKernelModules = [
"xhci_pci"
"nvme"
"usb_storage"
"sd_mod"
"sdhci_pci"
];
boot.initrd.luks.devices."luks-9d836ef1-a7f9-430f-8fb8-f202f6336e5a".device =
"/dev/disk/by-uuid/9d836ef1-a7f9-430f-8fb8-f202f6336e5a";
boot.initrd.luks.devices."luks-46e78828-ab23-48b8-8e2a-de7a21adbe24".device =
"/dev/disk/by-uuid/46e78828-ab23-48b8-8e2a-de7a21adbe24";
nixpkgs.hostPlatform = "x86_64-linux";
+1 -1
View File
@@ -1,5 +1,5 @@
{ inputs, ... }: {
flake.modules.nixos.tux = {
flake.modules.nixos.tux-networking = {
imports = with inputs.self.modules.nixos; [
networkmanager
];
+14 -7
View File
@@ -1,19 +1,26 @@
{ inputs, ... }: {
flake.modules.nixos.tux = {
imports = with inputs.self.modules.nixos;
with inputs.self.factory; [
imports =
with inputs.self.modules.nixos;
with inputs.self.factory;
[
system-desktop
systemd-boot
bluetooth
i18n-de
powermanagement
(autologin "weckyy702")
home-vpn
opentablet
appimage
powermanagement
mount-duke-smb
tux-hardware
tux-filesystems
tux-networking
tux-devtools
tux-weckyy702
(autologin "weckyy702")
];
};
}
+15
View File
@@ -0,0 +1,15 @@
{ inputs, ... }: {
flake.modules.homeManager.tux-hyprland = {
imports = with inputs.self.modules.homeManager; [
ashell
];
wayland.windowManager.hyprland.extraConfig = ''
hl.monitor({
output = "eDP-1",
mode = "preferred",
position = "0x0",
scale = 1.066666667,
})
'';
};
}
@@ -1,8 +0,0 @@
{ inputs, ... }: {
flake.modules.nixos.tux = {
imports = with inputs.self.modules.nixos; [
backlight
];
users.users.weckyy702.extraGroups = [ "video" ];
};
}
@@ -1,5 +0,0 @@
{
flake.modules.nixos.tux = {
users.users.weckyy702.extraGroups = [ "docker" ];
};
}
@@ -0,0 +1,5 @@
{
flake.modules.homeManager.tux-weckyy702-git = {
programs.git.signing.key = "/home/weckyy702/.ssh/id_ed25519_github_sign";
};
}
@@ -1,12 +0,0 @@
{ inputs, ... }: {
flake.modules.homeManager.tux-hyprland = {
imports = with inputs.self.modules.homeManager; [
ashell
];
wayland.windowManager.hyprland.settings = {
monitor = [
"eDP-1,preferred,0x0,1.066666667"
];
};
};
}
@@ -1,16 +0,0 @@
{ inputs, ... }: {
flake.modules.nixos.tux = { config, ... }: {
age.secrets."nas-creds".file = "${inputs.secrets}/nas-creds.age";
imports = with inputs.self.factory; [
(mount-cifs {
host = "duke.veltnet";
resource = "smb-share";
destination = "/mnt/nas";
credentials_path = "${config.age.secrets.nas-creds.path}";
UID = "weckyy702";
GID = "users";
})
];
};
}
@@ -1,5 +1,5 @@
{ inputs, ... }: {
flake.modules.nixos.tux = {
flake.modules.nixos.tux-weckyy702 = {
imports = with inputs.self.modules.nixos; [
weckyy702
upower
@@ -7,8 +7,10 @@
];
home-manager.users.weckyy702 = {
imports = with inputs.self.modules.homeManager;
with inputs.self.factory; [
imports =
with inputs.self.modules.homeManager;
with inputs.self.factory;
[
borgmatic
obsidian
vesktop
@@ -17,6 +19,10 @@
nm-applet
blueman-applet
prusa-slicer
backlight
syncthing
tux-weckyy702-git
];
};
};
+6 -4
View File
@@ -1,7 +1,9 @@
{ inputs
, lib
, ...
}: {
{
inputs,
lib,
...
}:
{
# Helper functions for creating system / home-manager configurations
options.flake.lib = lib.mkOption {
+7 -5
View File
@@ -1,10 +1,12 @@
{ inputs
, config
, ...
}: {
{
inputs,
config,
...
}:
{
# Add home-manager input
flake-file.inputs = {
home-manager.url = "github:nix-community/home-manager/release-25.11";
home-manager.url = "github:nix-community/home-manager/release-26.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
};
+25 -7
View File
@@ -1,9 +1,11 @@
{
flake.modules.homeManager.ashell =
{ config
, lib
, ...
}: {
{
config,
lib,
...
}:
{
programs.ashell = {
enable = true;
systemd.enable = true;
@@ -12,17 +14,33 @@
modules = {
left = [ "Workspaces" ];
center = [ "Clock" ];
right = [ "Tray" [ "SystemInfo" "Settings" ] ];
right = [
"Tray"
[
"SystemInfo"
"Settings"
]
];
};
system_info.indicators = [ "Cpu" "Memory" "Temperature" "DownloadSpeed" "UploadSpeed" ];
system_info.indicators = [
"Cpu"
"Memory"
"Temperature"
"DownloadSpeed"
"UploadSpeed"
];
settings.indicators = [ "Battery" ];
appearance = lib.mkIf config.catppuccin.enable {
success_color = "#a6e3a1";
text_color = "#cdd6f4";
workspace_colors = [ "#fab387" "#b4befe" "#cba6f7" ];
workspace_colors = [
"#fab387"
"#b4befe"
"#cba6f7"
];
primary_color = {
base = "#fab387";
+10 -15
View File
@@ -7,9 +7,10 @@
};
flake.modules.homeManager.browser =
{ pkgs
, lib
, ...
{
pkgs,
lib,
...
}:
let
mkExtension = shortId: guid: {
@@ -19,8 +20,7 @@
installation_mode = "normal_installed";
};
};
zen-pkg =
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.zen-browser-unwrapped;
zen-pkg = inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.zen-browser-unwrapped;
prefs = {
"zen.tabs.vertical.right-side" = true;
@@ -55,15 +55,11 @@
in
{
home.packages = [
(
pkgs.wrapFirefox zen-pkg
{
(pkgs.wrapFirefox zen-pkg {
extraPrefs = lib.concatLines (
lib.mapAttrsToList
(
name: value: ''lockPref(${lib.strings.toJSON name}, ${lib.strings.toJSON value});''
)
prefs
lib.mapAttrsToList (
name: value: "lockPref(${lib.strings.toJSON name}, ${lib.strings.toJSON value});"
) prefs
);
extraPolicies = {
@@ -82,8 +78,7 @@
];
};
};
}
)
})
];
};
}
+4 -4
View File
@@ -1,6 +1,6 @@
{ inputs, ... }: {
flake-file.inputs = {
catppuccin.url = "github:catppuccin/nix/release-25.11";
catppuccin.url = "github:catppuccin/nix/release-26.05";
catppuccin.inputs.nixpkgs.follows = "nixpkgs";
};
@@ -38,9 +38,9 @@
hyprcursor.size = size;
};
wayland.windowManager.hyprland.settings.exec-once = [
"hyprctl setcursor catppuccin-mocha-mauve-cursors 24"
];
# wayland.windowManager.hyprland.settings.exec-once = [
# "hyprctl setcursor catppuccin-mocha-mauve-cursors 24"
# ];
catppuccin.enable = true;
# Required for QT apps to use the catppuccin colors
@@ -5,6 +5,10 @@
gnumake
clang
gcc
gdb
perf
python3
libqalculate
man-pages
man-pages-posix
+4 -1
View File
@@ -1,8 +1,11 @@
{
flake.modules.nixos.docker = {
config.flake.factory.docker = users: { lib, ... }: {
virtualisation.docker = {
enable = true;
autoPrune.enable = true;
};
users.users = lib.genAttrs users (_: {
extraGroups = [ "docker" ];
});
};
}
@@ -10,7 +10,8 @@
};
};
flake.modules.homeManager.randomized-aghpb-wallpaper = { pkgs, ... }:
flake.modules.homeManager.randomized-aghpb-wallpaper =
{ pkgs, ... }:
let
combined_wallpapers = pkgs.symlinkJoin {
name = "joined-wallpapers";
@@ -32,8 +33,9 @@
})
];
wayland.windowManager.hyprland.settings.bind = [
"$mod, i, exec, wpaperctl next"
];
wayland.windowManager.hyprland.extraConfig = ''
hl.bind("SUPER + i", hl.dsp.exec_cmd("${pkgs.unstable.wpaperd}/bin/wpaperctl next"))
hl.bind("SUPER + o", hl.dsp.exec_cmd("${pkgs.unstable.wpaperd}/bin/wpaperctl set ${inputs.assets}/horizontal_16x9.png"))
'';
};
}
-17
View File
@@ -2,21 +2,4 @@
flake.modules.nixos.git = { pkgs, ... }: {
environment.systemPackages = [ pkgs.git ];
};
flake.modules.homeManager.git = {
programs.git = {
enable = true;
settings = {
user = {
email = "konstantin@veltko.de";
name = "Weckyy702";
};
init.defaultBranch = "main";
};
signing = {
format = "ssh";
signByDefault = true;
};
};
};
}
+128
View File
@@ -0,0 +1,128 @@
-- environment variables
hl.env("XCURSOR_SIZE", "24")
hl.env("HYPRCURSOR_SIZE", "24")
-- General config
hl.config({
general = {
border_size = 2,
gaps_in = 0,
gaps_out = 5,
layout = "dwindle",
allow_tearing = false,
resize_on_border = true,
},
decoration = {
shadow = { enabled = false, },
blur = { enabled = true, },
active_opacity = 0.8,
inactive_opacity = 0.8,
},
animations = {
enabled = false,
},
misc = {
disable_hyprland_logo = true;
},
cursor = {
inactive_timeout = 3,
},
ecosystem = {
no_update_news = true,
no_donation_nag = true,
},
})
local mod = "SUPER"
local term = "kitty"
local browser = "zen"
-- Input config
hl.config({
input = {
kb_layout = "de",
follow_mouse = 1,
}
})
-- Keybinds
--- Apps
hl.bind(mod .. " + Return", hl.dsp.exec_cmd(term))
hl.bind(mod .. " + D", hl.dsp.exec_cmd("rofi -show drun -modes drun,calc"))
hl.bind(mod .. " + F2", hl.dsp.exec_cmd(browser))
--- Window manipulation
hl.bind(mod .. " + C", hl.dsp.window.close())
hl.bind(mod .. " + f", hl.dsp.window.fullscreen({ mode = 'fullscreen', action = 'toggle'}))
hl.bind(mod .. " + SHIFT + Space", hl.dsp.window.float({ action = "toggle" }))
hl.bind(mod .. " + H", hl.dsp.focus({ direction = "left" }))
hl.bind(mod .. " + L", hl.dsp.focus({ direction = "right" }))
hl.bind(mod .. " + K", hl.dsp.focus({ direction = "up" }))
hl.bind(mod .. " + J", hl.dsp.focus({ direction = "down" }))
hl.bind(mod .. " + SHIFT + H", hl.dsp.window.move({ direction = "left", group_aware = true, }))
hl.bind(mod .. " + SHIFT + L", hl.dsp.window.move({ direction = "right", group_aware = true, }))
hl.bind(mod .. " + SHIFT + K", hl.dsp.window.move({ direction = "up", group_aware = true, }))
hl.bind(mod .. " + SHIFT + J", hl.dsp.window.move({ direction = "down", group_aware = true, }))
hl.bind(mod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind(mod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
--- Workspace handling
for i = 1, 10 do
local key = i % 10 -- 10 maps to key 0
hl.bind(mod .. " + " .. key, hl.dsp.focus({ workspace = i}))
hl.bind(mod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
end
hl.gesture({
fingers = 3,
direction = "horizontal",
action = "workspace"
})
hl.bind(mod .. " + CTRL + H", hl.dsp.workspace.move({ monitor = "l" }))
hl.bind(mod .. " + CTRL + L", hl.dsp.workspace.move({ monitor = "r" }))
--- Media handling
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
-- Window rules
hl.window_rule({
-- Ignore maximize requests from all apps. You'll probably like this.
name = "suppress-maximize-events",
match = { class = ".*" },
suppress_event = "maximize",
})
hl.window_rule({
-- Fix some dragging issues with XWayland
name = "fix-xwayland-drags",
match = {
class = "^$",
title = "^$",
xwayland = true,
float = true,
fullscreen = false,
pin = false,
},
no_focus = true,
})
-- Monitor handling
-- automatically add new monitors and lay them out horizontally
hl.monitor({ output = "", mode = "preferred", position = "auto", scale = 1 })
+2 -81
View File
@@ -1,85 +1,6 @@
{
flake.modules.homeManager.hyprland = {
wayland.windowManager.hyprland.settings = {
"$mod" = "SUPER";
"$browser" = "zen";
"$term" = "kitty";
general = {
border_size = 2;
gaps_in = 0;
gaps_out = 5;
layout = "dwindle";
allow_tearing = false;
resize_on_border = true;
};
snap = { };
input = {
kb_layout = "de";
follow_mouse = 1;
};
bind =
[
"$mod, Q, exit"
"$mod, Return, exec, $term"
"$mod, D, exec, rofi -show drun -modes drun,calc"
"$mod, F2, exec, $browser"
"$mod, c, killactive"
"$mod, f, fullscreen"
"$mod, h, movefocus, l"
"$mod, j, movefocus, d"
"$mod, k, movefocus, u"
"$mod, l, movefocus, r"
"$mod+SHIFT, h, movewindow, l"
"$mod+SHIFT, j, movewindow, d"
"$mod+SHIFT, k, movewindow, u"
"$mod+SHIFT, l, movewindow, r"
", Print, exec, grim -g \"$(slurp)\" \"/home/weckyy702/Pictures/screenshots/$(date -Iseconds).png\""
"$mod+SHIFT, s, exec, hyprlock"
]
++
# Switch workspaces
(map (i: "$mod, ${builtins.toString i}, workspace, ${builtins.toString i}") [ 0 1 2 3 4 5 6 7 8 9 ])
++ (map (i: "$mod+SHIFT, ${builtins.toString i}, movetoworkspacesilent, ${builtins.toString i}") [ 0 1 2 3 4 5 6 7 8 9 ]);
bindm = [
"$mod, mouse:272, movewindow"
];
bindel = [
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
];
bindl = [
", XF86AudioNext, exec, playerctl position 5+"
", XF86AudioPrev, exec, playerctl position 5-"
", XF86AudioPlay, exec, playerctl play-pause"
];
bindo = [
", XF86AudioNext, exec, playerctl next"
", XF86AudioPrev, exec, playerctl previous"
];
decoration = {
shadow.enabled = false;
blur.enabled = true;
active_opacity = 0.8;
inactive_opacity = 0.8;
};
animations.enabled = false;
misc.disable_hyprland_logo = true;
cursor.inactive_timeout = 3;
ecosystem.no_update_news = true;
ecosystem.no_donation_nag = true;
};
wayland.windowManager.hyprland.configType = "lua";
wayland.windowManager.hyprland.extraConfig = builtins.readFile ./config.lua;
};
}
+10
View File
@@ -0,0 +1,10 @@
{ self, ... }: {
flake.modules.nixos.naps2 = { pkgs, ... }: {
imports = with self.modules.nixos; [
sane
];
environment.systemPackages = with pkgs; [
naps2
];
};
}
@@ -23,6 +23,7 @@
basedpyright.enable = true;
emmet_ls.enable = true;
tinymist.enable = true;
};
keymaps = [
@@ -36,4 +37,7 @@
plugins.lspconfig.enable = true;
plugins.clangd-extensions.enable = true;
plugins.typst-vim = {
enable = true;
};
}
+1 -1
View File
@@ -1,6 +1,6 @@
{ inputs, ... }: {
flake-file.inputs = {
nixvim.url = "github:nix-community/nixvim/nixos-25.11";
nixvim.url = "github:nix-community/nixvim/nixos-26.05";
nixvim.inputs.nixpkgs.follows = "nixpkgs";
};
+10 -15
View File
@@ -1,18 +1,13 @@
{ inputs, ... }: {
flake.modules.nixos.backlight = { pkgs, ... }: {
environment.systemPackages = with pkgs; [
brightnessctl
];
home-manager.sharedModules = [
inputs.self.modules.homeManager.backlight
];
};
flake.modules.homeManager.backlight = {
wayland.windowManager.hyprland.settings.bind = [
", code:232, exec, brightnessctl set 5%-"
", code:233, exec, brightnessctl set +5%"
];
flake.modules.homeManager.backlight =
{ pkgs, ... }:
let
brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
in
{
wayland.windowManager.hyprland.extraConfig = ''
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("${brightnessctl} -e4 -n2 set 5%+"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("${brightnessctl} -e4 -n2 set 5%-"), { locked = true, repeating = true })
'';
};
}
+6 -5
View File
@@ -1,10 +1,11 @@
{
flake.modules.homeManager.borgmatic =
{ config
, osConfig
, pkgs
, lib
, ...
{
config,
osConfig,
pkgs,
lib,
...
}:
let
hostname = osConfig.networking.hostName;
@@ -1,5 +1,5 @@
{ inputs, ... }: {
flake.modules.nixos.keith = { config, ... }: {
flake.modules.nixos.mount-duke-smb = { config, ... }: {
age.secrets."nas-creds".file = "${inputs.secrets}/nas-creds.age";
imports = with inputs.self.factory; [
+6 -1
View File
@@ -1,8 +1,13 @@
{
flake.modules.nixos.pipewire = {
# See https://nixos.wiki/wiki/NixOS_Wiki:Audio
hardware.alsa.enable = false;
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
alsa.enable = true;
enable = true;
audio.enable = true;
alsa.enable = true;
wireplumber.enable = true;
};
};
+5
View File
@@ -0,0 +1,5 @@
{
flake.modules.nixos.sane = {
hardware.sane.enable = true;
};
}
+25
View File
@@ -0,0 +1,25 @@
{
config.flake.factory.sunshine = user: {
services.sunshine = {
enable = true;
autoStart = true;
capSysAdmin = true;
applications = {
apps = [
{
name = "Steam Big Picture";
detached = [
"sudo -u ${user} setsid steam steam://open/bigpicture"
];
prep-cmd = [
{
do = "";
undo = "sudo -u ${user} setsid steam steam://close/bigpicture";
}
];
}
];
};
};
};
}
+10
View File
@@ -0,0 +1,10 @@
{
flake.modules.homeManager.syncthing = {
services.syncthing = {
enable = true;
overrideDevices = false;
overrideFolders = false;
settings.options.localAnnounceEnabled = true;
};
};
}
+6 -5
View File
@@ -5,10 +5,11 @@
resolved
];
services.resolved.extraConfig = ''
[Resolve]
DNS=10.10.0.1
Domains=~veltnet
'';
services.resolved.settings = {
Resolve = {
DNS = "10.10.0.1";
Domains = "~veltnet";
};
};
};
}
+1 -1
View File
@@ -1,6 +1,6 @@
{ inputs, ... }: {
flake-file.inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
};
+2
View File
@@ -3,6 +3,8 @@
imports = with inputs.self.modules.nixos; [
system-base
hyprland
pipewire
sane
#TODO: moar aspects
];
+19
View File
@@ -0,0 +1,19 @@
{
flake.modules.homeManager.weckyy702-git = {
programs.git = {
enable = true;
settings = {
user = {
email = "konstantin@veltko.de";
name = "Weckyy702";
};
init.defaultBranch = "main";
};
signing = {
# NOTE: The signing key needs to be set per machine, see hosts/<name>/users/weckyy702/git.nix
format = "ssh";
signByDefault = true;
};
};
};
}
+19 -7
View File
@@ -1,26 +1,38 @@
{ inputs
, self
, lib
, ...
}: {
{
inputs,
self,
lib,
...
}:
{
flake.homeConfigurations = inputs.self.lib.mkHomeManager "x86_64-linux" "weckyy702";
flake.modules = lib.mkMerge [
(self.factory.user "weckyy702" true)
{
nixos.weckyy702 = {
imports = with self.modules.nixos; [
imports =
with self.modules.nixos;
with self.factory;
[
kanata
catppuccin
(zsa-moonlander "weckyy702")
];
users.users.weckyy702.extraGroups = [ "networkmanager" "dialout" ];
users.users.weckyy702.extraGroups = [
"networkmanager"
"dialout"
"scanner"
];
};
homeManager.weckyy702 = { pkgs, ... }: {
imports = with self.modules.homeManager; [
nixvim
btop
weckyy702-git
#TODO: moar aspects
];
};
+4 -1
View File
@@ -4,7 +4,10 @@ let
keith = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKrauXP79zUm2FlVj3HRm+C8ufYAABiIoe68OCGbIm+2";
tux = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFB7bh6ioZrTSR0AkKvJ1qxVWX0kwcM8yeHghTYFGpqZ";
systems = [ keith tux ];
systems = [
keith
tux
];
in
{
"nas-creds.age" = {