+312
docs/deprecated/i3.nix
+312
docs/deprecated/i3.nix
···
1
+
{ pkgs, ... }:
2
+
3
+
{
4
+
home.packages = with pkgs; [
5
+
xclip
6
+
xcolor
7
+
ffcast
8
+
slop
9
+
];
10
+
11
+
xsession.windowManager.i3 =
12
+
let
13
+
mod = "Mod4";
14
+
mainDesktop = "DP-0";
15
+
secondDesktop = "HDMI-1";
16
+
in
17
+
{
18
+
enable = true;
19
+
config = {
20
+
modifier = mod;
21
+
window = {
22
+
hideEdgeBorders = "both";
23
+
titlebar = false;
24
+
border = 0;
25
+
};
26
+
floating = {
27
+
titlebar = false;
28
+
border = 0;
29
+
criteria = [
30
+
{
31
+
class = "^AmneziaVPN$";
32
+
}
33
+
{
34
+
class = "^pwvucontrol$";
35
+
}
36
+
];
37
+
};
38
+
bars = [
39
+
{
40
+
mode = "invisible";
41
+
}
42
+
];
43
+
keybindings = {
44
+
"${mod}+q" = "kill";
45
+
"${mod}+space" = "exec --no-startup-id rofi -show combi";
46
+
47
+
"XF86AudioPrev" = "exec --no-startup-id playerctl previous";
48
+
"XF86AudioLowerVolume" = "exec --no-startup-id wpctl set-volume @DEFAULT_SINK@ .05-";
49
+
"XF86AudioRaiseVolume" = "exec --no-startup-id wpctl set-volume @DEFAULT_SINK@ .05+";
50
+
"XF86AudioNext" = "exec --no-startup-id playerctl next";
51
+
"XF86AudioPlay" = "exec --no-startup-id playerctl play-pause";
52
+
53
+
"${mod}+h" = "focus left";
54
+
"${mod}+j" = "focus down";
55
+
"${mod}+k" = "focus up";
56
+
"${mod}+l" = "focus right";
57
+
58
+
"${mod}+Shift+h" = "move left";
59
+
"${mod}+Shift+j" = "move down";
60
+
"${mod}+Shift+k" = "move up";
61
+
"${mod}+Shift+l" = "move right";
62
+
63
+
"${mod}+1" = "workspace number 1";
64
+
"${mod}+2" = "workspace number 2";
65
+
"${mod}+3" = "workspace number 3";
66
+
"${mod}+4" = "workspace number 4";
67
+
"${mod}+5" = "workspace number 5";
68
+
"${mod}+6" = "workspace number 6";
69
+
"${mod}+7" = "workspace number 7";
70
+
"${mod}+8" = "workspace number 8";
71
+
"${mod}+9" = "workspace number 9";
72
+
"${mod}+0" = "workspace number 10";
73
+
"${mod}+a" = "workspace a";
74
+
"${mod}+b" = "workspace b";
75
+
"${mod}+c" = "workspace c";
76
+
"${mod}+d" = "workspace d";
77
+
"${mod}+e" = "workspace e";
78
+
"${mod}+f" = "workspace f";
79
+
"${mod}+g" = "workspace g";
80
+
"${mod}+i" = "workspace i";
81
+
"${mod}+m" = "workspace m";
82
+
"${mod}+n" = "workspace n";
83
+
"${mod}+o" = "workspace o";
84
+
"${mod}+p" = "workspace p";
85
+
"${mod}+r" = "workspace r";
86
+
"${mod}+s" = "workspace s";
87
+
"${mod}+t" = "workspace t";
88
+
"${mod}+u" = "workspace u";
89
+
"${mod}+v" = "workspace v";
90
+
"${mod}+w" = "workspace w";
91
+
"${mod}+x" = "workspace x";
92
+
"${mod}+y" = "workspace y";
93
+
"${mod}+z" = "workspace z";
94
+
95
+
"${mod}+Shift+1" = "move container to workspace number 1";
96
+
"${mod}+Shift+2" = "move container to workspace number 2";
97
+
"${mod}+Shift+3" = "move container to workspace number 3";
98
+
"${mod}+Shift+4" = "move container to workspace number 4";
99
+
"${mod}+Shift+5" = "move container to workspace number 5";
100
+
"${mod}+Shift+6" = "move container to workspace number 6";
101
+
"${mod}+Shift+7" = "move container to workspace number 7";
102
+
"${mod}+Shift+8" = "move container to workspace number 8";
103
+
"${mod}+Shift+9" = "move container to workspace number 9";
104
+
"${mod}+Shift+0" = "move container to workspace number 10";
105
+
"${mod}+Shift+a" = "move container to workspace a";
106
+
"${mod}+Shift+b" = "move container to workspace b";
107
+
"${mod}+Shift+c" = "move container to workspace c";
108
+
"${mod}+Shift+d" = "move container to workspace d";
109
+
"${mod}+Shift+e" = "move container to workspace e";
110
+
"${mod}+Shift+f" = "move container to workspace f";
111
+
"${mod}+Shift+g" = "move container to workspace g";
112
+
"${mod}+Shift+i" = "move container to workspace i";
113
+
"${mod}+Shift+m" = "move container to workspace m";
114
+
"${mod}+Shift+n" = "move container to workspace n";
115
+
"${mod}+Shift+o" = "move container to workspace o";
116
+
"${mod}+Shift+p" = "move container to workspace p";
117
+
"${mod}+Shift+r" = "move container to workspace r";
118
+
"${mod}+Shift+s" = "move container to workspace s";
119
+
"${mod}+Shift+t" = "move container to workspace t";
120
+
"${mod}+Shift+u" = "move container to workspace u";
121
+
"${mod}+Shift+v" = "move container to workspace v";
122
+
"${mod}+Shift+w" = "move container to workspace w";
123
+
"${mod}+Shift+x" = "move container to workspace x";
124
+
"${mod}+Shift+y" = "move container to workspace y";
125
+
"${mod}+Shift+z" = "move container to workspace z";
126
+
127
+
"${mod}+Shift+Tab" = "move workspace to output next";
128
+
};
129
+
workspaceOutputAssign = [
130
+
{
131
+
output = mainDesktop;
132
+
workspace = "1";
133
+
}
134
+
{
135
+
output = mainDesktop;
136
+
workspace = "2";
137
+
}
138
+
{
139
+
output = mainDesktop;
140
+
workspace = "3";
141
+
}
142
+
{
143
+
output = mainDesktop;
144
+
workspace = "4";
145
+
}
146
+
{
147
+
output = mainDesktop;
148
+
workspace = "5";
149
+
}
150
+
{
151
+
output = mainDesktop;
152
+
workspace = "6";
153
+
}
154
+
{
155
+
output = mainDesktop;
156
+
workspace = "7";
157
+
}
158
+
{
159
+
output = mainDesktop;
160
+
workspace = "8";
161
+
}
162
+
{
163
+
output = mainDesktop;
164
+
workspace = "9";
165
+
}
166
+
{
167
+
output = secondDesktop;
168
+
workspace = "10";
169
+
}
170
+
{
171
+
output = mainDesktop;
172
+
workspace = "a";
173
+
}
174
+
{
175
+
output = secondDesktop;
176
+
workspace = "b";
177
+
}
178
+
{
179
+
output = secondDesktop;
180
+
workspace = "c";
181
+
}
182
+
{
183
+
output = mainDesktop;
184
+
workspace = "d";
185
+
}
186
+
{
187
+
output = mainDesktop;
188
+
workspace = "e";
189
+
}
190
+
{
191
+
output = secondDesktop;
192
+
workspace = "f";
193
+
}
194
+
{
195
+
output = mainDesktop;
196
+
workspace = "g";
197
+
}
198
+
{
199
+
output = mainDesktop;
200
+
workspace = "i";
201
+
}
202
+
{
203
+
output = mainDesktop;
204
+
workspace = "m";
205
+
}
206
+
{
207
+
output = mainDesktop;
208
+
workspace = "n";
209
+
}
210
+
{
211
+
output = mainDesktop;
212
+
workspace = "o";
213
+
}
214
+
{
215
+
output = mainDesktop;
216
+
workspace = "p";
217
+
}
218
+
{
219
+
output = mainDesktop;
220
+
workspace = "q";
221
+
}
222
+
{
223
+
output = mainDesktop;
224
+
workspace = "r";
225
+
}
226
+
{
227
+
output = mainDesktop;
228
+
workspace = "s";
229
+
}
230
+
{
231
+
output = mainDesktop;
232
+
workspace = "t";
233
+
}
234
+
{
235
+
output = mainDesktop;
236
+
workspace = "u";
237
+
}
238
+
{
239
+
output = mainDesktop;
240
+
workspace = "v";
241
+
}
242
+
{
243
+
output = mainDesktop;
244
+
workspace = "w";
245
+
}
246
+
{
247
+
output = mainDesktop;
248
+
workspace = "x";
249
+
}
250
+
{
251
+
output = mainDesktop;
252
+
workspace = "y";
253
+
}
254
+
{
255
+
output = mainDesktop;
256
+
workspace = "z";
257
+
}
258
+
];
259
+
assigns = {
260
+
"number 10" = [ { class = "^Chromium-browser$"; } ];
261
+
"e" = [ { class = "^dev.zed.Zed$"; } ];
262
+
"r" = [ { class = "^thunderbird$"; } ];
263
+
"t" = [ { class = "^AyuGramDesktop$"; } ];
264
+
"s" = [ { class = "^Slack$"; } ];
265
+
"a" = [ { class = "^anytype$"; } ];
266
+
"d" = [ { class = "^discord$"; } ];
267
+
"f" = [ { class = "^zen$"; } ];
268
+
"g" = [ { class = "^kitty$"; } ];
269
+
"c" = [ { class = "^Google-chrome$"; } ];
270
+
"b" = [ { class = "^Zathura$"; } ];
271
+
};
272
+
startup = [
273
+
{
274
+
command = "AmneziaVPN";
275
+
notification = false;
276
+
}
277
+
{
278
+
command = "zeditor";
279
+
notification = false;
280
+
}
281
+
{
282
+
command = "thunderbird";
283
+
notification = false;
284
+
}
285
+
{
286
+
command = "AyuGram";
287
+
notification = false;
288
+
}
289
+
{
290
+
command = "anytype";
291
+
notification = false;
292
+
}
293
+
{
294
+
command = "slack";
295
+
notification = false;
296
+
}
297
+
{
298
+
command = "discord";
299
+
notification = false;
300
+
}
301
+
{
302
+
command = "zen-beta";
303
+
notification = false;
304
+
}
305
+
{
306
+
command = "kitty";
307
+
notification = false;
308
+
}
309
+
];
310
+
};
311
+
};
312
+
}
+50
docs/deprecated/rofi-system.nix
+50
docs/deprecated/rofi-system.nix
···
1
+
{
2
+
lib,
3
+
stdenv,
4
+
fetchFromGitHub,
5
+
makeWrapper,
6
+
coreutils,
7
+
flameshot,
8
+
swaylock,
9
+
systemd,
10
+
wireplumber,
11
+
}:
12
+
13
+
stdenv.mkDerivation {
14
+
pname = "rofi-system";
15
+
version = "2025-08-29";
16
+
17
+
src = fetchFromGitHub {
18
+
owner = "wardxela";
19
+
repo = "rofi-system";
20
+
rev = "25d036978942fd6aafd9165a3bdf66ba64f6272d";
21
+
hash = "sha256-Gc904igcK60WjI/D9mOj2PII/2y13R/upXA0oR98Qag=";
22
+
};
23
+
24
+
nativeBuildInputs = [ makeWrapper ];
25
+
26
+
postFixup = ''
27
+
wrapProgram $out/bin/rofi-system \
28
+
--set PATH ${
29
+
lib.makeBinPath [
30
+
coreutils
31
+
flameshot
32
+
swaylock
33
+
systemd
34
+
wireplumber
35
+
]
36
+
}
37
+
'';
38
+
39
+
installPhase = ''
40
+
install -Dm755 rofi-system $out/bin/rofi-system
41
+
'';
42
+
43
+
meta = {
44
+
description = "Raycast-inspired extension to perform some system-level things using Rofi";
45
+
mainProgram = "rofi-system";
46
+
homepage = "https://github.com/wardxela/rofi-system";
47
+
platforms = lib.platforms.linux;
48
+
license = lib.licenses.gpl3;
49
+
};
50
+
}
+180
docs/deprecated/rofi.nix
+180
docs/deprecated/rofi.nix
···
1
+
{
2
+
lib,
3
+
pkgs,
4
+
config,
5
+
...
6
+
}:
7
+
8
+
let
9
+
rofi-system = pkgs.callPackage ./rofi-system.nix { };
10
+
rofi-cliphist = pkgs.writeScriptBin "rofi-cliphist" ''
11
+
#!/usr/bin/env bash
12
+
13
+
if [ -z "$1" ]; then
14
+
cliphist list | sed 's/^\([0-9]\+\)[ \t]*/\1 /'
15
+
else
16
+
cliphist decode <<<"$1" | wl-copy
17
+
fi
18
+
'';
19
+
in
20
+
{
21
+
stylix.targets.rofi.enable = false;
22
+
programs.rofi = {
23
+
enable = true;
24
+
terminal = lib.getExe pkgs.kitty;
25
+
plugins = with pkgs; [
26
+
rofi-emoji
27
+
rofi-calc
28
+
rofi-system
29
+
rofi-cliphist
30
+
];
31
+
extraConfig = {
32
+
kb-row-up = "Up,Control+k";
33
+
kb-row-down = "Down,Control+j";
34
+
kb-mode-next = "Control+l";
35
+
kb-mode-previous = "Control+h";
36
+
kb-accept-entry = "Return";
37
+
kb-remove-to-eol = "Control+Shift+e";
38
+
kb-remove-char-back = "BackSpace,Shift+BackSpace";
39
+
kb-mode-complete = "Control+i";
40
+
modes = "combi,calc,emoji,cliphist:${lib.getExe rofi-cliphist}";
41
+
matching = "fuzzy";
42
+
combi-modes = "drun,window,ssh,system:${lib.getExe rofi-system}";
43
+
combi-display-format = "{text}	<span font='Normal 14px' alpha='50%'>{mode}</span>";
44
+
drun-display-format = "{name} <span weight='normal' alpha='60%'>{generic}</span>";
45
+
window-format = "{t}";
46
+
display-drun = "Application";
47
+
display-ssh = " SSH";
48
+
display-window = " Window";
49
+
# TODO: https://github.com/nix-community/home-manager/issues/4783
50
+
"// calc" = config.lib.formats.rasi.mkLiteral ''
51
+
52
+
calc {
53
+
terse: true;
54
+
hint-result: "";
55
+
hint-welcome: "";
56
+
}
57
+
// '';
58
+
};
59
+
theme =
60
+
let
61
+
inherit (config.lib.formats.rasi) mkLiteral;
62
+
in
63
+
{
64
+
"*" = {
65
+
background = mkLiteral "rgb(10, 10, 10)";
66
+
foreground = mkLiteral "#F2F2F2";
67
+
background-selected = mkLiteral "rgba(255, 255, 255, 0.1)";
68
+
rounded-sm = mkLiteral "8px";
69
+
rounded-md = mkLiteral "10px";
70
+
};
71
+
72
+
window = {
73
+
width = mkLiteral "774px";
74
+
background-color = mkLiteral "@background";
75
+
border = mkLiteral "1px";
76
+
border-color = mkLiteral "rgb(0, 0, 0)";
77
+
border-radius = mkLiteral "@rounded-md";
78
+
};
79
+
80
+
mainbox = {
81
+
background-color = mkLiteral "inherit";
82
+
border = mkLiteral "1px";
83
+
border-color = mkLiteral "rgba(255, 255, 255, 0.1)";
84
+
border-radius = mkLiteral "@rounded-md";
85
+
children = map mkLiteral [
86
+
"inputbar"
87
+
"line-separator"
88
+
"message"
89
+
"listview"
90
+
];
91
+
};
92
+
93
+
inputbar = {
94
+
background-color = mkLiteral "inherit";
95
+
children = map mkLiteral [ "entry" ];
96
+
};
97
+
98
+
line-separator = {
99
+
background-color = mkLiteral "inherit";
100
+
background-image = mkLiteral ''
101
+
linear-gradient(
102
+
to right,
103
+
transparent,
104
+
rgba(255, 255, 255, 0.05),
105
+
rgba(255, 255, 255, 0.1),
106
+
rgba(255, 255, 255, 0.1),
107
+
rgba(255, 255, 255, 0.1),
108
+
rgba(255, 255, 255, 0.1),
109
+
rgba(255, 255, 255, 0.05),
110
+
transparent,
111
+
transparent,
112
+
transparent
113
+
)'';
114
+
expand = false;
115
+
padding = mkLiteral "1px 0 0";
116
+
};
117
+
118
+
message = {
119
+
background-color = mkLiteral "inherit";
120
+
padding = mkLiteral "8px 8px 0 8px";
121
+
children = map mkLiteral [ "textbox" ];
122
+
};
123
+
124
+
textbox = {
125
+
background-color = mkLiteral "@background-selected";
126
+
text-color = mkLiteral "@foreground";
127
+
font = "Medium 30px";
128
+
padding = mkLiteral "34px";
129
+
border-radius = mkLiteral "@rounded-sm";
130
+
};
131
+
132
+
entry = {
133
+
font = "Medium 18px";
134
+
placeholder = "Search for apps and commands...";
135
+
placeholder-color = mkLiteral "rgba(242, 242, 242, 0.5)";
136
+
padding = mkLiteral "20px 16px";
137
+
text-color = mkLiteral "@foreground";
138
+
background-color = mkLiteral "inherit";
139
+
};
140
+
141
+
prompt = {
142
+
text-color = mkLiteral "@foreground";
143
+
};
144
+
145
+
listview = {
146
+
background-color = mkLiteral "inherit";
147
+
padding = mkLiteral "8px";
148
+
lines = 8;
149
+
};
150
+
151
+
element = {
152
+
background-color = mkLiteral "inherit";
153
+
padding = mkLiteral "14px 8px";
154
+
spacing = mkLiteral "14px";
155
+
children = map mkLiteral [
156
+
"element-icon"
157
+
"element-text"
158
+
];
159
+
border-radius = mkLiteral "@rounded-sm";
160
+
};
161
+
162
+
"element.selected" = {
163
+
background-color = mkLiteral "@background-selected";
164
+
};
165
+
166
+
element-icon = {
167
+
background-color = mkLiteral "transparent";
168
+
size = mkLiteral "20px";
169
+
};
170
+
171
+
element-text = {
172
+
background-color = mkLiteral "transparent";
173
+
font = "Medium 15px";
174
+
vertical-align = mkLiteral "0.5";
175
+
text-color = mkLiteral "@foreground";
176
+
tab-stops = mkLiteral "[ 616px ]";
177
+
};
178
+
};
179
+
};
180
+
}
+322
docs/deprecated/sway.nix
+322
docs/deprecated/sway.nix
···
1
+
{ ... }:
2
+
3
+
{
4
+
wayland.windowManager.sway = {
5
+
enable = true;
6
+
wrapperFeatures.gtk = true;
7
+
config =
8
+
let
9
+
mod = "Mod4";
10
+
mainDesktop = "DP-1";
11
+
secondDesktop = "HDMI-A-2";
12
+
in
13
+
{
14
+
modifier = mod;
15
+
input = {
16
+
"*" = {
17
+
xkb_layout = "us,ru";
18
+
xkb_options = "grp:caps_toggle";
19
+
repeat_delay = "225";
20
+
repeat_rate = "30";
21
+
};
22
+
};
23
+
output = {
24
+
"${mainDesktop}" = {
25
+
pos = "0 0";
26
+
};
27
+
"${secondDesktop}" = {
28
+
pos = "1920 0";
29
+
};
30
+
};
31
+
window = {
32
+
hideEdgeBorders = "both";
33
+
titlebar = false;
34
+
border = 0;
35
+
};
36
+
floating = {
37
+
titlebar = false;
38
+
border = 0;
39
+
criteria = [
40
+
{
41
+
title = "AmneziaVPN";
42
+
}
43
+
{
44
+
app_id = "com.saivert.pwvucontrol";
45
+
}
46
+
{
47
+
app_id = "gcolor3";
48
+
}
49
+
{
50
+
app_id = "nemo";
51
+
}
52
+
{
53
+
app_id = "com.belmoussaoui.Authenticator";
54
+
}
55
+
];
56
+
};
57
+
bars = [ ];
58
+
bindkeysToCode = true;
59
+
keybindings = {
60
+
"${mod}+control+q" = "kill";
61
+
"${mod}+space" = "exec rofi -show combi";
62
+
63
+
"XF86AudioLowerVolume" = "exec volumectl -u down";
64
+
"XF86AudioRaiseVolume" = "exec volumectl -u up";
65
+
66
+
"${mod}+h" = "focus left";
67
+
"${mod}+j" = "focus down";
68
+
"${mod}+k" = "focus up";
69
+
"${mod}+l" = "focus right";
70
+
71
+
"${mod}+shift+h" = "move left";
72
+
"${mod}+shift+j" = "move down";
73
+
"${mod}+shift+k" = "move up";
74
+
"${mod}+shift+l" = "move right";
75
+
76
+
"${mod}+1" = "workspace number 1";
77
+
"${mod}+2" = "workspace number 2";
78
+
"${mod}+3" = "workspace number 3";
79
+
"${mod}+4" = "workspace number 4";
80
+
"${mod}+5" = "workspace number 5";
81
+
"${mod}+6" = "workspace number 6";
82
+
"${mod}+7" = "workspace number 7";
83
+
"${mod}+8" = "workspace number 8";
84
+
"${mod}+9" = "workspace number 9";
85
+
"${mod}+0" = "workspace number 10";
86
+
"${mod}+a" = "workspace a";
87
+
"${mod}+b" = "workspace b";
88
+
"${mod}+c" = "workspace c";
89
+
"${mod}+d" = "workspace d";
90
+
"${mod}+e" = "workspace e";
91
+
"${mod}+f" = "workspace f";
92
+
"${mod}+g" = "workspace g";
93
+
"${mod}+i" = "workspace i";
94
+
"${mod}+q" = "workspace q";
95
+
"${mod}+m" = "workspace m";
96
+
"${mod}+n" = "workspace n";
97
+
"${mod}+o" = "workspace o";
98
+
"${mod}+p" = "workspace p";
99
+
"${mod}+r" = "workspace r";
100
+
"${mod}+s" = "workspace s";
101
+
"${mod}+t" = "workspace t";
102
+
"${mod}+u" = "workspace u";
103
+
"${mod}+v" = "workspace v";
104
+
"${mod}+w" = "workspace w";
105
+
"${mod}+x" = "workspace x";
106
+
"${mod}+y" = "workspace y";
107
+
"${mod}+z" = "workspace z";
108
+
109
+
"${mod}+shift+1" = "move container to workspace number 1";
110
+
"${mod}+shift+2" = "move container to workspace number 2";
111
+
"${mod}+shift+3" = "move container to workspace number 3";
112
+
"${mod}+shift+4" = "move container to workspace number 4";
113
+
"${mod}+shift+5" = "move container to workspace number 5";
114
+
"${mod}+shift+6" = "move container to workspace number 6";
115
+
"${mod}+shift+7" = "move container to workspace number 7";
116
+
"${mod}+shift+8" = "move container to workspace number 8";
117
+
"${mod}+shift+9" = "move container to workspace number 9";
118
+
"${mod}+shift+0" = "move container to workspace number 10";
119
+
"${mod}+shift+a" = "move container to workspace a";
120
+
"${mod}+shift+b" = "move container to workspace b";
121
+
"${mod}+shift+c" = "move container to workspace c";
122
+
"${mod}+shift+d" = "move container to workspace d";
123
+
"${mod}+shift+e" = "move container to workspace e";
124
+
"${mod}+shift+f" = "move container to workspace f";
125
+
"${mod}+shift+g" = "move container to workspace g";
126
+
"${mod}+shift+i" = "move container to workspace i";
127
+
"${mod}+shift+q" = "move container to workspace q";
128
+
"${mod}+shift+m" = "move container to workspace m";
129
+
"${mod}+shift+n" = "move container to workspace n";
130
+
"${mod}+shift+o" = "move container to workspace o";
131
+
"${mod}+shift+p" = "move container to workspace p";
132
+
"${mod}+shift+r" = "move container to workspace r";
133
+
"${mod}+shift+s" = "move container to workspace s";
134
+
"${mod}+shift+t" = "move container to workspace t";
135
+
"${mod}+shift+u" = "move container to workspace u";
136
+
"${mod}+shift+v" = "move container to workspace v";
137
+
"${mod}+shift+w" = "move container to workspace w";
138
+
"${mod}+shift+x" = "move container to workspace x";
139
+
"${mod}+shift+y" = "move container to workspace y";
140
+
"${mod}+shift+z" = "move container to workspace z";
141
+
142
+
"${mod}+Ctrl+h" = "move workspace to output left";
143
+
"${mod}+Ctrl+l" = "move workspace to output right";
144
+
};
145
+
workspaceOutputAssign = [
146
+
{
147
+
output = mainDesktop;
148
+
workspace = "1";
149
+
}
150
+
{
151
+
output = mainDesktop;
152
+
workspace = "2";
153
+
}
154
+
{
155
+
output = mainDesktop;
156
+
workspace = "3";
157
+
}
158
+
{
159
+
output = mainDesktop;
160
+
workspace = "4";
161
+
}
162
+
{
163
+
output = mainDesktop;
164
+
workspace = "5";
165
+
}
166
+
{
167
+
output = mainDesktop;
168
+
workspace = "6";
169
+
}
170
+
{
171
+
output = mainDesktop;
172
+
workspace = "7";
173
+
}
174
+
{
175
+
output = mainDesktop;
176
+
workspace = "8";
177
+
}
178
+
{
179
+
output = mainDesktop;
180
+
workspace = "9";
181
+
}
182
+
{
183
+
output = secondDesktop;
184
+
workspace = "10";
185
+
}
186
+
{
187
+
output = mainDesktop;
188
+
workspace = "a";
189
+
}
190
+
{
191
+
output = secondDesktop;
192
+
workspace = "b";
193
+
}
194
+
{
195
+
output = secondDesktop;
196
+
workspace = "c";
197
+
}
198
+
{
199
+
output = mainDesktop;
200
+
workspace = "d";
201
+
}
202
+
{
203
+
output = mainDesktop;
204
+
workspace = "e";
205
+
}
206
+
{
207
+
output = secondDesktop;
208
+
workspace = "f";
209
+
}
210
+
{
211
+
output = mainDesktop;
212
+
workspace = "g";
213
+
}
214
+
{
215
+
output = mainDesktop;
216
+
workspace = "i";
217
+
}
218
+
{
219
+
output = mainDesktop;
220
+
workspace = "m";
221
+
}
222
+
{
223
+
output = mainDesktop;
224
+
workspace = "n";
225
+
}
226
+
{
227
+
output = mainDesktop;
228
+
workspace = "o";
229
+
}
230
+
{
231
+
output = mainDesktop;
232
+
workspace = "p";
233
+
}
234
+
{
235
+
output = mainDesktop;
236
+
workspace = "q";
237
+
}
238
+
{
239
+
output = mainDesktop;
240
+
workspace = "r";
241
+
}
242
+
{
243
+
output = mainDesktop;
244
+
workspace = "s";
245
+
}
246
+
{
247
+
output = mainDesktop;
248
+
workspace = "t";
249
+
}
250
+
{
251
+
output = mainDesktop;
252
+
workspace = "u";
253
+
}
254
+
{
255
+
output = mainDesktop;
256
+
workspace = "v";
257
+
}
258
+
{
259
+
output = mainDesktop;
260
+
workspace = "w";
261
+
}
262
+
{
263
+
output = mainDesktop;
264
+
workspace = "x";
265
+
}
266
+
{
267
+
output = mainDesktop;
268
+
workspace = "y";
269
+
}
270
+
{
271
+
output = mainDesktop;
272
+
workspace = "z";
273
+
}
274
+
];
275
+
assigns = {
276
+
"number 10" = [ { class = "^Chromium-browser$"; } ];
277
+
"e" = [ { app_id = "dev.zed.Zed"; } ];
278
+
"r" = [ { app_id = "thunderbird"; } ];
279
+
"t" = [ { app_id = "org.telegram.desktop"; } ];
280
+
"a" = [ { app_id = "anytype"; } ];
281
+
"s" = [ { app_id = "Slack"; } ];
282
+
"d" = [ { class = "^discord$"; } ];
283
+
"f" = [ { app_id = "zen-beta"; } ];
284
+
"g" = [ { app_id = "kitty"; } ];
285
+
"c" = [ { app_id = "chromium-browser"; } ];
286
+
"b" = [ { app_id = "org.pwmt.zathura"; } ];
287
+
};
288
+
startup = [
289
+
{
290
+
command = "AmneziaVPN";
291
+
}
292
+
{
293
+
command = "zeditor";
294
+
}
295
+
{
296
+
command = "thunderbird";
297
+
}
298
+
{
299
+
command = "Telegram";
300
+
}
301
+
{
302
+
command = "anytype";
303
+
}
304
+
{
305
+
command = "slack";
306
+
}
307
+
{
308
+
command = "discord";
309
+
}
310
+
{
311
+
command = "zen-beta";
312
+
}
313
+
{
314
+
command = "kitty";
315
+
}
316
+
{
317
+
command = "chromium";
318
+
}
319
+
];
320
+
};
321
+
};
322
+
}
+19
docs/deprecated/xserver.nix
+19
docs/deprecated/xserver.nix
···
1
+
{ ... }:
2
+
3
+
{
4
+
services = {
5
+
xserver = {
6
+
enable = true;
7
+
windowManager.i3.enable = true;
8
+
displayManager.lightdm.enable = true;
9
+
autoRepeatDelay = 225;
10
+
autoRepeatInterval = 30;
11
+
xkb = {
12
+
layout = "us,ru";
13
+
options = "grp:caps_toggle";
14
+
};
15
+
};
16
+
displayManager.defaultSession = "none+i3";
17
+
};
18
+
security.pam.services.i3lock.enable = true;
19
+
}
+160
-30
flake.lock
+160
-30
flake.lock
···
161
161
]
162
162
},
163
163
"locked": {
164
-
"lastModified": 1759362264,
165
-
"narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=",
164
+
"lastModified": 1760948891,
165
+
"narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=",
166
166
"owner": "hercules-ci",
167
167
"repo": "flake-parts",
168
-
"rev": "758cf7296bee11f1706a574c77d072b8a7baa881",
168
+
"rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04",
169
169
"type": "github"
170
170
},
171
171
"original": {
···
197
197
},
198
198
"flake-utils": {
199
199
"inputs": {
200
-
"systems": "systems_2"
200
+
"systems": "systems_3"
201
201
},
202
202
"locked": {
203
203
"lastModified": 1694529238,
···
232
232
"type": "github"
233
233
}
234
234
},
235
+
"flake-utils_2": {
236
+
"inputs": {
237
+
"systems": "systems_5"
238
+
},
239
+
"locked": {
240
+
"lastModified": 1731533236,
241
+
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
242
+
"owner": "numtide",
243
+
"repo": "flake-utils",
244
+
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
245
+
"type": "github"
246
+
},
247
+
"original": {
248
+
"owner": "numtide",
249
+
"repo": "flake-utils",
250
+
"type": "github"
251
+
}
252
+
},
235
253
"fromYaml": {
236
254
"flake": false,
237
255
"locked": {
···
272
290
]
273
291
},
274
292
"locked": {
275
-
"lastModified": 1761316995,
276
-
"narHash": "sha256-BAAjCpjTnfaxtc9NCkbUl9MUv5JmAG5qU7/G8TTHmb4=",
293
+
"lastModified": 1762146130,
294
+
"narHash": "sha256-/XOEA0a61fZ45i/BpaSsyLNNbw/yKwjMbkB/IWSGLzU=",
277
295
"owner": "nix-community",
278
296
"repo": "home-manager",
279
-
"rev": "82b58f38202540bce4e5e00759d115c5a43cab85",
297
+
"rev": "b5ed4afc2277339bdf0e9edf59befff7350cf075",
280
298
"type": "github"
281
299
},
282
300
"original": {
···
328
346
]
329
347
},
330
348
"locked": {
331
-
"lastModified": 1760721282,
332
-
"narHash": "sha256-aAHphQbU9t/b2RRy2Eb8oMv+I08isXv2KUGFAFn7nCo=",
349
+
"lastModified": 1762039661,
350
+
"narHash": "sha256-oM5BwAGE78IBLZn+AqxwH/saqwq3e926rNq5HmOulkc=",
333
351
"owner": "LnL7",
334
352
"repo": "nix-darwin",
335
-
"rev": "c3211fcd0c56c11ff110d346d4487b18f7365168",
353
+
"rev": "c3c8c9f2a5ed43175ac4dc030308756620e6e4e4",
336
354
"type": "github"
337
355
},
338
356
"original": {
···
344
362
},
345
363
"nixpkgs": {
346
364
"locked": {
347
-
"lastModified": 1761114652,
348
-
"narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=",
365
+
"lastModified": 1761907660,
366
+
"narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=",
349
367
"owner": "NixOS",
350
368
"repo": "nixpkgs",
351
-
"rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c",
369
+
"rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15",
352
370
"type": "github"
353
371
},
354
372
"original": {
···
358
376
"type": "github"
359
377
}
360
378
},
379
+
"nixpkgs_2": {
380
+
"locked": {
381
+
"lastModified": 1761907660,
382
+
"narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=",
383
+
"owner": "nixos",
384
+
"repo": "nixpkgs",
385
+
"rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15",
386
+
"type": "github"
387
+
},
388
+
"original": {
389
+
"owner": "nixos",
390
+
"ref": "nixos-unstable",
391
+
"repo": "nixpkgs",
392
+
"type": "github"
393
+
}
394
+
},
395
+
"noctalia": {
396
+
"inputs": {
397
+
"nixpkgs": [
398
+
"nixpkgs"
399
+
],
400
+
"quickshell": [
401
+
"quickshell"
402
+
],
403
+
"systems": "systems"
404
+
},
405
+
"locked": {
406
+
"lastModified": 1762156721,
407
+
"narHash": "sha256-gHfzrTDSnNC5yRJwkZfP55fPHUc8DuB4OQEIBSQSs18=",
408
+
"owner": "noctalia-dev",
409
+
"repo": "noctalia-shell",
410
+
"rev": "5ca5aa602f58a8e0e73fedbef351f1cdf8cbe981",
411
+
"type": "github"
412
+
},
413
+
"original": {
414
+
"owner": "noctalia-dev",
415
+
"repo": "noctalia-shell",
416
+
"type": "github"
417
+
}
418
+
},
361
419
"nur": {
362
420
"inputs": {
363
421
"flake-parts": "flake-parts",
···
366
424
]
367
425
},
368
426
"locked": {
369
-
"lastModified": 1761320093,
370
-
"narHash": "sha256-fQ4HBS21WQnieFvGlVVDePJgs81iwX5v1z6LKfR6C5U=",
427
+
"lastModified": 1762165260,
428
+
"narHash": "sha256-fUkSZyRJR621oqbvrlu18HOxOCWF8u5K65gHB1LjlgU=",
371
429
"owner": "nix-community",
372
430
"repo": "NUR",
373
-
"rev": "4defa8a679785f5fd2ae4637ec27a27e85f318a5",
431
+
"rev": "49ef67af9c6f773cf6a235997d960838eba38c5f",
374
432
"type": "github"
375
433
},
376
434
"original": {
···
412
470
"nixpkgs": [
413
471
"nixpkgs"
414
472
],
415
-
"systems": "systems"
473
+
"systems": "systems_2"
416
474
},
417
475
"locked": {
418
-
"lastModified": 1761112426,
419
-
"narHash": "sha256-fa3fIyXP3xQhsPaZX4WsFwPM9g64EMOucfDEC4o8Nwc=",
476
+
"lastModified": 1762093557,
477
+
"narHash": "sha256-esmyNNa8TvduITLfqYPSMroyZ9vxJr2nsvjYmHmO+Ag=",
420
478
"owner": "notashelf",
421
479
"repo": "nvf",
422
-
"rev": "9b3e7bcf68ace2f07eb7478c40e45ce79332482b",
480
+
"rev": "20d8fca94dceaf943686598da7fba31b37100e50",
423
481
"type": "github"
424
482
},
425
483
"original": {
···
428
486
"type": "github"
429
487
}
430
488
},
489
+
"quickshell": {
490
+
"inputs": {
491
+
"nixpkgs": [
492
+
"nixpkgs"
493
+
]
494
+
},
495
+
"locked": {
496
+
"lastModified": 1761897390,
497
+
"narHash": "sha256-er4gYrIoThYLjlsOMTysoRfn67d1Gci+ZpqDrtQxrA0=",
498
+
"owner": "outfoxxed",
499
+
"repo": "quickshell",
500
+
"rev": "fc704e6b5d445899a1565955268c91942a4f263f",
501
+
"type": "github"
502
+
},
503
+
"original": {
504
+
"owner": "outfoxxed",
505
+
"repo": "quickshell",
506
+
"type": "github"
507
+
}
508
+
},
431
509
"root": {
432
510
"inputs": {
433
511
"home-manager": "home-manager",
434
512
"nix-darwin": "nix-darwin",
435
513
"nixpkgs": "nixpkgs",
514
+
"noctalia": "noctalia",
436
515
"nur": "nur",
437
516
"nvf": "nvf",
517
+
"quickshell": "quickshell",
438
518
"solaar": "solaar",
439
519
"stylix": "stylix",
520
+
"vicinae": "vicinae",
440
521
"zen-browser": "zen-browser"
441
522
}
442
523
},
···
473
554
"snowfall-lib": "snowfall-lib"
474
555
},
475
556
"locked": {
476
-
"lastModified": 1761223318,
477
-
"narHash": "sha256-CVhwqWODg+rxNwAxJgsZlPL6Yt5+VMeJQUuGhzHSrM4=",
557
+
"lastModified": 1761840426,
558
+
"narHash": "sha256-CprKgnLGKpNB0leamU9hw+ZgocRAsEFevyqIuY0FSiY=",
478
559
"owner": "Svenum",
479
560
"repo": "Solaar-Flake",
480
-
"rev": "774dadbeb5a2482d734add54d26060b56f94b7b4",
561
+
"rev": "7b5e221d60195d77fda5c2d69087f7cd1b8d3c20",
481
562
"type": "github"
482
563
},
483
564
"original": {
···
500
581
"nixpkgs"
501
582
],
502
583
"nur": "nur_2",
503
-
"systems": "systems_3",
584
+
"systems": "systems_4",
504
585
"tinted-foot": "tinted-foot",
505
586
"tinted-kitty": "tinted-kitty",
506
587
"tinted-schemes": "tinted-schemes",
···
508
589
"tinted-zed": "tinted-zed"
509
590
},
510
591
"locked": {
511
-
"lastModified": 1761028816,
512
-
"narHash": "sha256-s1XiIeJHpODVWfzsPaK9e21iz1dQSCU3H4/1OxOsyps=",
592
+
"lastModified": 1762101397,
593
+
"narHash": "sha256-wGiL2K3kAyBBmIZpJEskaSIgyzzpg0zwfvri+Sy6/CI=",
513
594
"owner": "danth",
514
595
"repo": "stylix",
515
-
"rev": "b81dc0a385443099e7d231fe6275189e32c3b760",
596
+
"rev": "8c0640d5722a02178c8ee80a62c5f019cab4b3c1",
516
597
"type": "github"
517
598
},
518
599
"original": {
···
566
647
"type": "github"
567
648
}
568
649
},
650
+
"systems_4": {
651
+
"locked": {
652
+
"lastModified": 1681028828,
653
+
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
654
+
"owner": "nix-systems",
655
+
"repo": "default",
656
+
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
657
+
"type": "github"
658
+
},
659
+
"original": {
660
+
"owner": "nix-systems",
661
+
"repo": "default",
662
+
"type": "github"
663
+
}
664
+
},
665
+
"systems_5": {
666
+
"locked": {
667
+
"lastModified": 1681028828,
668
+
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
669
+
"owner": "nix-systems",
670
+
"repo": "default",
671
+
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
672
+
"type": "github"
673
+
},
674
+
"original": {
675
+
"owner": "nix-systems",
676
+
"repo": "default",
677
+
"type": "github"
678
+
}
679
+
},
569
680
"tinted-foot": {
570
681
"flake": false,
571
682
"locked": {
···
647
758
"type": "github"
648
759
}
649
760
},
761
+
"vicinae": {
762
+
"inputs": {
763
+
"flake-utils": "flake-utils_2",
764
+
"nixpkgs": "nixpkgs_2"
765
+
},
766
+
"locked": {
767
+
"lastModified": 1762153854,
768
+
"narHash": "sha256-atFJwetnAf68duKurwdSRWK9iE1Lls2GqbLB+cxjlvo=",
769
+
"owner": "vicinaehq",
770
+
"repo": "vicinae",
771
+
"rev": "f44603ee228ebd63e10457c1dfd9702f79d0eb65",
772
+
"type": "github"
773
+
},
774
+
"original": {
775
+
"owner": "vicinaehq",
776
+
"repo": "vicinae",
777
+
"type": "github"
778
+
}
779
+
},
650
780
"zen-browser": {
651
781
"inputs": {
652
782
"home-manager": "home-manager_2",
···
655
785
]
656
786
},
657
787
"locked": {
658
-
"lastModified": 1761269012,
659
-
"narHash": "sha256-/naxU8jbaoZM3CQCjJiI6Z5+vsv+zA7eZdhFY1tbzsM=",
788
+
"lastModified": 1762131860,
789
+
"narHash": "sha256-sIPhzkDrfe6ptthZiwoxQyO6rKd9PgJnl+LOyythQkI=",
660
790
"owner": "0xc000022070",
661
791
"repo": "zen-browser-flake",
662
-
"rev": "c7f5f0122cf8c4bfd9ef3b138eb615f0e54f1459",
792
+
"rev": "10e69cb268b1d3dc91135e72f5462b2acfbcc3aa",
663
793
"type": "github"
664
794
},
665
795
"original": {
+9
-3
flake.nix
+9
-3
flake.nix
···
11
11
stylix.inputs.nixpkgs.follows = "nixpkgs";
12
12
nix-darwin.url = "github:LnL7/nix-darwin/master";
13
13
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
14
-
# TODO: https://github.com/NixOS/nixpkgs/issues/327982
14
+
quickshell.url = "github:outfoxxed/quickshell";
15
+
quickshell.inputs.nixpkgs.follows = "nixpkgs";
16
+
noctalia.url = "github:noctalia-dev/noctalia-shell";
17
+
noctalia.inputs.nixpkgs.follows = "nixpkgs";
18
+
noctalia.inputs.quickshell.follows = "quickshell";
15
19
zen-browser.url = "github:0xc000022070/zen-browser-flake";
16
20
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
17
21
nvf.url = "github:notashelf/nvf";
18
22
nvf.inputs.nixpkgs.follows = "nixpkgs";
19
23
solaar.url = "github:Svenum/Solaar-Flake/main";
20
24
solaar.inputs.nixpkgs.follows = "nixpkgs";
25
+
vicinae.url = "github:vicinaehq/vicinae";
21
26
};
22
27
23
28
outputs =
···
35
40
nixos = nixpkgs.lib.nixosSystem {
36
41
specialArgs = { inherit inputs; };
37
42
modules = [
43
+
nur.modules.nixos.default
44
+
home-manager.nixosModules.home-manager
38
45
stylix.nixosModules.stylix
39
46
solaar.nixosModules.default
40
-
home-manager.nixosModules.home-manager
41
47
./hosts/nixos/configuration.nix
42
48
];
43
49
};
···
47
53
mac = nix-darwin.lib.darwinSystem {
48
54
specialArgs = { inherit inputs; };
49
55
modules = [
50
-
stylix.darwinModules.stylix
51
56
nur.modules.darwin.default
52
57
home-manager.darwinModules.home-manager
58
+
stylix.darwinModules.stylix
53
59
./hosts/mac/configuration.nix
54
60
];
55
61
};
-7
home/linux/avizo.nix
-7
home/linux/avizo.nix
+7
home/linux/cliphist.nix
+7
home/linux/cliphist.nix
+5
-4
home/linux/default.nix
+5
-4
home/linux/default.nix
···
3
3
{
4
4
imports = [
5
5
../shared
6
-
./avizo.nix
7
6
./chromium.nix
7
+
./cliphist.nix
8
8
./easyeffects.nix
9
+
./flameshot.nix
9
10
./gtk.nix
11
+
./hyprland.nix
10
12
./mpv.nix
11
13
./obs.nix
12
14
./packages.nix
13
-
./rofi.nix
14
-
./sway.nix
15
-
./swaync.nix
15
+
./swww.nix
16
+
./vicinae.nix
16
17
./zathura.nix
17
18
];
18
19
}
+15
home/linux/flameshot.nix
+15
home/linux/flameshot.nix
+121
home/linux/hyprland.nix
+121
home/linux/hyprland.nix
···
1
+
{ lib, pkgs, ... }:
2
+
3
+
{
4
+
wayland.windowManager.hyprland = {
5
+
enable = true;
6
+
systemd.enable = false;
7
+
package = null;
8
+
portalPackage = null;
9
+
plugins = with pkgs.hyprlandPlugins; [
10
+
hypr-dynamic-cursors
11
+
];
12
+
settings =
13
+
let
14
+
mod = "SUPER";
15
+
mainDesktop = "DP-1";
16
+
secondDesktop = "HDMI-A-2";
17
+
numbers = lib.stringToCharacters "123456789";
18
+
letters = lib.stringToCharacters "abcdefgimnopqrstuvwxyz";
19
+
launchApp = app: "uwsm app -- ${app}";
20
+
in
21
+
{
22
+
input = {
23
+
kb_layout = "us,ru";
24
+
kb_options = "grp:caps_toggle";
25
+
repeat_delay = 200;
26
+
repeat_rate = 35;
27
+
};
28
+
29
+
general = {
30
+
gaps_in = 0;
31
+
gaps_out = 0;
32
+
border_size = 0;
33
+
allow_tearing = true;
34
+
};
35
+
36
+
decoration = {
37
+
rounding = 0;
38
+
};
39
+
40
+
animations.enabled = false;
41
+
42
+
layerrule = [
43
+
"blur, vicinae"
44
+
"ignorealpha 0, vicinae"
45
+
];
46
+
47
+
windowrulev2 = [
48
+
"float, class:^(com.saivert.pwvucontrol)$"
49
+
"float, class:^(nemo)$"
50
+
"workspace 10 silent, class:^(Chromium-browser)$"
51
+
"workspace name:e silent, class:^(dev.zed.Zed)$"
52
+
"workspace name:r silent, class:^(thunderbird)$"
53
+
"workspace name:t silent, class:^(org.telegram.desktop)$"
54
+
"workspace name:a silent, class:^(anytype)$"
55
+
"workspace name:s silent, class:^(Slack)$"
56
+
"workspace name:d silent, class:^(discord)$"
57
+
"workspace name:f silent, class:^(zen-beta)$"
58
+
"workspace name:g silent, class:^(kitty)$"
59
+
"workspace name:c silent, class:^(chromium-browser)$"
60
+
"workspace name:b silent, class:^(org.pwmt.zathura)$"
61
+
];
62
+
63
+
workspace = lib.flatten [
64
+
"10, monitor:${secondDesktop}"
65
+
(numbers |> map (w: "${w}, monitor:${mainDesktop}"))
66
+
"name:f, monitor:${secondDesktop}"
67
+
(letters |> builtins.filter (w: w != "f") |> map (w: "name:${w}, monitor:${mainDesktop}"))
68
+
];
69
+
70
+
bind = lib.flatten [
71
+
"${mod}, space, exec, ${launchApp "vicinae toggle"}"
72
+
73
+
", xf86audiolowervolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
74
+
", xf86audioraisevolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
75
+
", xf86audioplay, exec, playerctl play-pause"
76
+
", xf86audioprev, exec, playerctl previous"
77
+
", xf86audionext, exec, playerctl next"
78
+
79
+
"${mod}, h, movefocus, l"
80
+
"${mod}, j, movefocus, d"
81
+
"${mod}, k, movefocus, u"
82
+
"${mod}, l, movefocus, r"
83
+
84
+
"${mod}+shift, h, movewindow, l"
85
+
"${mod}+shift, j, movewindow, d"
86
+
"${mod}+shift, k, movewindow, u"
87
+
"${mod}+shift, l, movewindow, r"
88
+
89
+
"${mod}+control, h, movecurrentworkspacetomonitor, l"
90
+
"${mod}+control, l, movecurrentworkspacetomonitor, r"
91
+
"${mod}+control, q, killactive"
92
+
93
+
"${mod}, 0, workspace, 10"
94
+
(numbers |> map (w: "${mod}, ${w}, workspace, ${w}"))
95
+
(letters |> map (w: "${mod}, ${w}, workspace, name:${w}"))
96
+
97
+
"${mod}+shift, 0, movetoworkspace, 10"
98
+
(numbers |> map (w: "${mod}+shift, ${w}, movetoworkspace, ${w}"))
99
+
(letters |> map (w: "${mod}+shift, ${w}, movetoworkspace, name:${w}"))
100
+
];
101
+
102
+
bindm = [
103
+
"${mod}, mouse:272, movewindow"
104
+
"${mod}, mouse:273, resizewindow"
105
+
];
106
+
107
+
exec-once = [
108
+
(launchApp "zeditor")
109
+
(launchApp "thunderbird")
110
+
(launchApp "Telegram")
111
+
(launchApp "anytype")
112
+
(launchApp "slack")
113
+
(launchApp "discord")
114
+
(launchApp "zen-beta")
115
+
(launchApp "kitty")
116
+
];
117
+
};
118
+
};
119
+
# TODO: https://github.com/nix-community/stylix/issues/478
120
+
home.pointerCursor.hyprcursor.enable = true;
121
+
}
-313
home/linux/i3.nix
-313
home/linux/i3.nix
···
1
-
# This module has been replaced in favor of sway.nix. Use it for reference.
2
-
{ pkgs, ... }:
3
-
4
-
{
5
-
home.packages = with pkgs; [
6
-
xclip
7
-
xcolor
8
-
ffcast
9
-
slop
10
-
];
11
-
12
-
xsession.windowManager.i3 =
13
-
let
14
-
mod = "Mod4";
15
-
mainDesktop = "DP-0";
16
-
secondDesktop = "HDMI-1";
17
-
in
18
-
{
19
-
enable = true;
20
-
config = {
21
-
modifier = mod;
22
-
window = {
23
-
hideEdgeBorders = "both";
24
-
titlebar = false;
25
-
border = 0;
26
-
};
27
-
floating = {
28
-
titlebar = false;
29
-
border = 0;
30
-
criteria = [
31
-
{
32
-
class = "^AmneziaVPN$";
33
-
}
34
-
{
35
-
class = "^pwvucontrol$";
36
-
}
37
-
];
38
-
};
39
-
bars = [
40
-
{
41
-
mode = "invisible";
42
-
}
43
-
];
44
-
keybindings = {
45
-
"${mod}+q" = "kill";
46
-
"${mod}+space" = "exec --no-startup-id rofi -show combi";
47
-
48
-
"XF86AudioPrev" = "exec --no-startup-id playerctl previous";
49
-
"XF86AudioLowerVolume" = "exec --no-startup-id wpctl set-volume @DEFAULT_SINK@ .05-";
50
-
"XF86AudioRaiseVolume" = "exec --no-startup-id wpctl set-volume @DEFAULT_SINK@ .05+";
51
-
"XF86AudioNext" = "exec --no-startup-id playerctl next";
52
-
"XF86AudioPlay" = "exec --no-startup-id playerctl play-pause";
53
-
54
-
"${mod}+h" = "focus left";
55
-
"${mod}+j" = "focus down";
56
-
"${mod}+k" = "focus up";
57
-
"${mod}+l" = "focus right";
58
-
59
-
"${mod}+Shift+h" = "move left";
60
-
"${mod}+Shift+j" = "move down";
61
-
"${mod}+Shift+k" = "move up";
62
-
"${mod}+Shift+l" = "move right";
63
-
64
-
"${mod}+1" = "workspace number 1";
65
-
"${mod}+2" = "workspace number 2";
66
-
"${mod}+3" = "workspace number 3";
67
-
"${mod}+4" = "workspace number 4";
68
-
"${mod}+5" = "workspace number 5";
69
-
"${mod}+6" = "workspace number 6";
70
-
"${mod}+7" = "workspace number 7";
71
-
"${mod}+8" = "workspace number 8";
72
-
"${mod}+9" = "workspace number 9";
73
-
"${mod}+0" = "workspace number 10";
74
-
"${mod}+a" = "workspace a";
75
-
"${mod}+b" = "workspace b";
76
-
"${mod}+c" = "workspace c";
77
-
"${mod}+d" = "workspace d";
78
-
"${mod}+e" = "workspace e";
79
-
"${mod}+f" = "workspace f";
80
-
"${mod}+g" = "workspace g";
81
-
"${mod}+i" = "workspace i";
82
-
"${mod}+m" = "workspace m";
83
-
"${mod}+n" = "workspace n";
84
-
"${mod}+o" = "workspace o";
85
-
"${mod}+p" = "workspace p";
86
-
"${mod}+r" = "workspace r";
87
-
"${mod}+s" = "workspace s";
88
-
"${mod}+t" = "workspace t";
89
-
"${mod}+u" = "workspace u";
90
-
"${mod}+v" = "workspace v";
91
-
"${mod}+w" = "workspace w";
92
-
"${mod}+x" = "workspace x";
93
-
"${mod}+y" = "workspace y";
94
-
"${mod}+z" = "workspace z";
95
-
96
-
"${mod}+Shift+1" = "move container to workspace number 1";
97
-
"${mod}+Shift+2" = "move container to workspace number 2";
98
-
"${mod}+Shift+3" = "move container to workspace number 3";
99
-
"${mod}+Shift+4" = "move container to workspace number 4";
100
-
"${mod}+Shift+5" = "move container to workspace number 5";
101
-
"${mod}+Shift+6" = "move container to workspace number 6";
102
-
"${mod}+Shift+7" = "move container to workspace number 7";
103
-
"${mod}+Shift+8" = "move container to workspace number 8";
104
-
"${mod}+Shift+9" = "move container to workspace number 9";
105
-
"${mod}+Shift+0" = "move container to workspace number 10";
106
-
"${mod}+Shift+a" = "move container to workspace a";
107
-
"${mod}+Shift+b" = "move container to workspace b";
108
-
"${mod}+Shift+c" = "move container to workspace c";
109
-
"${mod}+Shift+d" = "move container to workspace d";
110
-
"${mod}+Shift+e" = "move container to workspace e";
111
-
"${mod}+Shift+f" = "move container to workspace f";
112
-
"${mod}+Shift+g" = "move container to workspace g";
113
-
"${mod}+Shift+i" = "move container to workspace i";
114
-
"${mod}+Shift+m" = "move container to workspace m";
115
-
"${mod}+Shift+n" = "move container to workspace n";
116
-
"${mod}+Shift+o" = "move container to workspace o";
117
-
"${mod}+Shift+p" = "move container to workspace p";
118
-
"${mod}+Shift+r" = "move container to workspace r";
119
-
"${mod}+Shift+s" = "move container to workspace s";
120
-
"${mod}+Shift+t" = "move container to workspace t";
121
-
"${mod}+Shift+u" = "move container to workspace u";
122
-
"${mod}+Shift+v" = "move container to workspace v";
123
-
"${mod}+Shift+w" = "move container to workspace w";
124
-
"${mod}+Shift+x" = "move container to workspace x";
125
-
"${mod}+Shift+y" = "move container to workspace y";
126
-
"${mod}+Shift+z" = "move container to workspace z";
127
-
128
-
"${mod}+Shift+Tab" = "move workspace to output next";
129
-
};
130
-
workspaceOutputAssign = [
131
-
{
132
-
output = mainDesktop;
133
-
workspace = "1";
134
-
}
135
-
{
136
-
output = mainDesktop;
137
-
workspace = "2";
138
-
}
139
-
{
140
-
output = mainDesktop;
141
-
workspace = "3";
142
-
}
143
-
{
144
-
output = mainDesktop;
145
-
workspace = "4";
146
-
}
147
-
{
148
-
output = mainDesktop;
149
-
workspace = "5";
150
-
}
151
-
{
152
-
output = mainDesktop;
153
-
workspace = "6";
154
-
}
155
-
{
156
-
output = mainDesktop;
157
-
workspace = "7";
158
-
}
159
-
{
160
-
output = mainDesktop;
161
-
workspace = "8";
162
-
}
163
-
{
164
-
output = mainDesktop;
165
-
workspace = "9";
166
-
}
167
-
{
168
-
output = secondDesktop;
169
-
workspace = "10";
170
-
}
171
-
{
172
-
output = mainDesktop;
173
-
workspace = "a";
174
-
}
175
-
{
176
-
output = secondDesktop;
177
-
workspace = "b";
178
-
}
179
-
{
180
-
output = secondDesktop;
181
-
workspace = "c";
182
-
}
183
-
{
184
-
output = mainDesktop;
185
-
workspace = "d";
186
-
}
187
-
{
188
-
output = mainDesktop;
189
-
workspace = "e";
190
-
}
191
-
{
192
-
output = secondDesktop;
193
-
workspace = "f";
194
-
}
195
-
{
196
-
output = mainDesktop;
197
-
workspace = "g";
198
-
}
199
-
{
200
-
output = mainDesktop;
201
-
workspace = "i";
202
-
}
203
-
{
204
-
output = mainDesktop;
205
-
workspace = "m";
206
-
}
207
-
{
208
-
output = mainDesktop;
209
-
workspace = "n";
210
-
}
211
-
{
212
-
output = mainDesktop;
213
-
workspace = "o";
214
-
}
215
-
{
216
-
output = mainDesktop;
217
-
workspace = "p";
218
-
}
219
-
{
220
-
output = mainDesktop;
221
-
workspace = "q";
222
-
}
223
-
{
224
-
output = mainDesktop;
225
-
workspace = "r";
226
-
}
227
-
{
228
-
output = mainDesktop;
229
-
workspace = "s";
230
-
}
231
-
{
232
-
output = mainDesktop;
233
-
workspace = "t";
234
-
}
235
-
{
236
-
output = mainDesktop;
237
-
workspace = "u";
238
-
}
239
-
{
240
-
output = mainDesktop;
241
-
workspace = "v";
242
-
}
243
-
{
244
-
output = mainDesktop;
245
-
workspace = "w";
246
-
}
247
-
{
248
-
output = mainDesktop;
249
-
workspace = "x";
250
-
}
251
-
{
252
-
output = mainDesktop;
253
-
workspace = "y";
254
-
}
255
-
{
256
-
output = mainDesktop;
257
-
workspace = "z";
258
-
}
259
-
];
260
-
assigns = {
261
-
"number 10" = [ { class = "^Chromium-browser$"; } ];
262
-
"e" = [ { class = "^dev.zed.Zed$"; } ];
263
-
"r" = [ { class = "^thunderbird$"; } ];
264
-
"t" = [ { class = "^AyuGramDesktop$"; } ];
265
-
"s" = [ { class = "^Slack$"; } ];
266
-
"a" = [ { class = "^anytype$"; } ];
267
-
"d" = [ { class = "^discord$"; } ];
268
-
"f" = [ { class = "^zen$"; } ];
269
-
"g" = [ { class = "^kitty$"; } ];
270
-
"c" = [ { class = "^Google-chrome$"; } ];
271
-
"b" = [ { class = "^Zathura$"; } ];
272
-
};
273
-
startup = [
274
-
{
275
-
command = "AmneziaVPN";
276
-
notification = false;
277
-
}
278
-
{
279
-
command = "zeditor";
280
-
notification = false;
281
-
}
282
-
{
283
-
command = "thunderbird";
284
-
notification = false;
285
-
}
286
-
{
287
-
command = "AyuGram";
288
-
notification = false;
289
-
}
290
-
{
291
-
command = "anytype";
292
-
notification = false;
293
-
}
294
-
{
295
-
command = "slack";
296
-
notification = false;
297
-
}
298
-
{
299
-
command = "discord";
300
-
notification = false;
301
-
}
302
-
{
303
-
command = "zen-beta";
304
-
notification = false;
305
-
}
306
-
{
307
-
command = "kitty";
308
-
notification = false;
309
-
}
310
-
];
311
-
};
312
-
};
313
-
}
+3
-1
home/linux/packages.nix
+3
-1
home/linux/packages.nix
···
6
6
authenticator
7
7
pwvucontrol
8
8
prismlauncher
9
+
heroic
9
10
vial
10
-
gcolor3
11
11
nemo
12
12
krita
13
13
yandex-music
14
+
hyprpicker
14
15
15
16
# CLI
16
17
tesseract
17
18
playerctl
19
+
wl-clipboard
18
20
19
21
# TODO: Should be in the /shared/packages
20
22
anytype # https://github.com/NixOS/nixpkgs/pull/411491
-50
home/linux/rofi-system.nix
-50
home/linux/rofi-system.nix
···
1
-
{
2
-
lib,
3
-
stdenv,
4
-
fetchFromGitHub,
5
-
makeWrapper,
6
-
coreutils,
7
-
flameshot,
8
-
swaylock,
9
-
systemd,
10
-
wireplumber,
11
-
}:
12
-
13
-
stdenv.mkDerivation {
14
-
pname = "rofi-system";
15
-
version = "2025-08-29";
16
-
17
-
src = fetchFromGitHub {
18
-
owner = "wardxela";
19
-
repo = "rofi-system";
20
-
rev = "25d036978942fd6aafd9165a3bdf66ba64f6272d";
21
-
hash = "sha256-Gc904igcK60WjI/D9mOj2PII/2y13R/upXA0oR98Qag=";
22
-
};
23
-
24
-
nativeBuildInputs = [ makeWrapper ];
25
-
26
-
postFixup = ''
27
-
wrapProgram $out/bin/rofi-system \
28
-
--set PATH ${
29
-
lib.makeBinPath [
30
-
coreutils
31
-
flameshot
32
-
swaylock
33
-
systemd
34
-
wireplumber
35
-
]
36
-
}
37
-
'';
38
-
39
-
installPhase = ''
40
-
install -Dm755 rofi-system $out/bin/rofi-system
41
-
'';
42
-
43
-
meta = {
44
-
description = "Raycast-inspired extension to perform some system-level things using Rofi";
45
-
mainProgram = "rofi-system";
46
-
homepage = "https://github.com/wardxela/rofi-system";
47
-
platforms = lib.platforms.linux;
48
-
license = lib.licenses.gpl3;
49
-
};
50
-
}
-180
home/linux/rofi.nix
-180
home/linux/rofi.nix
···
1
-
{
2
-
lib,
3
-
pkgs,
4
-
config,
5
-
...
6
-
}:
7
-
8
-
let
9
-
rofi-system = pkgs.callPackage ./rofi-system.nix { };
10
-
rofi-cliphist = pkgs.writeScriptBin "rofi-cliphist" ''
11
-
#!/usr/bin/env bash
12
-
13
-
if [ -z "$1" ]; then
14
-
cliphist list | sed 's/^\([0-9]\+\)[ \t]*/\1 /'
15
-
else
16
-
cliphist decode <<<"$1" | wl-copy
17
-
fi
18
-
'';
19
-
in
20
-
{
21
-
stylix.targets.rofi.enable = false;
22
-
programs.rofi = {
23
-
enable = true;
24
-
terminal = lib.getExe pkgs.kitty;
25
-
plugins = with pkgs; [
26
-
rofi-emoji
27
-
rofi-calc
28
-
rofi-system
29
-
rofi-cliphist
30
-
];
31
-
extraConfig = {
32
-
kb-row-up = "Up,Control+k";
33
-
kb-row-down = "Down,Control+j";
34
-
kb-mode-next = "Control+l";
35
-
kb-mode-previous = "Control+h";
36
-
kb-accept-entry = "Return";
37
-
kb-remove-to-eol = "Control+Shift+e";
38
-
kb-remove-char-back = "BackSpace,Shift+BackSpace";
39
-
kb-mode-complete = "Control+i";
40
-
modes = "combi,calc,emoji,cliphist:${lib.getExe rofi-cliphist}";
41
-
matching = "fuzzy";
42
-
combi-modes = "drun,window,ssh,system:${lib.getExe rofi-system}";
43
-
combi-display-format = "{text}	<span font='Normal 14px' alpha='50%'>{mode}</span>";
44
-
drun-display-format = "{name} <span weight='normal' alpha='60%'>{generic}</span>";
45
-
window-format = "{t}";
46
-
display-drun = "Application";
47
-
display-ssh = " SSH";
48
-
display-window = " Window";
49
-
# TODO: https://github.com/nix-community/home-manager/issues/4783
50
-
"// calc" = config.lib.formats.rasi.mkLiteral ''
51
-
52
-
calc {
53
-
terse: true;
54
-
hint-result: "";
55
-
hint-welcome: "";
56
-
}
57
-
// '';
58
-
};
59
-
theme =
60
-
let
61
-
inherit (config.lib.formats.rasi) mkLiteral;
62
-
in
63
-
{
64
-
"*" = {
65
-
background = mkLiteral "rgb(10, 10, 10)";
66
-
foreground = mkLiteral "#F2F2F2";
67
-
background-selected = mkLiteral "rgba(255, 255, 255, 0.1)";
68
-
rounded-sm = mkLiteral "8px";
69
-
rounded-md = mkLiteral "10px";
70
-
};
71
-
72
-
window = {
73
-
width = mkLiteral "774px";
74
-
background-color = mkLiteral "@background";
75
-
border = mkLiteral "1px";
76
-
border-color = mkLiteral "rgb(0, 0, 0)";
77
-
border-radius = mkLiteral "@rounded-md";
78
-
};
79
-
80
-
mainbox = {
81
-
background-color = mkLiteral "inherit";
82
-
border = mkLiteral "1px";
83
-
border-color = mkLiteral "rgba(255, 255, 255, 0.1)";
84
-
border-radius = mkLiteral "@rounded-md";
85
-
children = map mkLiteral [
86
-
"inputbar"
87
-
"line-separator"
88
-
"message"
89
-
"listview"
90
-
];
91
-
};
92
-
93
-
inputbar = {
94
-
background-color = mkLiteral "inherit";
95
-
children = map mkLiteral [ "entry" ];
96
-
};
97
-
98
-
line-separator = {
99
-
background-color = mkLiteral "inherit";
100
-
background-image = mkLiteral ''
101
-
linear-gradient(
102
-
to right,
103
-
transparent,
104
-
rgba(255, 255, 255, 0.05),
105
-
rgba(255, 255, 255, 0.1),
106
-
rgba(255, 255, 255, 0.1),
107
-
rgba(255, 255, 255, 0.1),
108
-
rgba(255, 255, 255, 0.1),
109
-
rgba(255, 255, 255, 0.05),
110
-
transparent,
111
-
transparent,
112
-
transparent
113
-
)'';
114
-
expand = false;
115
-
padding = mkLiteral "1px 0 0";
116
-
};
117
-
118
-
message = {
119
-
background-color = mkLiteral "inherit";
120
-
padding = mkLiteral "8px 8px 0 8px";
121
-
children = map mkLiteral [ "textbox" ];
122
-
};
123
-
124
-
textbox = {
125
-
background-color = mkLiteral "@background-selected";
126
-
text-color = mkLiteral "@foreground";
127
-
font = "Medium 30px";
128
-
padding = mkLiteral "34px";
129
-
border-radius = mkLiteral "@rounded-sm";
130
-
};
131
-
132
-
entry = {
133
-
font = "Medium 18px";
134
-
placeholder = "Search for apps and commands...";
135
-
placeholder-color = mkLiteral "rgba(242, 242, 242, 0.5)";
136
-
padding = mkLiteral "20px 16px";
137
-
text-color = mkLiteral "@foreground";
138
-
background-color = mkLiteral "inherit";
139
-
};
140
-
141
-
prompt = {
142
-
text-color = mkLiteral "@foreground";
143
-
};
144
-
145
-
listview = {
146
-
background-color = mkLiteral "inherit";
147
-
padding = mkLiteral "8px";
148
-
lines = 8;
149
-
};
150
-
151
-
element = {
152
-
background-color = mkLiteral "inherit";
153
-
padding = mkLiteral "14px 8px";
154
-
spacing = mkLiteral "14px";
155
-
children = map mkLiteral [
156
-
"element-icon"
157
-
"element-text"
158
-
];
159
-
border-radius = mkLiteral "@rounded-sm";
160
-
};
161
-
162
-
"element.selected" = {
163
-
background-color = mkLiteral "@background-selected";
164
-
};
165
-
166
-
element-icon = {
167
-
background-color = mkLiteral "transparent";
168
-
size = mkLiteral "20px";
169
-
};
170
-
171
-
element-text = {
172
-
background-color = mkLiteral "transparent";
173
-
font = "Medium 15px";
174
-
vertical-align = mkLiteral "0.5";
175
-
text-color = mkLiteral "@foreground";
176
-
tab-stops = mkLiteral "[ 616px ]";
177
-
};
178
-
};
179
-
};
180
-
}
-344
home/linux/sway.nix
-344
home/linux/sway.nix
···
1
-
{ pkgs, ... }:
2
-
3
-
{
4
-
home.packages = with pkgs; [
5
-
wl-clipboard
6
-
kooha
7
-
];
8
-
9
-
wayland.windowManager.sway = {
10
-
enable = true;
11
-
wrapperFeatures.gtk = true;
12
-
config =
13
-
let
14
-
mod = "Mod4";
15
-
mainDesktop = "DP-1";
16
-
secondDesktop = "HDMI-A-2";
17
-
in
18
-
{
19
-
modifier = mod;
20
-
input = {
21
-
"*" = {
22
-
xkb_layout = "us,ru";
23
-
xkb_options = "grp:caps_toggle";
24
-
repeat_delay = "225";
25
-
repeat_rate = "30";
26
-
};
27
-
};
28
-
output = {
29
-
"${mainDesktop}" = {
30
-
pos = "0 0";
31
-
};
32
-
"${secondDesktop}" = {
33
-
pos = "1920 0";
34
-
};
35
-
};
36
-
window = {
37
-
hideEdgeBorders = "both";
38
-
titlebar = false;
39
-
border = 0;
40
-
};
41
-
floating = {
42
-
titlebar = false;
43
-
border = 0;
44
-
criteria = [
45
-
{
46
-
title = "AmneziaVPN";
47
-
}
48
-
{
49
-
app_id = "com.saivert.pwvucontrol";
50
-
}
51
-
{
52
-
app_id = "gcolor3";
53
-
}
54
-
{
55
-
app_id = "nemo";
56
-
}
57
-
{
58
-
app_id = "com.belmoussaoui.Authenticator";
59
-
}
60
-
];
61
-
};
62
-
bars = [ ];
63
-
bindkeysToCode = true;
64
-
keybindings = {
65
-
"${mod}+control+q" = "kill";
66
-
"${mod}+space" = "exec rofi -show combi";
67
-
68
-
"XF86AudioLowerVolume" = "exec volumectl -u down";
69
-
"XF86AudioRaiseVolume" = "exec volumectl -u up";
70
-
71
-
"${mod}+h" = "focus left";
72
-
"${mod}+j" = "focus down";
73
-
"${mod}+k" = "focus up";
74
-
"${mod}+l" = "focus right";
75
-
76
-
"${mod}+shift+h" = "move left";
77
-
"${mod}+shift+j" = "move down";
78
-
"${mod}+shift+k" = "move up";
79
-
"${mod}+shift+l" = "move right";
80
-
81
-
"${mod}+1" = "workspace number 1";
82
-
"${mod}+2" = "workspace number 2";
83
-
"${mod}+3" = "workspace number 3";
84
-
"${mod}+4" = "workspace number 4";
85
-
"${mod}+5" = "workspace number 5";
86
-
"${mod}+6" = "workspace number 6";
87
-
"${mod}+7" = "workspace number 7";
88
-
"${mod}+8" = "workspace number 8";
89
-
"${mod}+9" = "workspace number 9";
90
-
"${mod}+0" = "workspace number 10";
91
-
"${mod}+a" = "workspace a";
92
-
"${mod}+b" = "workspace b";
93
-
"${mod}+c" = "workspace c";
94
-
"${mod}+d" = "workspace d";
95
-
"${mod}+e" = "workspace e";
96
-
"${mod}+f" = "workspace f";
97
-
"${mod}+g" = "workspace g";
98
-
"${mod}+i" = "workspace i";
99
-
"${mod}+q" = "workspace q";
100
-
"${mod}+m" = "workspace m";
101
-
"${mod}+n" = "workspace n";
102
-
"${mod}+o" = "workspace o";
103
-
"${mod}+p" = "workspace p";
104
-
"${mod}+r" = "workspace r";
105
-
"${mod}+s" = "workspace s";
106
-
"${mod}+t" = "workspace t";
107
-
"${mod}+u" = "workspace u";
108
-
"${mod}+v" = "workspace v";
109
-
"${mod}+w" = "workspace w";
110
-
"${mod}+x" = "workspace x";
111
-
"${mod}+y" = "workspace y";
112
-
"${mod}+z" = "workspace z";
113
-
114
-
"${mod}+shift+1" = "move container to workspace number 1";
115
-
"${mod}+shift+2" = "move container to workspace number 2";
116
-
"${mod}+shift+3" = "move container to workspace number 3";
117
-
"${mod}+shift+4" = "move container to workspace number 4";
118
-
"${mod}+shift+5" = "move container to workspace number 5";
119
-
"${mod}+shift+6" = "move container to workspace number 6";
120
-
"${mod}+shift+7" = "move container to workspace number 7";
121
-
"${mod}+shift+8" = "move container to workspace number 8";
122
-
"${mod}+shift+9" = "move container to workspace number 9";
123
-
"${mod}+shift+0" = "move container to workspace number 10";
124
-
"${mod}+shift+a" = "move container to workspace a";
125
-
"${mod}+shift+b" = "move container to workspace b";
126
-
"${mod}+shift+c" = "move container to workspace c";
127
-
"${mod}+shift+d" = "move container to workspace d";
128
-
"${mod}+shift+e" = "move container to workspace e";
129
-
"${mod}+shift+f" = "move container to workspace f";
130
-
"${mod}+shift+g" = "move container to workspace g";
131
-
"${mod}+shift+i" = "move container to workspace i";
132
-
"${mod}+shift+q" = "move container to workspace q";
133
-
"${mod}+shift+m" = "move container to workspace m";
134
-
"${mod}+shift+n" = "move container to workspace n";
135
-
"${mod}+shift+o" = "move container to workspace o";
136
-
"${mod}+shift+p" = "move container to workspace p";
137
-
"${mod}+shift+r" = "move container to workspace r";
138
-
"${mod}+shift+s" = "move container to workspace s";
139
-
"${mod}+shift+t" = "move container to workspace t";
140
-
"${mod}+shift+u" = "move container to workspace u";
141
-
"${mod}+shift+v" = "move container to workspace v";
142
-
"${mod}+shift+w" = "move container to workspace w";
143
-
"${mod}+shift+x" = "move container to workspace x";
144
-
"${mod}+shift+y" = "move container to workspace y";
145
-
"${mod}+shift+z" = "move container to workspace z";
146
-
147
-
"${mod}+Ctrl+h" = "move workspace to output left";
148
-
"${mod}+Ctrl+l" = "move workspace to output right";
149
-
};
150
-
workspaceOutputAssign = [
151
-
{
152
-
output = mainDesktop;
153
-
workspace = "1";
154
-
}
155
-
{
156
-
output = mainDesktop;
157
-
workspace = "2";
158
-
}
159
-
{
160
-
output = mainDesktop;
161
-
workspace = "3";
162
-
}
163
-
{
164
-
output = mainDesktop;
165
-
workspace = "4";
166
-
}
167
-
{
168
-
output = mainDesktop;
169
-
workspace = "5";
170
-
}
171
-
{
172
-
output = mainDesktop;
173
-
workspace = "6";
174
-
}
175
-
{
176
-
output = mainDesktop;
177
-
workspace = "7";
178
-
}
179
-
{
180
-
output = mainDesktop;
181
-
workspace = "8";
182
-
}
183
-
{
184
-
output = mainDesktop;
185
-
workspace = "9";
186
-
}
187
-
{
188
-
output = secondDesktop;
189
-
workspace = "10";
190
-
}
191
-
{
192
-
output = mainDesktop;
193
-
workspace = "a";
194
-
}
195
-
{
196
-
output = secondDesktop;
197
-
workspace = "b";
198
-
}
199
-
{
200
-
output = secondDesktop;
201
-
workspace = "c";
202
-
}
203
-
{
204
-
output = mainDesktop;
205
-
workspace = "d";
206
-
}
207
-
{
208
-
output = mainDesktop;
209
-
workspace = "e";
210
-
}
211
-
{
212
-
output = secondDesktop;
213
-
workspace = "f";
214
-
}
215
-
{
216
-
output = mainDesktop;
217
-
workspace = "g";
218
-
}
219
-
{
220
-
output = mainDesktop;
221
-
workspace = "i";
222
-
}
223
-
{
224
-
output = mainDesktop;
225
-
workspace = "m";
226
-
}
227
-
{
228
-
output = mainDesktop;
229
-
workspace = "n";
230
-
}
231
-
{
232
-
output = mainDesktop;
233
-
workspace = "o";
234
-
}
235
-
{
236
-
output = mainDesktop;
237
-
workspace = "p";
238
-
}
239
-
{
240
-
output = mainDesktop;
241
-
workspace = "q";
242
-
}
243
-
{
244
-
output = mainDesktop;
245
-
workspace = "r";
246
-
}
247
-
{
248
-
output = mainDesktop;
249
-
workspace = "s";
250
-
}
251
-
{
252
-
output = mainDesktop;
253
-
workspace = "t";
254
-
}
255
-
{
256
-
output = mainDesktop;
257
-
workspace = "u";
258
-
}
259
-
{
260
-
output = mainDesktop;
261
-
workspace = "v";
262
-
}
263
-
{
264
-
output = mainDesktop;
265
-
workspace = "w";
266
-
}
267
-
{
268
-
output = mainDesktop;
269
-
workspace = "x";
270
-
}
271
-
{
272
-
output = mainDesktop;
273
-
workspace = "y";
274
-
}
275
-
{
276
-
output = mainDesktop;
277
-
workspace = "z";
278
-
}
279
-
];
280
-
assigns = {
281
-
"number 10" = [ { class = "^Chromium-browser$"; } ];
282
-
"e" = [ { app_id = "dev.zed.Zed"; } ];
283
-
"r" = [ { app_id = "thunderbird"; } ];
284
-
"t" = [ { app_id = "org.telegram.desktop"; } ];
285
-
"a" = [ { app_id = "anytype"; } ];
286
-
"s" = [ { app_id = "Slack"; } ];
287
-
"d" = [ { class = "^discord$"; } ];
288
-
"f" = [ { app_id = "zen-beta"; } ];
289
-
"g" = [ { app_id = "kitty"; } ];
290
-
"c" = [ { app_id = "chromium-browser"; } ];
291
-
"b" = [ { app_id = "org.pwmt.zathura"; } ];
292
-
};
293
-
startup = [
294
-
{
295
-
command = "AmneziaVPN";
296
-
}
297
-
{
298
-
command = "zeditor";
299
-
}
300
-
{
301
-
command = "thunderbird";
302
-
}
303
-
{
304
-
command = "Telegram";
305
-
}
306
-
{
307
-
command = "anytype";
308
-
}
309
-
{
310
-
command = "slack";
311
-
}
312
-
{
313
-
command = "discord";
314
-
}
315
-
{
316
-
command = "zen-beta";
317
-
}
318
-
{
319
-
command = "kitty";
320
-
}
321
-
{
322
-
command = "chromium";
323
-
}
324
-
];
325
-
};
326
-
};
327
-
328
-
programs.swaylock.enable = true;
329
-
330
-
services = {
331
-
cliphist.enable = true;
332
-
flameshot = {
333
-
enable = true;
334
-
settings = {
335
-
General = {
336
-
disabledTrayIcon = true;
337
-
showStartupLaunchMessage = false;
338
-
useGrimAdapter = true;
339
-
disabledGrimWarning = true;
340
-
};
341
-
};
342
-
};
343
-
};
344
-
}
-7
home/linux/swaync.nix
-7
home/linux/swaync.nix
+7
home/linux/swww.nix
+7
home/linux/swww.nix
+11
home/linux/vicinae.nix
+11
home/linux/vicinae.nix
+5
hosts/nixos/configuration.nix
+5
hosts/nixos/configuration.nix
+32
-26
hosts/nixos/hardware-configuration.nix
+32
-26
hosts/nixos/hardware-configuration.nix
···
1
1
# Do not modify this file! It was generated by โnixos-generate-configโ
2
2
# and may be overwritten by future invocations. Please make changes
3
3
# to /etc/nixos/configuration.nix instead.
4
-
{ config, lib, pkgs, modulesPath, ... }:
4
+
{
5
+
config,
6
+
lib,
7
+
pkgs,
8
+
modulesPath,
9
+
...
10
+
}:
5
11
6
12
{
7
-
imports =
8
-
[ (modulesPath + "/installer/scan/not-detected.nix")
9
-
];
13
+
imports = [
14
+
(modulesPath + "/installer/scan/not-detected.nix")
15
+
];
10
16
11
-
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
17
+
boot.initrd.availableKernelModules = [
18
+
"xhci_pci"
19
+
"ahci"
20
+
"usbhid"
21
+
"sd_mod"
22
+
];
12
23
boot.initrd.kernelModules = [ ];
13
24
boot.kernelModules = [ "kvm-intel" ];
14
25
boot.extraModulePackages = [ ];
15
26
16
-
fileSystems."/" =
17
-
{ device = "/dev/disk/by-uuid/c95a25db-4d1a-4630-a889-658a2b07079b";
18
-
fsType = "ext4";
19
-
};
27
+
fileSystems."/" = {
28
+
device = "/dev/disk/by-uuid/c95a25db-4d1a-4630-a889-658a2b07079b";
29
+
fsType = "ext4";
30
+
};
20
31
21
-
fileSystems."/boot" =
22
-
{ device = "/dev/disk/by-uuid/360C-743E";
23
-
fsType = "vfat";
24
-
options = [ "fmask=0077" "dmask=0077" ];
25
-
};
32
+
fileSystems."/mnt/hdd" = {
33
+
device = "/dev/disk/by-uuid/ea4787f6-dedb-4357-ad14-96100cf2f178";
34
+
fsType = "ext4";
35
+
};
26
36
27
-
fileSystems."/mnt/hdd" =
28
-
{ device = "/dev/disk/by-uuid/ea4787f6-dedb-4357-ad14-96100cf2f178";
29
-
fsType = "ext4";
30
-
};
37
+
fileSystems."/boot" = {
38
+
device = "/dev/disk/by-uuid/360C-743E";
39
+
fsType = "vfat";
40
+
options = [
41
+
"fmask=0077"
42
+
"dmask=0077"
43
+
];
44
+
};
31
45
32
46
swapDevices = [ ];
33
-
34
-
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
35
-
# (the default) this is the recommended approach. When using systemd-networkd it's
36
-
# still possible to use this option, but it's recommended to use it in conjunction
37
-
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
38
-
networking.useDHCP = lib.mkDefault true;
39
-
# networking.interfaces.amn0.useDHCP = lib.mkDefault true;
40
-
# networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
41
47
42
48
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
43
49
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+2
-15
modules/linux/default.nix
+2
-15
modules/linux/default.nix
···
1
-
{ pkgs, ... }:
1
+
{ ... }:
2
2
3
3
{
4
4
imports = [
5
5
../shared
6
6
./environment.nix
7
-
./programs.nix
7
+
./programs
8
8
./services
9
9
];
10
10
···
36
36
networking = {
37
37
hostName = "nixos";
38
38
networkmanager.enable = true;
39
-
};
40
-
41
-
xdg.portal = {
42
-
enable = true;
43
-
config.sway = {
44
-
default = [ "gtk" ];
45
-
"org.freedesktop.impl.portal.Screenshot" = "wlr";
46
-
"org.freedesktop.impl.portal.ScreenCast" = "wlr";
47
-
};
48
-
extraPortals = with pkgs; [
49
-
xdg-desktop-portal-gtk
50
-
xdg-desktop-portal-wlr
51
-
];
52
39
};
53
40
54
41
security.polkit.enable = true;
+18
modules/linux/programs/default.nix
+18
modules/linux/programs/default.nix
···
1
+
{ ... }:
2
+
3
+
{
4
+
imports = [
5
+
./hyprland.nix
6
+
./steam.nix
7
+
./uwsm.nix
8
+
];
9
+
10
+
programs = {
11
+
adb.enable = true;
12
+
amnezia-vpn.enable = true;
13
+
nix-ld.enable = true;
14
+
ssh.startAgent = true;
15
+
bash.blesh.enable = true;
16
+
gamemode.enable = true;
17
+
};
18
+
}
+8
modules/linux/programs/hyprland.nix
+8
modules/linux/programs/hyprland.nix
+9
modules/linux/programs/steam.nix
+9
modules/linux/programs/steam.nix
+14
modules/linux/programs/uwsm.nix
+14
modules/linux/programs/uwsm.nix
-12
modules/linux/programs.nix
-12
modules/linux/programs.nix
+5
-7
modules/linux/services/default.nix
+5
-7
modules/linux/services/default.nix
···
1
-
{ pkgs, ... }:
1
+
{ ... }:
2
2
3
3
{
4
4
imports = [
5
5
./gnome.nix
6
+
./greetd.nix
7
+
./noctalia.nix
6
8
./openssh.nix
7
9
./pipewire.nix
8
-
./wayland.nix
10
+
./solaar.nix
11
+
./udev.nix
9
12
];
10
-
11
-
services = {
12
-
solaar.enable = true;
13
-
udev.packages = with pkgs; [ vial ];
14
-
};
15
13
}
+3
-3
modules/linux/services/gnome.nix
+3
-3
modules/linux/services/gnome.nix
+12
modules/linux/services/greetd.nix
+12
modules/linux/services/greetd.nix
+9
modules/linux/services/noctalia.nix
+9
modules/linux/services/noctalia.nix
+7
modules/linux/services/solaar.nix
+7
modules/linux/services/solaar.nix
+7
modules/linux/services/udev.nix
+7
modules/linux/services/udev.nix
-14
modules/linux/services/wayland.nix
-14
modules/linux/services/wayland.nix
-20
modules/linux/services/xserver.nix
-20
modules/linux/services/xserver.nix
···
1
-
# This module has been replaced in favor of wayland.nix. Use it for reference.
2
-
{ ... }:
3
-
4
-
{
5
-
services = {
6
-
xserver = {
7
-
enable = true;
8
-
windowManager.i3.enable = true;
9
-
displayManager.lightdm.enable = true;
10
-
autoRepeatDelay = 225;
11
-
autoRepeatInterval = 30;
12
-
xkb = {
13
-
layout = "us,ru";
14
-
options = "grp:caps_toggle";
15
-
};
16
-
};
17
-
displayManager.defaultSession = "none+i3";
18
-
};
19
-
security.pam.services.i3lock.enable = true;
20
-
}