diff options
Diffstat (limited to 'sway')
| -rw-r--r-- | sway/config | 136 | ||||
| -rwxr-xr-x | sway/init.sh | 29 | ||||
| -rwxr-xr-x | sway/load_resources.sh | 6 | ||||
| -rw-r--r-- | sway/terminal.py | 54 | ||||
| -rwxr-xr-x | sway/terminal.sh | 28 |
5 files changed, 110 insertions, 143 deletions
diff --git a/sway/config b/sway/config index 93f0db3..2a18165 100644 --- a/sway/config +++ b/sway/config @@ -1,86 +1,56 @@ -set $primary eDP-1 -set $secondary DP-6 -output $primary pos 0 0 res 1920x1080 bg ~/.pictures/bg1.jpg stretch -output $secondary pos 1920 0 res 3840x2160 bg ~/.pictures/bg2.jpg stretch - -set $ws1 "1:1" -set $ws2 "2:2" -set $ws3 "3:3" -set $ws4 "4:4" -set $ws5 "5:a" -set $ws6 "6:s" -set $ws7 "7:d" -set $ws8 "8:f" -set $ws9 "9:term" -workspace $ws1 output $primary -workspace $ws2 output $primary -workspace $ws3 output $primary -workspace $ws4 output $primary -workspace $ws5 output $secondary -workspace $ws6 output $secondary -workspace $ws7 output $secondary -workspace $ws8 output $secondary - set $mod Mod4 -font pango:Inter Medium 12 -floating_modifier $mod -default_border pixel 4 -xwayland disable - -bindsym $mod+Return exec alacritty -bindsym $mod+space exec wofi --show drun --allow-images --allow-markup --gtk-dark -bindsym $mod+Tab layout toggle - -bindsym $mod+Shift+q kill -bindsym $mod+Shift+r restart -bindsym $mod+Shift+e exit -bindsym $mod+Shift+space floating toggle -bindsym $mod+Shift+Return fullscreen toggle - -bindsym $mod+h focus left -bindsym $mod+j focus down -bindsym $mod+k focus up -bindsym $mod+l focus right -bindsym $mod+Left focus left -bindsym $mod+Down focus down -bindsym $mod+Up focus up -bindsym $mod+Right focus right -bindsym $mod+Shift+h move left -bindsym $mod+Shift+j move down -bindsym $mod+Shift+k move up -bindsym $mod+Shift+l move right -bindsym $mod+Shift+Left move left -bindsym $mod+Shift+Down move down -bindsym $mod+Shift+Up move up -bindsym $mod+Shift+Right move right - -bindsym $mod+1 workspace number $ws1 -bindsym $mod+2 workspace number $ws2 -bindsym $mod+3 workspace number $ws3 -bindsym $mod+4 workspace number $ws4 -bindsym $mod+a workspace number $ws5 -bindsym $mod+s workspace number $ws6 -bindsym $mod+d workspace number $ws7 -bindsym $mod+f workspace number $ws8 - -bindsym $mod+Shift+1 move container to workspace number $ws1 -bindsym $mod+Shift+2 move container to workspace number $ws2 -bindsym $mod+Shift+3 move container to workspace number $ws3 -bindsym $mod+Shift+4 move container to workspace number $ws4 -bindsym $mod+Shift+a move container to workspace number $ws5 -bindsym $mod+Shift+s move container to workspace number $ws6 -bindsym $mod+Shift+d move container to workspace number $ws7 -bindsym $mod+Shift+f move container to workspace number $ws8 - -bindsym F12 exec python ~/.config/sway/terminal.py -assign [app_id="^tmux_term$"] $ws9 - -bar { - swaybar_command waybar - position top - strip_workspace_numbers yes - tray_output $primary +xwayland disable +bar swaybar_command waybar + +exec_always ~/.config/sway/init.sh + +bindsym { + $mod+Return exec alacritty + $mod+space exec wofi --show drun --allow-images --allow-markup --gtk-dark + $mod+Tab layout toggle + + $mod+Shift+q kill + $mod+Shift+r restart + $mod+Shift+e exit + $mod+Shift+space floating toggle + $mod+Shift+Return fullscreen toggle + + $mod+h focus left + $mod+j focus down + $mod+k focus up + $mod+l focus right + $mod+Left focus left + $mod+Down focus down + $mod+Up focus up + $mod+Right focus right + + $mod+Shift+h move left + $mod+Shift+j move down + $mod+Shift+k move up + $mod+Shift+l move right + $mod+Shift+Left move left + $mod+Shift+Down move down + $mod+Shift+Up move up + $mod+Shift+Right move right + + $mod+1 workspace number "1:1" + $mod+2 workspace number "2:2" + $mod+3 workspace number "3:3" + $mod+4 workspace number "4:4" + $mod+a workspace number "5:a" + $mod+s workspace number "6:s" + $mod+d workspace number "7:d" + $mod+f workspace number "8:f" + + $mod+Shift+1 move container to workspace number "1:1" + $mod+Shift+2 move container to workspace number "2:2" + $mod+Shift+3 move container to workspace number "3:3" + $mod+Shift+4 move container to workspace number "4:4" + $mod+Shift+a move container to workspace number "5:a" + $mod+Shift+s move container to workspace number "6:s" + $mod+Shift+d move container to workspace number "7:d" + $mod+Shift+f move container to workspace number "8:f" + + F12 exec ~/.config/sway/terminal.sh } - -exec ~/.config/sway/load_resources.sh diff --git a/sway/init.sh b/sway/init.sh new file mode 100755 index 0000000..c854d80 --- /dev/null +++ b/sway/init.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +mod=Mod4 +primary=eDP-1 +secondary=$(swaymsg -t get_outputs -r | + jq "map(select(.name != \"$primary\") | .name)[0]" 2> /dev/null | + tr -d "\"") + +swaymsg output $primary pos 0 0 res 1920x1080 bg ~/.pictures/bg1.jpg stretch +[ ! -z "$secondary" ] && swaymsg output $secondary pos 1920 0 bg ~/.pictures/bg2.jpg stretch + +swaymsg workspace 1:1 output $primary +swaymsg workspace 2:2 output $primary +swaymsg workspace 3:3 output $primary +swaymsg workspace 4:4 output $primary +swaymsg workspace 5:a output ${secondary:-$primary} +swaymsg workspace 6:s output ${secondary:-$primary} +swaymsg workspace 7:d output ${secondary:-$primary} +swaymsg workspace 8:f output ${secondary:-$primary} + +swaymsg font "pango:Inter Medium 12" +swaymsg floating_modifier $mod +swaymsg default_border pixel 4 + +swaymsg assign "[app_id=\"^tmux_term\$\"]" 9:term + +# export GDK_DPI_SCALE=0.95 +gsettings set org.gnome.desktop.interface scaling-factor 1 +gsettings set org.gnome.desktop.interface text-scaling-factor 1 diff --git a/sway/load_resources.sh b/sway/load_resources.sh deleted file mode 100755 index b1c07a2..0000000 --- a/sway/load_resources.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -xrdb -load ~/.Xresources -(swaymsg -p -t get_outputs | grep -q "Current mode: 3840x2160") && \ - echo "Xft.dpi: 120" | xrdb -override - diff --git a/sway/terminal.py b/sway/terminal.py deleted file mode 100644 index 3993dcd..0000000 --- a/sway/terminal.py +++ /dev/null @@ -1,54 +0,0 @@ -import subprocess - -workspace_name = '9:term' -instance_name = 'tmux_term' - - -def is_term_running(): - p = subprocess.run(['swaymsg', '-t', 'get_tree'], - capture_output=True, - check=True) - return f'"app_id": "{instance_name}"' in p.stdout.decode('utf-8') - - -def run_term(): - subprocess.Popen(['alacritty', '--class', instance_name, - '-e', 'tmux', 'new-session', '-A', '-s', 'default']) - - -def get_focused(name): - p = subprocess.run(['swaymsg', '-p', '-t', f'get_{name}'], - capture_output=True, - check=True) - for line in p.stdout.decode('utf-8').strip().split('\n'): - if not line or line[0] == ' ': - continue - segments = line.split(' ') - if segments[-1] == '(focused)': - return segments[1] - - -def hide_term(): - subprocess.run(['swaymsg', 'workspace', 'back_and_forth'], check=True) - - -def show_term(): - output = get_focused('outputs') - subprocess.run(['swaymsg', 'workspace', workspace_name], check=True) - subprocess.run(['swaymsg', 'move', 'workspace', 'to', output], check=True) - subprocess.run(['swaymsg', 'workspace', workspace_name], check=True) - - -def main(): - if not is_term_running(): - run_term() - - focused_workspace = get_focused('workspaces') - if focused_workspace == workspace_name: - hide_term() - else: - show_term() - - -if __name__ == '__main__': - main() diff --git a/sway/terminal.sh b/sway/terminal.sh new file mode 100755 index 0000000..ec864ab --- /dev/null +++ b/sway/terminal.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +DESKTOP=term +INSTANCE=tmux_term + +TERM_WORKSPACE="9:term" +TERM_APP_ID=tmux_term + +FOCUSED_OUTPUT=$(swaymsg -t get_outputs -r | + jq '.[] | select(.focused == true) | .name' | + tr -d '"') +FOCUSED_WORKSPACE=$(swaymsg -t get_workspaces -r | + jq '.[] | select(.focused == true) | .name' | + tr -d '"') + +if [ "$FOCUSED_WORKSPACE" = "$TERM_WORKSPACE" ]; then + swaymsg workspace back_and_forth +else + swaymsg workspace $TERM_WORKSPACE + swaymsg move workspace to $FOCUSED_OUTPUT + swaymsg workspace $TERM_WORKSPACE + + if ! (swaymsg -t get_tree -r | + jq -e "recurse(.nodes[]) | select(.app_id == \"$TERM_APP_ID\")" > /dev/null); then + exec alacritty --class $TERM_APP_ID -e \ + tmux new-session -A -s default + fi +fi |
