My configurations for the software I use

Compare changes

Choose any two refs to compare.

Changed files
+180 -221
config
foot
kak
kanshi
mpv
river
sioyek
thm
xdg-desktop-portal-wlr
zathura
local
bin
ssh
+4 -3
config/foot/foot.ini
··· 22 22 [colors] 23 23 alpha=1 24 24 25 - # [csd] 26 - # preferred=client 27 - # size=32 25 + [csd] 26 + preferred=client 27 + size=0 28 + border-width=2 28 29 # font=monospace:weight=bold 29 30 # border-width=4 30 31 # button-width=32
+32 -3
config/kak/kakrc
··· 41 41 set-option buffer lsp_servers %{ 42 42 [ruff] 43 43 args = [ "server", "--quiet" ] 44 - root_globs = [ "requirements.txt", "setup.py", "pyproject.toml", ".git" ] 44 + root_globs = [ "requirements.txt", "setup.py", "pyproject.toml", "uv.lock", ".git" ] 45 45 settings_section = "_" 46 46 # [ruff.settings._.globalSettings] 47 + [ty] 48 + args = [ "server" ] 49 + root_globs = [ "requirements.txt", "setup.py", "pyproject.toml", "uv.lock", ".git" ] 47 50 } 48 51 } 49 52 ··· 53 56 root_globs = [ ".git" ] 54 57 settings_section = "tinymist" 55 58 [tinymist.settings.tinymist] 56 - outputPath = "/tmp/tinymist/$root/$dir/$name" 59 + outputPath = "$root/_preview/$dir/$name" 57 60 fontPaths = [ "./assets/fonts" ] 58 61 formatterMode = "typstyle" 62 + typstExtraArgs = [ "--features=html" ] 59 63 } 60 64 } 61 65 ··· 130 134 } 131 135 } 132 136 137 + # Run command 138 + define-command -params 1.. -command-completion -file-completion -docstring \ 139 + "Run a command and show the output the *m-run* scratch buffer" \ 140 + m-run %{ 141 + try %{ delete-buffer! *m-run* } 142 + edit -scratch *m-run* 143 + execute-keys "!%arg{@}<ret>jd" 144 + } 145 + 146 + # Run command from selection 147 + define-command -docstring \ 148 + "Run a command from a selection and show the output the *m-run-select* scratch buffer" \ 149 + m-run-select %{ 150 + declare-option -hidden str m_select_command %val{selection} 151 + try %{ delete-buffer! *m-run-select* } 152 + edit -scratch *m-run-select* 153 + execute-keys "!%opt{m_select_command}<ret>jd" 154 + } 155 + 133 156 # Keybinds 134 157 ## User 135 158 map global user c ':comment-line<ret>' -docstring 'comment line' ··· 137 160 map global user f ':try format catch lsp-formatting<ret>' -docstring 'Run formatcmd or lsp formatter' 138 161 map global user p '!wl-paste<ret>' -docstring 'Paste from System Clipboard (Wayland)' 139 162 map global user y '<a-|>wl-copy<ret>' -docstring 'Copy to System Clipboard (Wayland)' 163 + map global user . ':source ".kakrc.local"<ret>' -docstring 'Load the kakrc file in the current directory' 164 + map global user r ':m-run-select<ret>' -docstring 'Run the selected command' 140 165 141 166 # Set termcmd 142 167 hook global ModuleLoaded wayland %{ ··· 179 204 } 180 205 181 206 # Filetype specific options 182 - hook global WinSetOption filetype=(css|html|java|javascript|markdown|nix|typst|xml|yaml) %{ 207 + hook global WinSetOption filetype=(css|html|java|javascript|markdown|meson|nix|typst|xml|yaml) %{ 183 208 m-whitespace spaces 2 184 209 } 185 210 186 211 hook global WinSetOption filetype=erlang %{ 187 212 set-option buffer formatcmd "erlfmt -" 188 213 m-whitespace spaces 4 214 + } 215 + 216 + hook global WinSetOption filetype=css %{ 217 + set-option buffer formatcmd "prettier --parser css" 189 218 } 190 219 191 220 hook global WinSetOption filetype=html %{
+1 -2
config/kanshi/config
··· 2 2 output "AOC 2460G4 0x0000075E" { 3 3 mode 1920x1080@144Hz 4 4 position 0,0 5 - adaptive_sync off 5 + adaptive_sync on 6 6 } 7 7 output "BNQ BenQ PD2700U ET87K04288SL0" { 8 8 mode 3840x2160@60Hz ··· 13 13 output "LG Electronics LG HDR WFHD 0x0000B11B" { 14 14 mode 2560x1080@75Hz 15 15 position 640,1080 16 - adaptive_sync on 17 16 } 18 17 }
-1
config/mpv/mpv.conf
··· 2 2 loop-file=inf 3 3 vo=gpu 4 4 hwdec=vaapi 5 - volume=70.0 6 5 image-display-duration=inf 7 6 no-border 8 7 no-osc
+87 -207
config/river/init.roc
··· 1 1 #!/usr/bin/env roc 2 - app [main!] { pf: platform "https://github.com/roc-lang/basic-cli/releases/download/0.19.0/Hj-J_zxz7V9YurCSTFcFdu6cQJie4guzsPMUi5kBYUk.tar.br" } 2 + app [main!] { pf: platform "https://github.com/roc-lang/basic-cli/releases/download/0.20.0/X73hGh05nNTkDHU06FHC0YfFaQB1pimX7gncRcao5mU.tar.br" } 3 3 4 4 # TODO: Create a platform that interfaces directly with the river wayland protocol 5 5 # TODO: Check for a cli argument to determine if the autostart commands should be run 6 6 7 7 import pf.Cmd 8 - import pf.Env 9 8 import pf.Stdout 10 9 import pf.Stderr 11 10 11 + tag_to_rtag = |num| 12 + Num.shift_left_by 1 (num - 1) 13 + |> Num.to_str 14 + 12 15 named_tag_to_rtag = |tag_name| 13 16 when tag_name is 14 17 One -> tag_to_rtag 1 ··· 20 23 Seven -> tag_to_rtag 7 21 24 Eight -> tag_to_rtag 8 22 25 Nine -> tag_to_rtag 9 23 - KeePassXC -> tag_to_rtag 10 24 - Nautilus -> tag_to_rtag 11 25 - Thunderbird -> tag_to_rtag 12 26 - All -> (Num.shift_left_by 1 32) - 1 26 + Discord -> tag_to_rtag 10 27 + Games -> tag_to_rtag 11 28 + Hide -> tag_to_rtag 12 29 + KeePassXC -> tag_to_rtag 13 30 + Nautilus -> tag_to_rtag 14 31 + Signal -> tag_to_rtag 15 32 + Steam -> tag_to_rtag 16 33 + Thunderbird -> tag_to_rtag 17 34 + All -> Num.to_str ((Num.shift_left_by 1 32) - 1) 27 35 28 - autostart! = |{}| 29 - home = Env.decode! "HOME" ?? "/" 36 + autostart = [ 37 + "systemctl --user start river-session-pre.target", 38 + "update-session-vars", 39 + "systemctl --user start river-session.target", 40 + "kanshi", 41 + "xrandr --output HDMI-A-5 --primary", 42 + "rivertile -outer-padding 0 -view-padding 0 -main-ratio 0.5", 43 + "swaybg -i /media/nextcloud/wallpapers/dark/evie-s-Pb1KFv4tauY-unsplash.jpg -m fill", 44 + ] 30 45 31 - [ 32 - "systemctl --user start river-session-pre.target", 33 - "update-session-vars", 34 - "systemctl --user start river-session.target", 35 - "kanshi", 36 - "rivertile -outer-padding 0 -view-padding 0 -main-ratio 0.5", 37 - Str.replace_each "swaybg -i $HOME/pic/wallpapers/dark/evie-s-Pb1KFv4tauY-unsplash.jpg -m fill" "$HOME" home, 38 - ] 46 + autostart_apps = [ 47 + "keepassxc", 48 + "org.mozilla.Thunderbird", 49 + ] 39 50 40 51 configurations = [ 52 + { option: "allow-tearing", args: ["enabled"] }, 41 53 { option: "border-color-focused", args: ["0x93a1a1"] }, 42 54 { option: "border-color-unfocused", args: ["0x586e75"] }, 55 + { option: "border-width", args: ["0"] }, 43 56 { option: "focus-follows-cursor", args: ["normal"] }, 44 57 { option: "set-cursor-warp", args: ["on-output-change"] }, 45 58 { option: "xcursor-theme", args: ["Adwaita", "24"] }, 46 - { 47 - option: "input", 48 - args: [ 49 - "pointer-1356-3570-Sony_Interactive_Entertainment_DualSense_Edge_Wireless_Controller_Touchpad", 50 - "events", 51 - "disabled", 52 - ], 53 - }, 59 + { option: "input", args: ["pointer-1356-3570-Sony_Interactive_Entertainment_DualSense_Edge_Wireless_Controller_Touchpad", "events", "disabled"] }, 60 + { option: "input", args: ["pointer-4660-22136-extest_fake_device", "map-to-output", "HDMI-A-5"] }, 54 61 ] 55 62 56 63 rules = [ 64 + { id: "discord", title: "", action: "output", args: ["AOC 2460G4 0x0000075E"] }, 65 + { id: "discord", title: "", action: "tags", args: [named_tag_to_rtag Discord] }, 57 66 { id: "org.gnome.Nautilus", title: "", action: "float", args: [] }, 58 - { id: "org.gnome.Nautilus", title: "", action: "tags", args: [Num.to_str (named_tag_to_rtag Nautilus)] }, 59 - { id: "org.gnome.Nautilus", title: "", action: "float", args: [] }, 67 + { id: "org.gnome.Nautilus", title: "", action: "tags", args: [named_tag_to_rtag Nautilus] }, 68 + { id: "org.keepassxc.KeePassXC", title: "", action: "csd", args: [] }, 60 69 { id: "org.keepassxc.KeePassXC", title: "", action: "float", args: [] }, 61 - { 62 - id: "org.keepassxc.KeePassXC", 63 - title: "KeyChain.kdbx [Locked] - KeePassXC", 64 - action: "tags", 65 - args: [Num.to_str (named_tag_to_rtag KeePassXC)], 66 - }, 67 - { id: "org.mozilla.Thunderbird", title: "", action: "tags", args: [Num.to_str (named_tag_to_rtag Thunderbird)] }, 70 + { id: "org.keepassxc.KeePassXC", title: "KeyChain.kdbx [Locked] - KeePassXC", action: "output", args: ["LG Electronics LG HDR WFHD 0x0000B11B"] }, 71 + { id: "org.keepassxc.KeePassXC", title: "KeyChain.kdbx [Locked] - KeePassXC", action: "tags", args: [named_tag_to_rtag KeePassXC] }, 72 + { id: "org.mozilla.Thunderbird", title: "", action: "output", args: ["LG Electronics LG HDR WFHD 0x0000B11B"] }, 73 + { id: "org.mozilla.Thunderbird", title: "", action: "tags", args: [named_tag_to_rtag Thunderbird] }, 74 + { id: "signal", title: "", action: "output", args: ["AOC 2460G4 0x0000075E"] }, 75 + { id: "signal", title: "", action: "tags", args: [named_tag_to_rtag Signal] }, 76 + { id: "steam", title: "", action: "output", args: ["LG Electronics LG HDR WFHD 0x0000B11B"] }, 77 + { id: "steam", title: "", action: "tags", args: [named_tag_to_rtag Steam] }, 78 + { id: "steam_app_*", title: "", action: "output", args: ["LG Electronics LG HDR WFHD 0x0000B11B"] }, 79 + { id: "steam_app_*", title: "", action: "tags", args: [named_tag_to_rtag Games] }, 68 80 ] 69 81 70 82 modes = [ ··· 80 92 tag_binds = 81 93 List.range { start: At(1), end: At(9) } 82 94 |> List.map( 83 - |tag_num| [ 84 - { 85 - mode: "normal", 86 - mods: [Super], 87 - key: Num.to_str tag_num, 88 - cmd: "toggle-focused-tags", 89 - args: [Num.to_str (tag_to_rtag tag_num)], 90 - }, 91 - { 92 - mode: "normal", 93 - mods: [Super, Shift], 94 - key: Num.to_str tag_num, 95 - cmd: "toggle-view-tags", 96 - args: [Num.to_str (tag_to_rtag tag_num)], 97 - }, 98 - { 99 - mode: "normal", 100 - mods: [Super, Control], 101 - key: Num.to_str tag_num, 102 - cmd: "set-focused-tags", 103 - args: [Num.to_str (tag_to_rtag tag_num)], 104 - }, 105 - { 106 - mode: "normal", 107 - mods: [Super, Shift, Control], 108 - key: Num.to_str tag_num, 109 - cmd: "set-view-tags", 110 - args: [Num.to_str (tag_to_rtag tag_num)], 111 - }, 112 - ], 95 + |tag| 96 + tag_str = Num.to_str tag 97 + [ 98 + { mode: "normal", mods: [Super], key: tag_str, cmd: "toggle-focused-tags", args: [tag_to_rtag tag] }, 99 + { mode: "normal", mods: [Super, Shift], key: tag_str, cmd: "toggle-view-tags", args: [tag_to_rtag tag] }, 100 + { mode: "normal", mods: [Super, Control], key: tag_str, cmd: "set-focused-tags", args: [tag_to_rtag tag] }, 101 + { mode: "normal", mods: [Super, Shift, Control], key: tag_str, cmd: "set-view-tags", args: [tag_to_rtag tag] }, 102 + ], 113 103 ) 114 104 |> List.join 115 105 |> List.concat [ 116 106 # Show all tags 117 - { 118 - mode: "normal", 119 - mods: [Super], 120 - key: "0", 121 - cmd: "set-focused-tags", 122 - args: [Num.to_str (named_tag_to_rtag All)], 123 - }, 124 - { 125 - mode: "normal", 126 - mods: [Super, Shift], 127 - key: "0", 128 - cmd: "set-view-tags", 129 - args: [Num.to_str (named_tag_to_rtag All)], 130 - }, 107 + { mode: "normal", mods: [Super], key: "0", cmd: "set-focused-tags", args: [named_tag_to_rtag All] }, 108 + { mode: "normal", mods: [Super, Shift], key: "0", cmd: "set-view-tags", args: [named_tag_to_rtag All] }, 109 + ] 110 + |> List.concat [ 111 + # Hide applications 112 + { mode: "normal", mods: [Super], key: "H", cmd: "set-view-tags", args: [named_tag_to_rtag Hide] }, 113 + { mode: "normal", mods: [Super, Control], key: "H", cmd: "set-focused-tags", args: [named_tag_to_rtag Hide] }, 131 114 ] 115 + 116 + special_tag_binds = |named_tag, key| [ 117 + { mode: "special-tags", mods: [None], key: key, cmd: "toggle-focused-tags", args: [named_tag_to_rtag named_tag] }, 118 + { mode: "special-tags", mods: [Shift], key: key, cmd: "toggle-view-tags", args: [named_tag_to_rtag named_tag] }, 119 + { mode: "special-tags", mods: [Control], key: key, cmd: "set-focused-tags", args: [named_tag_to_rtag named_tag] }, 120 + { mode: "special-tags", mods: [Shift, Control], key: key, cmd: "set-view-tags", args: [named_tag_to_rtag named_tag] }, 121 + ] 132 122 133 123 keybinds = [ 134 124 # Launch Applications ··· 147 137 { mode: "normal", mods: [Super, Alt], key: "X", cmd: "focus-output", args: ["previous"] }, 148 138 { mode: "normal", mods: [Super, Control], key: "X", cmd: "send-to-output", args: ["next"] }, 149 139 { mode: "normal", mods: [Super, Control, Alt], key: "X", cmd: "send-to-output", args: ["previous"] }, 150 - { 151 - mode: "normal", 152 - mods: [Super, Shift, Control], 153 - key: "X", 154 - cmd: "send-to-output", 155 - args: ["-current-tags", "next"], 156 - }, 157 - { 158 - mode: "normal", 159 - mods: [Super, Shift, Control, Alt], 160 - key: "X", 161 - cmd: "send-to-output", 162 - args: ["-current-tags", "previous"], 163 - }, 140 + { mode: "normal", mods: [Super, Shift, Control], key: "X", cmd: "send-to-output", args: ["-current-tags", "next"] }, 141 + { mode: "normal", mods: [Super, Shift, Control, Alt], key: "X", cmd: "send-to-output", args: ["-current-tags", "previous"] }, 164 142 165 143 # Exit River 166 144 { mode: "normal", mods: [Super, Control], key: "Escape", cmd: "exit", args: [] }, ··· 178 156 { mode: "normal", mods: [Super], key: "Down", cmd: "send-layout-cmd", args: ["rivertile", "main-location bottom"] }, 179 157 { mode: "normal", mods: [Super], key: "Right", cmd: "send-layout-cmd", args: ["rivertile", "main-location right"] }, 180 158 { mode: "normal", mods: [Super], key: "Bracketleft", cmd: "send-layout-cmd", args: ["rivertile", "main-count -1"] }, 181 - { 182 - mode: "normal", 183 - mods: [Super], 184 - key: "Bracketright", 185 - cmd: "send-layout-cmd", 186 - args: ["rivertile", "main-count +1"], 187 - }, 188 - { 189 - mode: "normal", 190 - mods: [Super, Control], 191 - key: "Bracketleft", 192 - cmd: "send-layout-cmd", 193 - args: ["rivertile", "main-ratio -0.05"], 194 - }, 195 - { 196 - mode: "normal", 197 - mods: [Super, Control], 198 - key: "Bracketright", 199 - cmd: "send-layout-cmd", 200 - args: ["rivertile", "main-ratio +0.05"], 201 - }, 159 + { mode: "normal", mods: [Super], key: "Bracketright", cmd: "send-layout-cmd", args: ["rivertile", "main-count +1"] }, 160 + { mode: "normal", mods: [Super, Control], key: "Bracketleft", cmd: "send-layout-cmd", args: ["rivertile", "main-ratio -0.05"] }, 161 + { mode: "normal", mods: [Super, Control], key: "Bracketright", cmd: "send-layout-cmd", args: ["rivertile", "main-ratio +0.05"] }, 202 162 { mode: "normal", mods: [Super], key: "Space", cmd: "zoom", args: [] }, 203 163 { mode: "normal", mods: [Super], key: "Comma", cmd: "focus-view", args: ["previous"] }, 204 164 { mode: "normal", mods: [Super], key: "Period", cmd: "focus-view", args: ["next"] }, ··· 212 172 # Special Tags Mode 213 173 { mode: "normal", mods: [Super], key: "G", cmd: "enter-mode", args: ["special-tags"] }, 214 174 { mode: "special-tags", mods: [None], key: "Escape", cmd: "enter-mode", args: ["normal"] }, 215 - 216 - # KeePassXC Tag 217 - { 218 - mode: "special-tags", 219 - mods: [None], 220 - key: "K", 221 - cmd: "toggle-focused-tags", 222 - args: [Num.to_str (named_tag_to_rtag KeePassXC)], 223 - }, 224 - { 225 - mode: "special-tags", 226 - mods: [Shift], 227 - key: "K", 228 - cmd: "toggle-view-tags", 229 - args: [Num.to_str (named_tag_to_rtag KeePassXC)], 230 - }, 231 - { 232 - mode: "special-tags", 233 - mods: [Control], 234 - key: "K", 235 - cmd: "set-focused-tags", 236 - args: [Num.to_str (named_tag_to_rtag KeePassXC)], 237 - }, 238 - { 239 - mode: "special-tags", 240 - mods: [Shift, Control], 241 - key: "K", 242 - cmd: "set-view-tags", 243 - args: [Num.to_str (named_tag_to_rtag KeePassXC)], 244 - }, 245 - 246 - # Thunderbird Tag 247 - { 248 - mode: "special-tags", 249 - mods: [None], 250 - key: "T", 251 - cmd: "toggle-focused-tags", 252 - args: [Num.to_str (named_tag_to_rtag Thunderbird)], 253 - }, 254 - { 255 - mode: "special-tags", 256 - mods: [Shift], 257 - key: "T", 258 - cmd: "toggle-view-tags", 259 - args: [Num.to_str (named_tag_to_rtag Thunderbird)], 260 - }, 261 - { 262 - mode: "special-tags", 263 - mods: [Control], 264 - key: "T", 265 - cmd: "set-focused-tags", 266 - args: [Num.to_str (named_tag_to_rtag Thunderbird)], 267 - }, 268 - { 269 - mode: "special-tags", 270 - mods: [Shift, Control], 271 - key: "T", 272 - cmd: "set-view-tags", 273 - args: [Num.to_str (named_tag_to_rtag Thunderbird)], 274 - }, 275 - 276 - # Nautilus Tag 277 - { 278 - mode: "special-tags", 279 - mods: [None], 280 - key: "N", 281 - cmd: "toggle-focused-tags", 282 - args: [Num.to_str (named_tag_to_rtag Nautilus)], 283 - }, 284 - { 285 - mode: "special-tags", 286 - mods: [Shift], 287 - key: "N", 288 - cmd: "toggle-view-tags", 289 - args: [Num.to_str (named_tag_to_rtag Nautilus)], 290 - }, 291 - { 292 - mode: "special-tags", 293 - mods: [Control], 294 - key: "N", 295 - cmd: "set-focused-tags", 296 - args: [Num.to_str (named_tag_to_rtag Nautilus)], 297 - }, 298 - { 299 - mode: "special-tags", 300 - mods: [Shift, Control], 301 - key: "N", 302 - cmd: "set-view-tags", 303 - args: [Num.to_str (named_tag_to_rtag Nautilus)], 304 - }, 305 175 ] 306 176 307 - tag_to_rtag = |num| 308 - Num.shift_left_by 1 (num - 1) 309 - 310 177 mod_str = |mod| 311 178 when mod is 312 179 Control -> "Control" ··· 325 192 result = 326 193 Cmd.new "riverctl" 327 194 |> Cmd.args elem 328 - |> Cmd.status! 195 + |> Cmd.exec_exit_code! 329 196 330 197 when result is 331 198 Ok exit_code if exit_code == 0 -> Ok {} ··· 334 201 335 202 main! = |_args| 336 203 autostart_cmds! = 337 - autostart! {} 204 + autostart 205 + |> List.map |cmd| 206 + ["spawn", cmd] 207 + 208 + autostart_apps_cmds = 209 + autostart_apps 338 210 |> List.map |cmd| 339 211 ["spawn", cmd] 340 212 ··· 367 239 368 240 keybind_cmds = 369 241 tag_binds 242 + |> List.concat (special_tag_binds Discord "D") 243 + |> List.concat (special_tag_binds Games "G") 244 + |> List.concat (special_tag_binds KeePassXC "K") 245 + |> List.concat (special_tag_binds Nautilus "N") 246 + |> List.concat (special_tag_binds Signal "M") 247 + |> List.concat (special_tag_binds Steam "S") 248 + |> List.concat (special_tag_binds Thunderbird "T") 370 249 |> List.concat keybinds 371 250 |> List.map |{ mode, mods, key, cmd, args }| 372 251 ["map", mode, Str.join_with (List.map mods mod_str) "+", key, cmd] ··· 378 257 |> List.concat mode_cmds 379 258 |> List.concat pointer_bind_cmds 380 259 |> List.concat keybind_cmds 260 + |> List.concat autostart_apps_cmds 381 261 |> riverctl_runner!
config/sioyek/keys_user.config

This is a binary file and will not be displayed.

+9
config/sioyek/prefs_user.config
··· 1 + check_for_updates_on_startup 0 2 + show_statusbar_only_when_hovered 1 3 + 4 + case_sensitive_search 0 5 + 6 + text_highlight_color 0.8196078431372549 0.6784313725490196 0.9490196078431372 7 + search_highlight_color 0.6509803921568628 0.7294117647058823 0.9607843137254902 8 + 9 + ui_font IBM Plex Mono
+1
config/thm/templates/light/foot-colors.ini.template
··· 2 2 3 3 [csd] 4 4 color=ff{bg_color} 5 + border-color=ff{color7} 5 6 button-color=ff{fg_color} 6 7 button-minimize-color=ff{color3} 7 8 button-maximize-color=ff{color2}
+1 -1
config/thm/templates/mako.template
··· 1 1 # Global Config 2 2 max-visible=2 3 - output=DP-1 3 + output=HDMI-A-5 4 4 layer=top 5 5 anchor=top-right 6 6
+2 -2
config/xdg-desktop-portal-wlr/config
··· 1 1 [screencast] 2 - output_name = DP-1 3 - max_fps = 75 2 + output_name = HDMI-A-5 3 + max_fps = 60 4 4 chooser_cmd = simple 5 5 chooser_type = slurp -f %o -or
+1
config/zathura/zathurarc
··· 1 + set guioptions none
+35
local/bin/typp
··· 1 + #!/bin/sh 2 + set -e 3 + 4 + file=$1 5 + if [ "$file" = "typ" ] || [ "${file##*.}" != "typ" ] || [ ! -e "$file" ] 6 + then 7 + printf '%s\n' "Missing typst file" 8 + exit 1 9 + fi 10 + 11 + pdf="${1%.typ}.pdf" 12 + 13 + # Generate a blank PDF document so sioyek doesn't segfault 14 + magick convert xc:none -page A4 "$pdf" 15 + 16 + # typst watch "$file" > /dev/null 2>&1 & 17 + typst watch "$file" & 18 + typst_pid="$!" 19 + 20 + sioyek "$pdf" > /dev/null 2>&1 & 21 + sioyek_pid="$!" 22 + 23 + kill_children() { 24 + kill $typst_pid 25 + kill $sioyek_pid 26 + exit 27 + } 28 + 29 + trap kill_children EXIT 30 + 31 + while inotifywait -e close_write,moved_to,create -qq "$pdf" 32 + do sioyek --execute-command reload_no_flicker > /dev/null 2>&1 33 + done 34 + 35 + kill_children
+7 -2
ssh/config
··· 1 1 Host lily 2 - HostName 100.77.30.206 2 + HostName 2600:1702:1730:76f0:7285:c2ff:fe07:3c7b 3 + BindAddress 2600:1702:1730:76f0:dabb:c1ff:fea3:8843 3 4 Port 2222 4 5 SetEnv TERM=xterm-256color 5 - Host lily-local 6 + Host lily-v4 6 7 HostName 192.168.1.92 8 + Port 2222 9 + SetEnv TERM=xterm-256color 10 + Host lily-nb 11 + HostName 100.77.30.206 7 12 Port 2222 8 13 SetEnv TERM=xterm-256color 9 14 Host dandelion