Compare commits

..
178 Commits
Author SHA1 Message Date
Sweetbread 3c8c43f90b wallpaper-changer: add progress bar 2026-06-08 03:47:46 +03:00
Sweetbread 3de3a14d0b mako: remove shit code 2026-06-08 03:25:29 +03:00
Sweetbread 98434b79cf stylix: add accent color
I spent an hour just to add one f*ing option
2026-06-08 03:25:28 +03:00
Sweetbread c8b5900985 Update 2026-06-06 02:52:41 +03:00
Sweetbread ae74e79b8e fixup! wip: quickshell: control-panel 2026-06-06 01:43:13 +03:00
Sweetbread 3fd67e08bc pkgs: move smth to stable 2026-06-06 01:42:57 +03:00
Sweetbread e2527a20d1 ui: fuzzel to walker 2026-06-05 20:14:31 +03:00
Sweetbread 03fbc1e1b7 fixup! font: change to pixel fonts 2026-06-05 02:16:23 +03:00
Sweetbread 5b93b31de3 pkgs: add pear-desktop 2026-06-04 21:57:07 +03:00
Sweetbread 9332b07729 font: change to pixel fonts 2026-06-04 21:57:07 +03:00
Sweetbread 211dafc241 pkgs: wob 2026-06-04 21:57:07 +03:00
Sweetbread cb5771e2a3 wip: quickshell: control-panel 2026-06-04 21:57:06 +03:00
Sweetbread 3fc3f5fa3a fixup! Replace AGS with waybar 2026-06-03 01:42:24 +03:00
Sweetbread 2ffedb7835 yazi: filechooser 2026-06-01 18:42:50 +03:00
Sweetbread 5b2fbe0db4 yazi: open from other apps 2026-06-01 18:42:49 +03:00
Sweetbread 7ea803d7cd Update 2026-06-01 18:42:49 +03:00
Sweetbread 16cfa90286 vpn: change client 2026-05-31 14:53:41 +03:00
Sweetbread 89dfed99cb ghostty: add cursor shader 2026-05-31 14:53:41 +03:00
Sweetbread 36be1d4912 Rias: change mount type 2026-05-31 14:53:40 +03:00
Sweetbread 9d687a19d1 Update 2026-05-31 14:53:40 +03:00
Sweetbread 9a74a3572d ygg: change node 2026-05-31 14:51:53 +03:00
Sweetbread 1eace564e5 Impreza: add wallpaper 2026-05-31 14:51:53 +03:00
Sweetbread 88f9d0bc57 nvidia: fix backlight 2026-05-31 14:51:53 +03:00
Chest e52ee5b09f waybar for mee<3 2026-05-31 14:51:53 +03:00
Chest fd9a6db867 vpn for gpt 2026-05-31 14:51:53 +03:00
Sweetbread acf0041fbc vpn: change engine 2026-05-31 14:51:52 +03:00
Sweetbread 435423f6e1 Update system 2026-05-31 14:51:52 +03:00
Sweetbread 61b6256a14 wip: cava 2026-05-31 14:51:52 +03:00
Sweetbread cdfdeffc07 starship: fix os icon 2026-05-31 14:51:52 +03:00
Sweetbread 6156fda36d hyprland: add zoom 2026-05-31 14:51:52 +03:00
Sweetbread 9f8a14849e tty: fix Cyrillic 2026-05-31 14:51:52 +03:00
Sweetbread 9eea524875 ssh: keepalive 2026-05-31 14:51:52 +03:00
Sweetbread f84b6b1f6d Replace AGS with waybar 2026-05-31 14:51:52 +03:00
Sweetbread 46cf31e49a Update system 2026-05-31 14:51:51 +03:00
Sweetbread 91ccf1078f Style hyprland 2026-05-31 14:51:51 +03:00
Sweetbread e890c350c6 Make VPN list via flake
Wow, I didn't know I can do this...
2026-05-31 14:51:51 +03:00
Sweetbread 9d395d0dae Update system 2026-05-31 14:51:51 +03:00
Chest cc3d356513 vpn 2026-03-17 19:22:08 +03:00
Chest 617ecbaf20 meow 2026-03-17 19:22:08 +03:00
Sweetbread bc24313d57 Fix FileChooser in Hyprland 2026-03-17 19:22:07 +03:00
Sweetbread c54814b63e Update VPN 2026-03-17 19:22:07 +03:00
Sweetbread e1794a8dd3 Repath mounts 2026-03-17 19:22:07 +03:00
Sweetbread 092e73822d Update system 2026-03-17 19:22:07 +03:00
Sweetbread a185fa4d85 Change domain 2026-03-17 19:22:07 +03:00
Sweetbread 514d3a45d9 yazi: add some stuff 2026-03-17 19:22:01 +03:00
Sweetbread 9c3698839c Replace wofi with fuzzel 2025-12-13 03:13:26 +03:00
Sweetbread 1d18bad6fa Sort imports 2025-12-13 03:12:12 +03:00
Sweetbread aeecd99aca Change README 2025-12-06 23:26:10 +03:00
Sweetbread f45ab786f9 helix: change cursor shape and add a ruler 2025-12-06 22:48:56 +03:00
Sweetbread 80f25abdd5 ags: add another accent for chest 2025-12-03 15:37:14 +03:00
Sweetbread 718d20da06 system: update channels 2025-12-03 15:37:14 +03:00
Sweetbread ce4e5e3d50 ref: remove host.laptop from user modules 2025-12-03 15:36:33 +03:00
Sweetbread 3835443178 sops: fix link 2025-12-03 15:36:33 +03:00
Sweetbread 47b17c70ad flake: add custom cache 2025-12-03 15:36:33 +03:00
Sweetbread bd810a6a2a hypr: change border color 2025-12-03 15:36:33 +03:00
Chest 6cf26a1e18 pkgs: add ZZZ 2025-12-03 15:36:33 +03:00
Chest b556847dcf Eclipse: add VirtualBox 2025-12-03 15:36:33 +03:00
Sweetbread 3f06268365 zsh: add more aliases 2025-12-03 15:36:32 +03:00
Sweetbread b02a17a7d9 boot: left os prober only for Impreza 2025-12-03 15:36:32 +03:00
Sweetbread 5ebffd5e41 flake: remove devshell 2025-12-03 15:36:32 +03:00
Sweetbread 0c9e6b31aa flake: remove host definition dublication 2025-12-03 15:36:22 +03:00
Sweetbread 885dca9738 zsh: config history 2025-12-01 19:14:15 +03:00
Sweetbread 08a3195d43 zsh: optimise aliases 2025-12-01 19:14:15 +03:00
Sweetbread d934e358c0 hyprland: separate settings for user and host 2025-12-01 19:14:15 +03:00
Sweetbread 7356fbe8f6 Update system 2025-12-01 19:14:06 +03:00
Sweetbread cae32c1b4f pkgs: return office to everyone 2025-11-15 20:09:47 +03:00
Sweetbread a0ea0dd7f1 pdf 2025-11-15 20:09:47 +03:00
Sweetbread a42b17d363 fixup! Add Miku cursor 2025-11-02 19:35:06 +03:00
Sweetbread f970e20730 system: update 2025-10-31 13:40:32 +03:00
Sweetbread 4c34c5c364 pkgs: add torrent client 2025-10-24 13:15:25 +03:00
Sweetbread c4ceb67dfc Add Miku cursor 2025-10-10 00:51:20 +03:00
Sweetbread 9706b7954c Add Kurumi cursor 2025-10-10 00:50:52 +03:00
Sweetbread 396db61e5e nvidia: set envvar 2025-09-29 17:50:36 +03:00
Sweetbread 063cfe0ac0 style: set dark mode 2025-09-29 17:49:38 +03:00
Sweetbread 82e9a0e807 pkgs: add opentabletdriver 2025-09-26 00:12:45 +03:00
Sweetbread 3304573292 system: update 2025-09-26 00:12:45 +03:00
Sweetbread 26753a5b98 hypr: add focus 2025-09-24 18:29:37 +03:00
Sweetbread 51280986ed tex: add packages 2025-09-19 00:57:03 +03:00
Sweetbread 6a6be514df pkgs: add vivaldi 2025-09-07 20:00:31 +03:00
Sweetbread 0b7bf06f58 fix: set imv as a image viewer 2025-09-04 19:00:49 +03:00
Sweetbread c11584e31e yazi: set up plugins 2025-09-01 20:39:31 +03:00
Sweetbread 6fc5cee147 system: update 2025-09-01 15:48:20 +03:00
Sweetbread adc82860eb feat: scanning 2025-09-01 15:47:40 +03:00
Sweetbread bd9bf6ccc7 wip: fix: clipboard 2025-09-01 15:47:40 +03:00
Sweetbread 75bb7846f9 pkgs: replace grimblast with hyprshot 2025-08-24 20:01:35 +03:00
Sweetbread 7747587e69 pkgs: fastfetch instead of neofetch 2025-08-24 20:01:35 +03:00
Sweetbread 7c37e7122f system: update 2025-08-24 20:01:35 +03:00
Sweetbread 02aef91f3a system: change mount path to partlabel 2025-07-22 22:17:18 +03:00
Chest ba0aac7807 New install 2025-07-22 22:17:04 +03:00
Chest b27399db29 flake: update aagl 2025-07-02 15:15:52 +03:00
Chest a98c3f84ce feat: F disk 2025-07-02 15:15:52 +03:00
Sweetbread 7069a9e1f0 yazi: do not preload .crdownload 2025-06-26 19:50:54 +03:00
Sweetbread 86a972fd61 hyprland: add media app binds 2025-06-25 17:25:12 +03:00
Sweetbread d793b0e635 hyprland: add media binds 2025-06-24 23:30:29 +03:00
Sweetbread 1f034a5ebc pkgs: add texstudio 2025-06-09 16:28:02 +03:00
Sweetbread b96b2986f0 system: update 2025-06-08 02:53:46 +03:00
Sweetbread 4570dfb4b4 chore: something... 2025-06-08 01:18:25 +03:00
Sweetbread 88efa96ac7 pkgs: remove libreoffice for chest 2025-05-21 17:02:09 +03:00
Sweetbread 48ce8bdf9d system: update 2025-05-05 17:21:43 +03:00
Sweetbread 724633d928 system: change channels 2025-05-05 16:46:17 +03:00
Sweetbread 7eedb9098a pkgs(chest): turn off some packages 2025-05-03 23:27:53 +03:00
Sweetbread 6432eb6171 style: decrease gaps 2025-04-22 11:49:15 +03:00
Sweetbread 4b7d0a0980 system: update nixpkgs-fixed 2025-04-22 00:33:22 +03:00
Sweetbread de77adcfcb style: ags 2025-04-22 00:33:22 +03:00
Sweetbread 16f84aaa04 system: update 2025-04-22 00:33:22 +03:00
Sweetbread 24f013c765 refactor: move utils to a separate file 2025-04-18 02:52:44 +03:00
Sweetbread a84a509cf8 pkgs: add krita and gimp 2025-04-18 02:46:26 +03:00
Sweetbread df54654750 fix: wallpapers 2025-04-18 02:46:26 +03:00
Chest cddf52d5d3 add binwalk 2025-04-16 00:21:35 +03:00
Chest 01c5f62314 aagl 2025-04-16 00:21:35 +03:00
Sweetbread 3279001345 Remove hyprlock 2025-04-16 00:20:20 +03:00
Sweetbread 2ea3557973 feat: add intel graphics config 2025-04-13 19:38:10 +03:00
Sweetbread 9cdd54c6e8 feat: add dependencies to host in home-manager 2025-04-13 18:22:04 +03:00
Sweetbread 28bf565203 pkgs: add pinentry 2025-04-12 00:20:59 +03:00
Sweetbread b1df12ae65 fix(ags): set margins 2025-04-11 23:49:16 +03:00
Chest 5912338271 host: Impreza 2025-04-11 23:49:16 +03:00
Sweetbread a5d2aad596 fix: change nick 2025-04-09 17:30:37 +03:00
Sweetbread 56add43822 feat: yggdrasil 2025-04-09 17:30:37 +03:00
Sweetbread d524383340 style: cursor 2025-04-09 17:30:37 +03:00
Sweetbread 51566b7224 style: font 2025-04-09 17:30:37 +03:00
Sweetbread 2d322ab1f2 system: update 2025-04-09 17:30:37 +03:00
Sweetbread 8c39e606e3 feat(yazi): add d drive shortcut 2025-04-03 23:39:04 +03:00
Sweetbread d275bc88b2 feat: add my custom dns server 2025-04-03 23:39:04 +03:00
Sweetbread 3acbf43b4e feat: add pulsemixer 2025-04-03 23:39:04 +03:00
Sweetbread 729fe36326 fix: brightness setting 2025-04-03 23:39:04 +03:00
Sweetbread 530be0cf44 feat: kitty to ghostty 2025-04-03 23:39:04 +03:00
Sweetbread 6105e157c7 pkgs: add some utils 2025-04-03 23:39:04 +03:00
Sweetbread 4b0e3a61e9 feat(ags): add battery bar 2025-04-03 23:39:04 +03:00
Sweetbread 680b3cd3d6 fix(ags): wifi widget 2025-04-03 23:39:04 +03:00
Sweetbread 830336ee06 feat: postgres 2025-04-03 23:39:04 +03:00
Sweetbread 01bc1610bf system: Update 2025-03-13 15:11:27 +03:00
Sweetbread d26818f47a git: Change mail 2025-03-12 20:52:32 +03:00
Sweetbread ca50e2af2b pkgs: Add prismlauncher 2025-03-10 16:42:31 +03:00
Sweetbread 0cc88081d1 system: Update 2025-03-01 22:41:11 +03:00
Chest dee91dd001 Add pkgs 2025-03-01 22:22:27 +03:00
Sweetbread 510e179b78 system: Update 2025-02-13 23:53:19 +03:00
Sweetbread ea39ab9992 perf: Home-manager to module
feat: Optionise config
2025-02-13 23:53:19 +03:00
Sweetbread f2c215460b fix(helix): No end newline 2025-01-31 19:45:16 +03:00
Sweetbread 96d83ec1b4 pkgs: Add trashy 2025-01-27 13:57:18 +03:00
Sweetbread a3f6c55b93 style: Change opacity and wallpaper 2025-01-27 13:55:48 +03:00
Sweetbread 879ea3474a system: Update 2025-01-27 13:55:48 +03:00
Sweetbread 41cf1a5894 pkgs: litecli 2025-01-27 13:55:48 +03:00
Sweetbread b294b8c8ee feat(zsh): lg alias 2025-01-27 13:55:48 +03:00
Sweetbread e677754de3 style: Reduce gap 2025-01-25 20:00:59 +03:00
Sweetbread 4f11c8139f wip: console
Font changes to default after reload
2025-01-25 19:38:13 +03:00
Sweetbread e46c205fe3 ags: To derivation 2025-01-25 19:38:13 +03:00
Sweetbread 290b694877 pkgs: Udiskie 2025-01-25 19:38:13 +03:00
Sweetbread 8ad47d16eb system: Update 2025-01-25 19:38:13 +03:00
Sweetbread e3f8430193 pkgs: Remove extra packages 2025-01-25 19:38:13 +03:00
Sweetbread 46d4249637 style: Btop 2025-01-25 19:38:13 +03:00
Sweetbread 8c1f94d05a feat(devshell): Add pkgs for helix and switching to zsh 2025-01-25 19:38:13 +03:00
Sweetbread bac068cf69 fix(starship): Remove extra space 2025-01-25 19:38:13 +03:00
Sweetbread 6cbc8b393d pkgs: Update aagl 2025-01-25 19:38:13 +03:00
Sweetbread ac3eee4bb0 pkgs: git-lfs 2025-01-25 19:38:13 +03:00
Sweetbread 045f44e2d2 pkgs: To 24.11 2025-01-25 19:38:13 +03:00
Sweetbread a198789a17 ags: Add keyboard layout widget 2025-01-25 19:38:13 +03:00
Sweetbread 7fa285f0cc docs: Change screenshot 2025-01-25 19:38:13 +03:00
Sweetbread bebf7e8b6d pkgs: Add Pycharm to chest 2025-01-25 19:38:13 +03:00
Sweetbread 6f2c1bed14 ags: style 2025-01-25 19:38:13 +03:00
Sweetbread dfa96985d6 pkgs: Remove dev packages 2025-01-25 19:38:13 +03:00
Sweetbread 2a6196cc70 fix: Show GPU stats in BTop 2025-01-25 19:38:13 +03:00
Sweetbread 23a0e060ef grub: Add theme 2025-01-25 19:38:13 +03:00
Sweetbread 040923c626 fix: Bootloader 2025-01-25 19:38:13 +03:00
Sweetbread 2c3de69e72 fix: Icons 2025-01-25 19:38:13 +03:00
Sweetbread 8ea1207bb9 feat: ags 2025-01-10 22:15:02 +03:00
Sweetbread 21fe030dc7 pkgs: New utils 2024-12-28 20:00:44 +03:00
Sweetbread f6950c7e78 system: Update 2024-12-28 20:00:44 +03:00
Sweetbread f76b88cf4b vpn: Update 2024-12-28 20:00:44 +03:00
Sweetbread 6e5568e330 pkgs: Add rtorrent 2024-12-28 20:00:44 +03:00
Sweetbread 1308aae228 syncthing: New device 2024-12-28 20:00:44 +03:00
Sweetbread ded07cb14a pkgs: Add aseprite 2024-12-28 20:00:44 +03:00
Sweetbread 81ab925d88 pkgs: Add libreoffice 2024-12-28 20:00:44 +03:00
Sweetbread e909e76c9e develop: Add Rust 2024-12-28 20:00:44 +03:00
Sweetbread 3fc9f416f9 feat: Drag and Drop in yazi 2024-12-28 20:00:44 +03:00
Sweetbread c3672ea118 system: Update 2024-12-28 20:00:44 +03:00
Sweetbread 1dee7a5769 vpn: Update 2024-12-28 20:00:44 +03:00
Sweetbread e0a0721dea pkgs: Flakify AAGL 2024-12-28 20:00:44 +03:00
Sweetbread 5cad49555e pkgs: Syncthing 2024-12-28 20:00:44 +03:00
50 changed files with 714 additions and 1582 deletions

No files matched your search

+1 -1
View File
@@ -5,7 +5,7 @@ creation_rules:
key_groups: key_groups:
- age: - age:
- *primary - *primary
- path_regex: host/(Rias|Senko|Inaho|Eclipse)/secrets/.+$ - path_regex: host/(Rias|Senko|Eclipse)/secrets/.+$
key_groups: key_groups:
- age: - age:
- *primary - *primary
+41
View File
@@ -0,0 +1,41 @@
{
disko.devices = {
disk = {
my-disk = {
device = "/dev/sdb";
type = "disk";
content = {
type = "gpt";
partitions = {
ESP = {
type = "EF00";
size = "256M";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
swap = {
size = "8G";
content = {
type = "swap";
resumeDevice = true;
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
}
-60
View File
@@ -1,60 +0,0 @@
{ lib
, pkgs
, mumble ? pkgs.mumble
}:
let
# PipeWire 1.4.0 removed client-rt.conf, changing how clients negotiate
# realtime scheduling. Mumble never adapted, so its PipeWire data-loop
# thread stalls mid-negotiation and its own RT watchdog SIGKILLs the
# whole process almost immediately on every launch (confirmed via
# bpftrace: signal_generate shows Mumble's own "data-loop.0" thread
# sending itself SIGKILL). Reproduced identically on both the packaged
# 1.5.915 (Qt5) and a from-source 1.6.870 RC (Qt6) build, so it's the
# shared PipeWire client integration at fault, not Mumble's UI stack.
#
# Upstream: https://github.com/mumble-voip/mumble/issues/6780
# Bisected there to PipeWire 1.2.7 (last known-good) vs 1.4.1+ (broken).
#
# Fix: give Mumble an old, compatible libpipewire-0.3.so to dlopen at
# runtime. The system's actual PipeWire daemon is untouched (still
# whatever version NixOS ships) - only the client library Mumble talks
# through is pinned back.
pipewireGoodPkgs = import (fetchTarball {
url = "https://channels.nixos.org/nixos-24.11/nixexprs.tar.xz";
sha256 = "189lwv8l10bm9fnksfkzy05pm86gmziy9z3bdn13zc8d636ylchj"; # nix-prefetch-url --unpack https://channels.nixos.org/nixos-24.11/nixexprs.tar.xz
}) { inherit (pkgs) system; };
pipewireGood = pipewireGoodPkgs.pipewire;
# Mumble's own build is Qt5-based; QT_PLUGIN_PATH isn't set by its
# wrapper for the platform/sql plugins mumble actually needs when we
# bypass that wrapper below, so it has to be supplied explicitly.
qt5PluginPath = lib.makeSearchPath "lib/qt-${pkgs.qt5.qtbase.version}/plugins" [
pkgs.qt5.qtbase.bin
pkgs.qt5.qtsvg.bin
pkgs.qt5.qtwayland.bin
];
in
pkgs.symlinkJoin {
name = "mumble-pipewire-fixed-${mumble.version}";
paths = [ mumble ];
nativeBuildInputs = [ pkgs.makeWrapper ];
# mumble's own wrapper always prepends its own (broken, too-new)
# PipeWire path in front of anything we set, so wrapping it a second
# time can't win that ordering fight. Instead we skip straight to the
# real unwrapped binary and set env ourselves.
postBuild = ''
rm -f $out/bin/mumble
makeWrapper ${mumble}/bin/.mumble-wrapped $out/bin/mumble \
--prefix LD_LIBRARY_PATH : "${pipewireGood}/lib" \
--set QT_PLUGIN_PATH "${qt5PluginPath}"
'';
meta = mumble.meta // {
description = mumble.meta.description
+ " (patched: pinned PipeWire client lib to 1.2.7 to work around SIGKILL-on-launch with PipeWire >=1.4.0, see mumble#6780)";
};
}
Generated
+213 -226
View File
@@ -3,17 +3,15 @@
"aagl": { "aagl": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"nixpkgs": [ "nixpkgs": "nixpkgs",
"nixpkgs"
],
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1789138122, "lastModified": 1780372639,
"narHash": "sha256-mh+ZiGCtHAo0xIi1yaNjHsftfnlWz9JiYwHCyT16yIE=", "narHash": "sha256-VFzXYHlIGwO4h4ovtnpZj9sX/Qu6+dlI00sXjHdwi2w=",
"owner": "ezKEa", "owner": "ezKEa",
"repo": "aagl-gtk-on-nix", "repo": "aagl-gtk-on-nix",
"rev": "d82d6d6f66caf4b63fb154e62fad83c627874127", "rev": "1ee1e8864a1fcfcc21a5fb5af4bd328b3c829f42",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -25,9 +23,7 @@
"ags": { "ags": {
"inputs": { "inputs": {
"astal": "astal", "astal": "astal",
"nixpkgs": [ "nixpkgs": "nixpkgs_2"
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1744557573, "lastModified": 1744557573,
@@ -64,11 +60,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1784368054, "lastModified": 1772460678,
"narHash": "sha256-zF1iJkBQSDWmRO4/LEeHR1SpKY0lqZaxkoQJpPS9K9U=", "narHash": "sha256-NYaWs8fYJ38IgFld0hGSdT2LEVhrgO8SiRReBjIH7YY=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "9b5f14d9483445e766294eb8fbe0b8f370269ed0", "rev": "5d2cb726b16ee349df443f84b64cff53221b6983",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -166,34 +162,14 @@
"type": "github" "type": "github"
} }
}, },
"disko": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1781152676,
"narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=",
"owner": "nix-community",
"repo": "disko",
"rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "disko",
"type": "github"
}
},
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1783570805, "lastModified": 1779670703,
"narHash": "sha256-ptl5aRlCv9/uRSv2u8Hq8UFVFeZ6Q/bT049bpqNgc3w=", "narHash": "sha256-UdfMivNMwCCqQsYDg5pSz8X2IOaOrIZLIIy+Bg3CO2o=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "5602ed62d638142c1ab31dccd01dfbfb28841225", "rev": "942159e73e40bf785816f7f1f5feed9ef3d7c8f9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -234,22 +210,6 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
@@ -258,11 +218,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1782949081, "lastModified": 1778716662,
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=", "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e", "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -305,44 +265,42 @@
"type": "github" "type": "github"
} }
}, },
"gnome-shell": { "gitignore": {
"flake": false,
"locked": {
"host": "gitlab.gnome.org",
"lastModified": 1776175984,
"narHash": "sha256-RJFlFW8GiMei6oqUGrMkGEvVqOH8U7Q8abc1yK4VKD8=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "e0fdc4c13250e9a9b8ea9594c83925274f4a5dca",
"type": "gitlab"
},
"original": {
"host": "gitlab.gnome.org",
"owner": "GNOME",
"ref": "50.1",
"repo": "gnome-shell",
"type": "gitlab"
}
},
"helix-steel": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"hyprland",
"pre-commit-hooks",
"nixpkgs" "nixpkgs"
], ]
"rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {
"lastModified": 1788213353, "lastModified": 1709087332,
"narHash": "sha256-vJ7VgxuM/Dp7vyVlu6EXjP/ES14TALy64jgzyuYZl6g=", "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "mattwparas", "owner": "hercules-ci",
"repo": "helix", "repo": "gitignore.nix",
"rev": "ba5b022c1000a0ce28d4ce1d09acdd062a83a020", "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "mattwparas", "owner": "hercules-ci",
"ref": "steel-event-system", "repo": "gitignore.nix",
"repo": "helix", "type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
},
"original": {
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github" "type": "github"
} }
}, },
@@ -353,11 +311,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1789320570, "lastModified": 1780679734,
"narHash": "sha256-1Js4AJiWLV7U1SF3ok0J2tKbBEJYE5YpElGU+7fMbfo=", "narHash": "sha256-KmRNvpNOb7QEORa06bVgjW9kITcx0VhsI7w0vhmZyD8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "87b3c74df02a2b2e691a24f3c82774f48a70c1bd", "rev": "b2b7db486e06e098711dc291bb25db82850e1d16",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -382,11 +340,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1776511930, "lastModified": 1772461003,
"narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=", "narHash": "sha256-pVICsV7FtcEeVwg5y/LFh3XFUkVJninm/P1j/JHzEbM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprcursor", "repo": "hyprcursor",
"rev": "39435900785d0c560c6ae8777d29f28617d031ef", "rev": "b62396457b9cfe2ebf24fe05404b09d2a40f8ed7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -411,11 +369,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1782566056, "lastModified": 1772461523,
"narHash": "sha256-haEZcHzYrePnjFOYSWTbxm/Nrla0aPslJfmvdCvqtVc=", "narHash": "sha256-mI6A51do+hEUzeJKk9YSWfVHdI/SEEIBi2tp5Whq5mI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprgraphics", "repo": "hyprgraphics",
"rev": "c6e7b9f673f4360bc813d3dc75028f75ee88d3f8", "rev": "7d63c04b4a2dd5e59ef943b4b143f46e713df804",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -435,22 +393,22 @@
"hyprutils": "hyprutils", "hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire", "hyprwire": "hyprwire",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs_3",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"systems": "systems", "systems": "systems",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1785170029, "lastModified": 1773149218,
"narHash": "sha256-8CKDx282HhxlD1pwXPnC4uK29Abn1Jsnh7LgPzeIXxI=", "narHash": "sha256-m5Ewi+rgn18qPP54Um4O2zwZ02oiomlZssHvXYEUv3U=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "5c9377c15f85c50648f35ca5a213754f95b93ca0", "rev": "59f9f2688ac508a0584d1462151195a6c4992f99",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "hyprwm",
"ref": "v0.56.1", "ref": "v0.54.2-b",
"repo": "Hyprland", "repo": "Hyprland",
"type": "github" "type": "github"
} }
@@ -488,11 +446,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1784196523, "lastModified": 1772467975,
"narHash": "sha256-ahtKMGXFJdlQNhatQm1+BBU/pGfGYnAqQt3vWvq4p8s=", "narHash": "sha256-kipyuDBxrZq+beYpZqWzGvFWm4QbayW9agAvi94vDXY=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-guiutils", "repo": "hyprland-guiutils",
"rev": "a6ccb6cb112ed5a244c0191fb972347ecfa893e0", "rev": "5e1c6b9025aaf4d578f3eff7c0eb1f0c197a9507",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -518,11 +476,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1788563182, "lastModified": 1779209205,
"narHash": "sha256-e2Q7i5T+iQY0o/uxFNnXxWpXZ1e5f6VV4eHdKk7l6kc=", "narHash": "sha256-asc7NpeB8vD66gvZeYcQkaWOs2X6Jgd29vBtP17vjxo=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-plugins", "repo": "hyprland-plugins",
"rev": "722f15a77768eab13f01f5e5dce024bd2f61f270", "rev": "1cb37fad68dff5f5840010c314fed5809b4ee66f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -572,11 +530,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1777320127, "lastModified": 1772459629,
"narHash": "sha256-Qu+Wf2Bp5qUjyn2YpZNq8a7JyzTGowhT1knrwE38a9U=", "narHash": "sha256-/iwvNUYShmmnwmz/czEUh6+0eF5vCMv0xtDW0STPIuM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprlang", "repo": "hyprlang",
"rev": "090117506ddc3d7f26e650ff344d378c2ec329cc", "rev": "7615ee388de18239a4ab1400946f3d0e498a8186",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -624,11 +582,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1782554491, "lastModified": 1772462885,
"narHash": "sha256-+p3MlyN/nqRefcf2IckPlGRUn9+hielqpS9XClbLleM=", "narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprtoolkit", "repo": "hyprtoolkit",
"rev": "bdba25ced39ea39ab004a8f31593ba0b0ff1ca35", "rev": "9af245a69fa6b286b88ddfc340afd288e00a6998",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -649,11 +607,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1784323413, "lastModified": 1772459870,
"narHash": "sha256-XnAVV+H4f8Xdv0yZcSwJ5kCjLyE8fHxPeLX6a3HSrAU=", "narHash": "sha256-xxkK2Cvqxpf/4UGcJ/TyCwrvmiNWsKsJfFzHMp2bxis=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "5f03477ab3a005ff27c527486f551883535aea2f", "rev": "e63f3a79334dec49f8eb1691f66f18115df04085",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -674,11 +632,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1777159683, "lastModified": 1772459835,
"narHash": "sha256-Jxixw6wZphUp+nHYxOKUYSckL17QMBx2d5Zp0rJHr1g=", "narHash": "sha256-978jRz/y/9TKmZb/qD4lEYHCQGHpEXGqy+8X2lFZsak=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwayland-scanner", "repo": "hyprwayland-scanner",
"rev": "b8632713a6beaf28b56f2a7b0ab2fb7088dbb404", "rev": "0a692d4a645165eebd65f109146b8861e3a925e7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -703,11 +661,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1778410714, "lastModified": 1772463520,
"narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=", "narHash": "sha256-GIjASzYnV4fK19HnyJKmHyqyxHxIpjusK9foEA4Yo+4=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwire", "repo": "hyprwire",
"rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc", "rev": "4e1933ae5602b350c5b6633f5c932549c9b8aca2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -718,15 +676,15 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1784356753, "lastModified": 1779560665,
"narHash": "sha256-12KrbMiWLcf8m7pCvAtZh1ZrgF85ZXDXvfR/fWTKy84=", "narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
"owner": "NixOS", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "61b7c44c4073f0b827768aff0049561b5110ea5a", "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "nixos",
"ref": "nixos-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
@@ -750,11 +708,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1789114715, "lastModified": 1780453794,
"narHash": "sha256-ugpsyk3NM2s87vXfUiIIiibbJ4Pp0JPS5p/3mfs+q+c=", "narHash": "sha256-bXMRa9VTsHSPXL4Cw8R6JJLQeY3Y/IP4+YJCYVmQ7FY=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "21a67dc470149f337cecafbe965d8d252a390518", "rev": "6b316287bae2ee04c9b93c8c858d930fd07d7338",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -766,11 +724,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1789149629, "lastModified": 1743583204,
"narHash": "sha256-H6GwaZzZf+4npqv0tph94w9tZddSjFjmQrVsW0z78uk=", "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "eaad089433ca2bb662274377d33df3d0e51ef28b", "rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -780,6 +738,86 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": {
"locked": {
"lastModified": 1772542754,
"narHash": "sha256-WGV2hy+VIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8c809a146a140c5c8806f13399592dbcb1bb5dc4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1780243769,
"narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "331800de5053fcebacf6813adb5db9c9dca22a0c",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1775888245,
"narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "13043924aaa7375ce482ebe2494338e058282925",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1780243769,
"narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "331800de5053fcebacf6813adb5db9c9dca22a0c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_7": {
"locked": {
"lastModified": 1779877693,
"narHash": "sha256-NOF9NAREhxr50bbBfVcVOq+ArCMSoe8dP79Pk2uyARk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4100e830e085863741bc69b156ec4ccd53ab5be0",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": [ "flake-parts": [
@@ -792,11 +830,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1785549842, "lastModified": 1780281641,
"narHash": "sha256-DCwBZmGsySF7oKGTRgEv2HvpxVXkHT+38VhTM76k0B4=", "narHash": "sha256-M/+hUKoKbHXpV0xGVfELbN1Ds1aoe3pL5p5/t46YhVo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "a9f987b57594e845e3e5cdd423b9a70846d70308", "rev": "30f9ae2f04174de63ba8bcf3580ca90843b28a01",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -808,17 +846,18 @@
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
"gitignore": "gitignore",
"nixpkgs": [ "nixpkgs": [
"hyprland", "hyprland",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1784288435, "lastModified": 1772024342,
"narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=", "narHash": "sha256-+eXlIc4/7dE6EcPs9a2DaSY3fTA9AE526hGqkNID3Wg=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9", "rev": "6e34e97ed9788b17796ee43ccdbaf871a5c2b476",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -831,17 +870,14 @@
"inputs": { "inputs": {
"aagl": "aagl", "aagl": "aagl",
"ags": "ags", "ags": "ags",
"disko": "disko",
"helix-steel": "helix-steel",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland", "hyprland": "hyprland",
"hyprland-plugins": "hyprland-plugins", "hyprland-plugins": "hyprland-plugins",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_4",
"nixpkgs-pinned": "nixpkgs-pinned", "nixpkgs-pinned": "nixpkgs-pinned",
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"stylix": "stylix", "stylix": "stylix",
"waybar": "waybar",
"yazi": "yazi", "yazi": "yazi",
"yazi-plugins": "yazi-plugins" "yazi-plugins": "yazi-plugins"
} }
@@ -854,11 +890,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1785476452, "lastModified": 1780197589,
"narHash": "sha256-/CXwCFPS41rb/JI2VitKCgVK6V5E6/sfw5ke3B9zyVQ=", "narHash": "sha256-FVCr2Ij/jKf59a4LW481eeOF6rJRreOBrVgW/aUBTrw=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "6ef009bf4c4873cdc1a621826722bdea7c03e62c", "rev": "21632e942d89bf1cce4e5a63d7e58a215a0cbfcc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -868,27 +904,6 @@
} }
}, },
"rust-overlay_2": { "rust-overlay_2": {
"inputs": {
"nixpkgs": [
"helix-steel",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775358767,
"narHash": "sha256-f2eC+WIfhjevCPQILuV08i/kmKZzYZpUvkom/33VxCA=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "20fd44bc663daa53a2575e01293e24e681d62244",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_3": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"yazi", "yazi",
@@ -896,11 +911,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1783320166, "lastModified": 1779851998,
"narHash": "sha256-l7C/OsjcnWDOk2K3ssj+SBduwL67LashjBqis9+t468=", "narHash": "sha256-UkkMh3bX9QW4Luqkm98nUaOqKWrU6i65mUnph3WeSSw=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "20ee15370c9256669d66968b89ee20a4b0a4e673", "rev": "6cddd512fa2bf7231f098d3a2f92f6e4cff71e0a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -911,16 +926,14 @@
}, },
"sops-nix": { "sops-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": "nixpkgs_5"
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1788914643, "lastModified": 1780547341,
"narHash": "sha256-4GuMPW90JSxXWDPUB9M+1m7fYbe3H0apOd86/zBQ2Kw=", "narHash": "sha256-Gq8KNx5A7hBB3uGJaj6eQfLDIz5YdLu92gqBcvHvoUo=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "13616fff713a9f94055c66f15687ebdc17a335df", "rev": "9ed65852b6257fbeae4355bc24ecfea307ca759a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -938,9 +951,7 @@
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"nixpkgs": [ "nixpkgs": "nixpkgs_6",
"nixpkgs"
],
"nur": "nur", "nur": "nur",
"systems": "systems_2", "systems": "systems_2",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
@@ -949,11 +960,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1787771653, "lastModified": 1780684162,
"narHash": "sha256-DkkJSBOXWV/mja5Vy8az5g1KpZlsbUwlmH0BsQhowaQ=", "narHash": "sha256-7HslPhFlg9tD5t+E8c5nL9v85TehwSWvwSmk+tarBnI=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "5e3809851f486e7fc7e84b40f174c74b60ecc784", "rev": "e14dbcb3e8ed94de5e85ed9ad133b6017480f86c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -979,16 +990,15 @@
}, },
"systems_2": { "systems_2": {
"locked": { "locked": {
"lastModified": 1774449309, "lastModified": 1681028828,
"narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default",
"rev": "c29398b59d2048c4ab79345812849c9bd15e9150", "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"ref": "future-26.11",
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
@@ -1027,11 +1037,11 @@
"tinted-schemes": { "tinted-schemes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1785153830, "lastModified": 1777806186,
"narHash": "sha256-fNdfCTeCXU3tZG3TMincd+u68qBHQgCr2Ljr/M1mWP0=", "narHash": "sha256-PDF0/wObw4nIsSBeXVYLsloXOiphXCgIdsrNcVXguKs=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "schemes", "repo": "schemes",
"rev": "9bd28ed313560db3c5b605c63bc4e309e78e3fc8", "rev": "0c94645546f4f3ddac77a1a5fce54eb95bf50795",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1043,11 +1053,11 @@
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1785031658, "lastModified": 1778379944,
"narHash": "sha256-mZp9O2LjzdMzlqQF3l3fjqsuPBzXy+1qTfBEUGjTlpk=", "narHash": "sha256-wPDFzMGSlARlw0Sfsn48Q2+jPSfk6N0Ng6BC/d+7Q24=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "5d2c67f61ea7af36f16865ab6d541cdba41dc257", "rev": "fe0203a198690e71a5ff11e08812a4673de3678d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1059,11 +1069,11 @@
"tinted-zed": { "tinted-zed": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1785030526, "lastModified": 1778378178,
"narHash": "sha256-klZf8UviewRkxuu74Bhbq6tqy7oxebQC7UVRWbbtQxU=", "narHash": "sha256-OXPXRIQgGwV77HjYRryOHguh4ALX96jkg+tseLkGgHA=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-zed", "repo": "base16-zed",
"rev": "16f5a8adf4a6b1310d0a61ab172de963e8f76a02", "rev": "9cd816033ff969415b190722cddf134e78a5665f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1072,27 +1082,6 @@
"type": "github" "type": "github"
} }
}, },
"waybar": {
"inputs": {
"flake-compat": "flake-compat_3",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1789627973,
"narHash": "sha256-OJBVQSIpW0Ozb3czGP3+TQyDC5BBqMQtx2asPsspFHo=",
"owner": "Alexays",
"repo": "Waybar",
"rev": "1687ec724a89756e79371784a2ba3f9700f8e5c6",
"type": "github"
},
"original": {
"owner": "Alexays",
"repo": "Waybar",
"type": "github"
}
},
"xdph": { "xdph": {
"inputs": { "inputs": {
"hyprland-protocols": [ "hyprland-protocols": [
@@ -1121,11 +1110,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1784371182, "lastModified": 1772476586,
"narHash": "sha256-S8A1lezEalltWcCp3gAic5lssS0xTSISK6fKODefhOk=", "narHash": "sha256-N/ZwsRLULLpBP5ecvAUzNq8E/CgLRwPwSrHyY3xB5KM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "08d99f727944dd15e4740090305e31c5fb92a50a", "rev": "eb6c02a2ead882f3474f3d7f2fbe966b64ed5110",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1137,17 +1126,15 @@
"yazi": { "yazi": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nixpkgs": [ "nixpkgs": "nixpkgs_7",
"nixpkgs" "rust-overlay": "rust-overlay_2"
],
"rust-overlay": "rust-overlay_3"
}, },
"locked": { "locked": {
"lastModified": 1789171366, "lastModified": 1780290961,
"narHash": "sha256-b7B5VQC96NJx0/q5pTVWqgGjyCiO0Cz1aPfVJcBXLfA=", "narHash": "sha256-XPSfzLmyGeGMU5o1gaRp8XVVFFLxri93TXpzTr38Ti8=",
"owner": "sxyazi", "owner": "sxyazi",
"repo": "yazi", "repo": "yazi",
"rev": "b8973fb4c2b9b184aad03cfc717c1fefe4140c40", "rev": "8e80798984864799cd72b3625b21edc33b1ba1e5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1159,11 +1146,11 @@
"yazi-plugins": { "yazi-plugins": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1788955781, "lastModified": 1780203849,
"narHash": "sha256-kwf9+KXOL5JXGDoEGdtwq+JujP8GVoOwDgz76FBM3xk=", "narHash": "sha256-bqGN6JxbU+/o7TlM/Cm9Qj/s1McA4pB5QWArGZPcme4=",
"owner": "yazi-rs", "owner": "yazi-rs",
"repo": "plugins", "repo": "plugins",
"rev": "58c4f4e2f4835cc9bf6751f39e3f7c574fc7f55a", "rev": "598cdb671401574ac27aeee257e2f3b0c80610a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
+17 -60
View File
@@ -10,7 +10,7 @@
"https://yazi.cachix.org" "https://yazi.cachix.org"
]; ];
extra-trusted-public-keys = [ extra-trusted-public-keys = [
"main:tR2gNhCBJHKAlVgohPNHBhGnWL55tB8SxXmMWJe5lo8=" "main:kpwMe+9BsGJ/IUb7i3iadaV38y5/Yuqoct0mf7wI9ds="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI=" "ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI="
@@ -19,72 +19,30 @@
}; };
inputs = { inputs = {
aagl = { aagl.url = "github:ezKEa/aagl-gtk-on-nix";
url = "github:ezKEa/aagl-gtk-on-nix"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
inputs.nixpkgs.follows = "nixpkgs"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-26.05";
nixpkgs-pinned.url = "github:nixos/nixpkgs/ec942ba042dad5ef097e2ef3a3effc034241f011";
sops-nix.url = "github:Mic92/sops-nix";
stylix.url = "github:danth/stylix";
ags.url = "github:Aylur/ags/3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6";
yazi.url = "github:sxyazi/yazi";
yazi-plugins = {
url = "github:yazi-rs/plugins";
flake = false;
}; };
ags = { hyprland.url = "github:hyprwm/Hyprland/v0.54.2-b";
url = "github:Aylur/ags/3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6"; hyprland-plugins = {
inputs.nixpkgs.follows = "nixpkgs"; url = "github:hyprwm/hyprland-plugins";
}; inputs.hyprland.follows = "hyprland";
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
helix-steel = {
url = "github:mattwparas/helix/steel-event-system";
inputs.nixpkgs.follows = "nixpkgs";
}; };
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprland = {
url = "github:hyprwm/Hyprland/v0.56.1";
# inputs.nixpkgs.follows = "nixpkgs";
};
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs = {
hyprland.follows = "hyprland";
# nixpkgs.follows = "nixpkgs";
};
};
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-pinned.url = "github:nixos/nixpkgs/ec942ba042dad5ef097e2ef3a3effc034241f011";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-26.05";
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
waybar = {
url = "github:Alexays/Waybar";
inputs.nixpkgs.follows = "nixpkgs";
};
yazi = {
url = "github:sxyazi/yazi";
inputs.nixpkgs.follows = "nixpkgs";
};
yazi-plugins = {
url = "github:yazi-rs/plugins";
flake = false;
};
}; };
outputs = { self, nixpkgs, nixpkgs-stable, nixpkgs-pinned, home-manager, ... }@inputs: let outputs = { self, nixpkgs, nixpkgs-stable, nixpkgs-pinned, home-manager, ... }@inputs: let
@@ -104,7 +62,6 @@
Senko = mkHost "Senko"; Senko = mkHost "Senko";
Eclipse = mkHost "Eclipse"; Eclipse = mkHost "Eclipse";
Impreza = mkHost "Impreza"; Impreza = mkHost "Impreza";
Inaho = mkHost "Inaho";
}; };
}; };
} }
+21 -34
View File
@@ -1,40 +1,27 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }: {
let wayland.windowManager.hyprland = let
hyprLua = import ../../../modules/user/hyprland/lua.nix { inherit lib; }; wallpaper = pkgs.fetchurl {
wallpaper = pkgs.fetchurl { name = "miku_wallpaper.jpg";
name = "miku_wallpaper.jpg"; url = "https://c.lair.moe/pub/miku_wallpaper.jpeg?raw";
url = "https://c.lair.moe/pub/miku_wallpaper.jpeg?raw"; hash = "sha256-inK4X5KzQk5FHwDw2DYy43nm7XtXlC6I0S1PkYUv+3w=";
hash = "sha256-inK4X5KzQk5FHwDw2DYy43nm7XtXlC6I0S1PkYUv+3w="; };
}; in {
in { settings = {
wayland.windowManager.hyprland.settings = { monitor = [
monitor = [ "DP-3 , 1920x1080@165, 0x0 , 1"
{ "HDMI-A-1, preferred , -1080x0, 1, transform, 1"
output = "DP-3"; ];
mode = "1920x1080@165";
position = "0x0";
scale = 1;
}
{
output = "HDMI-A-1";
mode = "preferred";
position = "-1080x0";
scale = 1;
transform = 1;
}
];
workspace_rule = [ workspace = [
{ workspace = "1"; monitor = "DP-3"; default = true; } "1, monitor:DP-3, default:true"
{ workspace = "10"; monitor = "HDMI-A-1"; default = true; } "10, monitor:HDMI-A-1, default:true"
]; ];
on = [ exec-once = [
(hyprLua.onStart [ "hyprctl dispatch workspace 1"
"hyprctl dispatch 'hl.dsp.focus({ workspace = 1 })'"
"${lib.getExe pkgs.swww} img -o HDMI-A-1 ${wallpaper}" "${lib.getExe pkgs.swww} img -o HDMI-A-1 ${wallpaper}"
"${lib.getExe pkgs.linux-wallpaperengine} ~/.local/share/wpe/wallpaper --assets-dir ~/.local/share/wpe/assets --screen-root DP-3 --noautomute" "${lib.getExe pkgs.linux-wallpaperengine} ~/.local/share/wpe/wallpaper --assets-dir ~/.local/share/wpe/assets --screen-root DP-3 --noautomute"
]) ];
]; };
}; };
} }
+5 -5
View File
@@ -1,14 +1,14 @@
{ {
"data": "ENC[AES256_GCM,data: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 truncated "data": "ENC[AES256_GCM,data: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 truncated
"sops": { "sops": {
"age": [ "age": [
{ {
"recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk", "recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPRUJmYnplYlphSVJHUm96\nckhJa2xmeVB4UE5oK3UyRU40dm1vNkV5L0hBCm1LVGt5SEQxVXhlOURvbTN2c1JZ\nMU1TYXBuVmNMc2lMRlBqODg2ZklRb2sKLS0tIDltSkgxeGZBUko4UFhBdFZJUTgv\nUUZmdXUySFVqTGdnY29UcGN3d1VaZFEKLeVk/iuQeblOLY49QU8nILR+Uzchwd4z\nChqX+lGaVjMZnnNztrMT8DjFTkSUZ7pyYR6EYDQ785kWOv5ibqM0iw==\n-----END AGE ENCRYPTED FILE-----\n" "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVMVppaFlYd3VOTG5RWk94\nR1JHaXFwOXA3Y1hmTDBMRUVVenRQWVE3MDFrCm9aTXF2SHJLeG5pWld2bTA4ekZJ\nb3JWZkdCbGRLSCtKaXpFSEFGS1NYZ3MKLS0tIHRZZG5EZThSNWFENHlqd0duSWE4\nZDNCSUJBVnBRNW45Y0cvWnh0VTNDbmMK2bg0N5dU7fzxhtNBFWnS4xdR67Z8lgl3\no2YJcRu0OJou26Ty27mqTESkHmAscHrNZTl6zxCyT1a3rAExi8xaPA==\n-----END AGE ENCRYPTED FILE-----\n"
} }
], ],
"lastmodified": "2026-05-14T20:20:05Z", "lastmodified": "2026-03-08T19:02:47Z",
"mac": "ENC[AES256_GCM,data:HWdhOY15VcrZY4LLKgOLpU4YyQxSvzI5BAXSI9qRCSBa5V4aQOJueu5FjVoBCdATyvo4sE44WzBawYelEDHSx1v9STqZ7jUBdTOp9JsJN4mAtOjgFbLdNeYvP0enXEXC2fJtmspIbCsTE1CWOGvu33jwOhlsTfusrMJSZaFE54I=,iv:5l7/8Ma7d/Ou8URsXsjfi+i1QEq8EiVrsJaV1jJD3Tg=,tag:F7v4z5vmsQ6L1uQgHKAjIw==,type:str]", "mac": "ENC[AES256_GCM,data:32h0w397fG2rk8cjRuGv078m0kL1NcyW8gdqmO8TL82v7OEffmAzfVnOqnvQgApYIoufE6CPyuSRNxYX7eWyCCxtDeNdNXglxSgVANAjEZDNGULKPU4ssRHoYc7cymnrl5EW03ixLsWVJiYwvmGeCmlEFi5kVFY+bD3MUinNd8g=,iv:gxNJcYdhRyBpEp1DXOzA7QPiKyPjAAYzYJrRt/TbuXg=,tag:NjBueCiG4DkRvE7x2oBvnQ==,type:str]",
"version": "3.12.2" "version": "3.11.0"
} }
} }
+13 -13
View File
@@ -1,15 +1,15 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }: {
let wayland.windowManager.hyprland = let
hyprLua = import ../../../modules/user/hyprland/lua.nix { inherit lib; }; wallpaper = pkgs.fetchurl {
wallpaper = pkgs.fetchurl { name = "miku_wallpaper.jpg";
name = "miku_wallpaper.jpg"; url = "https://c.lair.moe/pub/miku_wallpaper.jpeg?raw";
url = "https://c.lair.moe/pub/miku_wallpaper.jpeg?raw"; hash = "sha256-inK4X5KzQk5FHwDw2DYy43nm7XtXlC6I0S1PkYUv+3w=";
hash = "sha256-inK4X5KzQk5FHwDw2DYy43nm7XtXlC6I0S1PkYUv+3w="; };
in {
settings = {
exec-once = [
"${lib.getExe pkgs.swww} img -o eDP-1 ${wallpaper}"
];
};
}; };
in {
wayland.windowManager.hyprland.settings.on = [
(hyprLua.onStart [
"${lib.getExe pkgs.swww} img -o eDP-1 ${wallpaper}"
])
];
} }
-49
View File
@@ -1,49 +0,0 @@
ThinkPad T480
CPU: Intel i5-8350U
RAM: 16GB planned (8GB stock + 8GB SO-DIMM)
SSD: 256GB NVMe stock; disko assumes `/dev/nvme0n1`
## Installation notes
This host uses `disko` with GPT + unencrypted EFI System Partition + LUKS + Btrfs subvolumes.
Before formatting, verify the target disk:
```bash
lsblk
```
If the internal drive is not `/dev/nvme0n1`, edit `host/Inaho/disko.nix` first.
For a 2.5" SATA SSD/HDD it will usually be `/dev/sda`.
Then partition, format and mount:
```bash
sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- \
--mode destroy,format,mount ./host/Inaho/disko.nix
```
This destroys the selected disk.
After that install the host:
```bash
sudo nixos-install --flake .#Inaho
```
The flake contains a new `disko` input. If `flake.lock` has not been updated yet, run:
```bash
nix flake lock --update-input disko
```
## After first boot
Update firmware, especially BIOS/UEFI and Thunderbolt, when batteries are installed and charged:
```bash
sudo fwupdmgr refresh
sudo fwupdmgr get-updates
sudo fwupdmgr update
```
-42
View File
@@ -1,42 +0,0 @@
{ config, pkgs, pkgs-stable, pkgs-pinned, lib, inputs, ... }: {
imports = [
inputs.disko.nixosModules.disko
./disko.nix
./secrets/secrets.nix
./modules/grub.nix
./modules/syncthing.nix
../modules/thinkpad.nix
../modules/gpu/intel.nix
(import ../modules/common.nix {
inherit lib;
inherit inputs;
hostname = "Inaho";
})
(import ../../user/common.nix {
inherit config;
inherit pkgs;
inherit pkgs-stable;
inherit pkgs-pinned;
inherit lib;
inherit inputs;
name = "sweetbread";
fullname = "Sweet Bread";
})
];
hardware.bluetooth.enable = true;
host.laptop = true;
hardware.usb-modeswitch.enable = true;
networking.modemmanager.enable = true;
programs.steam = {
enable = true;
gamescopeSession.enable = true;
};
environment.systemPackages = with pkgs; [
pkgs-stable.bottles
];
}
-85
View File
@@ -1,85 +0,0 @@
{ lib, ... }:
let
# Verify with `lsblk` before running disko. For the stock T480 NVMe setup
# this is usually correct; for a 2.5" SATA SSD/HDD change it to /dev/sda.
disk = "/dev/sda";
btrfsMountOptions = [
"compress=zstd"
"noatime"
"ssd"
"discard=async"
];
in {
disko.devices = {
disk = {
main = {
type = "disk";
device = disk;
content = {
type = "gpt";
partitions = {
ESP = {
priority = 1;
name = "ESP";
start = "1M";
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
luks = {
priority = 2;
name = "cryptsystem";
size = "100%";
content = {
type = "luks";
name = "crypted";
settings = {
# Allows fstrim/discard through LUKS for SSDs.
allowDiscards = true;
};
content = {
type = "btrfs";
extraArgs = [ "-f" "-L" "NixOS" ];
subvolumes = {
"/root" = {
mountpoint = "/";
mountOptions = btrfsMountOptions;
};
"/home" = {
mountpoint = "/home";
mountOptions = btrfsMountOptions;
};
"/nix" = {
mountpoint = "/nix";
mountOptions = btrfsMountOptions;
};
"/log" = {
mountpoint = "/var/log";
mountOptions = btrfsMountOptions;
};
"/swap" = {
mountpoint = "/.swapvol";
swap.swapfile.size = "16G";
};
};
};
};
};
};
};
};
};
};
}
-22
View File
@@ -1,22 +0,0 @@
# Do not modify this file! It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
# File systems and swap are declared in ./disko.nix.
# If you regenerate this file after installation, use:
# nixos-generate-config --no-filesystems --root /mnt
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" "thinkpad_acpi" ];
boot.extraModulePackages = [ ];
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
-13
View File
@@ -1,13 +0,0 @@
{ pkgs, ... }: let
theme = pkgs.fetchFromGitHub {
owner = "Patato777";
repo = "dotfiles";
rev = "cc363921707807d7ad3e36b462f0df793a0fe18a";
hash = "sha256-fpXGFNrzbV6K9hoZRX4tGieTLzhpPeGm6wn8CF4OGow=";
};
in {
boot.loader.grub = {
gfxmodeEfi = "1920x1080";
theme = "${theme}/grub/themes/virtuaverse";
};
}
-10
View File
@@ -1,10 +0,0 @@
{
wayland.windowManager.hyprland.settings.monitor = [
{
output = "eDP-1";
mode = "1920x1080@60";
position = "0x0";
scale = 1;
}
];
}
-39
View File
@@ -1,39 +0,0 @@
{ config, ... }: {
services.syncthing = {
enable = true;
openDefaultPorts = true;
user = "sweetbread";
dataDir = "/home/sweetbread/.config/syncthing";
key = config.sops.secrets.syncthing_key.path;
cert = config.sops.secrets.syncthing_cert.path;
settings = {
devices = {
Rias.id = "EC5AGVN-2RKJDHN-NOSB7PQ-IRYCEEW-NPPDUGX-6QGSLUU-YIT5ZZZ-RVPTHQ6";
Akeno.id = "QDW3WJX-J7ETS4R-32CUAIY-EGNM2RD-ZEHOUW2-CHOEOUG-USZOWTR-HHQS2QX";
Koneko.id = "PJFWQRY-ZFUBGDR-NV7KVBL-UBDQ4HT-KPTYP34-MUDFPJU-4EZUHTT-ZLYRMAB";
};
folders = {
"Music" = {
path = "/home/sweetbread/Music";
devices = [ "Rias" "Akeno" "Koneko" ];
};
"Obsidian" = {
path = "/home/sweetbread/Documents/Obsidian";
devices = [ "Rias" "Akeno" "Koneko" ];
};
"Documents" = {
path = "/home/sweetbread/Documents";
devices = [ "Rias" ];
};
};
};
};
systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true";
}
-20
View File
@@ -1,20 +0,0 @@
{
sops = {
age.keyFile = "/root/age.key";
secrets = {
vpn_bolt = {
format = "binary";
sopsFile = ../../Rias/secrets/vpn_bolt.db;
};
syncthing_cert = {
format = "binary";
sopsFile = ./syncthing_cert.pem;
};
syncthing_key = {
format = "binary";
sopsFile = ./syncthing_key.pem;
};
};
};
}
-14
View File
@@ -1,14 +0,0 @@
{
"data": "ENC[AES256_GCM,data:rMr83F9VyGV5dp2XqXGAh3X2sCczUb0chH/2Hn9N9tijfRsOLGqHuy/zy29aOHR0PJ4euTU3bhmxWrBV/7oTnnEfI7DFF0vX4eBDaK8BzwAzrzXHYJOAgcwuYSqEEyWiLvTGABuLhTEto9kIMLxVIssa679s7zQSRwemVJSA3fEdtYD0BLAiO/ZtiAEmitgEt4EBRp9DhJPqlh2YfMmP6DpkDSy0hk+S+0NZg7eyrp7fivldiLzjsYDwCsugFcZQtWOqLMHY0kYhou8c2CKXu8UyqVVx24DyWfBfD1TH2pOk1ZsXFsxhFFKp5wcsfi0xDF1BG4hANcHVa6pR6y5JxNzh53xaH3NuvNJFEQSGJw5fNMuCrDnkYLDpU3xezzjvvxI01y7i2A00zsLli1fc9HA67ZlP1OBzsI7FyMgZlnOXQpbqnkj+kZdYAdOTjjMzQvrPusVS3RvqvcWj1qZtnHa1ZGmWh7xG0J10lQB4uDmTSxWoUUi7VmLXTC16HQNMySd8GbFmD/4Nj+/SxDShgsiug7L4hICjPC8Isosy99tE2wRXpjmMYUdlD7zu/vyEMxVPhkWnJyZZPXG+DjGBc/Diaw4ufYNxUs4yIRDceMArirubt/sN/eUoGOBGVWxvGm0/olTott7Yr+YKRSrDyWo9SWCz1qgz/ydpXm+xE7bPtbj9eAObZwneB/0tZTyo8o1WKd9yUST89m91EMQ31R97yCBwDW19VftWVCZH2w+QHNunih4ZUNiALQS745T2petbvc63iNiZswu0l3qoVM8x3y1RhAPLbsZpwQWSca307iDfBTB6uVW4HwLtL30=,iv:ajC3mjCYKUqS7XGIN64NiJoG6wHMvGdcHhazSO860ms=,tag:31fWG7m2neW2Pft9TjmBGg==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuQUNTSDVIeDRuMmtTWXZD\nU0x4OVJrUStFeW5QV0pOZ2hEZnJZQ09UbW5RCmwxbjhuWis1Q3BCTGtOdS8zNE0w\nL0pDK3dBY1hxZ2dCNG96RlA0dkNWVWMKLS0tIHFld2hUdm11dk5hT2ZtRXpId0VG\nRDM0L05jS0lGcnJBYWVNWElIazdlaUEKugvBGcCzYTZL6aC6mI6GCzhiPFYql75z\nSBfalDmqSVU2k1IBqsNHIYSxzOXwUiGS3MSHJUCf7M2y9X3dHJGeyw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk"
}
],
"lastmodified": "2026-07-21T20:27:59Z",
"mac": "ENC[AES256_GCM,data:lYZH1f3TyvcgqWI9hVOP3l2xImRh+LL0volXVUYSdGBnQTsAJfzMdsol/SsETwNNn+KrANC3ucO0/MXOWDK7ZPJ5Oq9R+OQnM8LK9/5mNfbzgodTw0RaH8FsrrtBCtHn3H2rlrBoPFEArblWKOh0G9iyrmufT09OREGt/G0tE5o=,iv:vmB1CY3sVajvLS8zAS/0I+NgnAOStbUkzQdw6XY45y4=,tag:mZP/eZVn+DJq+OT1ghtOkQ==,type:str]",
"version": "3.13.2"
}
}
-14
View File
@@ -1,14 +0,0 @@
{
"data": "ENC[AES256_GCM,data:2nMwCxU1y0zE5VtnmEf3lT4XyI9e8dokPkipo3TXpxuRJZ9OXCOb0n4pHb4Xx9OlDgAeW2UX70cR1Wtj7QPQx9h/HYZTmUeIP4rvlTPhaxs/2F33ud1lPKceV2DK2q8G/EvPLnlCcLWMvy6BVsqBlNmjAzNonWI=,iv:7H0o0i3zp7K2demt1O2Pw4BNt+2q4PhHBw1K/jC7OH4=,tag:Bx82eo5kQqwlb6egYmopgQ==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2Vzl3M3pFblY5SmRQRUtI\nNWFCbWZJQTJTOWFHdTd1YkJEbXFGOFhBTUNNClBKdWhGdmh3Q2dUNkpMUUU3Zmdq\nUFd1M2twNW1KRGErRHUvc1BLY2pMT3MKLS0tIElVZ0RVVFQrb1FuYnJ0OU44RWZK\nbnpJZnFLR3kzV3VRaytQRDMrYkg5S2sKkr97EwJmtcIsRYH4di+tadTWnWzuCDa9\ngY+CKCVEPUgD1AXSgCwCP2AVd/zaKUbm6d6UA2QzZyqGsRim56WFsQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk"
}
],
"lastmodified": "2026-07-21T20:28:23Z",
"mac": "ENC[AES256_GCM,data:ohYjzIYDilW7lsmZFZXpF629yevO2p8laA7Zl0+NCvZ8dB4nthLUePsnLTYCrEo5ADbboM5Cka11FiYbmB1IMR4mEdRwTN37EsQtyYLZbZ+j4XPsuXO0UT0NmWWiFNJlQEWfTVbhaZRDQXcPpVvm+6qQfRub018/0C59oWpmbyA=,iv:SX1QDDUWZyxE0zODAImcGGHJI7KGKYx9/6Q9F+9SVCQ=,tag:AExTZIfAKTCeU9c3Qj+IUw==,type:str]",
"version": "3.13.2"
}
}
-1
View File
@@ -3,7 +3,6 @@
./secrets/secrets.nix ./secrets/secrets.nix
./modules/grub.nix ./modules/grub.nix
./modules/syncthing.nix ./modules/syncthing.nix
./modules/rgb.nix
../modules/gpu/nvidia.nix ../modules/gpu/nvidia.nix
(import ../modules/common.nix { (import ../modules/common.nix {
+3 -7
View File
@@ -11,10 +11,6 @@
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
environment.etc.crypttab.text = ''
storage UUID=9327148b-788a-4c23-ac73-28464ffabe1b none luks
'';
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-label/NixOS"; device = "/dev/disk/by-label/NixOS";
fsType = "ext4"; fsType = "ext4";
@@ -27,9 +23,9 @@
}; };
fileSystems."/mnt/D" = { fileSystems."/mnt/D" = {
device = "/dev/mapper/storage"; device = "/dev/disk/by-label/Data";
fsType = "ext4"; fsType = "ntfs3";
options = [ "noatime" "nofail" ]; options = ["umask=0022" "gid=100" "uid=1000" "nofail" ];
}; };
swapDevices = [ ]; swapDevices = [ ];
+37 -43
View File
@@ -1,50 +1,44 @@
{ pkgs, lib, ... }: { pkgs, lib, ...}: {
let wayland.windowManager.hyprland = let
hyprLua = import ../../../modules/user/hyprland/lua.nix { inherit lib; }; monitor-switcher = pkgs.writers.writeBashBin "monitor_switcher" /*bash*/ ''
MODE=$1
monitor-switcher = pkgs.writers.writeBashBin "monitor_switcher" /*bash*/ '' case $MODE in
MODE=$1 "tv")
hyprctl keyword monitor "DP-3, 1920x1080@60, 3840x0, 1"
hyprctl keyword monitor "HDMI-A-1, 3840x2160@60, 0x0, 1"
notify-send "TV mode"
;;
case $MODE in "mirror")
"tv") hyprctl keyword monitor "HDMI-A-1, 3840x2160@60, 0x0, 1"
hyprctl eval 'hl.monitor({ output = "DP-3", mode = "1920x1080@60", position = "3840x0", scale = 1 })' hyprctl keyword monitor "DP-3, preferred, auto, 1, mirror, HDMI-A-1"
hyprctl eval 'hl.monitor({ output = "HDMI-A-1", mode = "3840x2160@60", position = "0x0", scale = 1 })' notify-send "TV-only mode"
notify-send "TV mode" ;;
;;
"mirror") "display"|*)
hyprctl eval 'hl.monitor({ output = "HDMI-A-1", mode = "3840x2160@60", position = "0x0", scale = 1 })' hyprctl keyword monitor "HDMI-A-1, disable"
hyprctl eval 'hl.monitor({ output = "DP-3", mode = "preferred", position = "auto", scale = 1, mirror = "HDMI-A-1" })' hyprctl keyword monitor "DP-3, 3440x1440@165, 0x0, 1"
notify-send "TV-only mode" notify-send "Display mode"
;; ;;
"display"|*) esac
hyprctl eval 'hl.monitor({ output = "HDMI-A-1", disabled = true })' '';
hyprctl eval 'hl.monitor({ output = "DP-3", mode = "3440x1440@165", position = "0x0", scale = 1 })' in {
notify-send "Display mode" settings = {
;; monitor = [
esac "DP-3, 3440x1440@165, auto-right, 1"
''; # "HDMI-A-1, 3840x2160@60, auto-left, 2"
in { "HDMI-A-1, disabled"
wayland.windowManager.hyprland.settings = { ];
monitor = [
{
output = "DP-3";
mode = "3440x1440@165";
position = "auto-right";
scale = 1;
}
{
output = "HDMI-A-1";
disabled = true;
}
];
bind = [ bind = [
(hyprLua.bind "XF86Calculator" (hyprLua.exec "ghostty --title=pulsemixer -e pulsemixer")) '', XF86Calculator, exec, ghostty --title=pulsemixer -e pulsemixer''
(hyprLua.bind "SUPER + F1" (hyprLua.exec "${lib.getExe monitor-switcher} tv"))
(hyprLua.bind "SUPER + F2" (hyprLua.exec "${lib.getExe monitor-switcher} mirror")) ''$mainMod, F1, exec, ${lib.getExe monitor-switcher} tv''
(hyprLua.bind "SUPER + F3" (hyprLua.exec "${lib.getExe monitor-switcher}")) ''$mainMod, F2, exec, ${lib.getExe monitor-switcher} mirror''
]; ''$mainMod, F3, exec, ${lib.getExe monitor-switcher}''
];
};
}; };
} }
-17
View File
@@ -1,17 +0,0 @@
{ pkgs, ... }:{
services.hardware.openrgb = {
enable = true;
package = pkgs.openrgb-with-all-plugins;
};
environment.systemPackages = with pkgs; [
openrgb-with-all-plugins
i2c-tools
pciutils
];
hardware.i2c.enable = true;
boot.kernelModules = [ "i2c-dev" ];
users.groups.i2c.members = [ "sweetbread" ];
}
+3 -14
View File
@@ -11,9 +11,8 @@
settings = { settings = {
devices = { devices = {
Akeno.id = "QDW3WJX-J7ETS4R-32CUAIY-EGNM2RD-ZEHOUW2-CHOEOUG-USZOWTR-HHQS2QX"; Akeno = { id = "QDW3WJX-J7ETS4R-32CUAIY-EGNM2RD-ZEHOUW2-CHOEOUG-USZOWTR-HHQS2QX"; };
Koneko.id = "PJFWQRY-ZFUBGDR-NV7KVBL-UBDQ4HT-KPTYP34-MUDFPJU-4EZUHTT-ZLYRMAB"; Koneko = { id = "PJFWQRY-ZFUBGDR-NV7KVBL-UBDQ4HT-KPTYP34-MUDFPJU-4EZUHTT-ZLYRMAB"; };
Inaho.id = "GEHWQFQ-MPIMQ7R-QEWSOEB-BIZAHSZ-5YOFATK-KDIXFMV-JX3OF6G-ZPNZMA4";
}; };
folders = { folders = {
@@ -34,17 +33,7 @@
"Music" = { "Music" = {
path = "/home/sweetbread/Music"; path = "/home/sweetbread/Music";
devices = [ "Akeno" "Koneko" "Inaho" ]; devices = [ "Akeno" "Koneko" ];
};
"Obsidian" = {
path = "/mnt/D/Obsidian";
devices = [ "Koneko" "Inaho" ];
};
"Documents" = {
path = "/home/sweetbread/Documents";
devices = [ "Inaho" ];
}; };
}; };
}; };
+7 -8
View File
@@ -1,10 +1,9 @@
{ {
wayland.windowManager.hyprland.settings.monitor = [ wayland.windowManager.hyprland = {
{ settings = {
output = "eDP-1"; monitor = [
mode = "1920x1080@60"; "eDP-1, 1920x1080@60, 0x0, 1"
position = "0x0"; ];
scale = 1; };
} };
];
} }
+1 -1
View File
@@ -30,7 +30,7 @@
nix.settings = { nix.settings = {
keep-going = true; keep-going = true;
extra-substituters = [ "https://nix.lair.moe/main" ]; extra-substituters = [ "https://nix.lair.moe/main" ];
extra-trusted-public-keys = [ "main:tR2gNhCBJHKAlVgohPNHBhGnWL55tB8SxXmMWJe5lo8=" ]; extra-trusted-public-keys = [ "main:kpwMe+9BsGJ/IUb7i3iadaV38y5/Yuqoct0mf7wI9ds=" ];
experimental-features = [ "nix-command" "flakes" ]; experimental-features = [ "nix-command" "flakes" ];
}; };
networking.hostName = hostname; networking.hostName = hostname;
-83
View File
@@ -1,83 +0,0 @@
{ config, lib, pkgs, ... }: {
# T480-specific hardware defaults.
hardware = {
enableRedistributableFirmware = true;
trackpoint = {
enable = true;
emulateWheel = true;
};
};
boot = {
supportedFilesystems = [ "btrfs" ];
initrd.availableKernelModules = [
"nvme"
"ahci"
"xhci_pci"
"usb_storage"
"usbhid"
"sd_mod"
"rtsx_pci_sdmmc"
];
kernelModules = [ "kvm-intel" "thinkpad_acpi" ];
kernelParams = [
# Prefer S3/deep sleep when BIOS exposes it. If suspend behaves worse,
# remove this and use the BIOS sleep setting instead.
"mem_sleep_default=deep"
];
};
powerManagement.enable = true;
services = {
# Firmware updates for BIOS/UEFI, Thunderbolt, SSDs where LVFS supports it.
fwupd.enable = true;
# Helps Intel laptops keep sane thermal behaviour under load.
thermald.enable = true;
# Fingerprint reader support. If fprintd does not detect the reader,
# leaving this enabled is harmless; login can still use a password.
fprintd.enable = true;
logind.settings.Login = {
HandleLidSwitch = "suspend-then-hibernate";
HandleLidSwitchExternalPower = "suspend-then-hibernate";
HandlePowerKey = "poweroff";
};
tlp.settings = {
# Preserve batteries when the laptop is usually on AC.
# Raise STOP_* to 100 if maximum autonomy matters more than battery wear.
START_CHARGE_THRESH_BAT0 = 70;
STOP_CHARGE_THRESH_BAT0 = 95;
START_CHARGE_THRESH_BAT1 = 70;
STOP_CHARGE_THRESH_BAT1 = 85;
RESTORE_THRESHOLDS_ON_BAT = 1;
# NVMe/SATA SSD power saving without making the system too sluggish.
AHCI_RUNTIME_PM_ON_AC = "on";
AHCI_RUNTIME_PM_ON_BAT = "auto";
SATA_LINKPWR_ON_AC = "med_power_with_dipm";
SATA_LINKPWR_ON_BAT = "med_power_with_dipm";
# Usually safe on ThinkPads; disable if some USB device randomly disconnects.
USB_AUTOSUSPEND = 1;
};
};
networking.networkmanager.wifi.powersave = true;
environment.systemPackages = with pkgs; [
acpi
lm_sensors
pciutils
powertop
smartmontools
usbutils
nvme-cli
];
}
+1 -1
View File
@@ -15,7 +15,6 @@
./host/virtmanager.nix ./host/virtmanager.nix
./host/vpn.nix ./host/vpn.nix
./host/yggdrasil.nix ./host/yggdrasil.nix
./host/mtp.nix
]; ];
programs = { programs = {
@@ -49,6 +48,7 @@
}; };
services = { services = {
udisks2.enable = true;
fstrim.enable = true; fstrim.enable = true;
upower.enable = true; upower.enable = true;
}; };
+1 -1
View File
@@ -9,7 +9,7 @@ lib.mkIf config.programs.gamemode.enable {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
mangohud mangohud
protonup-ng protonup-ng
bottles pkgs-stable.bottles
pkgs-stable.heroic pkgs-stable.heroic
prismlauncher prismlauncher
]; ];
+3 -3
View File
@@ -4,11 +4,11 @@ lib.mkIf config.host.laptop {
services.tlp = { services.tlp = {
enable = true; enable = true;
settings = { settings = {
CPU_SCALING_GOVERNOR_ON_AC = "powersave"; CPU_SCALING_GOVERNOR_ON_AC = "performance";
CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance"; CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power"; CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
CPU_MIN_PERF_ON_AC = 0; CPU_MIN_PERF_ON_AC = 0;
CPU_MAX_PERF_ON_AC = 100; CPU_MAX_PERF_ON_AC = 100;
-5
View File
@@ -1,5 +0,0 @@
{ pkgs, ... }: {
environment.systemPackages = [ pkgs.glib ];
programs.fuse.enable = true;
services.gvfs.enable = true;
}
+1 -1
View File
@@ -1,7 +1,7 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
let let
sol = pkgs.writers.writePython3 "shutdown-on-lan.py" { sol = pkgs.writers.writePython3 "shutdown-on-lan.py" {
libraries = ps: [ ps.psutil ]; libraries = [ pkgs.python313Packages.psutil ];
flakeIgnore = [ "E302" "E305" "E501" "E701" ]; flakeIgnore = [ "E302" "E305" "E501" "E701" ];
} /*py*/ '' } /*py*/ ''
# https://habr.com/ru/articles/816765/ # https://habr.com/ru/articles/816765/
+1 -22
View File
@@ -1,29 +1,8 @@
{ pkgs-pinned, lib, ... }: { {
programs.clash-verge = { programs.clash-verge = {
enable = true; enable = true;
package = pkgs-pinned.clash-verge-rev;
serviceMode = true; serviceMode = true;
tunMode = true; tunMode = true;
autoStart = true; autoStart = true;
}; };
systemd.services.clash-verge.serviceConfig = {
CapabilityBoundingSet = lib.mkForce [
"CAP_NET_ADMIN"
"CAP_NET_RAW"
"CAP_SYS_ADMIN"
"CAP_DAC_OVERRIDE"
"CAP_DAC_READ_SEARCH"
"CAP_SYS_PTRACE"
"CAP_SETUID"
"CAP_SETGID"
"CAP_CHOWN"
"CAP_MKNOD"
];
AmbientCapabilities = [
"CAP_DAC_READ_SEARCH"
"CAP_SYS_PTRACE"
];
};
} }
+1 -2
View File
@@ -4,8 +4,7 @@
persistentKeys = true; persistentKeys = true;
settings = { settings = {
Peers = [ Peers = [
"tcp://box.paulll.cc:13337" "tls://ip4.01.ekb.ru.dioni.su:9003"
"tcp://lair.moe:5001"
]; ];
}; };
}; };
+1 -174
View File
@@ -1,107 +1,8 @@
{ inputs, pkgs, lib, config, ... }: let {
helixSteel =
inputs.helix-steel.packages.${pkgs.system}.default.overrideAttrs (old: {
cargoBuildFlags = (old.cargoBuildFlags or []) ++ [
"--features"
"steel,git"
];
});
comment-headers = pkgs.fetchurl {
url = "https://github.com/codingvivi/comment-dividers.hx/raw/refs/heads/main/comment_headers.scm";
name = "comment_headers.scm";
hash = "sha256-ohgn6DFJl0rdRJuri6Frs/uUlUsPxMvPHDuw4FS3qEE=";
};
patched-comment-headers = pkgs.runCommand "comment_headers.scm" { } ''
install -m 0644 ${comment-headers} "$out"
${pkgs.python3}/bin/python3 - <<'PY'
from pathlib import Path
import os
import sys
p = Path(os.environ["out"])
s = p.read_text()
start_marker = "(define (get-block-delims)"
end_marker = "(define (delete_till_first_nonwhitespace!)"
try:
start = s.index(start_marker)
end = s.index(end_marker, start)
except ValueError as e:
sys.exit(f"failed to find function markers: {e}")
new_get_block_delims = """(define (get-block-delims)
(helix.static.open_above)
(helix.static.insert_string "test_string")
(helix.static.normal_mode)
(helix.static.extend_to_line_bounds)
(helix.static.trim_selections)
(helix.static.toggle_comments)
(let* ([commented-test-string (helix.static.current-highlighted-text!)]
[strings-without-whitespace (split-whitespace commented-test-string)])
(delete-line-noyank!)
(cond
[(and (> (length strings-without-whitespace) 1)
(equal? (last strings-without-whitespace) "test_string"))
(list (first strings-without-whitespace) "")]
[(> (length strings-without-whitespace) 2)
(list (first strings-without-whitespace) (last strings-without-whitespace))]
[else
(list "" "")])))
"""
s = s[:start] + new_get_block_delims + s[end:]
old = "(make-line line-length fill-pattern #f padding-pattern)"
new = "(make-line line-length \"\" fill-pattern padding-pattern)"
if old not in s:
sys.exit("failed to find insert-divider make-line call")
s = s.replace(old, new)
p.write_text(s)
PY
'';
in {
home.packages = with pkgs; [
asm-lsp
fasm
steel
wakatime-cli
];
home.activation.installWakatimeHx = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
export PATH="${pkgs.steel}/bin:$PATH"
export STEEL_HOME="${config.xdg.dataHome}/steel"
if [ ! -f "$STEEL_HOME/cogs/wakatime/wakatime.scm" ]; then
forge pkg install --git https://github.com/Xerxes-2/wakatime.hx.git
fi
'';
programs.helix = { programs.helix = {
enable = true; enable = true;
package = helixSteel;
defaultEditor = true; defaultEditor = true;
languages = {
language-server.asm-lsp.command = "asm-lsp";
language = [
{
name = "nasm";
file-types = [ "asm" "inc" ];
comment-token = ";";
language-servers = [ "asm-lsp" ];
}
];
};
settings = { settings = {
# theme = "catppuccin-mocha"; # theme = "catppuccin-mocha";
editor = { editor = {
@@ -123,80 +24,6 @@ in {
select = "underline"; select = "underline";
}; };
}; };
keys.normal = {
space = {
C-a = {
b = ":fasm-build";
r = ":fasm-run";
c = ":fasm-clean";
};
C-c = {
h = ":comment-h1";
j = ":comment-h2";
k = ":comment-h3";
d = ":comment-divider";
};
};
S-down = ["extend_to_line_bounds" "delete_selection" "paste_after"];
S-up = ["extend_to_line_bounds" "delete_selection" "move_line_up" "paste_before"];
};
}; };
}; };
xdg.configFile = {
"asm-lsp/.asm-lsp.toml".text = ''
[default_config]
assembler = "fasm"
instruction_set = "x86/x86-64"
[opts]
compiler = "fasm"
diagnostics = true
default_diagnostics = true
'';
"helix/cogs/comment_headers.scm".source = patched-comment-headers;
"helix/helix.scm".text = ''
(require (prefix-in div. "cogs/comment_headers.scm"))
(require (prefix-in helix. "helix/commands.scm"))
(provide comment-h1
comment-h2
comment-h3
comment-divider
fasm-build
fasm-run
fasm-clean)
(define (comment-h1)
(div.insert-h1!))
(define (comment-h2)
(div.insert-h2!))
(define (comment-h3)
(div.insert-h3!))
(define (comment-divider)
(div.insert-divider! 80 "~"))
(define (fasm-build)
(helix.write)
(helix.run-shell-command "just" "build"))
(define (fasm-run)
(helix.write)
(helix.run-shell-command "just" "run"))
(define (fasm-clean)
(helix.run-shell-command "just" "clean"))
'';
"helix/init.scm".text = ''
;; Steel init file
(require "wakatime/wakatime.scm")
'';
};
} }
+174 -151
View File
@@ -1,26 +1,6 @@
{ pkgs, lib, config, osConfig, inputs, username, ... }: { pkgs, lib, config, osConfig, inputs, username, ... }: let
let
optImport = path: lib.optional (builtins.pathExists path) path; optImport = path: lib.optional (builtins.pathExists path) path;
hostname = osConfig.networking.hostName; hostname = osConfig.networking.hostName;
hyprLua = import ./hyprland/lua.nix { inherit lib; };
inherit (hyprLua) bind bindWithFlags exec onStart;
direction = {
left = "l";
right = "r";
up = "u";
down = "d";
};
workspaceBinds = lib.concatMap (workspace:
let
key = if workspace == 10 then "0" else toString workspace;
workspaceValue = toString workspace;
in [
(bind "SUPER + ${key}" "hl.dsp.focus({ workspace = ${workspaceValue} })")
(bind "SUPER + SHIFT + ${key}" "hl.dsp.window.move({ workspace = ${workspaceValue}, follow = false })")
]
) (lib.range 1 10);
in { in {
imports = [ imports = [
./hyprland/zoom.nix ./hyprland/zoom.nix
@@ -36,12 +16,13 @@ in {
wl-clip-persist wl-clip-persist
xclip xclip
awww awww
wifitui
]; ];
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = let
colors = config.lib.stylix.colors;
in {
enable = true; enable = true;
configType = "lua"; configType = "hyprlang";
xwayland.enable = true; xwayland.enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
@@ -50,158 +31,200 @@ in {
]; ];
settings = { settings = {
config = { "$mainMod" = "SUPER";
ecosystem = {
no_donation_nag = true;
no_update_news = true;
};
cursor.no_hardware_cursors = 1; ecosystem = {
no_donation_nag = true;
debug = { no_update_news = true;
disable_logs = false;
enable_stdout_logs = true;
};
general."col.inactive_border" = lib.mkForce "rgba(00000000)";
decoration = {
inactive_opacity = lib.mkDefault 0.95;
border_part_of_window = false;
};
misc.focus_on_activate = true;
input = {
kb_layout = "us,ru";
kb_options = "grp:caps_toggle";
numlock_by_default = true;
follow_mouse = 1;
touchpad.natural_scroll = false;
sensitivity = 0;
};
gestures = {
workspace_swipe_invert = true;
workspace_swipe_distance = 200;
workspace_swipe_forever = true;
};
}; };
env = [ env = [
{ _args = [ "XDG_SESSION_TYPE" "wayland" ]; } "XDG_SESSION_TYPE,wayland"
{ _args = [ "QT_QPA_PLATFORM" "wayland" ]; } "QT_QPA_PLATFORM,wayland"
{ _args = [ "QT_QPA_PLATFORMTHEME" "xdgdesktopportal" ]; } "QT_QPA_PLATFORMTHEME,xdgdesktopportal"
{ _args = [ "GTK_USE_PORTAL" "1" ]; } "GTK_USE_PORTAL,1"
{ _args = [ "TDESKTOP_USE_GTK_FILE_DIALOG" "1" ]; } "TDESKTOP_USE_GTK_FILE_DIALOG,1"
{ _args = [ "NIXOS_OZONE_WL" "1" ]; } "NIXOS_OZONE_WL,1"
{ _args = [ "ELECTRON_OZONE_PLATFORM_HINT" "auto" ]; } "ELECTRON_OZONE_PLATFORM_HINT,auto"
{ _args = [ "XDG_CURRENT_DESKTOP" "Hyprland" ]; }
{ _args = [ "XDG_SESSION_DESKTOP" "Hyprland" ]; } "XDG_CURRENT_DESKTOP,Hyprland"
{ _args = [ "XCURSOR_SIZE" (toString config.stylix.cursor.size) ]; } "XDG_SESSION_DESKTOP,Hyprland"
{ _args = [ "XCURSOR_THEME" config.stylix.cursor.name ]; }
{ _args = [ "XDG_SCREENSHOTS_DIR" "~/screens" ]; } "XCURSOR_SIZE, ${toString config.stylix.cursor.size}"
"XCURSOR_THEME, ${config.stylix.cursor.name}"
"XDG_SCREENSHOTS_DIR,~/screens"
]; ];
cursor.no_hardware_cursors = true;
debug = {
disable_logs = false;
enable_stdout_logs = true;
};
general = {
"col.inactive_border" = lib.mkForce "rgba(00000000)";
};
decoration.inactive_opacity = lib.mkDefault .95;
decoration.border_part_of_window = false;
misc = {
focus_on_activate = true;
};
input = {
kb_layout = "us,ru";
kb_options = "grp:caps_toggle";
numlock_by_default = true;
follow_mouse = 1;
touchpad = {
natural_scroll = false;
};
sensitivity = 0;
};
gestures = {
workspace_swipe_invert = true;
workspace_swipe_distance = 200;
workspace_swipe_forever = true;
};
gesture = [ gesture = [
{ "3, horizontal, workspace"
fingers = 3;
direction = "horizontal";
action = "workspace";
}
]; ];
workspace_rule = [ workspace = [
{ "w[t1], gapsout:0"
workspace = "w[t1]";
gaps_out = 0;
}
]; ];
window_rule = [ windowrule = [
{ match.class = "imv"; float = true; } "match:class imv, float 1"
{ match.class = "feh"; float = true; } "match:class feh, float 1"
{ match.class = "mpv"; float = true; } "match:class mpv, float 1"
{ match.title = "Список друзей"; float = true; }
{ match.title = "wifitui"; float = true; } "match:title Список друзей, float 1"
{ match.title = "pulsemixer"; float = true; } "match:title nmtui, float 1"
{ match.title = "clipse"; float = true; } "match:title pulsemixer, float 1"
{ match.title = "clipse"; size = [ 622 652 ]; }
{ match.focus = true; rounding = 0; } "match:title clipse, float 1"
{ "match:title clipse, size 622 652"
match = {
float = false; "match:focus 1, rounding 0"
workspace = "w[t1]"; "match:float 0, match:workspace w[t1], border_size 0"
};
border_size = 0;
}
]; ];
on = lib.mkBefore [ exec-once = lib.mkBefore [
(onStart [ "systemctl --user start plasma-polkit-agent"
"systemctl --user start plasma-polkit-agent" "${lib.getExe' pkgs.dbus "dbus-update-activation-environment"} --systemd --all"
"${lib.getExe' pkgs.dbus "dbus-update-activation-environment"} --systemd --all" "systemctl --user import-environment XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE WAYLAND_DISPLAY DISPLAY GTK_USE_PORTAL QT_QPA_PLATFORMTHEME TDESKTOP_USE_GTK_FILE_DIALOG NIXOS_OZONE_WL ELECTRON_OZONE_PLATFORM_HINT"
"systemctl --user import-environment XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE WAYLAND_DISPLAY DISPLAY GTK_USE_PORTAL QT_QPA_PLATFORMTHEME TDESKTOP_USE_GTK_FILE_DIALOG NIXOS_OZONE_WL ELECTRON_OZONE_PLATFORM_HINT" "awww-daemon"
"awww-daemon" "wl-clip-persist --clipboard both"
"wl-clip-persist --clipboard both" "clipse -listen"
"clipse -listen" "${lib.getExe' pkgs.udiskie "udiskie"}"
"${lib.getExe' pkgs.udiskie "udiskie"}"
])
]; ];
bind = [ bind = [
(bind "SUPER + V" (exec "ghostty --title=clipse -e clipse")) "$mainMod, V, exec, ghostty --title=clipse -e clipse"
(bind "SUPER + RETURN" (exec "ghostty"))
(bind "SUPER + Q" "hl.dsp.window.close()")
(bind "SUPER + M" "hl.dsp.exit()")
(bind "SUPER + E" (exec "ghostty -e sh -c yazi"))
(bind "SUPER + F" "hl.dsp.window.float({ action = \"toggle\" })")
(bind "SUPER + P" "hl.dsp.window.pseudo({ action = \"toggle\" })")
(bind "SUPER + J" "hl.dsp.layout(\"togglesplit\")")
(bind "SUPER + K" "hl.dsp.layout(\"swapsplit\")")
(bind "SUPER + LEFT" "hl.dsp.focus({ direction = \"${direction.left}\" })") "$mainMod, Return, exec, ghostty"
(bind "SUPER + RIGHT" "hl.dsp.focus({ direction = \"${direction.right}\" })") "$mainMod, Q, killactive,"
(bind "SUPER + UP" "hl.dsp.focus({ direction = \"${direction.up}\" })") "$mainMod, M, exit,"
(bind "SUPER + DOWN" "hl.dsp.focus({ direction = \"${direction.down}\" })") "$mainMod, E, exec, ghostty -e sh -c yazi"
"$mainMod, F, togglefloating,"
"$mainMod, P, pseudo, # dwindle"
"$mainMod, J, layoutmsg, togglesplit"
"$mainMod, K, layoutmsg, swapsplit"
(bind "SUPER + SHIFT + LEFT" "hl.dsp.window.swap({ direction = \"${direction.left}\" })") # Move focus with mainMod + arrow keys
(bind "SUPER + SHIFT + RIGHT" "hl.dsp.window.swap({ direction = \"${direction.right}\" })") "$mainMod, left, movefocus, l"
(bind "SUPER + SHIFT + UP" "hl.dsp.window.swap({ direction = \"${direction.up}\" })") "$mainMod, right, movefocus, r"
(bind "SUPER + SHIFT + DOWN" "hl.dsp.window.swap({ direction = \"${direction.down}\" })") "$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
(bind "SUPER + CTRL + LEFT" "hl.dsp.window.resize({ x = -60, y = 0, relative = true })") # Moving windows
(bind "SUPER + CTRL + RIGHT" "hl.dsp.window.resize({ x = 60, y = 0, relative = true })") "$mainMod SHIFT, left, swapwindow, l"
(bind "SUPER + CTRL + UP" "hl.dsp.window.resize({ x = 0, y = -60, relative = true })") "$mainMod SHIFT, right, swapwindow, r"
(bind "SUPER + CTRL + DOWN" "hl.dsp.window.resize({ x = 0, y = 60, relative = true })") "$mainMod SHIFT, up, swapwindow, u"
] ++ workspaceBinds ++ [ "$mainMod SHIFT, down, swapwindow, d"
(bind "SUPER + SHIFT + F" "hl.dsp.window.fullscreen({ action = \"toggle\", mode = \"fullscreen\" })")
(bind "SUPER + mouse_down" "hl.dsp.focus({ workspace = \"e-1\" })")
(bind "SUPER + mouse_up" "hl.dsp.focus({ workspace = \"e+1\" })")
(bind "SUPER + F3" (exec "${lib.getExe pkgs.brightnessctl} -d *::kbd_backlight set +33%")) # Window resizing X Y
(bind "SUPER + F2" (exec "${lib.getExe pkgs.brightnessctl} -d *::kbd_backlight set 33%-")) "$mainMod CTRL, left, resizeactive, -60 0"
"$mainMod CTRL, right, resizeactive, 60 0"
"$mainMod CTRL, up, resizeactive, 0 -60"
"$mainMod CTRL, down, resizeactive, 0 60"
(bind "XF86AudioMute" (exec "pamixer -t")) # Switch workspaces with mainMod + [0-9]
(bind "XF86AudioMicMute" (exec "pamixer --default-source -m")) "$mainMod, 1, workspace, 1"
(bind "XF86AudioPlay" (exec "${lib.getExe pkgs.playerctl} play-pause")) "$mainMod, 2, workspace, 2"
(bind "XF86Explorer" (exec "ghostty -e sh -c yazi")) "$mainMod, 3, workspace, 3"
(bind "XF86Mail" (exec "thunderbird")) "$mainMod, 4, workspace, 4"
(bind "XF86WWW" (exec "google-chrome-stable")) "$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
(bind "XF86MonBrightnessDown" (exec "${lib.getExe pkgs.brightnessctl} set 5%-")) # Move active window to a workspace with mainMod + SHIFT + [0-9]
(bind "XF86MonBrightnessUp" (exec "${lib.getExe pkgs.brightnessctl} set +5%")) "$mainMod SHIFT, 1, movetoworkspacesilent, 1"
"$mainMod SHIFT, 2, movetoworkspacesilent, 2"
"$mainMod SHIFT, 3, movetoworkspacesilent, 3"
"$mainMod SHIFT, 4, movetoworkspacesilent, 4"
"$mainMod SHIFT, 5, movetoworkspacesilent, 5"
"$mainMod SHIFT, 6, movetoworkspacesilent, 6"
"$mainMod SHIFT, 7, movetoworkspacesilent, 7"
"$mainMod SHIFT, 8, movetoworkspacesilent, 8"
"$mainMod SHIFT, 9, movetoworkspacesilent, 9"
"$mainMod SHIFT, 0, movetoworkspacesilent, 10"
(bindWithFlags "XF86AudioRaiseVolume" (exec "pamixer -i 5") { repeating = true; }) "$mainMod SHIFT, F, fullscreen"
(bindWithFlags "XF86AudioLowerVolume" (exec "pamixer -d 5") { repeating = true; })
(bindWithFlags "XF86AudioPrev" (exec "${lib.getExe pkgs.playerctl} position 5-") { click = true; }) # Scroll through existing workspaces with mainMod + scroll
(bindWithFlags "XF86AudioNext" (exec "${lib.getExe pkgs.playerctl} position 5+") { click = true; }) "$mainMod, mouse_down, workspace, e+1"
(bindWithFlags "XF86AudioPrev" (exec "${lib.getExe pkgs.playerctl} previous") { long_press = true; }) "$mainMod, mouse_up, workspace, e-1"
(bindWithFlags "XF86AudioNext" (exec "${lib.getExe pkgs.playerctl} next") { long_press = true; })
(bindWithFlags "SUPER + mouse:272" "hl.dsp.window.drag()" { mouse = true; }) # Keyboard backlight
(bindWithFlags "SUPER + mouse:273" "hl.dsp.window.resize()" { mouse = true; }) "$mainMod, F3, exec, ${lib.getExe pkgs.brightnessctl} -d *::kbd_backlight set +33%"
"$mainMod, F2, exec, ${lib.getExe pkgs.brightnessctl} -d *::kbd_backlight set 33%-"
# Volume and Media Control
", XF86AudioMute, exec, pamixer -t"
", XF86AudioMicMute, exec, pamixer --default-source -m"
", XF86AudioPlay, exec, ${lib.getExe pkgs.playerctl} play-pause"
", XF86Explorer, exec, ghostty -e sh -c yazi"
", XF86Mail, exec, thunderbird"
", XF86WWW, exec, google-chrome-stable" # TODO: Replace hard-code to some variable
# Brightness control
", XF86MonBrightnessDown, exec, ${lib.getExe pkgs.brightnessctl} set 5%- "
", XF86MonBrightnessUp, exec, ${lib.getExe pkgs.brightnessctl} set +5% "
];
binde = [
", XF86AudioRaiseVolume, exec, pamixer -i 5 "
", XF86AudioLowerVolume, exec, pamixer -d 5 "
];
bindc = [
", XF86AudioPrev, exec, ${lib.getExe pkgs.playerctl} position 5-"
", XF86AudioNext, exec, ${lib.getExe pkgs.playerctl} position 5+"
];
bindo = [
", XF86AudioPrev, exec, ${lib.getExe pkgs.playerctl} previous"
", XF86AudioNext, exec, ${lib.getExe pkgs.playerctl} next"
];
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = [
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
]; ];
}; };
}; };
-35
View File
@@ -1,35 +0,0 @@
{ lib }:
let
inline = lib.generators.mkLuaInline;
quote = builtins.toJSON;
in rec {
inherit inline;
exec = command: "hl.dsp.exec_cmd(${quote command})";
bind = keys: dispatcher: {
_args = [
keys
(inline dispatcher)
];
};
bindWithFlags = keys: dispatcher: flags: {
_args = [
keys
(inline dispatcher)
flags
];
};
onStart = commands: {
_args = [
"hyprland.start"
(inline (
"function()\n"
+ lib.concatMapStringsSep "\n" (command: " hl.exec_cmd(${quote command})") commands
+ "\nend"
))
];
};
}
+18 -29
View File
@@ -1,32 +1,21 @@
{ lib, ... }: {
let wayland.windowManager.hyprland.settings = {
hyprLua = import ./lua.nix { inherit lib; }; bind = [
inherit (hyprLua) bind bindWithFlags; # "$mainMod, mouse_down, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float * 1.1')"
# "$mainMod, mouse_up , exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float * 0.9) | if . < 1 then 1 else . end')"
resetZoom = ''function() "$mainMod SHIFT, mouse_up , exec, hyprctl -q keyword cursor:zoom_factor 1"
hl.config({ cursor = { zoom_factor = 1 } }) "$mainMod SHIFT, mouse_down , exec, hyprctl -q keyword cursor:zoom_factor 1"
end''; "$mainMod SHIFT, minus , exec, hyprctl -q keyword cursor:zoom_factor 1"
"$mainMod SHIFT, KP_SUBTRACT, exec, hyprctl -q keyword cursor:zoom_factor 1"
"$mainMod SHIFT, 0 , exec, hyprctl -q keyword cursor:zoom_factor 1"
];
zoomIn = ''function() binde = [
local current = hl.get_config("cursor.zoom_factor") "$mainMod, equal , exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float * 1.1')"
hl.config({ cursor = { zoom_factor = current * 1.1 } }) "$mainMod, minus , exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float * 0.9) | if . < 1 then 1 else . end')"
end''; "$mainMod, KP_ADD , exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float * 1.1')"
"$mainMod, KP_SUBTRACT, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float * 0.9) | if . < 1 then 1 else . end')"
zoomOut = ''function() ];
local current = hl.get_config("cursor.zoom_factor") };
hl.config({ cursor = { zoom_factor = math.max(1, current * 0.9) } })
end'';
in {
wayland.windowManager.hyprland.settings.bind = [
(bind "SUPER + SHIFT + mouse_up" resetZoom)
(bind "SUPER + SHIFT + mouse_down" resetZoom)
(bind "SUPER + SHIFT + minus" resetZoom)
(bind "SUPER + SHIFT + KP_SUBTRACT" resetZoom)
(bind "SUPER + SHIFT + 0" resetZoom)
(bindWithFlags "SUPER + equal" zoomIn { repeating = true; })
(bindWithFlags "SUPER + minus" zoomOut { repeating = true; })
(bindWithFlags "SUPER + KP_ADD" zoomIn { repeating = true; })
(bindWithFlags "SUPER + KP_SUBTRACT" zoomOut { repeating = true; })
];
} }
+2 -6
View File
@@ -1,11 +1,7 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
let
hyprLua = import ./hyprland/lua.nix { inherit lib; };
in
lib.mkIf config.programs.hyprlock.enable { lib.mkIf config.programs.hyprlock.enable {
wayland.windowManager.hyprland.settings.on = [ wayland.windowManager.hyprland.settings.exec-once = [ "hyprlock" ];
(hyprLua.onStart [ "hyprlock" ])
];
programs.hyprlock = let programs.hyprlock = let
image = pkgs.fetchurl { image = pkgs.fetchurl {
-1
View File
@@ -10,6 +10,5 @@
thunderbird thunderbird
libreoffice libreoffice
pear-desktop pear-desktop
( pkgs.callPackage ../../../drv/mumble.nix {} )
]; ];
} }
+32
View File
@@ -0,0 +1,32 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
texstudio
(texlive.combine {
inherit (texlive)
babel-russian
cm-super
cyrillic
hyphen-russian
hyphenat
titlesec
caption
float
xcolor
listings
pagecolor
moresize
raleway
fontawesome5
luatexbase
fontspec
ragged2e
enumitem
extsizes
multirow
varwidth
paracol
anyfontsize
scheme-basic;
})
];
}
+2 -5
View File
@@ -1,7 +1,4 @@
{ lib, ... }: {
let
hyprLua = import ./hyprland/lua.nix { inherit lib; };
in {
services = { services = {
walker = { walker = {
enable = true; enable = true;
@@ -12,6 +9,6 @@ in {
}; };
wayland.windowManager.hyprland.settings.bind = [ wayland.windowManager.hyprland.settings.bind = [
(hyprLua.bind "SUPER + D" (hyprLua.exec "walker")) "$mainMod, D, exec, walker"
]; ];
} }
+12 -21
View File
@@ -18,8 +18,6 @@
percent="$(${lib.getExe pkgs.brightnessctl} -m | ${lib.getExe' pkgs.coreutils "cut"} -d, -f4 | ${lib.getExe' pkgs.coreutils "tr"} -d '%')" percent="$(${lib.getExe pkgs.brightnessctl} -m | ${lib.getExe' pkgs.coreutils "cut"} -d, -f4 | ${lib.getExe' pkgs.coreutils "tr"} -d '%')"
printf '%s brightness\n' "$percent" > ${wobSocket} printf '%s brightness\n' "$percent" > ${wobSocket}
''; '';
hyprLua = import ./hyprland/lua.nix { inherit lib; };
in { in {
systemd.user = { systemd.user = {
services.wob.Install.WantedBy = lib.mkForce [ ]; services.wob.Install.WantedBy = lib.mkForce [ ];
@@ -55,23 +53,16 @@ in {
}; };
}; };
wayland.windowManager.hyprland.settings.bind = [ wayland.windowManager.hyprland.settings = {
(hyprLua.bindWithFlags "XF86AudioRaiseVolume" (hyprLua.exec "${lib.getExe volumeStep}") { bindel = [
repeating = true; ", XF86AudioRaiseVolume, exec, ${lib.getExe volumeStep} up"
locked = true; ", XF86AudioLowerVolume, exec, ${lib.getExe volumeStep} down"
}) ", XF86MonBrightnessUp, exec, ${lib.getExe brightnessStep} up"
(hyprLua.bindWithFlags "XF86AudioLowerVolume" (hyprLua.exec "${lib.getExe volumeStep}") { ", XF86MonBrightnessDown, exec, ${lib.getExe brightnessStep} down"
repeating = true; ];
locked = true;
}) bind = [
(hyprLua.bindWithFlags "XF86MonBrightnessUp" (hyprLua.exec "${lib.getExe brightnessStep}") { ", XF86AudioMute, exec, ${lib.getExe volumeStep} mute"
repeating = true; ];
locked = true; };
})
(hyprLua.bindWithFlags "XF86MonBrightnessDown" (hyprLua.exec "${lib.getExe brightnessStep}") {
repeating = true;
locked = true;
})
(hyprLua.bind "XF86AudioMute" (hyprLua.exec "${lib.getExe volumeStep} mute"))
];
} }
+7 -54
View File
@@ -188,22 +188,10 @@ in {
Exec=${lib.getExe fileManager1} Exec=${lib.getExe fileManager1}
''; '';
wayland.windowManager.hyprland.settings.window_rule = [ wayland.windowManager.hyprland.settings.windowrule = [
{ "match:class dragon-drop, move cursor_x-window_w/2 cursor_y-window_h/2"
match.class = "dragon-drop"; "match:title Yazi File Picker, float 1"
move = [ "match:title Yazi File Picker, size 1200 800"
"(cursor_x-(window_w*0.5))"
"(cursor_y-(window_h*0.5))"
];
}
{
match.title = "Yazi File Picker";
float = true;
}
{
match.title = "Yazi File Picker";
size = [ 1200 800 ];
}
]; ];
programs.yazi = { programs.yazi = {
@@ -262,11 +250,6 @@ in {
toggle-pane toggle-pane
; ;
gvfs = {
package = gvfs;
setup = true;
};
full-border = { full-border = {
package = yaziPlugin "full-border"; package = yaziPlugin "full-border";
setup = true; setup = true;
@@ -278,7 +261,7 @@ in {
}; };
git = { git = {
package = yaziPlugin "git"; package = git;
setup = true; setup = true;
}; };
}; };
@@ -317,39 +300,9 @@ in {
desc = "Chmod on selected files"; desc = "Chmod on selected files";
} }
{ {
on = [ "M" "b" ]; on = ["M"];
run = "plugin mount"; run = "plugin mount";
desc = "Open block-device mount menu"; desc = "Open mount menu";
}
{
on = [ "M" "m" ];
run = "plugin gvfs -- select-then-mount --jump";
desc = "Mount GVFS device and jump to it";
}
{
on = [ "M" "u" ];
run = "plugin gvfs -- select-then-unmount";
desc = "Unmount GVFS device";
}
{
on = [ "M" "U" ];
run = "plugin gvfs -- select-then-unmount --eject";
desc = "Unmount and eject GVFS device";
}
{
on = [ "M" "t" ];
run = "plugin gvfs -- automount-when-cd";
desc = "Enable GVFS automount when entering device";
}
{
on = [ "g" "m" ];
run = "plugin gvfs -- jump-to-device";
desc = "Jump to mounted GVFS device";
}
{
on = [ "`" "`" ];
run = "plugin gvfs -- jump-back-prev-cwd";
desc = "Jump back from GVFS device";
} }
{ {
on = [ "<C-n>" ]; on = [ "<C-n>" ];
-1
View File
@@ -74,7 +74,6 @@
eval "$(zoxide init zsh)" eval "$(zoxide init zsh)"
source "$(fzf-share)/key-bindings.zsh" source "$(fzf-share)/key-bindings.zsh"
source "$(fzf-share)/completion.zsh" source "$(fzf-share)/completion.zsh"
nr() { nix run "nixpkgs#$1" -- "''${@:2}" }
''; '';
envExtra = '' envExtra = ''
+1 -3
View File
@@ -8,10 +8,8 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
nautilus nautilus
vscode
python3 python3
python3Packages.pip pkgs-pinned.jetbrains.pycharm-community
pkgs-pinned.jetbrains.pycharm-oss
aseprite aseprite
krita krita
google-chrome google-chrome
+29 -41
View File
@@ -1,22 +1,16 @@
{ pkgs, lib, config, ... }: { pkgs, lib, config, inputs, ... }: {
let wayland.windowManager.hyprland = let
colors = config.lib.stylix.colors; colors = config.lib.stylix.colors;
accent = colors.${config.stylix.accent}; accent = colors.${config.stylix.accent};
hyprLua = import ../../../modules/user/hyprland/lua.nix { inherit lib; }; in {
in { settings = {
wayland.windowManager.hyprland.settings = {
config = {
general = { general = {
gaps_in = 5; gaps_in = 5;
gaps_out = 5; gaps_out = 5;
border_size = 2; border_size = 2;
"col.active_border" = lib.mkForce { "col.active_border" = "rgba(${accent}ee) rgba(${colors.base0C}ee) 45deg";
colors = [ "col.inactive_border" = "rgba(${colors.base05}aa)";
"rgba(${accent}ee)"
"rgba(${colors.base0C}ee)"
];
angle = 45;
};
layout = "dwindle"; layout = "dwindle";
}; };
@@ -38,9 +32,25 @@ in {
}; };
}; };
animations.enabled = true; animations = {
enabled = true;
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
animation = [
"windows, 1, 7, myBezier"
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
];
};
dwindle = {
smart_split = true;
};
dwindle.smart_split = true;
master.new_status = "master"; master.new_status = "master";
misc = { misc = {
@@ -48,32 +58,10 @@ in {
animate_mouse_windowdragging = true; animate_mouse_windowdragging = true;
enable_swallow = true; enable_swallow = true;
}; };
};
curve = { bind = [
_args = [ ''$mainMod Shift, S, exec, ${lib.getExe pkgs.grim} -g "$(${lib.getExe pkgs.slurp})" - | ${lib.getExe pkgs.swappy} -f -''
"myBezier"
{
type = "bezier";
points = [
[ 0.05 0.9 ]
[ 0.1 1.05 ]
];
}
]; ];
}; };
animation = [
{ leaf = "windows"; enabled = true; speed = 7; bezier = "myBezier"; }
{ leaf = "windowsOut"; enabled = true; speed = 7; bezier = "default"; style = "popin 80%"; }
{ leaf = "border"; enabled = true; speed = 10; bezier = "default"; }
{ leaf = "borderangle"; enabled = true; speed = 8; bezier = "default"; }
{ leaf = "fade"; enabled = true; speed = 7; bezier = "default"; }
{ leaf = "workspaces"; enabled = true; speed = 6; bezier = "default"; }
];
bind = [
(hyprLua.bind "SUPER + SHIFT + S" (hyprLua.exec ''${lib.getExe pkgs.grim} -g "$(${lib.getExe pkgs.slurp})" - | ${lib.getExe pkgs.swappy} -f -''))
];
}; };
} }
+2 -10
View File
@@ -1,11 +1,4 @@
{ { osConfig, config, pkgs, lib, ... }: {
osConfig,
config,
inputs,
pkgs,
lib,
...
}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
font-awesome font-awesome
nerd-fonts.symbols-only nerd-fonts.symbols-only
@@ -17,7 +10,6 @@
programs.waybar = { programs.waybar = {
enable = true; enable = true;
systemd.enable = true; systemd.enable = true;
package = inputs.waybar.packages.${pkgs.stdenv.hostPlatform.system}.default;
settings.mainBar = { settings.mainBar = {
modules-center = [ modules-center = [
@@ -148,7 +140,7 @@
format-disconnected = ""; format-disconnected = "";
tooltip-format = "{ipaddr}"; tooltip-format = "{ipaddr}";
max-length = 50; max-length = 50;
on-click = "ghostty --title=wifitui -e wifitui"; on-click = "ghostty --title=nmtui -e nmtui";
}; };
"custom/weather" = { "custom/weather" = {
+3 -1
View File
@@ -1,4 +1,7 @@
{ pkgs, ... }: { { pkgs, ... }: {
imports = [
../../modules/user/packages/tex.nix
];
programs.hyprlock.enable = true; programs.hyprlock.enable = true;
home.packages = with pkgs; [ home.packages = with pkgs; [
android-studio android-studio
@@ -7,7 +10,6 @@
enableWidevine = true; enableWidevine = true;
}) })
weechat weechat
insomnia
]; ];
xdg.mimeApps = { xdg.mimeApps = {
+52 -67
View File
@@ -2,7 +2,6 @@
wayland.windowManager.hyprland = let wayland.windowManager.hyprland = let
colors = config.lib.stylix.colors; colors = config.lib.stylix.colors;
accent = colors.${config.stylix.accent}; accent = colors.${config.stylix.accent};
hyprLua = import ../../../modules/user/hyprland/lua.nix { inherit lib; };
wallpaper_changer = pkgs.writers.writePython3Bin "wallpaper_changer" { wallpaper_changer = pkgs.writers.writePython3Bin "wallpaper_changer" {
libraries = [ pkgs.python3Packages.requests ]; libraries = [ pkgs.python3Packages.requests ];
@@ -127,83 +126,69 @@
''; '';
in { in {
settings = { settings = {
config = { general = {
general = { gaps_in = 2;
gaps_in = 2; gaps_out = 10;
gaps_out = 10; border_size = 3;
border_size = 3; "col.active_border" = lib.mkForce "rgba(${colors.base0C}aa) rgba(${accent}aa) 45deg";
"col.active_border" = lib.mkForce {
colors = [
"rgba(${colors.base0C}aa)"
"rgba(${accent}aa)"
];
angle = 45;
};
layout = "dwindle";
};
decoration = { layout = "dwindle";
rounding = 10;
blur = {
enabled = true;
size = 16;
passes = 2;
new_optimizations = true;
};
shadow.enabled = false;
};
animations.enabled = true;
dwindle.smart_split = true;
master.new_status = "master";
misc = {
animate_manual_resizes = true;
animate_mouse_windowdragging = true;
enable_swallow = true;
};
}; };
curve = { decoration = {
_args = [ rounding = 10;
"myBezier"
{ blur = {
type = "bezier"; enabled = true;
points = [ size = 16;
[ 0.05 0.9 ] passes = 2;
[ 0.1 1.05 ] new_optimizations = true;
]; };
}
shadow.enabled = false;
};
animations = {
enabled = true;
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
animation = [
"windows, 1, 7, myBezier"
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
]; ];
}; };
animation = [ dwindle = {
{ leaf = "windows"; enabled = true; speed = 7; bezier = "myBezier"; } smart_split = true;
{ leaf = "windowsOut"; enabled = true; speed = 7; bezier = "default"; style = "popin 80%"; } };
{ leaf = "border"; enabled = true; speed = 10; bezier = "default"; }
{ leaf = "borderangle"; enabled = true; speed = 8; bezier = "default"; } master.new_status = "master";
{ leaf = "fade"; enabled = true; speed = 7; bezier = "default"; }
{ leaf = "workspaces"; enabled = true; speed = 6; bezier = "default"; } misc = {
animate_manual_resizes = true;
animate_mouse_windowdragging = true;
enable_swallow = true;
};
exec-once = [
"${lib.getExe wallpaper_changer}"
]; ];
on = [ workspace = [
(hyprLua.onStart [ "${lib.getExe wallpaper_changer}" ]) "2, layout:scrolling"
];
workspace_rule = [
{
workspace = "2";
layout = "scrolling";
}
]; ];
bind = [ bind = [
(hyprLua.bind "Print" (hyprLua.exec "${lib.getExe pkgs.hyprshot} -z -o ~/Screenshots -m active -m output")) " , Print, exec, ${lib.getExe pkgs.hyprshot} -z -o ~/Screenshots -m active -m output"
(hyprLua.bind "CTRL + Print" (hyprLua.exec "${lib.getExe pkgs.hyprshot} -z -o ~/Screenshots -m region")) "CTRL, Print, exec, ${lib.getExe pkgs.hyprshot} -z -o ~/Screenshots -m region"
(hyprLua.bind "ALT + Print" (hyprLua.exec "${lib.getExe pkgs.hyprshot} -z -o ~/Screenshots -m active -m window")) "ALT , Print, exec, ${lib.getExe pkgs.hyprshot} -z -o ~/Screenshots -m active -m window"
(hyprLua.bind "SUPER + W" (hyprLua.exec "${lib.getExe wallpaper_changer}"))
"$mainMod, W, exec, ${lib.getExe wallpaper_changer}"
]; ];
}; };
}; };
+9 -67
View File
@@ -1,28 +1,17 @@
{ { osConfig, config, pkgs, lib, ... }: {
osConfig,
config,
inputs,
pkgs,
lib,
...
}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
playerctl playerctl
cava cava
pulsemixer pulsemixer
libnotify
monocraft monocraft
font-awesome font-awesome
nerd-fonts.symbols-only nerd-fonts.symbols-only
]; ];
programs.waybar = let programs.waybar = {
multibat = osConfig.networking.hostName == "Inaho";
in {
enable = true; enable = true;
systemd.enable = true; systemd.enable = true;
package = inputs.waybar.packages.${pkgs.stdenv.hostPlatform.system}.default;
settings.mainBar = { settings.mainBar = {
spacing = 8; spacing = 8;
@@ -42,7 +31,7 @@
"tray" "tray"
"group/system" "group/system"
"pulseaudio" "pulseaudio"
( if multibat then "group/bat" else "battery" ) "battery"
"clock" "clock"
]; ];
@@ -82,19 +71,6 @@
dynamic-order = [ "title" "artist" "album" ]; dynamic-order = [ "title" "artist" "album" ];
}; };
"group/bat" = lib.mkIf multibat {
orientation = "inherit";
drawer = {
transition-duration = 500;
transition-left-to-right = false;
};
modules = [
"battery"
"battery#int"
"battery#ext"
];
};
battery = { battery = {
interval = 5; interval = 5;
states = { states = {
@@ -106,33 +82,6 @@
default = ["󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; default = ["󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
charging = ["󰢟" "󰢜" "󰂆" "󰂇" "󰂈" "󰢝" "󰂉" "󰢞" "󰂊" "󰂋" "󰂅"]; charging = ["󰢟" "󰢜" "󰂆" "󰂇" "󰂈" "󰢝" "󰂉" "󰢞" "󰂊" "󰂋" "󰂅"];
}; };
events = {
on-discharging-warning = "notify-send -u normal 'Low Battery'";
on-discharging-critical = "notify-send -u critical 'Very Low Battery'";
};
};
"battery#int" = lib.mkIf multibat {
bat = "BAT0";
interval = 5;
states = {
warning = 30;
critical = 15;
};
format = "I: {capacity}%";
};
"battery#ext" = lib.mkIf multibat {
bat = "BAT1";
interval = 5;
states = {
warning = 30;
critical = 15;
};
format = "E: {capacity}%";
events = {
on-discharging-critical = "notify-send -u normal 'External battery is critical";
};
}; };
"keyboard-state" = { "keyboard-state" = {
@@ -171,7 +120,7 @@
format-disconnected = ""; format-disconnected = "";
tooltip-format = "{ipaddr}"; tooltip-format = "{ipaddr}";
max-length = 50; max-length = 50;
on-click = "ghostty --title=wifitui -e wifitui"; on-click = "ghostty --title=nmtui -e nmtui";
}; };
"custom/weather" = { "custom/weather" = {
@@ -300,9 +249,8 @@
} }
} }
#system, #system .drawer-child > * {
#bat { margin-right: 4px
& .drawer-child > * { margin-right: 4px }
} }
#keyboard-state label.locked { #keyboard-state label.locked {
@@ -311,6 +259,7 @@
} }
#battery { #battery {
&.plugged { color: ${colors.base0D}; }
&.charging { color: ${accent}; } &.charging { color: ${accent}; }
&:not(.charging) { &:not(.charging) {
&.warning { &.warning {
@@ -331,10 +280,6 @@
color: ${colors.base00}; color: ${colors.base00};
background: ${accent}; background: ${accent};
} }
&.plugged {
color: ${colors.base00};
background: ${colors.base0D};
}
} }
@keyframes blink { @keyframes blink {
@@ -351,10 +296,7 @@
in builtins.readFile cssFile; in builtins.readFile cssFile;
}; };
wayland.windowManager.hyprland.settings.layer_rule = [ wayland.windowManager.hyprland.settings.layerrule = [
{ "blur on, match:namespace waybar"
match.namespace = "waybar";
blur = true;
}
]; ];
} }