Compare commits

...

213 Commits

Author SHA1 Message Date
henrov 075a058b06 Regenerated 2026-04-24 14:58:37 +02:00
henrov 16dc9685a7 Regenerated 2026-04-24 14:48:52 +02:00
henrov 36d39f7a44 Regenerated 2026-04-24 14:46:44 +02:00
henrov 08d978103f Regenerated 2026-04-24 14:44:06 +02:00
henrov bb0d3f51b8 Regenerated 2026-04-24 14:41:49 +02:00
henrov 1468b90ae9 Regenerated 2026-04-23 23:41:46 +02:00
henrov 58392825fc Regenerated 2026-04-23 23:39:47 +02:00
henrov cdb73706a7 Regenerated 2026-04-23 23:39:01 +02:00
henrov 259bd54914 Regenerated 2026-04-23 23:35:10 +02:00
henrov 000ee1cca4 Regenerated 2026-04-23 23:32:31 +02:00
henrov 522f2a25c9 Regenerated 2026-04-23 23:26:44 +02:00
henrov c364f62ea1 Regenerated 2026-04-23 23:25:36 +02:00
henrov 04e522548a Regenerated 2026-04-23 23:24:25 +02:00
henrov 91f37618e2 Regenerated 2026-04-23 23:22:55 +02:00
henrov 3d646d5895 Regenerated 2026-04-23 23:18:03 +02:00
henrov 6581faa392 Regenerated 2026-04-23 23:16:27 +02:00
henrov 711832dff2 Regenerated 2026-04-23 23:11:00 +02:00
henrov 82b041c872 Regenerated 2026-04-23 23:10:20 +02:00
henrov fc4ea6047d Regenerated 2026-04-23 23:06:06 +02:00
henrov 5a058db718 Regenerated 2026-04-23 23:03:48 +02:00
henrov 306487df72 Regenerated 2026-04-23 23:02:07 +02:00
henrov 8862e8fa15 Regenerated 2026-04-23 22:59:10 +02:00
henrov 07ebec86c9 Regenerated 2026-04-23 22:58:18 +02:00
henrov b96ec1fc5f Regenerated 2026-04-23 22:55:38 +02:00
henrov 9ebd0ebdae Regenerated 2026-04-23 22:48:31 +02:00
henrov 0f32aa31c3 Regenerated 2026-04-23 22:46:52 +02:00
henrov 9d662211c9 Regenerated 2026-04-23 22:45:12 +02:00
henrov bbf327ca48 Regenerated 2026-04-23 22:43:52 +02:00
henrov 7c32580e95 Regenerated 2026-04-23 22:42:08 +02:00
henrov ccea6cf946 Regenerated 2026-04-23 22:40:47 +02:00
henrov 3992caf295 Regenerated 2026-04-23 22:39:01 +02:00
henrov 8c2a134545 Regenerated 2026-04-23 22:38:00 +02:00
henrov 7528c9791e Regenerated 2026-04-23 22:36:27 +02:00
henrov 745ff2426c Regenerated 2026-04-23 22:34:37 +02:00
henrov d598fbf686 Regenerated 2026-04-23 22:32:07 +02:00
henrov 5f247b31d8 Regenerated 2026-04-23 22:16:37 +02:00
henrov b152edca7d Regenerated 2026-04-23 22:11:56 +02:00
henrov 8be4651af6 Regenerated 2026-04-23 22:07:14 +02:00
henrov 7307a72341 Regenerated 2026-04-23 22:04:44 +02:00
henrov f48ab77b0c Regenerated 2026-04-23 22:02:50 +02:00
henrov d584be475b Regenerated 2026-04-23 22:01:51 +02:00
henrov 662689b70d Regenerated 2026-04-23 21:58:46 +02:00
henrov f4c9a90ff2 Regenerated 2026-04-23 21:57:35 +02:00
henrov be78eaf5e3 Regenerated 2026-04-23 21:52:45 +02:00
henrov 632eebfe42 Regenerated 2026-04-23 21:50:30 +02:00
henrov 3fe6f702b9 Regenerated 2026-04-23 21:49:38 +02:00
henrov 01eee1289a Regenerated 2026-04-23 21:45:49 +02:00
henrov b89e7ebec9 Regenerated 2026-04-23 21:42:53 +02:00
henrov 1af95ba75e Regenerated 2026-04-23 21:35:37 +02:00
henrov eef0f25aaf Regenerated 2026-04-23 21:23:27 +02:00
henrov dc5b230471 Regenerated 2026-04-23 21:22:30 +02:00
henrov 10a1652795 Regenerated 2026-04-23 21:19:49 +02:00
henrov ae3100a6c8 Regenerated 2026-04-23 21:18:42 +02:00
henrov 68410cd7e7 Regenerated 2026-04-23 21:13:05 +02:00
henrov 1bfad729aa Regenerated 2026-04-23 21:08:44 +02:00
henrov b295132dae Regenerated 2026-04-23 21:07:55 +02:00
henrov 9e4add9075 Regenerated 2026-04-23 21:05:33 +02:00
henrov e0356b0edb Regenerated 2026-04-23 21:04:46 +02:00
henrov 3ec8adfc1b Regenerated 2026-04-23 21:02:46 +02:00
henrov 1c9d142646 Regenerated 2026-04-23 21:02:38 +02:00
henrov e0dbb28b2e Regenerated 2026-04-23 21:01:35 +02:00
henrov 12b816b2e4 Regenerated 2026-04-23 20:48:00 +02:00
henrov 71331929ba Regenerated 2026-04-23 20:43:35 +02:00
henrov 913a8e9ab2 Regenerated 2026-04-23 20:36:31 +02:00
henrov d16ecc28da Regenerated 2026-04-23 20:31:21 +02:00
henrov 33825fc137 Regenerated 2026-04-23 20:28:59 +02:00
henrov 1f150d71d2 Regenerated 2026-04-23 20:22:41 +02:00
henrov 0da45a5b0d Regenerated 2026-04-23 20:08:57 +02:00
henrov 1dbf772873 Regenerated 2026-04-23 19:58:17 +02:00
henrov f0db85e714 Regenerated 2026-04-23 19:56:30 +02:00
henrov 507cde3788 Regenerated 2026-04-23 19:54:26 +02:00
henrov a19f71c8b9 Regenerated 2026-04-23 19:52:18 +02:00
henrov bdefe77b67 Regenerated 2026-04-23 19:50:44 +02:00
henrov 0c705f7837 Regenerated 2026-04-23 19:26:11 +02:00
henrov 7a1c4ea6f4 Regenerated 2026-04-23 19:23:29 +02:00
henrov 4483e46102 Regenerated 2026-04-23 19:21:45 +02:00
henrov bb5a385292 Regenerated 2026-04-23 19:19:52 +02:00
henrov 636b8a5645 Regenerated 2026-04-23 19:13:35 +02:00
henrov 776c7db8d2 Regenerated 2026-04-23 19:12:29 +02:00
henrov 124d59b5af Regenerated 2026-04-23 19:10:23 +02:00
henrov b62f685322 Regenerated 2026-04-23 19:08:45 +02:00
henrov a0ca179798 Regenerated 2026-04-23 19:07:29 +02:00
henrov d0847ac23d Regenerated 2026-04-23 18:57:58 +02:00
henrov e55d5bb5da Regenerated 2026-04-23 12:14:26 +02:00
henrov f85a02dc03 Regenerated 2026-04-23 12:12:25 +02:00
henrov 6a9d0b6cd4 Regenerated 2026-04-23 12:11:35 +02:00
henrov 87ba0f5c06 Regenerated 2026-04-23 12:06:41 +02:00
henrov 3de57e0786 Regenerated 2026-04-23 11:56:57 +02:00
henrov 15712267d6 Regenerated 2026-04-22 23:01:49 +02:00
henrov 73b27b5f19 Regenerated 2026-04-22 22:57:30 +02:00
henrov 6c4e5f3eb3 Regenerated 2026-04-22 22:49:06 +02:00
henrov f7b10fde04 Regenerated 2026-04-22 22:45:30 +02:00
henrov 7e56a4bca6 Regenerated 2026-04-22 22:41:49 +02:00
henrov 4976f3fd36 Regenerated 2026-04-22 22:33:06 +02:00
henrov 8213197399 Regenerated 2026-04-22 22:20:28 +02:00
henrov 4aef99222f Regenerated 2026-04-22 21:05:54 +02:00
henrov c4101683ba Regenerated 2026-04-22 20:54:58 +02:00
henrov 48d21c8b59 Regenerated 2026-04-22 20:47:41 +02:00
henrov aa6a9b9a65 Regenerated 2026-04-22 20:42:45 +02:00
henrov 7b5effc44f Regenerated 2026-04-22 20:42:31 +02:00
henrov 80c3343b70 Regenerated 2026-04-22 20:41:24 +02:00
henrov 28e24bea15 Regenerated 2026-04-22 20:35:21 +02:00
henrov d4991a5a57 Regenerated 2026-04-22 20:34:46 +02:00
henrov 4283d661c4 Regenerated 2026-04-22 20:27:17 +02:00
henrov e4197625b0 Regenerated 2026-04-22 20:23:27 +02:00
henrov cd73e023bc Regenerated 2026-04-22 20:19:42 +02:00
henrov 8e83b62f99 Regenerated 2026-04-22 19:51:09 +02:00
henrov 7cac78df85 Regenerated 2026-04-22 19:40:12 +02:00
henrov d30e28dbe1 Regenerated 2026-04-22 19:13:30 +02:00
henrov ff4b8df4b4 Regenerated 2026-04-22 19:12:49 +02:00
henrov 905003f5c7 Regenerated 2026-04-22 14:53:34 +02:00
henrov a736dbfed0 Regenerated 2026-04-22 14:49:16 +02:00
henrov 8102ac4d89 Regenerated 2026-04-22 14:44:18 +02:00
henrov dd64045f47 Regenerated 2026-04-22 14:35:31 +02:00
henrov 848daabdff Regenerated 2026-04-22 14:31:04 +02:00
henrov 65f93f7231 Regenerated 2026-04-22 14:28:35 +02:00
henrov 3f5f9b9cb7 Regenerated 2026-04-22 14:25:01 +02:00
henrov 473ed9149c Regenerated 2026-04-22 14:01:28 +02:00
henrov e397b05654 Regenerated 2026-04-22 14:00:05 +02:00
henrov e9f4bcb08c Regenerated 2026-04-22 13:58:46 +02:00
henrov da7d319de8 Regenerated 2026-04-22 13:57:07 +02:00
henrov df03210327 Regenerated 2026-04-22 13:54:07 +02:00
henrov 8d1e17832e Regenerated 2026-04-22 13:49:22 +02:00
henrov f18fed8a1b Regenerated 2026-04-22 13:48:10 +02:00
henrov 494e74843b Regenerated 2026-04-22 13:46:31 +02:00
henrov a1f630506e Regenerated 2026-04-22 13:38:24 +02:00
henrov 6a2fa7f534 Regenerated 2026-04-22 13:37:47 +02:00
henrov 0843ad7ce0 Regenerated 2026-04-22 13:32:02 +02:00
henrov 30a3d6e7ee Regenerated 2026-04-22 13:28:47 +02:00
henrov e7db323cb5 Regenerated 2026-04-22 13:26:19 +02:00
henrov 4110fd8a35 Regenerated 2026-04-22 13:21:28 +02:00
henrov 93f944cbea Regenerated 2026-04-22 13:05:26 +02:00
henrov 0b335dec3a Regenerated 2026-04-22 12:55:59 +02:00
henrov 919d056489 Regenerated 2026-04-22 12:55:23 +02:00
henrov 89f9b7bee6 Regenerated 2026-04-22 12:54:49 +02:00
henrov fa04d757c5 Regenerated 2026-04-22 12:52:41 +02:00
henrov ba4d1fd1fd Regenerated 2026-04-22 12:50:21 +02:00
henrov eafce390d6 Regenerated 2026-04-22 12:44:16 +02:00
henrov 758c03a9bf Regenerated 2026-04-22 12:38:00 +02:00
henrov 8f5996d903 Regenerated 2026-04-22 12:34:06 +02:00
henrov 3d15e4e2d7 Regenerated 2026-04-22 12:31:56 +02:00
henrov abe8818958 Regenerated 2026-04-22 12:31:03 +02:00
henrov c1716b0319 Regenerated 2026-04-22 12:30:52 +02:00
henrov 0ba6f18b63 Regenerated 2026-04-22 12:23:49 +02:00
henrov bc0c949cd7 Regenerated 2026-04-22 12:20:31 +02:00
henrov 0c9e71f2a7 Regenerated 2026-04-22 11:34:55 +02:00
henrov b04a193268 Regenerated 2026-04-22 11:31:11 +02:00
henrov 7a27295f86 Regenerated 2026-04-21 22:51:19 +02:00
henrov df70128156 Regenerated 2026-04-21 22:50:13 +02:00
henrov 8ef5d38340 Regenerated 2026-04-21 22:48:26 +02:00
henrov 447024e143 Regenerated 2026-04-21 22:46:22 +02:00
henrov b158f2247d Regenerated 2026-04-21 22:41:24 +02:00
henrov c67212c94f Regenerated 2026-04-21 22:38:42 +02:00
henrov 1850e8dc26 Regenerated 2026-04-21 22:34:02 +02:00
henrov 9381322401 Regenerated 2026-04-21 22:31:53 +02:00
henrov 730d10edee Regenerated 2026-04-21 22:31:02 +02:00
henrov a965fa973b Regenerated 2026-04-21 22:29:05 +02:00
henrov 8aea9c3ee6 Regenerated 2026-04-21 22:23:54 +02:00
henrov 37fdb75bd9 Regenerated 2026-04-21 22:20:17 +02:00
henrov 449e4826c0 Regenerated 2026-04-21 21:53:29 +02:00
henrov 867264e3b7 Regenerated 2026-04-21 21:53:05 +02:00
henrov 16fe744990 Regenerated 2026-04-21 21:45:05 +02:00
henrov fec2ac4026 Regenerated 2026-04-21 21:39:53 +02:00
henrov 2a5ce1df3f Regenerated 2026-04-21 21:37:20 +02:00
henrov 3dfba5b464 Regenerated 2026-04-21 21:36:27 +02:00
henrov 5b2c1dad2e Regenerated 2026-04-21 21:35:11 +02:00
henrov 386e6048fc Regenerated 2026-04-21 21:34:10 +02:00
henrov 107f8b4756 Regenerated 2026-04-21 21:31:00 +02:00
henrov 0d5fd3fe33 Regenerated 2026-04-21 21:21:44 +02:00
henrov 61728f95d3 Regenerated 2026-04-21 21:19:50 +02:00
henrov 3fad61abde Regenerated 2026-04-21 21:19:18 +02:00
henrov 3bae780610 Regenerated 2026-04-21 21:15:28 +02:00
henrov fdf9621639 Regenerated 2026-04-21 21:13:34 +02:00
henrov aa845e843a Regenerated 2026-04-21 11:37:09 +02:00
henrov e6f4fd70f9 Regenerated 2026-04-21 10:47:16 +02:00
henrov f34b51453f Regenerated 2026-04-21 10:04:22 +02:00
henrov 0dabfee6da Regenerated 2026-04-21 10:01:15 +02:00
henrov 9ce7af9429 Regenerated 2026-04-20 22:36:01 +02:00
henrov ecc6a42519 Regenerated 2026-04-20 20:37:35 +02:00
henrov a10900f62b Regenerated 2026-04-20 20:33:52 +02:00
henrov 7b2872ee95 Regenerated 2026-04-20 20:28:10 +02:00
henrov b5e428bf5e Regenerated 2026-04-20 20:27:14 +02:00
henrov 460d3d2b51 Regenerated 2026-04-20 20:21:05 +02:00
henrov a3a6057358 Regenerated 2026-04-20 20:13:03 +02:00
henrov cc0a043757 Regenerated 2026-04-20 20:07:25 +02:00
henrov 038393e5fb Regenerated 2026-04-20 20:05:41 +02:00
henrov 38a5cb8a29 Regenerated 2026-04-20 19:59:20 +02:00
henrov 4b1c9f29e2 Regenerated 2026-04-20 19:56:33 +02:00
henrov df74a65831 Regenerated 2026-04-20 19:54:57 +02:00
henrov 16fbfc00e1 Regenerated 2026-04-20 19:53:28 +02:00
henrov 1e85b6a8d8 Regenerated 2026-04-20 19:52:57 +02:00
henrov d6518d9f14 Regenerated 2026-04-20 19:51:58 +02:00
henrov 21188d4674 Regenerated 2026-04-20 19:49:24 +02:00
henrov a0c8e24997 Regenerated 2026-04-20 19:49:01 +02:00
henrov 5644973db0 Regenerated 2026-04-20 19:44:53 +02:00
henrov 059fc7f5f4 Regenerated 2026-04-20 19:39:41 +02:00
henrov d00fa76fa3 Regenerated 2026-04-20 19:38:36 +02:00
henrov 80abd13d44 Regenerated 2026-04-20 19:33:31 +02:00
henrov f00b6c3c15 Regenerated 2026-04-20 19:32:38 +02:00
henrov 827dd21eb5 Regenerated 2026-04-20 19:32:15 +02:00
henrov 3e2440d395 Regenerated 2026-04-20 19:31:17 +02:00
henrov c886c9be8f Regenerated 2026-04-20 19:30:52 +02:00
henrov f730526c18 Regenerated 2026-04-20 19:29:53 +02:00
henrov 21d9880738 Regenerated 2026-04-20 19:26:55 +02:00
henrov 6b427ec38c Regenerated 2026-04-20 19:23:00 +02:00
henrov ceaf5667f2 Regenerated 2026-04-20 19:21:53 +02:00
henrov a04926b1fa Regenerated 2026-04-20 19:20:17 +02:00
henrov 0e272f5411 Regenerated 2026-04-20 19:17:35 +02:00
henrov ccbe1cc1a4 Regenerated 2026-04-20 19:17:06 +02:00
henrov eaca264460 Regenerated 2026-04-20 19:16:12 +02:00
henrov 8314ba348d Regenerated 2026-04-20 19:13:55 +02:00
henrov b73c206ee5 Regenerated 2026-04-20 19:11:59 +02:00
henrov a5c30c7310 Regenerated 2026-04-20 19:09:00 +02:00
34 changed files with 2583 additions and 1041 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 MiB

+1131 -570
View File
File diff suppressed because it is too large Load Diff
+739 -206
View File
File diff suppressed because it is too large Load Diff
-67
View File
@@ -1,67 +0,0 @@
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
{ lib, config, pkgs, flakeRoot, ... }:
let
colors = {
crust = "#11111b";
mantle = "#181825";
base = "#1e1e2e";
surface0 = "#313244";
surface1 = "#45475a";
surface2 = "#585b70";
overlay0 = "#6c7086";
overlay1 = "#7f849c";
overlay2 = "#9399b2";
subtext0 = "#a6adc8";
subtext1 = "#bac2de";
text = "#cdd6f4";
rosewater = "#f5e0dc";
flamingo = "#f2cdcd";
pink = "#f5c2e7";
mauve = "#cba6f7";
red = "#f38ba8";
maroon = "#eba0ac";
peach = "#fab387";
yellow = "#f9e2af";
green = "#a6e3a1";
teal = "#94e2d5";
sapphire = "#74c7ec";
blue = "#89b4fa";
lavender = "#b4befe";
};
username = config.defaultUser or "henrov";
cssContent = ''
/* Catppuccin Mocha Palette - auto-generated, do not edit manually */
'' + lib.concatStringsSep "\n" (
lib.mapAttrsToList (name: value:
"@define-color ${name} ${value};"
) colors
) + "\n@define-color base-alpha rgba(30, 30, 46, 0.9);";
qmlContent = ''
// Catppuccin Mocha Palette - auto-generated, do not edit manually
import QtQuick
QtObject {
readonly property color baseAlpha: Qt.rgba(30/255, 30/255, 46/255, 0.9)
'' + lib.concatStringsSep "\n" (
lib.mapAttrsToList (name: value:
" readonly property color ${name}: \"${value}\""
) colors
) + "\n}";
in
{
home-manager.users.${username} = {
home.file = {
".config/shared/colors.css" = {
text = cssContent;
force = true;
};
".config/quickshell/Colors.qml" = {
text = qmlContent;
force = true;
};
};
};
}
+15 -13
View File
@@ -12,18 +12,18 @@ bind = $mainMod, X , exec, qs -c powermenu
bind = $mainMod, L, exec, hyprlock
# grimblast
# bind = $mainMod SHIFT, P, exec, grimblast -n -f copysave active
# bind = $mainMod SHIFT, S, exec, grimblast -n -f copysave area
# bind = , XF86Screenshot, exec, grimblast -n -f copysave area
# bind = $mainMod ALT, P, exec, grimblast -n -f copysave output
# bind = $mainMod CTRL, P, exec, grimblast -n -f copysave screen
bind = $mainMod SHIFT, P, exec, grimblast -n -f copysave active
bind = $mainMod SHIFT, S, exec, grimblast -n -f copysave area
bind = , XF86Screenshot, exec, grimblast -n -f copysave area
bind = $mainMod ALT, P, exec, grimblast -n -f copysave output
bind = $mainMod CTRL, P, exec, grimblast -n -f copysave screen
# Flameshot keybindings
bind = $mainMod SHIFT, P, exec, flameshot full -p ~/Pictures/Screenshots -c
bind = $mainMod SHIFT, S, exec, flameshot gui
bind = , XF86Screenshot, exec, flameshot gui
bind = $mainMod ALT, P, exec, flameshot full -d 5000 -p ~/Pictures/Screenshots -c
bind = $mainMod CTRL, P, exec, flameshot screen -n 0 -p ~/Pictures/Screenshots -c
# bind = $mainMod SHIFT, P, exec, flameshot full -p ~/Pictures/Screenshots -c
# bind = $mainMod SHIFT, S, exec, flameshot gui 2>/dev/null
# bind = , XF86Screenshot, exec, flameshot gui 2>/dev/null
# bind = $mainMod ALT, P, exec, flameshot full -d 5000 -p ~/Pictures/Screenshots -c
# bind = $mainMod CTRL, P, exec, flameshot screen -n 0 -p ~/Pictures/Screenshots -c
# Switch windows
bind = ALT, TAB, cyclenext, prev
@@ -36,6 +36,7 @@ bind = CTRL ALT, right, layoutmsg, colwidth +conf
bind = CTRL ALT, left, layoutmsg, colwidth -conf
# switch layouts
bind = $mainMod, T , exec, qs -c layoutswitcher
# Hyprscrolling
bind = $mainMod, period, layoutmsg, move +col
@@ -48,7 +49,6 @@ bind = $mainMod, S, togglegroup
# Cycle tabs in the group
bind = $mainMod, bracketright, changegroupactive, f
bind = $mainMod, bracketleft, changegroupactive, b
bind = $mainMod, T, exec, ~/.config/scripts/layout-selector.sh
# Focus movement
bind = $mainMod, H, movefocus, l
@@ -123,7 +123,7 @@ bind = , XF86AudioMicMute, exec, pamixer --default-source -t
#########################
# Media (playerctl)
#########################
bind = , XF86AudioPlay, exec, playerctl play-pause
bind = , XF86AudioPlay, exec, bash -c "playerctl -l | grep -q spotify && playerctl -p spotify play-pause || playerctl play-pause"
bind = , XF86AudioPause, exec, playerctl pause
bind = , XF86AudioNext, exec, playerctl next
bind = , XF86AudioPrev, exec, playerctl previous
@@ -143,7 +143,7 @@ bind = , XF86KbdBrightnessDown, exec, brightnessctl -d '*kbd_backlight*' set 10%
bind = , XF86Sleep, exec, systemctl suspend
bind = , XF86PowerOff, exec, systemctl poweroff
bind = , XF86WakeUp, exec, systemctl suspend
bind = CTRL ALT, L, exec, loginctl lock-session
bind = , XF86ScreenSaver, exec, loginctl lock-session
#########################
# Start apps
@@ -154,6 +154,8 @@ bind = CTRL ALT, B, exec, flatpak run eu.betterbird.Betterbird
bind = CTRL ALT, S, exec, spotify
bind = $mainMod, Z, exec, zeditor
bind = $mainMod, W, exec, zen
bind = CTRL ALT, T, exec, solidtime-desktop
bind = , XF86Calculator, exec, gnome-calculator
#########################
# Auto apps
@@ -1,13 +1,13 @@
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
exec-once = dbus-update-activation-environment --systemd --all
exec-once = systemctl --user start --no-block xdg-desktop-portal-hyprland
exec-once = systemctl --user start --no-block xdg-desktop-portal
exec-once = hypridle
exec-once = systemd-run --user --scope --unit=elephant elephant
exec-once = waybar
exec-once = awww-daemon
exec-once = awww img ~/Wallpapers/pictures/01.jpg
exec-once = ~/.config/scripts/set-workspace-wallpaper.sh
exec-once = ~/.config/scripts/workspace-listener.sh
exec-once = /run/current-system/sw/libexec/polkit-gnome-authentication-agent-1
exec-once = nextcloud --background
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once flameshot
# exec-once = QT_QPA_PLATFORM=wayland flameshot 2> >(grep -v "wlroots" >&2)
exec-once = waybar
@@ -1,7 +1,5 @@
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
layerrule = blur on, ignore_alpha 1, match:namespace waybar
layerrule = xray 1, match:namespace waybar
layerrule = blur on, ignore_alpha 1, match:namespace walker
layerrule = xray 1, match:namespace walker
layerrule = blur on, ignore_alpha 1, match:namespace swaync-control-center
layerrule = blur on, ignore_alpha 1, match:namespace swaync-notification-window
layerrule = xray 1, match:namespace swaync-control-center
@@ -27,6 +27,15 @@ windowrule {
size = 900 700
}
# Networks
windowrule {
name = iwgtk
match:class = org.twosheds.iwgtk
float = on
move = move onscreen 100%-w 0
size = 900 700
}
#Quickshell powermenu
windowrule {
name = quickshell-powermenu
@@ -37,6 +46,16 @@ windowrule {
pin = on
}
#Quickshell layoutswitcher
windowrule {
name = quickshell-layoutswitcher
match:title = quickshell-layoutswitcher
opacity = 1.0 0.8
float = on
move = cursor -50% 0
pin = on
}
#Quickshell media menu
windowrule {
name = quickshell-media
@@ -1,7 +1,7 @@
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
workspace = 1, monitor:eDP-1, layout:master
workspace = 2, monitor:eDP-1, layout:monocle
workspace = 3, monitor:eDP-1, layout:master
workspace = 4, monitor:DP-1, layout:scrolling
workspace = 5, monitor:DP-1, layout:dwindle
workspace = 6, monitor:DP-1, layout:dwindle
workspace = 1, monitor:eDP-1 #, layout:master
workspace = 2, monitor:eDP-1 #, layout:monocle
workspace = 3, monitor:eDP-1 #, layout:master
workspace = 4, monitor:DP-1 #, layout:scrolling
workspace = 5, monitor:DP-1 #, layout:dwindle
workspace = 6, monitor:DP-1 #, layout:dwindle
@@ -0,0 +1,139 @@
// --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
import Quickshell
import Quickshell.Io
import QtQuick
import QtQuick.Layouts
ShellRoot {
QtObject {
id: colors
readonly property color baseAlpha: Qt.rgba(30/255, 30/255, 46/255, 0.9)
readonly property color base: "#1e1e2e"
readonly property color surface0: "#313244"
readonly property color surface1: "#45475a"
readonly property color surface2: "#585b70"
readonly property color text: "#cdd6f4"
readonly property color subtext0: "#a6adc8"
readonly property color subtext1: "#bac2de"
readonly property color blue: "#89b4fa"
readonly property color green: "#a6e3a1"
readonly property color teal: "#94e2d5"
readonly property color red: "#f38ba8"
readonly property color mauve: "#cba6f7"
readonly property color peach: "#fab387"
readonly property color lavender: "#b4befe"
}
FloatingWindow {
id: root
title: "quickshell-layoutswitcher"
visible: true
width: 220
height: contentLayout.implicitHeight + 32
color: colors.base
Shortcut {
sequence: "Escape"
onActivated: Qt.quit()
}
Rectangle {
anchors.fill: parent
anchors.margins: -2
radius: 18
z: -1
opacity: Qt.application.active ? 0 : 1
Behavior on opacity {
NumberAnimation { duration: 150 }
}
gradient: Gradient {
orientation: Gradient.Horizontal
GradientStop { position: 0.0; color: colors.blue }
GradientStop { position: 1.0; color: colors.green }
}
}
Rectangle {
anchors.fill: parent
radius: 16
color: colors.base
ColumnLayout {
id: contentLayout
anchors {
top: parent.top
left: parent.left
right: parent.right
margins: 16
}
spacing: 4
Text {
text: "󰕰 Layout"
color: colors.text
font.pixelSize: 13
font.bold: true
Layout.bottomMargin: 8
}
Repeater {
model: [
{ label: "󰜩 Dwindle", layout: "dwindle", description: "Vensters splitsen recursief — elk nieuw venster halveert de ruimte" },
{ label: "󰡎 Master", layout: "master", description: "Één groot hoofdvenster links, overige vensters gestapeld rechts" },
{ label: "󰾲 Scrolling", layout: "scrolling", description: "Vensters naast elkaar in een horizontaal scrollbare rij" },
{ label: "󱒉 Monocle", layout: "monocle", description: "Één venster tegelijk op volledig scherm, anderen verborgen" },
]
delegate: Rectangle {
id: item
Layout.fillWidth: true
height: 38
radius: 8
color: hovered ? colors.surface1 : colors.base
property bool hovered: false
Rectangle {
anchors.fill: parent
anchors.margins: -2
radius: parent.radius + 2
visible: item.hovered
z: -1
gradient: Gradient {
orientation: Gradient.Horizontal
GradientStop { position: 0.0; color: colors.blue }
GradientStop { position: 1.0; color: colors.green }
}
}
Text {
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: 12
text: modelData.label
color: item.hovered ? colors.text : colors.subtext1
font.pixelSize: 13
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
onEntered: item.hovered = true
onExited: item.hovered = false
onClicked: proc.running = true
}
Process {
id: proc
command: ["bash", "-c", "hyprctl keyword general:layout " + modelData.layout + " && hyprctl dispatch layoutmsg reload"]
onExited: Qt.quit()
}
}
}
Item { height: 4 }
}
}
}
}
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env bash
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
DEVICE=$(kdeconnect-cli --list-devices | grep -oP '(?<=\().*?(?=\))' | head -n 1)
if [ -z "$DEVICE" ]; then
echo "No phone"
exit 0
fi
NAME=$(kdeconnect-cli -d "$DEVICE" --name 2>/dev/null)
BATTERY=$(kdeconnect-cli -d "$DEVICE" --battery 2>/dev/null | grep -o '[0-9]\+' | head -n 1)
if [ -z "$BATTERY" ]; then
echo "$NAME"
else
echo "$NAME $BATTERY%"
fi
@@ -1,35 +0,0 @@
#!/usr/bin/env bash
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
# layout-selector.sh
# Select a workspace layout using Wofi, shows description, applies with layoutmsg
# Define layouts and descriptions
declare -A LAYOUTS=(
[dwindle]="舘 Dwindle: Auto-tiling, windows shrink progressively"
[master]=" Master: One main window, others stacked"
[scrolling]=" Scrolling: Vertical list, scroll through windows"
[monocle]=" Monocle: One window fills the screen"
[floating]=" Floating: Free move & resize"
)
ORDER=(dwindle master scrolling monocle floating)
# Prepare Wofi menu: show "layoutname: description"
MENU_ITEMS=()
for key in "${ORDER[@]}"; do
MENU_ITEMS+=("$key: ${LAYOUTS[$key]}")
done
# Show selection menu via Wofi
CHOICE=$(printf '%s\n' "${MENU_ITEMS[@]}" | wofi --dmenu --prompt "Select Layout")
# Exit if cancelled
[ -z "$CHOICE" ] && exit 0
# Extract layout name from selection (before colon)
LAYOUT_NAME="${CHOICE%%:*}"
# Apply layout via layoutmsg
hyprctl dispatch layoutmsg setlayout "$LAYOUT_NAME"
# Show OSD feedback
hyprctl dispatch oSD "Layout: $LAYOUT_NAME" 2000
+1 -1
View File
@@ -165,7 +165,7 @@ format = " in $duration "
style = "bg:lavender"
disabled = false
show_notifications = true
min_time_to_notify = 45000
min_time_to_notify = 60000
[palettes.catppuccin_mocha]
rosewater = "#f5e0dc"
@@ -1,4 +1,3 @@
// --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
{
"base00": "1e1e2e",
"base01": "181825",
@@ -0,0 +1,52 @@
{
"positionX": "right",
"positionY": "top",
"layer": "overlay",
"control-center-layer": "top",
"layer-shell": true,
"cssPriority": "application",
"control-center-margin-top": 8,
"control-center-margin-bottom": 8,
"control-center-margin-right": 8,
"control-center-margin-left": 0,
"notification-2fa-action": true,
"notification-inline-replies": false,
"notification-icon-size": 48,
"notification-body-image-height": 100,
"notification-body-image-width": 200,
"timeout": 10,
"timeout-low": 5,
"timeout-critical": 0,
"fit-to-screen": true,
"control-center-height": -1,
"control-center-width": 300,
"notification-window-width": 400,
"keyboard-shortcuts": true,
"image-visibility": "when-available",
"transition-time": 200,
"hide-on-clear": false,
"hide-on-action": true,
"script-fail-notify": true,
"widgets": [
"inhibitors",
"title",
"dnd",
"notifications"
],
"widget-config": {
"inhibitors": {
"text": "Inhibitors",
"button-text": "Clear All",
"clear-all-button": true
},
"title": {
"text": "Notifications",
"clear-all-button": true,
"button-text": "Clear All"
},
"dnd": {
"text": "Do Not Disturb"
},
"notifications": {}
}
}
+184
View File
@@ -0,0 +1,184 @@
/* --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. --- */
@import url("/home/henrov/.config/shared/colors.css");
* {
all: unset;
font-size: 13px;
font-family: sans-serif;
transition: 200ms;
}
/* ── Notification rows ─────────────────────────────────────────────────── */
.notification-row {
outline: none;
margin: 4px 0;
}
.notification-row:focus,
.notification-row:hover {
opacity: 0.85;
}
/* ── Individual notification ───────────────────────────────────────────── */
.notification {
border-radius: 12px;
padding: 8px;
margin: 4px 8px;
color: @text;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
/* gradient border */
border: 2px solid transparent;
background-image:
linear-gradient(@base-alpha, @base-alpha),
linear-gradient(45deg, @blue, @green);
background-clip: padding-box, border-box;
background-origin: padding-box, border-box;
}
.notification-content {
padding: 4px;
}
.notification-default-action {
border-radius: 12px;
}
.notification-default-action:hover {
background: alpha(@blue, 0.1);
}
/* ── Text elements ─────────────────────────────────────────────────────── */
.summary {
font-size: 13px;
font-weight: bold;
color: @text;
}
.time {
font-size: 11px;
color: @overlay0;
}
.body {
font-size: 12px;
color: @subtext1;
}
/* ── Control center ────────────────────────────────────────────────────── */
.control-center {
min-height: unset;
border-radius: 30px;
padding: 8px;
margin: 8px;
color: @text;
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5);
border: 2px solid transparent;
background-image:
linear-gradient(@base-alpha, @base-alpha),
linear-gradient(45deg, @blue, @green);
background-clip: padding-box, border-box;
background-origin: padding-box, border-box;
}
.control-center-list {
background: transparent;
min-height: unset;
}
.control-center-list-placeholder {
opacity: 0.4;
font-size: 14px;
}
/* ── Misc windows ──────────────────────────────────────────────────────── */
.floating-notifications {
background: transparent;
}
.blank-window {
background: transparent;
}
/* ── Widget: title ─────────────────────────────────────────────────────── */
.widget-title {
font-size: 14px;
font-weight: bold;
color: @blue;
padding: 8px 4px 4px 4px;
}
.widget-title > button {
font-size: 12px;
color: @overlay0;
background: alpha(@blue, 0.1);
border-radius: 8px;
padding: 2px 8px;
}
.widget-title > button:hover {
background: alpha(@blue, 0.2);
color: @text;
}
/* ── Widget: Do Not Disturb ────────────────────────────────────────────── */
.widget-dnd {
padding: 4px;
}
.widget-dnd > switch {
border-radius: 20px;
background: alpha(@surface1, 0.3);
/* gradient border */
border: 1px solid transparent;
background-image:
linear-gradient(alpha(@surface1, 0.3), alpha(@surface1, 0.3)),
linear-gradient(45deg, @blue, @green);
background-clip: padding-box, border-box;
background-origin: padding-box, border-box;
}
.widget-dnd > switch:checked {
background-image:
linear-gradient(alpha(@blue, 0.5), alpha(@blue, 0.5)),
linear-gradient(45deg, @blue, @green);
background-clip: padding-box, border-box;
background-origin: padding-box, border-box;
}
.widget-dnd > switch slider {
border-radius: 20px;
background: @text;
min-width: 20px;
min-height: 20px;
}
/* ── Widget: inhibitors ────────────────────────────────────────────────── */
.widget-inhibitors {
padding: 4px;
color: @red;
font-size: 12px;
}
/* ── Close button ──────────────────────────────────────────────────────── */
.close-button {
background: alpha(@red, 0.15);
border-radius: 6px;
color: @red;
padding: 2px 6px;
font-size: 11px;
}
.close-button:hover {
background: alpha(@red, 0.3);
}
@@ -10,22 +10,22 @@
/*******************************************************************/
"modules-left": [
"group/connections",
"group/hardware",
"group/hardware"
],
"modules-center": [
"group/workspaces",
"custom/power",
"custom/media",
"custom/batterywarn"
"group/workspaces"
,"custom/media"
,"custom/batterywarn"
/* ,"custom/kdeconnect" */
],
"modules-right": [
"group/audio",
"tray",
"clock",
"idle_inhibitor"
"group/audio"
,"group/tray"
,"clock"
,"group/system"
,"custom/notifications"
],
/*******************************************************************/
@@ -59,6 +59,45 @@
"tooltip": false
},
/*******************************************************************/
"group/tray": {
"orientation": "horizontal",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": true
},
"modules": [
"custom/tray-anchor"
,"tray"
]
},
"custom/tray-anchor": {
"format": "󰄝 ",
"tooltip": false
},
/*******************************************************************/
"group/system": {
"orientation": "horizontal",
"drawer": {
"transition-duration": 500,
"transition-left-to-right": true
},
"modules": [
"custom/system-anchor"
,"custom/power"
,"idle_inhibitor"
]
},
"custom/system-anchor": {
"format": "󱄅",
"tooltip": false
},
/*************************/
@@ -94,7 +133,6 @@
/*******************************************************************/
"hyprland/workspaces": {
"align": 1,
"format": "{name}",
@@ -136,17 +174,30 @@
"format": "{}"
},
"idle_inhibitor": {
"tooltip": true,
"format": "{icon}",
"format-icons": {
"activated": "  ",
"deactivated": " 󰒲 "
},
"tooltip-format-activated": "Staying awake",
"tooltip-format-deactivated": "Might sleep...."
"custom/kdeconnect": {
"format": "{name} {battery}% ",
"interval": 10,
"exec": "~/.config/scripts/kdeconnect-status.sh",
"tooltip": true
},
"custom/notifications": {
"tooltip": false,
"return-type": "json",
"exec-if": "which swaync-client",
"exec": "swaync-client -swb",
"format": "{icon}",
"format-icons": {
"notification": "󰂞",
"none": "",
"dnd-notification": "󰂠",
"dnd-none": "󰪓",
},
"on-click": "swaync-client -t",
"on-click-right": "swaync-client -d",
"on-click-middle": "swaync-client -dn",
},
"custom/power": {
"format": "󰤄",
"on-click": "qs -c powermenu",
@@ -173,6 +224,17 @@
"orientation": "horizontal"
},
"idle_inhibitor": {
"tooltip": true,
"format": "{icon}",
"format-icons": {
"activated": "  ",
"deactivated": " 󰒲 "
},
"tooltip-format-activated": "Staying awake",
"tooltip-format-deactivated": "Might sleep...."
},
"network": {
"format-wifi": " ({bandwidthDownBits})",
"format-ethernet": " ({bandwidthDownBits})",
@@ -202,7 +264,25 @@
"icon-size": 14
},
"clock": {
"format": "{:%H:%M}",
"tooltip-format": "<tt><small>{calendar}</small></tt>",
"calendar": {
"mode" : "year",
"mode-mon-col" : 3,
"weeks-pos" : "left",
"on-scroll" : 1,
"on-click-right": "mode",
"format": {
"months": "<span color='#fab387'><b>{}</b></span>",
"days": "<span color='#cba6f7'><b>{}</b></span>",
"weeks": "<span color='#a6e3a1'><b>W{}</b></span>",
"weekdays": "<span color='#f9e2af'><b>{}</b></span>",
"today": "<span color='#1e1e2e' bgcolor='#a6e3a1'>{}</span>"
}
},
"on-click": "flatpak run eu.betterbird.Betterbird -calendar"
},
"battery": {
"bat": "BAT0",
@@ -1,5 +1,5 @@
/* --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. --- */
@import url("file:///home/henrov/.config/shared/Colors.css");
@import url("file:///home/henrov/.config/shared/colors.css");
/* --- Global --- */
* {
@@ -18,10 +18,12 @@ window#waybar {
color: @text;
}
/* --------------------------------------------------------- */
/* ---------GROUPS------------------------------------------------ */
/* --- Group anchors default visible --- */
#custom-hardware-anchor,
#custom-tray-anchor,
#custom-system-anchor,
#custom-connections-anchor {
min-width: 80px;
padding: 0 5px;
@@ -32,6 +34,8 @@ window#waybar {
/* --- Hide anchors on hover of the group --- */
#hardware:hover #custom-hardware-anchor,
#tray:hover #custom-tray-anchor,
#system:hover #custom-system-anchor,
#connections:hover #custom-connections-anchor {
opacity: 0;
min-width: 0;
@@ -40,6 +44,8 @@ window#waybar {
}
#hardware:hover,
#tray:hover,
#system:hover,
#connections:hover {
min-width: 80px;
}
@@ -58,11 +64,12 @@ window#waybar {
border: 2px solid transparent;
}
.modules-left > box + box,
.modules-center > box + box,
.modules-right > box + box {
margin-left: 5px;
/* ------------------ WORKING ON GAP -------------------- */
window box box widget box {
margin: 0 12px;
}
/* ------------------ WORKING ON GAP -------------------- */
.modules-left > widget label,
.modules-left > label ,
@@ -74,6 +81,8 @@ window#waybar {
transition: padding 0.2s ease;
}
/* -----------------------------
WORKSPACES / WINDOWS MODULE
----------------------------- */
@@ -136,8 +145,9 @@ label#custom-windows:not(.active) {
/* ---- Pulseaudio ---*/
#pulseaudio-slider {
padding: 0;
padding: 0 4px;
margin: 0;
min-width: 140px;
}
#pulseaudio-slider slider {
min-height: 0px;
@@ -147,10 +157,12 @@ label#custom-windows:not(.active) {
background: linear-gradient(45deg, @blue, @green);
border: none;
box-shadow: none;
margin: 0;
padding: 0;
}
#pulseaudio-slider trough {
min-height: 10px;
min-width: 80px;
min-width: 120px;
border-radius: 30px;
background: transparent;
}
@@ -161,8 +173,11 @@ label#custom-windows:not(.active) {
border: 2px solid transparent;
}
/* --------------------------------------------------------- */
/* STATES / SPECIALS */
#custom-notifications.notification,
#custom-notifications.dnd-notification,
#idle_inhibitor.activated {
background: linear-gradient(45deg, @blue, @green);
border: 2px solid transparent;
@@ -209,9 +224,12 @@ label#custom-windows:not(.active) {
border: 2px solid transparent;
}
#custom-notifications {
min-width: 80px;
}
/* --------------------------------------------------------- */
/* GLOBAL MODULE SPACING */
#clock,
#idle_inhibitor,
#battery:not(.warn),
#cpu,
@@ -219,7 +237,7 @@ label#custom-windows:not(.active) {
#temperature,
#network,
#pulseaudio,
#clock,
#tray {
margin: 0 5px;
padding: 0 10px;
}
+1 -1
View File
@@ -1,5 +1,5 @@
/* --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. --- */
@import "~/.config/shared/Colors.css";
@import "~/.config/shared/colors.css";
* {
background-color: transparent;
@@ -1,4 +1,3 @@
// --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
// Zed settings
//
// For information on how to configure Zed, see the Zed
+4 -2
View File
@@ -9,7 +9,6 @@ brave
btop
chromium
cliphist
collabora-online
comma
direnv
duf
@@ -23,7 +22,8 @@ git
gparted
grim
grimblast
galculator
gnome-calculator
qalculate-gtk
handbrake
hyperfine
just
@@ -44,6 +44,7 @@ qdirstat
ripgrep
signal-desktop
slurp
solidtime-desktop
spotify
solaar
swappy
@@ -65,3 +66,4 @@ zoxide
#flatpaks
eu.betterbird.Betterbird
com.todoist.Todoist
com.logseq.Logseq
@@ -25,20 +25,28 @@ in
text = ""; # empty file
};
home.file.".config/flameshot/flameshot.ini".text = ''
[General]
; Border color: A solid blend of @blue and @green (approximates the gradient)
buttonColor=#95c2e0
; Sidebar and inactive elements: Use @surface2 for subtlety
sidebarColor=#585b70
; Active buttons: Use @peach for contrast
buttonActiveColor=#fab387
; Text/icons: Use @text for readability
contrastingUIColor=#cdd6f4
showDesktopNotification=true
savePath=${config.xdg.picturesDir}/Screenshots
filenamePattern=$Y-$m-$d_$H-$M-$S
copyPathAfterCapture=true
'';
services.flameshot = {
enable = true;
settings = {
General = {
uiColor = "#97cbbe";
contrastUiColor = "#1e1e2e";
showDesktopNotification = true;
savePath = "/home/${username}/Pictures/Screenshots";
filenamePattern = "$Y-$m-$d_$H-$M-$S";
useGrimAdapter = true;
};
};
};
systemd.user.services.flameshot = {
Service = {
Environment = [
"WAYLAND_DISPLAY=wayland-1"
"XDG_CURRENT_DESKTOP=hyprland"
"XDG_SESSION_TYPE=wayland"
];
};
};
};
}
@@ -1,7 +1,8 @@
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
{ config, pkgs, ... }:
let
username = "henrov";
username = config.defaultUser or "henrov";
in
{
environment.systemPackages = with pkgs; [
@@ -17,16 +18,4 @@ in
Restart = "on-failure";
};
};
systemd.users.userLinger = [${username}];
# Hyprland config (if managed via Nix)
programs.hyprland = {
enable = true;
config = {
autostart = [
"systemctl --user start kdeconnect.service"
];
};
};
}
@@ -3,9 +3,7 @@
let
username = config.defaultUser or "henrov";
extraConfigFile = "${flakeRoot}/generated/.config/kitty/extra.conf";
extraConfig =
if builtins.pathExists extraConfigFile
then builtins.readFile extraConfigFile
@@ -18,16 +16,13 @@ in
environment.systemPackages = [
pkgs.kitty
];
#################################
# Home Manager
#################################
home-manager.users = {
"${username}" = {
programs.kitty = {
enable = true;
settings = {
confirm_os_window_close = lib.mkForce 0;
dynamic_background_opacity = lib.mkForce true;
@@ -36,11 +31,10 @@ in
window_padding_width = lib.mkForce 10;
background_opacity = lib.mkForce "0.5";
background_blur = lib.mkForce 5;
notify_on_command_complete = lib.mkForce "never";
};
extraConfig = ''
${extraConfig}
# Theme
include themes/Catppuccin-Mocha.conf
'';
@@ -1,36 +1,37 @@
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
{ lib, config, pkgs, flakeRoot, home-manager, inputs, ... }:
let
username = config.defaultUser or "henrov";
assetPath = "${flakeRoot}/generated/.config/hypr";
hyprlandPkg =
pkgs.hyprland or
pkgs.hyprland-git or
inputs.hyprland.packages.${pkgs.system}.default;
in
{
# Install Hyprland systemwide
programs.hyprland.enable = true;
programs.hyprland.withUWSM = true;
programs.hyprland.package = hyprlandPkg;
environment.systemPackages = [ hyprlandPkg ];
# Home Manager user configuration
home-manager.users = {
${username} = {
home.file = {
".config/hypr/animations.conf" = { source = "${assetPath}/animations.conf"; force = true; };
".config/hypr/behaviour.conf" = { source = "${assetPath}/behaviour.conf"; force = true; };
".config/hypr/bindings.conf" = { source = "${assetPath}/bindings.conf"; force = true; };
".config/hypr/exec-once.conf" = { source = "${assetPath}/exec-once.conf"; force = true; };
".config/hypr/hypridle.conf" = { source = "${assetPath}/hypridle.conf"; force = true; };
".config/hypr/hyprland.conf" = { source = "${assetPath}/hyprland.conf"; force = true; };
".config/hypr/hyprlock.conf" = { source = "${assetPath}/hyprlock.conf"; force = true; };
".config/hypr/layer-rules.conf" = { source = "${assetPath}/layer-rules.conf"; force = true; };
".config/hypr/layout.conf" = { source = "${assetPath}/layout.conf"; force = true; };
".config/hypr/monitor-rules.conf" = { source = "${assetPath}/monitor-rules.conf"; force = true; };
".config/hypr/theming.conf" = { source = "${assetPath}/theming.conf"; force = true; };
".config/hypr/window-rules.conf" = { source = "${assetPath}/window-rules.conf"; force = true; };
".config/hypr/animations.conf" = { source = "${assetPath}/animations.conf"; force = true; };
".config/hypr/behaviour.conf" = { source = "${assetPath}/behaviour.conf"; force = true; };
".config/hypr/bindings.conf" = { source = "${assetPath}/bindings.conf"; force = true; };
".config/hypr/exec-once.conf" = { source = "${assetPath}/exec-once.conf"; force = true; };
".config/hypr/hypridle.conf" = { source = "${assetPath}/hypridle.conf"; force = true; };
".config/hypr/hyprland.conf" = { source = "${assetPath}/hyprland.conf"; force = true; };
".config/hypr/hyprlock.conf" = { source = "${assetPath}/hyprlock.conf"; force = true; };
".config/hypr/layer-rules.conf" = { source = "${assetPath}/layer-rules.conf"; force = true; };
".config/hypr/layout.conf" = { source = "${assetPath}/layout.conf"; force = true; };
".config/hypr/monitor-rules.conf" = { source = "${assetPath}/monitor-rules.conf"; force = true; };
".config/hypr/theming.conf" = { source = "${assetPath}/theming.conf"; force = true; };
".config/hypr/window-rules.conf" = { source = "${assetPath}/window-rules.conf"; force = true; };
".config/hypr/workspace-rules.conf" = { source = "${assetPath}/workspace-rules.conf"; force = true; };
};
};
@@ -13,8 +13,8 @@ in
home-manager.users = {
${username} = {
home.file = {
".config/waybar/config" = {
text = builtins.readFile "${assetPath}/config";
".config/waybar/config.jsonc" = {
text = builtins.readFile "${assetPath}/config.jsonc";
force = true;
};
".config/waybar/style-dark.css" = {
@@ -1,45 +1,62 @@
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
{ lib, config, pkgs, flakeRoot, ... }:
let
# Use the config option defaultUser directly, fallback to "henrov"
username = config.defaultUser or "henrov";
# Portal backends
basePortal = pkgs.xdg-desktop-portal-gtk; # full portal implementation
hyprlandPortal = pkgs.xdg-desktop-portal-hyprland; # Hyprland screencast
homeDir = "/home/${username}";
basePortal = pkgs.xdg-desktop-portal-gtk;
hyprlandPortal = pkgs.xdg-desktop-portal-hyprland;
in
{
#################################
# Enable XDG desktop portals system-wide
# XDG Desktop Portals (system)
#################################
xdg.portal.enable = true;
# Base + Hyprland portals
xdg.portal.extraPortals = [ basePortal hyprlandPortal ];
# Map screencast interface explicitly to Hyprland
xdg.portal.xdgOpenUsePortal = true;
xdg.portal.extraPortals = [
basePortal
hyprlandPortal
];
xdg.portal.config = {
"org.freedesktop.impl.portal.Screencast".backend = "hyprland";
common = {
default = [ "hyprland" "gtk" ];
};
hyprland = {
default = [ "hyprland" "gtk" ];
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
"org.freedesktop.impl.portal.Settings" = [ "gtk" ];
"org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
"org.freedesktop.impl.portal.Screenshot" = [ "hyprland" ];
};
};
#################################
# Install portal packages system-wide
# System packages
#################################
environment.systemPackages = [
basePortal
hyprlandPortal
];
#################################
# Home Manager user configuration
# Home Manager user config
#################################
home-manager.users = {
${username} = {
home.packages = [
basePortal
hyprlandPortal
];
home-manager.users.${username} = {
#################################
# XDG user directories
#################################
xdg.userDirs = {
enable = true;
createDirectories = true;
desktop = null;
download = "${homeDir}/Downloads";
documents = "${homeDir}/Documents";
pictures = "${homeDir}/Pictures";
music = null;
publicShare = null;
templates = "${homeDir}/Experiments";
videos = "${homeDir}/Videos";
extraConfig = {
XDG_PROJECTS_DIR = "${homeDir}/Projects";
XDG_WORK_DIR = "${homeDir}/Work";
};
};
};
}
@@ -31,14 +31,6 @@ let
username = config.defaultUser or "henrov";
cssContent = ''
/* Catppuccin Mocha Palette - auto-generated, do not edit manually */
'' + lib.concatStringsSep "\n" (
lib.mapAttrsToList (name: value:
"@define-color ${name} ${value};"
) colors
) + "\n@define-color base-alpha rgba(30, 30, 46, 0.9);";
qmlContent = ''
pragma Singleton
// Catppuccin Mocha Palette - auto-generated, do not edit manually
@@ -55,8 +47,8 @@ in
{
home-manager.users.${username} = {
home.file = {
".config/shared/Colors.css" = {
text = cssContent;
".config/shared/colors.css" = {
source = "${flakeRoot}/generated/.config/shared/colors.css";
force = true;
};
".config/quickshell/Colors.qml" = {
@@ -1,18 +1,15 @@
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
{ config, pkgs, lib, ... }:
let
tuigreetBin = "${pkgs.tuigreet}/bin/tuigreet";
sessionsDir = "${pkgs.hyprland}/share/wayland-sessions";
sessionsDir = "${pkgs.uwsm}/share/wayland-sessions";
in
{
#################################
# Greetd (tuigreet)
#################################
services.greetd = {
enable = true;
settings = {
default_session = {
command = ''
@@ -21,24 +18,20 @@ in
--remember \
--remember-session \
--sessions ${sessionsDir} \
--cmd "start-hyprland"
--cmd "uwsm start hyprland-uwsm.desktop"
'';
user = "greeter";
};
};
};
#################################
# Fix TTY / boot noise issues
#################################
systemd.services.greetd.serviceConfig = {
Type = "idle";
StandardInput = "tty";
StandardOutput = "tty";
StandardError = "journal";
# Prevent boot log spam on tty
TTYReset = true;
TTYVHangup = true;
TTYVTDisallocate = true;
@@ -36,6 +36,6 @@
pkgs.linux-firmware
pkgs.networkmanagerapplet
pkgs.networkmanager_dmenu
pkgs.iwgtk
# pkgs.iwgtk
];
}
@@ -1,11 +1,18 @@
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
{ lib, config, ... }:
{
nix.settings = {
experimental-features = [ "nix-command" "flakes" ];
download-buffer-size = 536870912; # 512 MB
cores = 2;
max-jobs = 1;
cores = 8;
max-jobs = "auto";
};
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
boot.loader.systemd-boot.configurationLimit = 3;
}
@@ -0,0 +1,40 @@
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
{ lib, config, pkgs, flakeRoot, ... }:
let
username = config.defaultUser or "henrov";
assetPath = "${flakeRoot}/generated/.config/swaync";
in
{
environment.systemPackages = [ pkgs.swaynotificationcenter pkgs.libnotify ];
home-manager.users.${username} = {
# Do NOT enable services.swaync — it would claim the config files
# and conflict with our home.file entries below.
home.file = {
".config/swaync/config.json" = {
text = builtins.readFile "${assetPath}/config.json";
force = true;
};
".config/swaync/style.css" = {
text = builtins.replaceStrings ["henrov"] [username] (builtins.readFile "${assetPath}/style.css");
force = true;
};
};
};
# Autostart swaync as a systemd user service instead
systemd.user.services.swaync = {
description = "SwayNotificationCenter";
after = [ "graphical-session.target" ];
serviceConfig = {
ExecStart = "${pkgs.swaynotificationcenter}/bin/swaync";
Restart = "always";
Environment = [
"WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-1"}"
"XDG_CURRENT_DESKTOP=Hyprland"
];
};
wantedBy = [ "default.target" ];
};
}
+1 -1
View File
@@ -12,7 +12,7 @@ in
isNormalUser = true;
home = "/home/${username}";
hashedPassword = "$6$S7iShgBxB.77CwmP$i0njK.2r3OL5UEvgZbmwZ0rnpZ4QyJcv8p9uCmJ4AiVPSMXkQkIwMLzyAOnJ0q8.tPLIp/7EquEIZeK8qbmgw/";
extraGroups = [ "wheel" "networkmanager" "bluetooth" ];
extraGroups = [ "wheel" "networkmanager" "bluetooth" "input" ];
ignoreShellProgramCheck = true; # <-- avoids the assertion
shell = pkgs.zsh;
};