diff options
author | Bryson Steck <me@brysonsteck.xyz> | 2023-09-13 21:45:58 -0600 |
---|---|---|
committer | Bryson Steck <me@brysonsteck.xyz> | 2023-09-13 21:45:58 -0600 |
commit | 8ea71ee2baf86d32f810bc6f6c560e6677cc2e09 (patch) | |
tree | bc9307615ed4fe2d8a0d1c32cb7f22ad70eed67b /x/spawn-alacritty | |
parent | 907c402cf16497f2652c406922100f4a098af942 (diff) | |
download | dotfiles-8ea71ee2baf86d32f810bc6f6c560e6677cc2e09.tar dotfiles-8ea71ee2baf86d32f810bc6f6c560e6677cc2e09.tar.gz dotfiles-8ea71ee2baf86d32f810bc6f6c560e6677cc2e09.tar.bz2 |
updates again
Diffstat (limited to 'x/spawn-alacritty')
-rwxr-xr-x | x/spawn-alacritty | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/x/spawn-alacritty b/x/spawn-alacritty new file mode 100755 index 0000000..7292478 --- /dev/null +++ b/x/spawn-alacritty @@ -0,0 +1,37 @@ +#!/bin/bash +# Stole from https://github.com/alacritty/alacritty/issues/808#issuecomment-334200570 +# +# Spawn a new instance of Alacritty using the CWD of the currently focused +# Alacritty process. +# +# This is useful in environment like i3 where terminals are opened using a +# key-combination while another terminal is already focused. +# +# If the script is run with a non-Alacritty window in focus or a non-compliant +# version of Alacritty, an instance will be spawned in the user's $HOME. + +ACTIVE_WINDOW=$(xdotool getactivewindow) +ACTIVE_WM_CLASS=$(xprop -id $ACTIVE_WINDOW | grep WM_CLASS) +if [[ $ACTIVE_WM_CLASS == *"Alacritty"* ]] +then + # Get PID. If _NET_WM_PID isn't set, bail. + PID=$(xprop -id $ACTIVE_WINDOW | grep _NET_WM_PID | grep -oP "\d+") + if [[ "$PID" == "" ]] + then + WINIT_X11_SCALE_FACTOR=1 alacritty + fi + # Get first child of terminal + CHILD_PID=$(pgrep -P $PID) + if [[ "$PID" == "" ]] + then + WINIT_X11_SCALE_FACTOR=1 alacritty + fi + # Get current directory of child. The first child should be the shell. + pushd "/proc/${CHILD_PID}/cwd" + SHELL_CWD=$(pwd -P) + popd + # Start alacritty with the working directory + WINIT_X11_SCALE_FACTOR=1 alacritty --working-directory "$SHELL_CWD" +else + WINIT_X11_SCALE_FACTOR=1 alacritty +fi |