diff --git a/bash/.bashrc b/bash/.bashrc index b3f7974..5cef53b 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -14,11 +14,6 @@ export MACHINE_START_SWAY=false # Whether to start Sway from bash # Source machine-specific config [[ -f ~/.machine_config ]] && source ~/.machine_config -# Execute tmux in Alacritty -if [[ "$TERM" == "alacritty" || "$TERM_PROGRAM" == "WezTerm" ]]; then - exec tmux -fi - # SSH without checking or adding host keys to known_hosts # Useful for cloud server rescue environment & installation alias sshtmp="ssh -o 'UserKnownHostsFile /dev/null' -o 'StrictHostKeyChecking no'" @@ -107,6 +102,39 @@ function sshts() { _ssh $(tsselect) } +# SSH shorthands for WezTerm +function assert_wezterm() { + [ "$TERM_PROGRAM" == "WezTerm" ] +} + +# sshwez and sshmuxwez are used for spawning tabs in WezTerm +# that uses its native multiplexer; this is useful for connecting +# to home servers etc. and make use of WezTerm's native panes +function sshwez() { + assert_wezterm || return + wezterm cli spawn --domain-name "SSH:$1" +} + +function sshmuxwez() { + assert_wezterm || return + wezterm cli spawn --domain-name "SSHMUX:$1" +} + +# moshwez{,ts,scrts} simply runs mosh inside a new WezTerm tab +# Ideal for remote connections +function moshwez() { + assert_wezterm || return + wezterm cli spawn -- mosh "$@" +} + +function moshwezts() { + moshwez $(tsselect) +} + +function moshwezscrts() { + moshwez $(tsselect) -- screen -RR -d +} + # Add local to path export PATH="$PATH:~/.local/bin" diff --git a/sway/.config/sway/config b/sway/.config/sway/config index bc0f148..9d35bb6 100644 --- a/sway/.config/sway/config +++ b/sway/.config/sway/config @@ -277,6 +277,9 @@ for_window [app_id="pavucontrol"] floating enable # Makes service management a bit cleaner exec_always "systemctl --user import-environment; systemctl --user start sway-session.target" +# Import environment to D-Bus as well for xdg-desktop-portals etc +exec_always dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway + # Restart kanshi if it is running # This restores monitor configuration on reload exec_always "systemctl --user is-active kanshi && systemctl --user restart kanshi" diff --git a/wezterm/.config/wezterm/wezterm.lua b/wezterm/.config/wezterm/wezterm.lua index 56f8aac..738c9b5 100644 --- a/wezterm/.config/wezterm/wezterm.lua +++ b/wezterm/.config/wezterm/wezterm.lua @@ -3,5 +3,41 @@ return { color_scheme = "Gruvbox dark, medium (base16)", font = wezterm.font("FiraCode Nerd Font Mono"), font_size = 10.5, - enable_tab_bar = false, -- I use tmux + enable_tab_bar = true, + use_ime = true, + scrollback_lines = 65536, + tab_bar_at_bottom = true, + window_padding = { + top = '0.5cell', + -- We already have the tab bar at bottom + bottom = '0', + left = '1cell', + right = '1cell' + }, + keys = { + -- The default Ctrl+Tab conflicts with Sway + { + key = 'Tab', + mods = 'SHIFT', + action = wezterm.action.ActivateTabRelative(1), + }, + -- Reload config forcibly + { + key = 'r', + mods = 'CTRL|SHIFT', + action = wezterm.action.ReloadConfiguration, + }, + -- Spawn panes in the **DEFAULT** domain + -- to use the current domain, use Ctrl + Alt + Shift + " or % + { + key = '"', + mods = 'CTRL|SUPER|ALT|SHIFT', + action = wezterm.action.SplitVertical { domain = 'DefaultDomain' }, + }, + { + key = '%', + mods = 'CTRL|SUPER|ALT|SHIFT', + action = wezterm.action.SplitHorizontal { domain = 'DefaultDomain' }, + }, + }, }