From 84dfb67db1ab7431437046198b6597352171ea86 Mon Sep 17 00:00:00 2001 From: tslil clingman Date: Wed, 26 Jan 2022 20:33:09 -0500 Subject: Tracking sway config --- sway/config | 210 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 sway/config (limited to 'sway/config') diff --git a/sway/config b/sway/config new file mode 100644 index 0000000..7b22367 --- /dev/null +++ b/sway/config @@ -0,0 +1,210 @@ +# 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 +# +# Example configuration: +# +# output HDMI-A-1 resolution 1920x1080 position 1920,0 +# +# You can get the names of your outputs by running: swaymsg -t get_outputs + +### Idle configuration + +exec swayidle -w \ + timeout 300 'swaylock -f -c 000000' \ + timeout 300 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' +# before-sleep 'swaylock -f -c 000000' + +# This will lock your screen after 300 seconds of inactivity, then turn off +# your displays after another 300 seconds, and turn your screens back on when +# resumed. It will also lock your screen before your computer goes to sleep. + +### Visual stuff + +hide_edge_borders --i3 none +default_border 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 + + # 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 notify_workspace 1 L + bindsym $mod+u exec notify_workspace 2 U + bindsym $mod+y exec notify_workspace 3 Y + bindsym $mod+semicolon exec notify_workspace 4 ";" + bindsym $mod+q exec notify_workspace 5 Q + bindsym $mod+w exec notify_workspace 6 W + bindsym $mod+f exec notify_workspace 7 F + bindsym $mod+p exec notify_workspace 8 P + bindsym $mod+b exec notify_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 wlsunset -l 39 -L -76 +exec fnott +exec pipewire +exec pipewire-pulse + +exec sway_outputs +exec foot -- cgit v1.2.3 From 5e923399b11ed932d7c10bdf833b2da864d4b539 Mon Sep 17 00:00:00 2001 From: tslil clingman Date: Wed, 26 Jan 2022 20:40:32 -0500 Subject: Forgot to include sway_workspace --- sway/config | 18 +++++++++--------- sway/sway_workspace | 4 ++++ 2 files changed, 13 insertions(+), 9 deletions(-) create mode 100755 sway/sway_workspace (limited to 'sway/config') diff --git a/sway/config b/sway/config index 7b22367..b1e68bb 100644 --- a/sway/config +++ b/sway/config @@ -111,15 +111,15 @@ client.focused #000000 #af4c00 #ffffff #2e9ef4 #AF4C00 bindsym $mod+tab workspace back_and_forth # Switch to workspace - bindsym $mod+l exec notify_workspace 1 L - bindsym $mod+u exec notify_workspace 2 U - bindsym $mod+y exec notify_workspace 3 Y - bindsym $mod+semicolon exec notify_workspace 4 ";" - bindsym $mod+q exec notify_workspace 5 Q - bindsym $mod+w exec notify_workspace 6 W - bindsym $mod+f exec notify_workspace 7 F - bindsym $mod+p exec notify_workspace 8 P - bindsym $mod+b exec notify_workspace 9 B + 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 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" -- cgit v1.2.3 From 20c46801b996da5480c8270e86b3ca9c1943621d Mon Sep 17 00:00:00 2001 From: tslil clingman Date: Thu, 27 Jan 2022 17:11:55 -0500 Subject: sway inactive-windows-transparency.py --- sway/config | 1 + sway/inactive-windows-transparency.py | 69 +++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100755 sway/inactive-windows-transparency.py (limited to 'sway/config') diff --git a/sway/config b/sway/config index b1e68bb..4a6496b 100644 --- a/sway/config +++ b/sway/config @@ -201,6 +201,7 @@ bindsym $mod+Shift+r mode "resize" include /etc/sway/config.d/* +exec inactive-windows-transparency.py --opacity 0.8 exec wlsunset -l 39 -L -76 exec fnott exec pipewire 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 -- cgit v1.2.3 From 0b4aa5db57f3572feb97cadc61db3f69665989c8 Mon Sep 17 00:00:00 2001 From: tslil clingman Date: Sat, 29 Jan 2022 14:24:11 -0500 Subject: Hotkey to toggle autolocking --- sway/config | 21 ++++----------------- sway/sway_autolock | 12 ++++++++++++ 2 files changed, 16 insertions(+), 17 deletions(-) create mode 100755 sway/sway_autolock (limited to 'sway/config') diff --git a/sway/config b/sway/config index 4a6496b..255f97a 100644 --- a/sway/config +++ b/sway/config @@ -28,27 +28,11 @@ set $menu bemenu-run | xargs swaymsg exec -- # Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) # output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill # -# Example configuration: -# -# output HDMI-A-1 resolution 1920x1080 position 1920,0 -# -# You can get the names of your outputs by running: swaymsg -t get_outputs - -### Idle configuration - -exec swayidle -w \ - timeout 300 'swaylock -f -c 000000' \ - timeout 300 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' -# before-sleep 'swaylock -f -c 000000' - -# This will lock your screen after 300 seconds of inactivity, then turn off -# your displays after another 300 seconds, and turn your screens back on when -# resumed. It will also lock your screen before your computer goes to sleep. ### Visual stuff hide_edge_borders --i3 none -default_border pixel 1 +default_border none # pixel 1 client.focused #000000 #af4c00 #ffffff #2e9ef4 #AF4C00 @@ -68,6 +52,9 @@ client.focused #000000 #af4c00 #ffffff #2e9ef4 #AF4C00 # 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. 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 -- cgit v1.2.3