tangled
alpha
login
or
join now
karitham.dev
/
dotfiles
0
fork
atom
a dotfile but it's really big
0
fork
atom
overview
issues
pulls
pipelines
more granularity on wm subcomponents.
karitham.dev
2 months ago
7f70f4ec
3cb9eb76
verified
This commit was signed with the committer's
known signature
.
karitham.dev
SSH Key Fingerprint:
SHA256:ODeRMGYuG7M/0G+fRF6IfwUk7r5AgG5MYdFTN+uvimc=
+50
-18
8 changed files
expand all
collapse all
unified
split
modules
desktop
home.nix
nixos.nix
wm
dunst.nix
fuzzel.nix
hyprlock.nix
niri.nix
wallpaper.nix
waybar.nix
+19
-8
modules/desktop/home.nix
···
12
12
inherit (osConfig.desktop or { })
13
13
enable
14
14
wm
15
15
+
waybar
16
16
+
hyprlock
17
17
+
wallpaper
18
18
+
notification
19
19
+
launcher
15
20
terminal
16
21
audio
17
22
apps
···
21
26
enable = mkEnableOption "all desktop tools";
22
27
23
28
wm.enable = mkEnableOption "window manager and interface tools";
29
29
+
waybar.enable = mkEnableOption "Waybar status bar";
30
30
+
hyprlock.enable = mkEnableOption "Hyprlock screen locker";
31
31
+
wallpaper.enable = mkEnableOption "Wallpaper management";
32
32
+
wallpaper.image = lib.mkOption {
33
33
+
default = pkgs.fetchurl {
34
34
+
url = "https://raw.githubusercontent.com/HoulFloof/wallpapers/f23c1010b93cb97baa7ad7c94fd552f7601496d2/misc/waves_right_colored.png";
35
35
+
hash = "sha256-NqqE+pGnCIWAitH86sxu1EudVEEaSO82y3NqbhtDh9k=";
36
36
+
};
37
37
+
type = lib.types.path;
38
38
+
description = "the wallpaper to use";
39
39
+
};
40
40
+
notification.enable = mkEnableOption "Notification daemon";
41
41
+
launcher.enable = mkEnableOption "Application launcher";
24
42
terminal.enable = mkEnableOption "terminal tools";
25
43
audio.enable = mkEnableOption "audio tools";
26
44
apps.enable = mkEnableOption "desktop applications";
···
29
47
default = "firefox-devedition.desktop";
30
48
type = types.str;
31
49
};
32
32
-
wallpaper = lib.mkOption {
33
33
-
default = pkgs.fetchurl {
34
34
-
url = "https://raw.githubusercontent.com/HoulFloof/wallpapers/f23c1010b93cb97baa7ad7c94fd552f7601496d2/misc/waves_right_colored.png";
35
35
-
hash = "sha256-NqqE+pGnCIWAitH86sxu1EudVEEaSO82y3NqbhtDh9k=";
36
36
-
};
37
37
-
type = lib.types.path;
38
38
-
description = "the wallpaper to use";
39
39
-
};
50
50
+
40
51
};
41
52
imports = [
42
53
./wm
+10
modules/desktop/nixos.nix
···
8
8
enable = mkEnableOption "all desktop tools";
9
9
10
10
wm.enable = mkEnableOption "window manager and interface tools";
11
11
+
waybar.enable = mkEnableOption "Waybar status bar";
12
12
+
hyprlock.enable = mkEnableOption "Hyprlock screen locker";
13
13
+
wallpaper.enable = mkEnableOption "Wallpaper management";
14
14
+
notification.enable = mkEnableOption "Notification daemon";
15
15
+
launcher.enable = mkEnableOption "Application launcher";
11
16
terminal.enable = mkEnableOption "terminal tools";
12
17
audio.enable = mkEnableOption "audio tools";
13
18
apps.enable = mkEnableOption "desktop applications";
···
27
32
28
33
config = {
29
34
desktop.wm.enable = mkIf cfg.enable true;
35
35
+
desktop.waybar.enable = mkIf cfg.wm.enable true;
36
36
+
desktop.hyprlock.enable = mkIf cfg.wm.enable true;
37
37
+
desktop.wallpaper.enable = mkIf cfg.wm.enable true;
38
38
+
desktop.notification.enable = mkIf cfg.wm.enable true;
39
39
+
desktop.launcher.enable = mkIf cfg.wm.enable true;
30
40
desktop.terminal.enable = mkIf cfg.enable true;
31
41
desktop.audio.enable = mkIf cfg.enable true;
32
42
desktop.apps.enable = mkIf cfg.enable true;
+1
-1
modules/desktop/wm/dunst.nix
···
1
1
{ config, ... }:
2
2
{
3
3
-
services.dunst.enable = config.desktop.wm.enable;
3
3
+
services.dunst.enable = config.desktop.notification.enable;
4
4
}
+11
-2
modules/desktop/wm/fuzzel.nix
···
1
1
-
{ config, lib, ... }:
1
1
+
{
2
2
+
config,
3
3
+
lib,
4
4
+
pkgs,
5
5
+
...
6
6
+
}:
2
7
{
3
3
-
programs.fuzzel = lib.mkIf config.desktop.wm.enable {
8
8
+
programs.fuzzel = lib.mkIf config.desktop.launcher.enable {
4
9
enable = true;
5
10
settings.main = {
6
11
terminal = "ghostty";
7
12
};
13
13
+
};
14
14
+
15
15
+
programs.niri.settings.binds = lib.mkIf config.desktop.launcher.enable {
16
16
+
"Mod+R".action.spawn = "${lib.getExe pkgs.fuzzel}";
8
17
};
9
18
}
+2
-2
modules/desktop/wm/hyprlock.nix
···
5
5
...
6
6
}:
7
7
{
8
8
-
config = lib.mkIf config.desktop.wm.enable {
8
8
+
config = lib.mkIf config.desktop.hyprlock.enable {
9
9
services.hypridle = {
10
10
enable = true;
11
11
settings = {
···
45
45
46
46
background = {
47
47
monitor = "";
48
48
-
path = "${config.desktop.wallpaper}";
48
48
+
path = "${config.desktop.wallpaper.image}";
49
49
blur_passes = 0;
50
50
color = "$base";
51
51
};
+1
-2
modules/desktop/wm/niri.nix
···
48
48
};
49
49
};
50
50
51
51
-
spawn-at-startup = [ { command = [ "systemctl --user restart waybar.service" ]; } ];
51
51
+
spawn-at-startup = [ ];
52
52
53
53
layout = {
54
54
gaps = 16;
···
168
168
{
169
169
"Mod+O".action = show-hotkey-overlay;
170
170
"Mod+Q".action.spawn = "${lib.getExe pkgs.ghostty}";
171
171
-
"Mod+R".action.spawn = "${lib.getExe pkgs.fuzzel}";
172
171
"Mod+C".action.close-window = [ ];
173
172
174
173
"Mod+Comma".action = consume-window-into-column;
+2
-2
modules/desktop/wm/wallpaper.nix
···
5
5
...
6
6
}:
7
7
{
8
8
-
config = lib.mkIf config.desktop.wm.enable {
8
8
+
config = lib.mkIf config.desktop.wallpaper.enable {
9
9
services.swww = {
10
10
enable = true;
11
11
};
···
15
15
command = [
16
16
(lib.getExe' pkgs.swww "swww")
17
17
"img"
18
18
-
"${config.desktop.wallpaper}"
18
18
+
"${config.desktop.wallpaper.image}"
19
19
];
20
20
}
21
21
];
+4
-1
modules/desktop/wm/waybar.nix
···
6
6
...
7
7
}:
8
8
{
9
9
-
config = lib.mkIf config.desktop.wm.enable {
9
9
+
config = lib.mkIf config.desktop.waybar.enable {
10
10
+
programs.niri.settings.spawn-at-startup = [
11
11
+
{ command = [ "systemctl --user restart waybar.service" ]; }
12
12
+
];
10
13
programs.waybar = {
11
14
enable = true;
12
15
systemd.enable = true;