1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# IMPORTANT: this module requires the system to already have `programs.hyprland`
# enabled. You can enable it by importing `share/system/hyprland.nix`
{ pkgs, ... }: {
imports = [
# Custom home manager modules
../hm-modules/wpaperd.nix
# Config
./kitty.nix
./wpaperd.nix
./eww
];
wayland.windowManager.hyprland = {
enable = true;
extraConfig = ''
$mod = SUPER
bind = $mod SHIFT, Return, exec, kitty
general {
layout = master
}
master {
mfact = 0.5
new_is_master = false
}
# workspaces
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
${builtins.concatStringsSep "\n" (builtins.genList (x:
let ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10));
in ''
bind = $mod, ${ws}, workspace, ${toString (x + 1)}
bind = $mod SHIFT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}
'') 10)}
bind = $mod SHIFT, C, killactive
bind = $mod SHIFT, F, togglefloating
bind = $mod SHIFT, Q, exit
bind = $mod, P, exec, rofi -show drun
bind = $mod SHIFT, P, exec, rofi -show run
bind = $mod, H, cyclenext, prev
bind = $mod, L, cyclenext
bind = $mod SHIFT, H, swapnext, prev
bind = $mod SHIFT, L, swapnext
# audio control
binde =, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ --limit 1.0 5%+
binde =, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ --limit 1.0 5%-
bind =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
# monitor brightness control
binde =, XF86MonBrightnessUp, exec, brightnessctl set +5%
binde =, XF86MonBrightnessDown, exec, brightnessctl set 5%-
input {
# focus change on cursor move
follow_mouse = 1
accel_profile = flat
}
monitor=,preferred,auto,1
# set opacity to 0.9 active and 0.5 inactive for kitty
windowrule = opacity 0.9 override 0.5 override,^(kitty)$
'';
};
home.packages = with pkgs; [ brightnessctl wireplumber ];
services.dunst.enable = true;
programs.rofi.enable = true;
}
|