aboutsummaryrefslogtreecommitdiff
path: root/modules/home/niri/chernobyl/niri.nix
blob: b4d129fc7a92257c657c4dc0cf106ebd92b1d8e0 (plain)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
{ pkgs, ... }:

{
  wayland.windowManager.niri = {
    enable = true;
    settings = {
      input = {
        keyboard = {
          xkb = {
            layout = "cz";
            options = "eurosign:e,caps:escape";
          };
        };
        mouse = {
          accel-profile = "adaptive";
          accel-speed = 0.0;
        };
        touchpad = {
          tap = true;
          dwt = true;
          natural-scroll = false;
        };
      };

      outputs = [
        {
          name = "eDP-1";
          scale = 1.5;
          variable-refresh-rate = true;
        }
      ];

      layout = {
        gaps = 5;
      };

      spawn-at-startup = [
        { command = [ "dunst" ]; }
        { command = [ "nm-applet" ]; }
        { command = [ "blueman-applet" ]; }
        { command = [ "waybar" ]; }
      ];

      binds = {
        "Super+T" = ''spawn "kitty"'';
        "Super+N" = ''spawn "firefox"'';
        "Super+M" = ''spawn "rofi" "-show" "drun"'';
        "Super+Shift+M" = ''spawn "kitty" "nnn"'';
        "Super+Shift+S" = ''spawn "flameshot" "gui"'';
        "Super+Ctrl+L" = ''spawn "hyprlock"'';

        # Focus
        "Super+H" = "focus-column-left";
        "Super+J" = "focus-window-down";
        "Super+K" = "focus-window-up";
        "Super+L" = "focus-column-right";

        # Move windows
        "Super+Shift+H" = "move-column-left";
        "Super+Shift+J" = "move-window-down";
        "Super+Shift+K" = "move-window-up";
        "Super+Shift+L" = "move-column-right";

        # Workspaces
        "Super+1" = "workspace 1";
        "Super+2" = "workspace 2";
        "Super+3" = "workspace 3";
        "Super+4" = "workspace 4";
        "Super+5" = "workspace 5";
        "Super+6" = "workspace 6";
        "Super+7" = "workspace 7";
        "Super+8" = "workspace 8";
        "Super+9" = "workspace 9";
        "Super+0" = "workspace 10";

        "Super+Shift+1" = "move-workspace 1";
        "Super+Shift+2" = "move-workspace 2";
        "Super+Shift+3" = "move-workspace 3";
        "Super+Shift+4" = "move-workspace 4";
        "Super+Shift+5" = "move-workspace 5";
        "Super+Shift+6" = "move-workspace 6";
        "Super+Shift+7" = "move-workspace 7";
        "Super+Shift+8" = "move-workspace 8";
        "Super+Shift+9" = "move-workspace 9";
        "Super+Shift+0" = "move-workspace 10";

        # Window management
        "Super+Shift+Q" = "close-window";
        "Super+F" = "maximize-column";
        "Super+Shift+Space" = "toggle-window-floating";
        "Super+E" = "toggle-split";

        # Media keys
        "XF86MonBrightnessUp" = ''spawn "brightnessctl" "set" "+10%"'';
        "XF86MonBrightnessDown" = ''spawn "brightnessctl" "set" "10%-"'';
        "XF86AudioRaiseVolume" = ''spawn "wpctl" "set-volume" "-l" "1.5" "@DEFAULT_AUDIO_SINK@" "5%+"'';
        "XF86AudioLowerVolume" = ''spawn "wpctl" "set-volume" "-l" "1.5" "@DEFAULT_AUDIO_SINK@" "5%-"'';
        "XF86AudioMute" = ''spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"'';
        "XF86AudioMicMute" = ''spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"'';

        # System
        "Super+Shift+C" = "reload-config";
      };

      window-rules = [
        {
          geometry-corner-radius = { top-left = 15; top-right = 15; bottom-left = 15; bottom-right = 15; };
          clip-to-geometry = true;
        }
      ];

      animations = {
        workspace-switch = {
          duration-ms = 200;
          curve = "ease-out-cubic";
        };
      };

      prefer-no-csd = true;
    };
  };

  home.packages = with pkgs; [
    hyprlock
  ];
}