diff --git a/dotfiles/.local/bin/commands b/dotfiles/.local/bin/commands index bca5188..a28df20 100755 --- a/dotfiles/.local/bin/commands +++ b/dotfiles/.local/bin/commands @@ -692,6 +692,24 @@ def resilient_vlc(stream=None): pass time.sleep(1.0) +def sway_sock(): + import glob + uid = os.stat(os.environ['HOME']).st_uid + t1 = glob.glob( + os.path.join( + '/run', + 'user', + '%d' % uid, + 'sway-ipc.%d*.sock' % uid, + ) + ) + t2 = [ + os.stat(o).st_mtime + for o in t1 + ] + t3 = sorted(enumerate(t1), key=lambda x: t2[x[0]])[-1][0] + return t1[t3] + def eternal_firefox( tabs=None, profile=None, @@ -1180,6 +1198,8 @@ def desktop_services(argv): options, args = parser.parse_args(argv) + os.environ['SWAYSOCK'] = sway_sock() + assert all([ env_name in os.environ for env_name in [ @@ -1190,7 +1210,7 @@ def desktop_services(argv): 'SWAYSOCK', 'WAYLAND_DISPLAY', ] - ]) + ]) and os.environ['SWAYSOCK'] == sway_sock() services = [] try: if options.cpufreq == 0: @@ -1331,7 +1351,10 @@ def desktop_services(argv): if line in [ 't1', 't2', 't3', 't4', 't5', 't5', 't6', 't7', - ] + ] or ( + 'idle state' in line or \ + 'active state' in line + ) ]) if len(self.events) > 0: diff --git a/dotfiles/.sway/config b/dotfiles/.sway/config index 3cd29a1..91b03c9 100644 --- a/dotfiles/.sway/config +++ b/dotfiles/.sway/config @@ -69,120 +69,120 @@ input type:touchpad { # # Basics: # - bindsym $mod+Shift+l exec loginctl lock-session +bindsym $mod+Shift+l exec loginctl lock-session --no-ask-password - # Start a terminal - bindsym $mod+t exec $term +# Start a terminal +bindsym $mod+t exec $term - # Kill focused window - bindsym $mod+Shift+q kill +# Kill focused window +bindsym $mod+Shift+q kill - # Start your launcher - bindsym $mod+Return exec $menu +# Start your launcher +bindsym $mod+Return exec $menu - # 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 +# 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+Shift+c reload +# Reload the configuration file +bindsym $mod+Shift+c reload - # Exit sway (logs you out of your Wayland session) - bindsym $mod+Shift+e 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' +# Exit sway (logs you out of your Wayland session) +bindsym $mod+Shift+e 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' # # 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 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 +## 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: # - # Switch to workspace - bindsym $mod+1 workspace number 1 - bindsym $mod+2 workspace number 2 - bindsym $mod+3 workspace number 3 - bindsym $mod+4 workspace number 4 - bindsym $mod+5 workspace number 5 - bindsym $mod+6 workspace number 6 - bindsym $mod+7 workspace number 7 - bindsym $mod+8 workspace number 8 - bindsym $mod+9 workspace number 9 - bindsym $mod+0 workspace number 10 - # Move focused container to workspace - bindsym $mod+Shift+1 move container to workspace number 1 - bindsym $mod+Shift+2 move container to workspace number 2 - bindsym $mod+Shift+3 move container to workspace number 3 - bindsym $mod+Shift+4 move container to workspace number 4 - bindsym $mod+Shift+5 move container to workspace number 5 - bindsym $mod+Shift+6 move container to workspace number 6 - bindsym $mod+Shift+7 move container to workspace number 7 - bindsym $mod+Shift+8 move container to workspace number 8 - bindsym $mod+Shift+9 move container to workspace number 9 - bindsym $mod+Shift+0 move container to workspace number 10 - # Note: workspaces can have any name you want, not just numbers. - # We just use 1-10 as the default. +# Switch to workspace +bindsym $mod+1 workspace number 1 +bindsym $mod+2 workspace number 2 +bindsym $mod+3 workspace number 3 +bindsym $mod+4 workspace number 4 +bindsym $mod+5 workspace number 5 +bindsym $mod+6 workspace number 6 +bindsym $mod+7 workspace number 7 +bindsym $mod+8 workspace number 8 +bindsym $mod+9 workspace number 9 +bindsym $mod+0 workspace number 10 +# Move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number 1 +bindsym $mod+Shift+2 move container to workspace number 2 +bindsym $mod+Shift+3 move container to workspace number 3 +bindsym $mod+Shift+4 move container to workspace number 4 +bindsym $mod+Shift+5 move container to workspace number 5 +bindsym $mod+Shift+6 move container to workspace number 6 +bindsym $mod+Shift+7 move container to workspace number 7 +bindsym $mod+Shift+8 move container to workspace number 8 +bindsym $mod+Shift+9 move container to workspace number 9 +bindsym $mod+Shift+0 move container to workspace number 10 +# 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+b splith - bindsym $mod+v splitv +# You can "split" the current object of your focus with +# $mod+b or $mod+v, for horizontal and vertical splits +# respectively. +bindsym $mod+b splith +bindsym $mod+v splitv - # Switch the current container between different layout styles - #bindsym $mod+s layout stacking - #bindsym $mod+w layout tabbed - #bindsym $mod+e layout toggle split +# Switch the current container between different layout styles +#bindsym $mod+s layout stacking +#bindsym $mod+w layout tabbed +#bindsym $mod+e layout toggle split - # Make the current focus fullscreen - bindsym $mod+f fullscreen +# Make the current focus fullscreen +bindsym $mod+f fullscreen - ## Toggle the current focus between tiling and floating mode - #bindsym $mod+Shift+space floating toggle - bindsym $mod+p floating toggle +## Toggle the current focus between tiling and floating mode +#bindsym $mod+Shift+space floating toggle +bindsym $mod+p floating toggle - ## Swap focus between the tiling area and the floating area - #bindsym $mod+space focus mode_toggle +## Swap focus between the tiling area and the floating area +#bindsym $mod+space focus mode_toggle - bindsym --release Print exec bash -c "commands wl-screenshot" +bindsym --release Print exec bash -c "commands wl-screenshot" - # Move focus to the parent container - #bindsym $mod+a focus parent +# Move focus to the parent container +#bindsym $mod+a 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. +# 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 +# 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 +# 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: # diff --git a/dotfiles/.zshrc b/dotfiles/.zshrc index 1a7d548..6fd771b 100644 --- a/dotfiles/.zshrc +++ b/dotfiles/.zshrc @@ -22,5 +22,5 @@ eval `keychain --eval --quiet` if [[ $TTY == "/dev/tty1" ]] { #exec startx - exec sway + exec sh -c $'sway 2>&1 | logger -d --tag sway --id=$(pgrep -i \'sway$\');' }