this repo has no description

Compare changes

Choose any two refs to compare.

+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
··· 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
··· 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}&#09;<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
··· 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
··· 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
··· 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
··· 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
··· 1 - { ... }: 2 - 3 - { 4 - services.avizo = { 5 - enable = true; 6 - }; 7 - }
+7
home/linux/cliphist.nix
··· 1 + { ... }: 2 + 3 + { 4 + services.cliphist = { 5 + enable = true; 6 + }; 7 + }
+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
··· 1 + { ... }: 2 + 3 + { 4 + services.flameshot = { 5 + enable = true; 6 + settings = { 7 + General = { 8 + disabledTrayIcon = true; 9 + showStartupLaunchMessage = false; 10 + useGrimAdapter = true; 11 + disabledGrimWarning = true; 12 + }; 13 + }; 14 + }; 15 + }
+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
··· 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
··· 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
··· 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
··· 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}&#09;<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
··· 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
··· 1 - { ... }: 2 - 3 - { 4 - services.swaync = { 5 - enable = true; 6 - }; 7 - }
+7
home/linux/swww.nix
··· 1 + { ... }: 2 + 3 + { 4 + services.swww = { 5 + enable = true; 6 + }; 7 + }
+11
home/linux/vicinae.nix
··· 1 + { inputs, ... }: 2 + 3 + { 4 + imports = [ 5 + inputs.vicinae.homeManagerModules.default 6 + ]; 7 + 8 + services.vicinae = { 9 + enable = true; 10 + }; 11 + }
+1
home/shared/packages.nix
··· 24 24 nvd 25 25 termusic 26 26 glab 27 + git-open 27 28 28 29 # Archiving and compression 29 30 zip
+15 -27
home/shared/zed-editor.nix
··· 109 109 inherit dock default_width; 110 110 button = false; 111 111 }; 112 - chat_panel = { 113 - inherit default_width; 114 - }; 115 112 outline_panel = { 116 113 inherit dock default_width; 117 114 button = false; ··· 123 120 terminal = { 124 121 button = false; 125 122 }; 126 - languages = { 127 - JavaScript = { 128 - formatter = { 129 - code_actions = { 123 + languages = 124 + let 125 + jsLike = { 126 + formatter = [ ]; 127 + code_actions_on_format = { 130 128 "source.fixAll.eslint" = true; 131 129 }; 132 130 }; 133 - }; 134 - TypeScript = { 135 - formatter = { 136 - code_actions = { 137 - "source.fixAll.eslint" = true; 138 - }; 139 - }; 140 - }; 141 - TSX = { 142 - formatter = { 143 - code_actions = { 144 - "source.fixAll.eslint" = true; 145 - }; 131 + in 132 + { 133 + JavaScript = jsLike; 134 + TypeScript = jsLike; 135 + TSX = jsLike; 136 + Nix = { 137 + language_servers = [ 138 + "nil" 139 + "!nixd" 140 + ]; 146 141 }; 147 142 }; 148 - Nix = { 149 - language_servers = [ 150 - "nil" 151 - "!nixd" 152 - ]; 153 - }; 154 - }; 155 143 lsp = { 156 144 nil = { 157 145 settings = {
+5
hosts/nixos/configuration.nix
··· 14 14 15 15 hardware = { 16 16 graphics.enable = true; 17 + nvidia = { 18 + open = true; 19 + }; 17 20 bluetooth = { 18 21 enable = true; 19 22 powerOnBoot = true; 20 23 }; 21 24 }; 25 + 26 + services.xserver.videoDrivers = [ "nvidia" ]; 22 27 23 28 swapDevices = [ 24 29 {
+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
··· 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
··· 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
··· 1 + { ... }: 2 + 3 + { 4 + programs.hyprland = { 5 + enable = true; 6 + withUWSM = true; 7 + }; 8 + }
+9
modules/linux/programs/steam.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.steam = { 5 + enable = true; 6 + gamescopeSession.enable = true; 7 + protontricks.enable = true; 8 + }; 9 + }
+14
modules/linux/programs/uwsm.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.uwsm = { 5 + enable = true; 6 + waylandCompositors = { 7 + hyprland = { 8 + prettyName = "Hyprland"; 9 + comment = "Hyprland compositor managed by UWSM"; 10 + binPath = "/run/current-system/sw/bin/Hyprland"; 11 + }; 12 + }; 13 + }; 14 + }
-12
modules/linux/programs.nix
··· 1 - { ... }: 2 - 3 - { 4 - programs = { 5 - adb.enable = true; 6 - amnezia-vpn.enable = true; 7 - nix-ld.enable = true; 8 - ssh.startAgent = true; 9 - bash.blesh.enable = true; 10 - steam.enable = true; 11 - }; 12 - }
+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
··· 1 1 { ... }: 2 2 3 3 { 4 - services = { 5 - gnome.gnome-keyring.enable = true; 6 - gnome.gcr-ssh-agent.enable = false; 4 + services.gnome = { 5 + gnome-keyring.enable = true; 6 + gcr-ssh-agent.enable = false; 7 7 }; 8 8 }
+12
modules/linux/services/greetd.nix
··· 1 + { lib, pkgs, ... }: 2 + 3 + { 4 + services.greetd = { 5 + enable = true; 6 + settings = { 7 + default_session = { 8 + command = "${lib.getExe pkgs.tuigreet} --cmd 'uwsm start hyprland-uwsm.desktop'"; 9 + }; 10 + }; 11 + }; 12 + }
+9
modules/linux/services/noctalia.nix
··· 1 + { inputs, ... }: 2 + 3 + { 4 + imports = [ 5 + inputs.noctalia.nixosModules.default 6 + ]; 7 + 8 + services.noctalia-shell.enable = true; 9 + }
+7
modules/linux/services/solaar.nix
··· 1 + { ... }: 2 + 3 + { 4 + services.solaar = { 5 + enable = true; 6 + }; 7 + }
+7
modules/linux/services/udev.nix
··· 1 + { pkgs, ... }: 2 + 3 + { 4 + services.udev = { 5 + packages = with pkgs; [ vial ]; 6 + }; 7 + }
-14
modules/linux/services/wayland.nix
··· 1 - { pkgs, ... }: 2 - 3 - { 4 - services.greetd = { 5 - enable = true; 6 - settings = { 7 - default_session = { 8 - command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd sway"; 9 - user = "greeter"; 10 - }; 11 - }; 12 - }; 13 - security.pam.services.swaylock = { }; 14 - }
-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 - }
modules/shared/assets/black.png

This is a binary file and will not be displayed.

modules/shared/assets/white.png

This is a binary file and will not be displayed.

+6
modules/shared/default.nix
··· 14 14 "flakes" 15 15 "pipe-operators" 16 16 ]; 17 + substituters = [ 18 + "https://vicinae.cachix.org" 19 + ]; 20 + trusted-public-keys = [ 21 + "vicinae.cachix.org-1:1kDrfienkGHPYbkpNj1mWTr7Fm1+zcenzgTizIcI3oc=" 22 + ]; 17 23 }; 18 24 }; 19 25
+9 -11
modules/shared/stylix.nix
··· 9 9 # - tomorrow-night 10 10 # - ashes 11 11 base16Scheme = "${pkgs.base16-schemes}/share/themes/github-dark.yaml"; 12 - image = ./assets/black.png; 13 12 fonts = with pkgs; { 14 13 serif = { 15 14 package = eb-garamond; ··· 20 19 name = "Inter"; 21 20 }; 22 21 monospace = { 23 - package = nerd-fonts.jetbrains-mono; 24 - name = "JetBrainsMono Nerd Font"; 22 + package = pkgs.lilex; 23 + name = "Lilex"; 25 24 }; 26 25 emoji = { 27 - package = nerd-fonts.jetbrains-mono; 28 - name = "JetBrainsMono Nerd Font"; 26 + package = pkgs.lilex; 27 + name = "Lilex"; 29 28 }; 30 29 }; 30 + cursor = { 31 + package = pkgs.nur.repos.adam0.bibata-modern-cursors-classic-hyprcursor; 32 + name = "Bibata-Modern-Classic-hyprcursor"; 33 + size = 24; 34 + }; 31 35 }; 32 - 33 - # TODO: 34 - # specialisation.light.configuration.stylix = { 35 - # image = lib.mkForce ./assets/white.png; 36 - # base16Scheme = lib.mkForce "${pkgs.base16-schemes}/share/themes/cupertino.yaml"; 37 - # }; 38 36 }