Compare commits

...

6 commits

Author SHA1 Message Date
Vinzenz Schroeter
8ceebd9b22 stylix: initial config 2025-11-11 15:23:24 +01:00
Vinzenz Schroeter
f005a7976a inputs: add stylix, dedup transitive deps 2025-11-11 13:15:22 +01:00
Vinzenz Schroeter
d83096186f keep-sorted, small tweaks to niri session 2025-11-11 12:08:04 +01:00
Vinzenz Schroeter
0679372363 waybar: remove cpu bars, re add power menu 2025-11-09 15:06:18 +01:00
Vinzenz Schroeter
9218e70999 add treefmt config to also format css and json 2025-11-09 14:47:03 +01:00
Vinzenz Schroeter
908bc2dc8f waybar: remove backgrounds, border radius 2025-11-08 15:13:06 +01:00
15 changed files with 673 additions and 462 deletions

457
flake.lock generated
View file

@ -1,5 +1,73 @@
{
"nodes": {
"base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1746562888,
"narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1754405784,
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1748408240,
"narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1732806396,
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
}
},
"binding": {
"inputs": {
"binding": "binding_2",
@ -47,7 +115,6 @@
"fenix": {
"inputs": {
"nixpkgs": [
"servicepoint-cli",
"naersk",
"nixpkgs"
],
@ -67,26 +134,70 @@
"type": "github"
}
},
"fenix_2": {
"inputs": {
"nixpkgs": [
"servicepoint-simulator",
"naersk",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src_2"
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1752475459,
"narHash": "sha256-z6QEu4ZFuHiqdOPbYss4/Q8B0BFhacR8ts6jO/F/aOU=",
"owner": "nix-community",
"repo": "fenix",
"rev": "bf0d6f70f4c9a9cf8845f992105652173f4b617f",
"lastModified": 1748383148,
"narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1762810396,
"narHash": "sha256-dxFVgQPG+R72dkhXTtqUm7KpxElw3u6E+YlQ2WaDgt8=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "0bdadb1b265fb4143a75bd1ec7d8c915898a9923",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1731966426,
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1744584021,
"narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "48.1",
"repo": "gnome-shell",
"type": "github"
}
},
@ -115,29 +226,6 @@
"inputs": {
"fenix": "fenix",
"nixpkgs": [
"servicepoint-cli",
"nixpkgs"
]
},
"locked": {
"lastModified": 1752689277,
"narHash": "sha256-uldUBFkZe/E7qbvxa3mH1ItrWZyT6w1dBKJQF/3ZSsc=",
"owner": "nix-community",
"repo": "naersk",
"rev": "0e72363d0938b0208d6c646d10649164c43f4d64",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "naersk",
"type": "github"
}
},
"naersk_2": {
"inputs": {
"fenix": "fenix_2",
"nixpkgs": [
"servicepoint-simulator",
"nixpkgs"
]
},
@ -169,11 +257,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1762026425,
"narHash": "sha256-7eDtQrr+CRZ1pLjJ6Bx7Ab9pUIowXJ7ooqEh6p3jIn8=",
"lastModified": 1762857797,
"narHash": "sha256-puoFJGlbL6khrQKozCO6Wgpq/IhA2Sfnz+ui/87lbQQ=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "342730d4f8e109f3506932d2be1c8f9ab19a7039",
"rev": "2ff3443b4226f6721a43b75e76b6ca59caa34fec",
"type": "github"
},
"original": {
@ -202,11 +290,11 @@
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1761888958,
"narHash": "sha256-YgArUHI81Esn6fOCwVSrMI2G4RI3f3BPbRbPWsJubAc=",
"lastModified": 1762854265,
"narHash": "sha256-iykTzCzU8hI7b8LvAquYY4Asl2xj3AcLzWZv6rm8MGY=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "e2576879216a39e5c45b9d2906531bc2065e724c",
"rev": "fb2f67c8a036f674e9101e15a7bb1cf61524ebde",
"type": "github"
},
"original": {
@ -217,26 +305,11 @@
},
"nix-filter": {
"locked": {
"lastModified": 1731533336,
"narHash": "sha256-oRam5PS1vcrr5UPgALW0eo1m/5/pls27Z/pabHNy2Ms=",
"lastModified": 1757882181,
"narHash": "sha256-+cCxYIh2UNalTz364p+QYmWHs0P+6wDhiWR4jDIKQIU=",
"owner": "numtide",
"repo": "nix-filter",
"rev": "f7653272fd234696ae94229839a99b73c9ab7de0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "nix-filter",
"type": "github"
}
},
"nix-filter_2": {
"locked": {
"lastModified": 1731533336,
"narHash": "sha256-oRam5PS1vcrr5UPgALW0eo1m/5/pls27Z/pabHNy2Ms=",
"owner": "numtide",
"repo": "nix-filter",
"rev": "f7653272fd234696ae94229839a99b73c9ab7de0",
"rev": "59c44d1909c72441144b93cf0f054be7fe764de5",
"type": "github"
},
"original": {
@ -252,11 +325,11 @@
]
},
"locked": {
"lastModified": 1762048816,
"narHash": "sha256-gAGed5eYA6WTVQSMELyi+168A9N2UNEjwXn5xm0czsk=",
"lastModified": 1762826252,
"narHash": "sha256-7VqX6Z8Pq5DzVV5YM7o92vC6goNGtucCv71dXwpy01Q=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"rev": "c8261cd60b0623635b4b88ae0f75ac3bfeddf260",
"rev": "f10a42469c4db9b4ae7b3cd3a5c0d8bffb4a8b98",
"type": "github"
},
"original": {
@ -267,11 +340,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1761999846,
"narHash": "sha256-IYlYnp4O4dzEpL77BD/lj5NnJy2J8qbHkNSFiPBCbqo=",
"lastModified": 1762756533,
"narHash": "sha256-HiRDeUOD1VLklHeOmaKDzf+8Hb7vSWPVFcWwaTrpm+U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3de8f8d73e35724bf9abef41f1bdbedda1e14a31",
"rev": "c2448301fb856e351aab33e64c33a3fc8bcf637d",
"type": "github"
},
"original": {
@ -281,13 +354,28 @@
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1761765539,
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1761880412,
"narHash": "sha256-QoJjGd4NstnyOG4mm4KXF+weBzA2AH/7gn1Pmpfcb0A=",
"lastModified": 1762482733,
"narHash": "sha256-g/da4FzvckvbiZT075Sb1/YDNDr+tGQgh4N8i5ceYMg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a7fc11be66bdfb5cdde611ee5ce381c183da8386",
"rev": "e1ebeec86b771e9d387dd02d82ffdc77ac753abc",
"type": "github"
},
"original": {
@ -297,16 +385,45 @@
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": [
"flake-parts"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1762858278,
"narHash": "sha256-BYeYJFonJRt9xg6UYXpvVGK5j4NEOXHETRffPQT7drM=",
"owner": "nix-community",
"repo": "NUR",
"rev": "a053db755b35970d6a0ebd97aaceb8f629faa8e7",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"root": {
"inputs": {
"flake-parts": "flake-parts",
"home-manager": "home-manager",
"naersk": "naersk",
"niri": "niri",
"nix-filter": "nix-filter",
"nix-vscode-extensions": "nix-vscode-extensions",
"nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable",
"nur": "nur",
"servicepoint-cli": "servicepoint-cli",
"servicepoint-simulator": "servicepoint-simulator",
"servicepoint-tanks": "servicepoint-tanks",
"stylix": "stylix",
"treefmt-nix": "treefmt-nix",
"zerforschen-plus": "zerforschen-plus"
}
},
@ -327,27 +444,14 @@
"type": "github"
}
},
"rust-analyzer-src_2": {
"flake": false,
"locked": {
"lastModified": 1752428706,
"narHash": "sha256-EJcdxw3aXfP8Ex1Nm3s0awyH9egQvB2Gu+QEnJn2Sfg=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "591e3b7624be97e4443ea7b5542c191311aa141d",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"servicepoint-cli": {
"inputs": {
"naersk": "naersk",
"nix-filter": "nix-filter",
"naersk": [
"naersk"
],
"nix-filter": [
"nix-filter"
],
"nixpkgs": [
"nixpkgs"
]
@ -368,8 +472,12 @@
},
"servicepoint-simulator": {
"inputs": {
"naersk": "naersk_2",
"nix-filter": "nix-filter_2",
"naersk": [
"naersk"
],
"nix-filter": [
"nix-filter"
],
"nixpkgs": [
"nixpkgs"
]
@ -410,6 +518,161 @@
"url": "https://git.berlin.ccc.de/vinzenz/servicepoint-tanks.git"
}
},
"stylix": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": [
"flake-parts"
],
"gnome-shell": "gnome-shell",
"nixpkgs": [
"nixpkgs"
],
"nur": [
"nur"
],
"systems": "systems",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1762295027,
"narHash": "sha256-5z5cGrp9F8g8iyQrM8WkB6pAwP4AaicljKZ15gx+X9Y=",
"owner": "nix-community",
"repo": "stylix",
"rev": "91b9a270523361268ba6a8772152fde31103869f",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.05",
"repo": "stylix",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1735730497,
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1750770351,
"narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1751159871,
"narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1751158968,
"narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-zed",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1762410071,
"narHash": "sha256-aF5fvoZeoXNPxT0bejFUBXeUjXfHLSL7g+mjR/p5TEg=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "97a30861b13c3731a84e09405414398fbf3e109f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"xwayland-satellite-stable": {
"flake": false,
"locked": {
@ -430,11 +693,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1761622056,
"narHash": "sha256-fBrUszJXmB4MY+wf3QsCnqWHcz7u7fLq0QMAWCltIQg=",
"lastModified": 1762747449,
"narHash": "sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "0728d59ff6463a502e001fb090f6eb92dbc04756",
"rev": "6338574bc5c036487486acde264f38f39ea15fad",
"type": "github"
},
"original": {

128
flake.nix
View file

@ -8,36 +8,69 @@
inputs.nixpkgs.follows = "nixpkgs";
};
#keep-sorted start block=yes
flake-parts = {
url = "github:hercules-ci/flake-parts";
#inputs.nixpkgs.follows = "nixpkgs";
};
naersk = {
url = "github:nix-community/naersk";
inputs.nixpkgs.follows = "nixpkgs";
};
niri = {
url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs-stable.follows = "nixpkgs";
};
nix-filter.url = "github:numtide/nix-filter";
nix-vscode-extensions = {
url = "github:nix-community/nix-vscode-extensions";
inputs.nixpkgs.follows = "nixpkgs";
};
zerforschen-plus = {
url = "git+https://git.berlin.ccc.de/vinzenz/zerforschen.plus";
inputs.nixpkgs.follows = "nixpkgs";
nur = {
url = "github:nix-community/NUR";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-parts.follows = "flake-parts";
};
};
servicepoint-cli = {
url = "git+https://git.berlin.ccc.de/servicepoint/servicepoint-cli.git";
inputs.nixpkgs.follows = "nixpkgs";
inputs = {
nixpkgs.follows = "nixpkgs";
naersk.follows = "naersk";
nix-filter.follows = "nix-filter";
};
};
servicepoint-simulator = {
url = "git+https://git.berlin.ccc.de/servicepoint/servicepoint-simulator.git";
inputs.nixpkgs.follows = "nixpkgs";
inputs = {
nixpkgs.follows = "nixpkgs";
naersk.follows = "naersk";
nix-filter.follows = "nix-filter";
};
};
servicepoint-tanks = {
url = "git+https://git.berlin.ccc.de/vinzenz/servicepoint-tanks.git?ref=service-improvements";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:nix-community/stylix/release-25.05";
inputs = {
nixpkgs.follows = "nixpkgs";
nur.follows = "nur";
flake-parts.follows = "flake-parts";
};
};
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
zerforschen-plus = {
url = "git+https://git.berlin.ccc.de/vinzenz/zerforschen.plus";
inputs.nixpkgs.follows = "nixpkgs";
};
#keep-sorted end
};
outputs =
@ -45,13 +78,18 @@
self,
nixpkgs,
home-manager,
# keep-sorted start
niri,
zerforschen-plus,
nixpkgs-unstable,
nix-vscode-extensions,
nixpkgs-unstable,
servicepoint-cli,
servicepoint-simulator,
servicepoint-tanks,
stylix,
treefmt-nix,
zerforschen-plus,
# keep-sorted end
...
}:
let
devices = {
@ -113,6 +151,15 @@
inherit (nixpkgs) lib;
forDevice = f: lib.mapAttrs (device: value: f (value // { inherit device; })) devices;
supported-systems = lib.attrsets.mapAttrsToList (k: v: v.system) devices;
treefmt-config = {
projectRootFile = "flake.nix";
programs = {
nixfmt.enable = true;
jsonfmt.enable = true;
prettier.enable = true;
keep-sorted.enable = true;
};
};
forAllSystems =
f:
lib.genAttrs supported-systems (
@ -120,6 +167,7 @@
f rec {
inherit system;
pkgs = nixpkgs.legacyPackages.${system};
treefmt-eval = treefmt-nix.lib.evalModule pkgs treefmt-config;
}
);
importModuleDir =
@ -168,8 +216,6 @@
ronja = ./homeConfigurations/ronja;
};
formatter = forAllSystems ({ pkgs, ... }: pkgs.nixfmt-tree);
nixosConfigurations = forDevice (
{
device,
@ -213,17 +259,18 @@
./nixosConfigurations/${device}
self.nixosModules.default
self.nixosModules.lix-is-nix
self.nixosModules.globalinstalls
self.nixosModules.autoupdate
self.nixosModules.openssh
self.nixosModules.tailscale
# keep-sorted start
self.nixosModules.allowed-unfree-list
self.nixosModules.autoupdate
self.nixosModules.default
self.nixosModules.extra-caches
self.nixosModules.globalinstalls
self.nixosModules.lix-is-nix
self.nixosModules.openssh
self.nixosModules.systemd-boot
self.nixosModules.tailscale
zerforschen-plus.nixosModules.default
# keep-sorted end
]
++ (nixpkgs.lib.optionals (home-manager-users != { }) [
{
@ -237,36 +284,49 @@
home-manager.sharedModules = [
{ home.stateVersion = "22.11"; }
self.homeModules.adwaita
# keep-sorted start
self.homeModules.git
self.homeModules.gnome-extensions
self.homeModules.nano
self.homeModules.templates
self.homeModules.zsh-basics
self.homeModules.nano
self.homeModules.gnome-extensions
self.homeModules.zsh-powerlevel10k
# keep-sorted end
];
home-manager.users = home-manager-users;
}
# keep-sorted start
home-manager.nixosModules.home-manager
self.nixosModules.en-de
self.nixosModules.firmware-updates
self.nixosModules.gnome
self.nixosModules.kdeconnect
self.nixosModules.modern-desktop
self.nixosModules.niri
self.nixosModules.nix-ld
self.nixosModules.pkgs-unstable
self.nixosModules.pkgs-vscode-extensions
self.nixosModules.niri
self.nixosModules.kdeconnect
self.nixosModules.en-de
self.nixosModules.gnome
self.nixosModules.modern-desktop
self.nixosModules.nix-ld
self.nixosModules.quiet-boot
self.nixosModules.firmware-updates
home-manager.nixosModules.home-manager
servicepoint-simulator.nixosModules.default
self.nixosModules.stylix
servicepoint-cli.nixosModules.default
servicepoint-simulator.nixosModules.default
servicepoint-tanks.nixosModules.default
stylix.nixosModules.stylix
# keep-sorted end
])
++ additional-modules;
}
);
formatter = forAllSystems ({ treefmt-eval, ... }: treefmt-eval.config.build.wrapper);
checks = forAllSystems (
{ treefmt-eval, ... }:
{
formatting = treefmt-eval.config.build.check self;
}
);
};
}

View file

@ -27,7 +27,6 @@
"files.autoSaveWhenNoErrors" = true;
"files.autoSaveWorkspaceFilesOnly" = true;
"editor.fontFamily" = "'Fira Code', 'Droid Sans Mono', 'monospace', monospace";
"editor.fontLigatures" = true;
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "modificationsIfAvailable";

View file

@ -1,23 +1,23 @@
{
"default": [
{
"type": "reject"
}
],
"transports": {
"docker-daemon": {
"": [
{
"type": "insecureAcceptAnything"
}
]
},
"docker": {
"docker.io/library/debian": [
{
"type": "insecureAcceptAnything"
}
]
}
"default": [
{
"type": "reject"
}
],
"transports": {
"docker-daemon": {
"": [
{
"type": "insecureAcceptAnything"
}
]
},
"docker": {
"docker.io/library/debian": [
{
"type": "insecureAcceptAnything"
}
]
}
}
}

View file

@ -1,18 +1,21 @@
{ pkgs, ... }:
{
imports = [
# keep-sorted start
./editorconfig.nix
./fonts.nix
./fuzzel.nix
./git.nix
./gnome.nix
./ssh.nix
./vscode.nix
./zsh.nix
./starship.nix
./fonts.nix
./mako.nix
./niri.nix
./ssh.nix
./starship.nix
./swaylock.nix
./vscode.nix
./waybar.nix
./zsh.nix
# keep-sorted end
];
config = {
@ -56,6 +59,7 @@
wireguard-tools
wirelesstools
tailscale
kdiff3
jetbrains-toolbox

View file

@ -1,12 +1,9 @@
{ pkgs, ... }:
{
fonts.fontconfig = {
enable = true;
defaultFonts.monospace = [ "FiraCode Nerd Font Mono" ];
};
fonts.fontconfig.enable = true;
home.packages = with pkgs; [
nerd-fonts.fira-code
roboto-mono
recursive
font-awesome
];
}

View file

@ -7,22 +7,8 @@
terminal = "${lib.getBin pkgs.gnome-console}/bin/kgx";
icon-theme = "Adwaita";
counter = true;
font = "sans:size=11";
launch-prefix = "niri msg action spawn --";
};
colors = {
border = "0003B3FF";
background = "0F0F0FFF";
text = "657b83ff";
prompt = "586e75ff";
placeholder = "93a1a1ff";
input = "657b83ff";
match = "cb4b16ff";
selection = "eee8d5ff";
selection-text = "586e75ff";
selection-match = "cb4b16ff";
counter = "93a1a1ff";
};
border = {
radius = 30;
width = 3;

View file

@ -0,0 +1,3 @@
{
services.mako.enable = true;
}

View file

@ -9,7 +9,6 @@
home.sessionVariables.NIXOS_OZONE_WL = "1";
home.packages = with pkgs; [
xwayland-satellite
alacritty
];
qt.style = {
@ -17,8 +16,6 @@
name = "adwaita-dark";
};
services.mako.enable = true;
programs.niri.settings = {
outputs = {
"BOE 0x0A3B Unknown" = {
@ -61,7 +58,6 @@
{
background-color = "#000000";
gaps = gap-size;
#default-column-display = "tabbed";
border = {
enable = true;
width = gap-size / 2;
@ -172,10 +168,10 @@
# Suggested binds for running programs: terminal, app launcher, screen locker.
"Mod+T".action.spawn = "${lib.getBin pkgs.gnome-console}/bin/kgx";
"Mod+D".action.spawn = "fuzzel";
"Mod+D".action.spawn = "${lib.getBin config.programs.fuzzel.package}/bin/fuzzel";
"Super+Alt+L" = {
action.spawn = "${lib.getBin config.programs.swaylock.package}/bin/swaylock";
allow-when-locked=true;
allow-when-locked = true;
};
# You can also use a shell. Do this if you need pipes, multiple commands, etc.
@ -406,7 +402,7 @@
"Mod+Shift+P".action.power-off-monitors = { };
"Mod+W".action.toggle-column-tabbed-display = { };
"Mod+O".action.toggle-overview = {};
"Mod+O".action.toggle-overview = { };
};
};
};

View file

@ -1,4 +1,4 @@
{ ... }:
{ lib, ... }:
{
config.programs.starship = {
enable = true;
@ -15,7 +15,8 @@
+ "([ $cmd_duration$status](bg:color_y fg:text_y))[](fg:color_y)"
+ "$line_break$character ";
palette = "color_me_surprised";
# TODO: replace with base16 theme
palette = lib.mkForce "color_me_surprised";
palettes.color_me_surprised = {
"color_r" = "#a30262";
"color_g" = "#d162a4";
@ -210,121 +211,6 @@
swift.symbol = "";
zig.symbol = "";
gradle.symbol = "";
palettes = {
catppuccin_mocha = {
rosewater = "#f5e0dc";
flamingo = "#f2cdcd";
pink = "#f5c2e7";
mauve = "#cba6f7";
red = "#f38ba8";
maroon = "#eba0ac";
peach = "#fab387";
yellow = "#f9e2af";
green = "#a6e3a1";
teal = "#94e2d5";
sky = "#89dceb";
sapphire = "#74c7ec";
blue = "#89b4fa";
lavender = "#b4befe";
text = "#cdd6f4";
subtext1 = "#bac2de";
subtext0 = "#a6adc8";
overlay2 = "#9399b2";
overlay1 = "#7f849c";
overlay0 = "#6c7086";
surface2 = "#585b70";
surface1 = "#45475a";
surface0 = "#313244";
base = "#1e1e2e";
mantle = "#181825";
crust = "#11111b";
};
catppuccin_frappe = {
rosewater = "#f2d5cf";
flamingo = "#eebebe";
pink = "#f4b8e4";
mauve = "#ca9ee6";
red = "#e78284";
maroon = "#ea999c";
peach = "#ef9f76";
yellow = "#e5c890";
green = "#a6d189";
teal = "#81c8be";
sky = "#99d1db";
sapphire = "#85c1dc";
blue = "#8caaee";
lavender = "#babbf1";
text = "#c6d0f5";
subtext1 = "#b5bfe2";
subtext0 = "#a5adce";
overlay2 = "#949cbb";
overlay1 = "#838ba7";
overlay0 = "#737994";
surface2 = "#626880";
surface1 = "#51576d";
surface0 = "#414559";
base = "#303446";
mantle = "#292c3c";
crust = "#232634";
};
catppuccin_latte = {
rosewater = "#dc8a78";
flamingo = "#dd7878";
pink = "#ea76cb";
mauve = "#8839ef";
red = "#d20f39";
maroon = "#e64553";
peach = "#fe640b";
yellow = "#df8e1d";
green = "#40a02b";
teal = "#179299";
sky = "#04a5e5";
sapphire = "#209fb5";
blue = "#1e66f5";
lavender = "#7287fd";
text = "#4c4f69";
subtext1 = "#5c5f77";
subtext0 = "#6c6f85";
overlay2 = "#7c7f93";
overlay1 = "#8c8fa1";
overlay0 = "#9ca0b0";
surface2 = "#acb0be";
surface1 = "#bcc0cc";
surface0 = "#ccd0da";
base = "#eff1f5";
mantle = "#e6e9ef";
crust = "#dce0e8";
};
catppuccin_macchiato = {
rosewater = "#f4dbd6";
flamingo = "#f0c6c6";
pink = "#f5bde6";
mauve = "#c6a0f6";
red = "#ed8796";
maroon = "#ee99a0";
peach = "#f5a97f";
yellow = "#eed49f";
green = "#a6da95";
teal = "#8bd5ca";
sky = "#91d7e3";
sapphire = "#7dc4e4";
blue = "#8aadf4";
lavender = "#b7bdf8";
text = "#cad3f5";
subtext1 = "#b8c0e0";
subtext0 = "#a5adcb";
overlay2 = "#939ab7";
overlay1 = "#8087a2";
overlay0 = "#6e738d";
surface2 = "#5b6078";
surface1 = "#494d64";
surface0 = "#363a4f";
base = "#24273a";
mantle = "#1e2030";
crust = "#181926";
};
};
};
};
}

View file

@ -37,7 +37,6 @@
"files.autoSaveWhenNoErrors" = true;
"files.autoSaveWorkspaceFilesOnly" = true;
"editor.fontFamily" = "'Fira Code', 'Droid Sans Mono', 'monospace', monospace";
"editor.fontLigatures" = true;
"editor.formatOnSave" = true;
"editor.formatOnSaveMode" = "modificationsIfAvailable";
@ -87,6 +86,10 @@
"\[nix\]" = {
"editor.formatOnSave" = false;
};
"\[css\]" = {
"editor.formatOnSave" = false;
};
};
};
};

View file

@ -1,92 +1,98 @@
* {
/* `otf-font-awesome` is required to be installed for icons */
font-family: FontAwesome, sans-serif;
font-size: 13px;
border: none;
border-radius: 0;
color: #dcdfe1;
}
#waybar {
background-color: rgba(0, 0, 0, 0);
border: none;
box-shadow: none;
/* `otf-font-awesome` is required to be installed for icons */
font-family: FontAwesome, sans-serif;
font-size: 13px;
color: #dcdfe1;
}
window#waybar {
color: #ffffff;
transition-property: background-color;
transition-duration: .5s;
background: black;
/* border: none; */
box-shadow: none;
color: #ffffff;
transition-property: background-color;
transition-duration: 0.5s;
}
window#waybar.hidden {
opacity: 0.2;
opacity: 0.2;
}
window#waybar.termite {
background-color: #3F3F3F;
background-color: #3f3f3f;
}
window#waybar.chromium {
background-color: #000000;
border: none;
background-color: #000000;
border: none;
}
/*
window#waybar .modules-left,
window#waybar .modules-center,
window#waybar .modules-right {
border: 1px solid;
border-radius: 15px;
border-image-source: linear-gradient(90deg, #d162a4, #5BCEFA);
}
*/
box.horizontal {
padding: 4px 4px 0px 4px;
}
#workspaces,
#window,
#tray {
background-color: rgba(15, 27, 53, 0.9);
padding: 4px 6px;
margin-top: 6px;
margin-left: 6px;
margin-right: 6px;
border-radius: 15px;
border-width: 0px;
background-color: rgba(15, 27, 53, 0.9);
padding: 4px 6px;
margin-left: 6px;
margin-right: 6px;
border-radius: 15px;
border-width: 0px;
}
button {
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px #ffffff;
background: inherit;
box-shadow: inset 0 -3px #ffffff;
}
/* you can set a style on hover for any module like this */
#pulseaudio:hover {
background-color: #a37800;
background-color: #a37800;
}
#workspaces button {
padding: 0 5px;
background-color: transparent;
color: #ffffff;
padding: 0 5px;
background-color: transparent;
color: #ffffff;
border-radius: 15px;
}
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
background: rgba(0, 0, 0, 0.2);
}
#workspaces button.focused,
#workspaces button.active {
background-color: #64727D;
box-shadow: inset 0 -3px #ffffff;
background-color: #64727d;
}
#workspaces button.urgent {
background-color: #eb4d4b;
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
box-shadow: inset 0 -3px #ffffff;
background-color: #64727d;
box-shadow: inset 0 -3px #ffffff;
}
#clock,
@ -100,31 +106,30 @@ button:hover {
#pulseaudio,
#wireplumber,
#custom-media,
#tray,
#mode,
#idle_inhibitor,
#scratchpad,
#power-profiles-daemon,
#mpd {
padding: 0 10px;
color: #ffffff;
padding: 0 10px;
color: #ffffff;
}
#window,
#workspaces {
margin: 0 4px;
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left>widget:first-child>#workspaces {
margin-left: 0;
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right>widget:last-child>#workspaces {
margin-right: 0;
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
/*
#clock {
background-color: #64727D;
}
@ -139,44 +144,41 @@ button:hover {
color: #ffffff;
background-color: #26A65B;
}
*/
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
to {
background-color: #ffffff;
color: #000000;
}
}
/* Using steps() instead of linear as a timing function to limit cpu usage */
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#power-profiles-daemon {
padding-right: 15px;
padding-right: 15px;
}
#power-profiles-daemon.performance {
background-color: #f53c3c;
color: #ffffff;
color: #f53c3c;
}
#power-profiles-daemon.balanced {
background-color: #2980b9;
color: #ffffff;
color: #2980b9;
}
#power-profiles-daemon.power-saver {
background-color: #2ecc71;
color: #000000;
color: #2ecc71;
}
/*
label:focus {
background-color: #000000;
}
@ -224,7 +226,6 @@ label:focus {
#wireplumber.muted {
background-color: #f53c3c;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
@ -251,15 +252,16 @@ label:focus {
background-color: #2980b9;
}
#tray>.passive {
-gtk-icon-effect: dim;
*/
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray>.needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
/*
#idle_inhibitor {
background-color: #2d3436;
}
@ -285,56 +287,59 @@ label:focus {
#mpd.paused {
background-color: #51a37a;
}
*/
#language {
/*
background: #00b093;
color: #740864;
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
color: #740864; */
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
/*
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
color: #000000; */
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state>label {
padding: 0 5px;
#keyboard-state > label {
padding: 0 5px;
}
#keyboard-state>label.locked {
background: rgba(0, 0, 0, 0.2);
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad {
background: rgba(0, 0, 0, 0.2);
background: rgba(0, 0, 0, 0.2);
}
#scratchpad.empty {
background-color: transparent;
background-color: transparent;
}
#privacy {
padding: 0;
padding: 0;
}
#privacy-item {
padding: 0 5px;
color: white;
padding: 0 5px;
color: white;
}
#privacy-item.screenshare {
background-color: #cf5700;
background-color: #cf5700;
}
#privacy-item.audio-in {
background-color: #1ca000;
background-color: #1ca000;
}
#privacy-item.audio-out {
background-color: #0069d4;
background-color: #0069d4;
}

View file

@ -1,6 +1,7 @@
{
pkgs,
device,
lib,
config,
...
}:
{
@ -12,7 +13,7 @@
enable = true;
systemd.enable = true;
systemd.target = "graphical-session.target";
style = ./waybar.css;
style = lib.mkAfter (builtins.readFile ./waybar.css);
settings = {
mainBar = {
layer = "top";
@ -34,7 +35,7 @@
];
modules-right = [
"mpris"
"image"
#"image"
"gamemode"
"temperature"
@ -48,7 +49,7 @@
"power-profiles-daemon"
"battery"
"idle_inhibitor"
#"group/group-power"
"group/group-power"
];
"niri/workspaces" = {
format = "{icon}";
@ -114,25 +115,7 @@
};
cpu = {
interval = 1;
format =
"{usage:3}%@{avg_frequency:4} "
+ (builtins.getAttr device {
"vinzenz-lpt2" =
"{icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}{icon8}{icon9}{icon10}{icon11}{icon12}{icon13}{icon14}{icon15}{icon16}{icon17}{icon18}{icon19}";
"vinzenz-pc2" =
"{icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}{icon8}{icon9}{icon10}{icon11}{icon12}{icon13}{icon14}{icon15}";
})
+ " ";
format-icons = [
"<span color='#69ff94'></span>"
"<span color='#2aa9ff'></span>"
"<span color='#f8f8f2'></span>"
"<span color='#f8f8f2'></span>"
"<span color='#ffffa5'></span>"
"<span color='#ffffa5'></span>"
"<span color='#ff9977'></span>"
"<span color='#dd532e'></span>"
];
format = "{usage:3}%@{avg_frequency:4}";
};
disk = {
format = "{free}/{total}";
@ -152,25 +135,28 @@
];
};
"custom/quit" = {
"format" = "󰗼";
"format" = "󰗼 ";
"tooltip" = false;
"on-click" = "hyprctl dispatch exit";
"on-click" = "niri msg action quit";
min-width = 20;
};
"custom/lock" = {
"format" = "󰍁";
"format" = "󰍁 ";
"tooltip" = false;
"on-click" = "swaylock";
"on-click" = "${lib.getBin config.programs.swaylock.package}/bin/swaylock";
min-width = 20;
};
"custom/reboot" = {
"format" = "󰜉";
"format" = "󰜉 ";
"tooltip" = false;
"on-click" = "reboot";
"on-click" = "systemctl reboot";
min-width = 20;
};
"custom/power" = {
"format" = "";
"format" = " ";
"tooltip" = false;
"on-click" = "shutdown now";
"on-click" = "systemctl shutdown";
min-width = 20;
};
idle_inhibitor = {
format = "{icon}";
@ -179,24 +165,24 @@
deactivated = "";
};
};
image =
let
albumArtScript = pkgs.writeShellScriptBin "album-art.sh" ''
#!${pkgs.bash}/bin/bash
album_art=$(playerctl metadata mpris:artUrl)
if [[ -z $album_art ]]
then
exit
fi
curl -s "''${album_art}" --output "/tmp/cover.jpeg"
echo "/tmp/cover.jpeg"
'';
in
{
exec = "${albumArtScript}/bin/album-art.sh";
interval = 15;
on-click = "playerctl play-pause";
};
#image =
# let
# albumArtScript = pkgs.writeShellScriptBin "album-art.sh" ''
# #!${pkgs.bash}/bin/bash
# album_art=$(playerctl metadata mpris:artUrl)
# if [[ -z $album_art ]]
# then
# exit
# fi
# curl -s "''${album_art}" --output "/tmp/cover.jpeg"
# echo "/tmp/cover.jpeg"
# '';
# in
# {
# exec = "${albumArtScript}/bin/album-art.sh";
# interval = 15;
# on-click = "playerctl play-pause";
# };
mpris = {
format = "{title} ";
tooltip-format = "{player} ({status}) {dynamic}";

View file

@ -1,12 +0,0 @@
{ pkgs, ... }:
{
gtk = {
enable = true;
iconTheme.name = "Adwaita";
cursorTheme.name = "Adwaita";
theme = {
name = "adw-gtk3-dark";
package = pkgs.adw-gtk3;
};
};
}

35
nixosModules/stylix.nix Normal file
View file

@ -0,0 +1,35 @@
{ pkgs, ... }:
{
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
polarity = "dark";
targets = {
gnome.enable = false;
gtk.enable = false;
gtksourceview.enable = false;
fontconfig.enable = true;
};
fonts = {
sansSerif = {
name = "Inter";
package = pkgs.inter;
};
monospace = {
name = "FiraCode Nerd Font Mono";
package = pkgs.nerd-fonts.fira-code;
};
};
icons = {
enable = true;
dark = "Adwaita";
light = "Adwaita";
package = pkgs.adwaita-icon-theme;
};
cursor = {
name = "Adwaita";
size = 16;
package = pkgs.adwaita-icon-theme;
};
};
}