diff options
Diffstat (limited to 'bin/alacritty-mosh')
| -rwxr-xr-x | bin/alacritty-mosh | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/bin/alacritty-mosh b/bin/alacritty-mosh new file mode 100755 index 0000000..6032828 --- /dev/null +++ b/bin/alacritty-mosh @@ -0,0 +1,61 @@ +#!/bin/bash + +set -euo pipefail + +target="$1" +dedicated_dir='/tmp/alacritty' +dedicated_cfg="${dedicated_dir}/$target.conf" +dedicated_sh="${dedicated_dir}/${target}.sh" +mkdir -p "${dedicated_dir}" + +main_cfg="${HOME}/.config/alacritty/alacritty.toml" + +# Alacritty loads config files in a way that doesn't allow terminal.shell to be +# overriden, so this doesn't work. +# cat > "${dedicated_cfg}" <<EOF +# # [general] +# # import = [ +# # "${main_cfg}", +# # ] +# [terminal.shell] +# args = ["--login", "-ic", "${dedicated_sh}"] +# program = "/bin/zsh" +# [window] +# title = "${target}" +# dynamic_title = false +# EOF + +awk -v r='terminal.shell,window' ' +/^\[/ { + s = $0 + gsub(/^\[|\]$/, "", s) + p = (index(","r",", ","s",") == 0) +} +p +' "${main_cfg}" > "${dedicated_cfg}" +cat >> "${dedicated_cfg}" <<EOF +[terminal.shell] +args = ["--login", "-ic", "${dedicated_sh}"] +program = "/bin/zsh" + +[window] +title = "${target}" +dynamic_title = false +opacity = 0.96 +# blur = true +decorations = "buttonless" +dynamic_padding = true +option_as_alt = "None" +EOF + +cat > "$dedicated_sh" <<EOF +#!/bin/bash +cleanup() { + rm -f "${dedicated_cfg}" + rm -f "${dedicated_sh}" +} +trap cleanup EXIT INT TERM +mosh ${target} -- tmux new-session -As 0 +EOF +chmod +x "$dedicated_sh" +open -n -a Alacritty --args --config-file "${dedicated_cfg}" |
