aboutsummaryrefslogtreecommitdiff
path: root/modules/home/i3wm/i3.nix
blob: 35ce6deed4e89c012aea33d1aa35280d49c75aa1 (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
127
128
129
130
{ config, pkgs, lib, ... }:

{
  xsession.windowManager.i3 = {
    enable = true;
    config.bars = [];

    extraConfig = ''
      # i3 config
      set $mod Mod4
      font pango:Fira Code 10

      exec --no-startup-id dex-autostart --autostart --environment i3
      exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock-fancy-rapid 5 3 --nofork
      exec --no-startup-id nm-applet
      exec --no-startup-id blueman-applet
      exec_always --no-startup-id sh -c "sleep 1 && picom --config ~/.config/picom/picom.conf"
      exec --no-startup-id -merge ~/.Xresources
      exec_always --no-startup-id feh --bg-scale ~/Pictures/wallpapers/vox.jpg
      exec_always --no-startup-id sh -c "killall -q polybar; sleep 1; polybar example --config=~/.config/polybar/config.ini &"
      exec_always --no-startup-id polybar-hide-on-fullscreen
      exec --no-startup-id flameshot
      
      gaps top 60

      bindsym XF86MonBrightnessDown exec brightnessctl set 10%-
      bindsym XF86MonBrightnessUp exec brightnessctl set +10%
      bindsym XF86AudioMute exec amixer set Master toggle
      bindsym XF86AudioLowerVolume exec amixer set Master 5%-
      bindsym XF86AudioRaiseVolume exec amixer set Master 5%+
      bindsym XF86AudioMicMute exec amixer set Capture toggle

      floating_modifier $mod

      bindsym $mod+Shift+s exec flameshot gui
      bindsym $mod+Return exec kitty
      bindsym $mod+Control+l exec --no-startup-id i3lock-fancy-rapid 5 3
      bindsym $mod+m exec rofi -show drun
      bindsym $mod+Shift+m exec kitty nnn
      bindsym $mod+n exec firefox
      bindsym $mod+Shift+q kill

      bindsym $mod+j focus left
      bindsym $mod+k focus down
      bindsym $mod+l focus up
      bindsym $mod+uring focus right

      bindsym $mod+Shift+j move left
      bindsym $mod+Shift+k move down
      bindsym $mod+Shift+l move up
      bindsym $mod+Shift+uring move right

      bindsym $mod+h split h
      bindsym $mod+v split v
      bindsym $mod+f fullscreen toggle
      bindsym $mod+s layout stacking
      bindsym $mod+w layout tabbed
      bindsym $mod+e layout toggle split
      bindsym $mod+Shift+space floating toggle
      bindsym $mod+space focus mode_toggle
      bindsym $mod+a focus parent

      set $ws1 "1"
      set $ws2 "2"
      set $ws3 "3"
      set $ws4 "4"
      set $ws5 "5"
      set $ws6 "6"
      set $ws7 "7"
      set $ws8 "8"
      set $ws9 "9"
      set $ws10 "10"

      bindsym $mod+plus workspace number $ws1
      bindsym $mod+ecaron workspace number $ws2
      bindsym $mod+scaron workspace number $ws3
      bindsym $mod+ccaron workspace number $ws4
      bindsym $mod+rcaron workspace number $ws5
      bindsym $mod+zcaron workspace number $ws6
      bindsym $mod+yacute workspace number $ws7
      bindsym $mod+aacute workspace number $ws8
      bindsym $mod+iacute workspace number $ws9
      bindsym $mod+eacute workspace number $ws10

      bindsym $mod+Shift+plus move container to workspace number $ws1
      bindsym $mod+Shift+ecaron move container to workspace number $ws2
      bindsym $mod+Shift+scaron move container to workspace number $ws3
      bindsym $mod+Shift+ccaron move container to workspace number $ws4
      bindsym $mod+Shift+rcaron move container to workspace number $ws5
      bindsym $mod+Shift+zcaron move container to workspace number $ws6
      bindsym $mod+Shift+yacute move container to workspace number $ws7
      bindsym $mod+Shift+aacute move container to workspace number $ws8
      bindsym $mod+Shift+iacute move container to workspace number $ws9
      bindsym $mod+Shift+eacute move container to workspace number $ws10

      bindsym $mod+Shift+c reload
      bindsym $mod+Shift+r restart
      bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"

      mode "resize" {
        bindsym j resize shrink width 5 px or 5 ppt
        bindsym k resize grow height 5 px or 5 ppt
        bindsym l resize shrink height 5 px or 5 ppt
        bindsym uring resize grow width 5 px or 5 ppt

        bindsym Left resize shrink width 5 px or 5 ppt
        bindsym Down resize grow height 5 px or 5 ppt
        bindsym Up resize shrink height 5 px or 5 ppt
        bindsym Right resize grow width 5 px or 5 ppt

        bindsym Return mode "default"
        bindsym Escape mode "default"
        bindsym $mod+r mode "default"
      }

      bindsym $mod+r mode "resize"

      client.focused          #FFFFFF #FFFFFF #FFFFFF #FFFFFF   #b12cbf
      client.focused_inactive #8C8C8C #4C4C4C #FFFFFF #4C4C4C   #FFFFFF
      client.unfocused        #4C4C4C #222222 #888888 #292D2E   #500096
      client.urgent           #EC69A0 #DB3279 #FFFFFF #DB3279   #DB3279
      client.placeholder      #000000 #0C0C0C #FFFFFF #000000   #FFFFFF
      client.background       #FFFFFF

      default_border pixel 3
      default_floating_border pixel 3
      hide_edge_borders smart
    '';
  };
}