diff options
Diffstat (limited to 'sway')
| -rw-r--r-- | sway/config | 198 | ||||
| -rwxr-xr-x | sway/inactive-windows-transparency.py | 69 | ||||
| -rwxr-xr-x | sway/sway | 6 | ||||
| -rwxr-xr-x | sway/sway_autolock | 12 | ||||
| -rwxr-xr-x | sway/sway_outputs | 9 | ||||
| -rwxr-xr-x | sway/sway_stats | 12 | ||||
| -rwxr-xr-x | sway/sway_workspace | 4 |
7 files changed, 310 insertions, 0 deletions
diff --git a/sway/config b/sway/config new file mode 100644 index 0000000..255f97a --- /dev/null +++ b/sway/config @@ -0,0 +1,198 @@ +# Read `man 5 sway` for a complete reference. + +### Keyboard layout + +input "1:1:AT_Translated_Set_2_keyboard" { + xkb_model pc105aw-sl + xkb_layout "us(cmk_ed_dh)" + xkb_options "caps:ctrl_modifier" +} + +### Variables +set $mod Mod4 + +set $left n +set $down e +set $up i +set $right o + +set $term foot + +# Your preferred application launcher +# Note: pass the final command to swaymsg so that the resulting window can be opened +# on the original workspace that the command was run on. +set $menu bemenu-run | xargs swaymsg exec -- + +### Output configuration +# +# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) +# output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill +# + +### Visual stuff + +hide_edge_borders --i3 none +default_border none # pixel 1 + +client.focused #000000 #af4c00 #ffffff #2e9ef4 #AF4C00 + +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+t exec $term + + # Kill focused window + bindsym $mod+Shift+k kill + + # Start your launcher + bindsym $mod+Space exec $menu + + # Time + bindsym $mod+Return exec sway_stats + + # Autolock + bindsym $mod+Shift+h exec sway_autolock + + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal + + # Reload the configuration file + bindsym $mod+Control+Shift+c reload + + # Exit sway (logs you out of your Wayland session) + #bindsym $mod+Shift+Control+q exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit' + bindsym $mod+Shift+Control+q exec swaymsg exit +# +# Moving around: +# + # Move your focus around + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + # Or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # Move the focused window with the same, but add Shift + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + # Ditto, with arrow keys + bindsym $mod+Shift+Left move left + bindsym $mod+Shift+Down move down + bindsym $mod+Shift+Up move up + bindsym $mod+Shift+Right move right +# +# Workspaces: +# + + bindsym $mod+tab workspace back_and_forth + # Switch to workspace + bindsym $mod+l exec sway_workspace 1 L + bindsym $mod+u exec sway_workspace 2 U + bindsym $mod+y exec sway_workspace 3 Y + bindsym $mod+semicolon exec sway_workspace 4 ";" + bindsym $mod+q exec sway_workspace 5 Q + bindsym $mod+w exec sway_workspace 6 W + bindsym $mod+f exec sway_workspace 7 F + bindsym $mod+p exec sway_workspace 8 P + bindsym $mod+b exec sway_workspace 9 B + # Move focused container to workspace + bindsym $mod+Shift+l move container to workspace number 1 + bindsym $mod+Shift+u move container to workspace number 2 + bindsym $mod+Shift+y move container to workspace number 3 + bindsym $mod+Shift+semicolon move container to workspace number 4 + bindsym $mod+Shift+q move container to workspace number 5 + bindsym $mod+Shift+w move container to workspace number 6 + bindsym $mod+Shift+f move container to workspace number 7 + bindsym $mod+Shift+p move container to workspace number 8 + bindsym $mod+Shift+b move container to workspace number 9 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+h splith + bindsym $mod+v splitv + + # Switch the current container between different layout styles + workspace_layout tabbed + bindsym $mod+a layout stacking + bindsym $mod+r layout tabbed + bindsym $mod+s layout toggle split + + # Make the current focus fullscreen + bindsym $mod+g fullscreen + + # Toggle the current focus between tiling and floating mode + bindsym $mod+d floating toggle + + # Swap focus between the tiling area and the floating area + bindsym $mod+Shift+d focus mode_toggle + + # Move focus to the parent container + bindsym $mod+comma focus parent +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show +# +# Resizing containers: +# +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+Shift+r mode "resize" + +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. + +include /etc/sway/config.d/* + +exec inactive-windows-transparency.py --opacity 0.8 +exec wlsunset -l 39 -L -76 +exec fnott +exec pipewire +exec pipewire-pulse + +exec sway_outputs +exec foot diff --git a/sway/inactive-windows-transparency.py b/sway/inactive-windows-transparency.py new file mode 100755 index 0000000..b81134d --- /dev/null +++ b/sway/inactive-windows-transparency.py @@ -0,0 +1,69 @@ +#!/usr/bin/python + +# This script requires i3ipc-python package (install it from a system package manager +# or pip). +# It makes inactive windows transparent. Use `transparency_val` variable to control +# transparency strength in range of 0…1 or use the command line argument -o. + +import argparse +import i3ipc +import signal +import sys +from functools import partial + +def on_window_focus(inactive_opacity, ipc, event): + global prev_focused + global prev_workspace + + focused_workspace = ipc.get_tree().find_focused() + + if focused_workspace == None: + return + + focused = event.container + workspace = focused_workspace.workspace().num + + if focused.id != prev_focused.id: # https://github.com/swaywm/sway/issues/2859 + focused.command("opacity 1") + if workspace == prev_workspace: + prev_focused.command("opacity " + inactive_opacity) + prev_focused = focused + prev_workspace = workspace + + +def remove_opacity(ipc): + for workspace in ipc.get_tree().workspaces(): + for w in workspace: + w.command("opacity 1") + ipc.main_quit() + sys.exit(0) + + +if __name__ == "__main__": + transparency_val = "0.80" + + parser = argparse.ArgumentParser( + description="This script allows you to set the transparency of unfocused windows in sway." + ) + parser.add_argument( + "--opacity", + "-o", + type=str, + default=transparency_val, + help="set opacity value in range 0...1", + ) + args = parser.parse_args() + + ipc = i3ipc.Connection() + prev_focused = None + prev_workspace = ipc.get_tree().find_focused().workspace().num + + for window in ipc.get_tree(): + if window.focused: + prev_focused = window + else: + window.command("opacity " + args.opacity) + for sig in [signal.SIGINT, signal.SIGTERM]: + signal.signal(sig, lambda signal, frame: remove_opacity(ipc)) + ipc.on("window::focus", partial(on_window_focus, args.opacity)) + ipc.main()
\ No newline at end of file diff --git a/sway/sway b/sway/sway new file mode 100755 index 0000000..325c7be --- /dev/null +++ b/sway/sway @@ -0,0 +1,6 @@ +#!/bin/sh + +killall dbus-daemon &> /dev/null +export $(dbus-launch) + +/usr/bin/sway diff --git a/sway/sway_autolock b/sway/sway_autolock new file mode 100755 index 0000000..9168249 --- /dev/null +++ b/sway/sway_autolock @@ -0,0 +1,12 @@ +#!/bin/sh + +pid="$(pgrep swayidle)" +if [ -z "$pid" ]; then + swayidle -w timeout 300 'swaylock -f -c 000000' \ + timeout 300 'swaymsg "output * dpms off"' \ + resume 'swaymsg "output * dpms on"' & + notify-send --app-name "Autolock" "Enabled" +else + kill -9 "$pid" + notify-send --app-name "Autolock" "DISABLED" +fi diff --git a/sway/sway_outputs b/sway/sway_outputs new file mode 100755 index 0000000..e8c8505 --- /dev/null +++ b/sway/sway_outputs @@ -0,0 +1,9 @@ +#!/bin/sh + +at_home=$(swaymsg -t get_outputs | grep 'TH7AA0012451') + +if [ -n "$at_home" ]; then + swaymsg output VGA-1 enable scale 1.5 + swaymsg output LVDS-1 disable + swaymsg workspace number 1 +fi; diff --git a/sway/sway_stats b/sway/sway_stats new file mode 100755 index 0000000..96b0923 --- /dev/null +++ b/sway/sway_stats @@ -0,0 +1,12 @@ +#!/bin/sh + +raw_freq=$(cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq) +cpu_freq="$(( $raw_freq / 1000 )) MHz" + +name="$(date '+%Hh%M %A %y.%m.%d')" +summary="$(battery) @ $cpu_freq" +body=$(free -h | awk '/Mem:/ { ram=$3 } + /Swap:/ { swap=$3 } + END { printf("Used Ram/Swap: %s/%s",ram,swap) }') + +notify-send -t 10000 --app-name="$name" "$summary" "$body" diff --git a/sway/sway_workspace b/sway/sway_workspace new file mode 100755 index 0000000..bd72115 --- /dev/null +++ b/sway/sway_workspace @@ -0,0 +1,4 @@ +#!/bin/sh + +notify-send -t 1000 --app-name "$2" "workspace" +swaymsg workspace number "$1" "$2" |
