# todo: think whether this is useful: https://github.com/tmfink/i3-wk-switch
# todo: see comment by Jakstern551 here for tip about jumping to windows
+# https://old.reddit.com/r/i3wm/comments/k8m4k4/share_your_i3_tips_and_tricks_that_you_have/
# https://i3wm.org/docs/userguide.html#keybindings
#To get the current mapping of your keys, use xmodmap -pke. To
# for non-gui apps, use this.
set $ex exec --no-startup-id
-bindsym $mod+2 $ex "/b/ds/i3-split-maybe"; exec "pavucontrol"
+bindsym $mod+2 $ex "i3-split-maybe"; exec "pavucontrol"
# calling without -no-remote makes this to be the instance that links
# will open in from other applications.
-bindsym $mod+3 $ex "/b/ds/i3-split-maybe"; exec "abrowser"
+# unused. todo: consider binding this to some key on the right side of keyboard.
+#bindsym $mod+3 $ex "i3-split-maybe"; exec "abrowser"
# calling just abrowser mysteriously stopped working,
# so I figured out this is how to get output, but then
# it suddenly started working again.
#bindsym $mod+3 exec "abrowser 2>&1 >/tmp/l"
#bindsym $mod+3 exec "abrowser -no-remote -P sfw"
-bindsym $mod+4 $ex "/b/ds/i3-split-maybe"; exec "abrowser -no-remote -P firefox-main-profile"
-# todo: figure out a stream delay & way to cut the stream.
-# settings, advanced, stream delay
-bindsym $mod+5 $ex "/a/bin/ds/obs-i3-interlude"
-bindsym $mod+6 $ex "/b/ds/i3-split-maybe"; exec "/usr/local/bin/start-tor-browser"
-bindsym $mod+7 $ex "/a/bin/ds/laptop-xrandr"
+bindsym $mod+4 $ex "i3-split-maybe"; exec "abrowser -no-remote -P firefox-main-profile"
+bindsym $mod+5 $ex "/a/bin/ds/stream-interlude"
+bindsym $mod+6 $ex "i3-split-maybe"; exec "/usr/local/bin/start-tor-browser"
+bindsym $mod+7 $ex "/a/bin/ds/myx"
#bindsym $mod+6 $ex "/a/bin/redshift.sh"
# bindsym $mod+equal $ex "t s w; t in"
# bindsym $mod+Home $ex "t out"
bindsym $mod+1 focus parent
bindsym $mod+shift+1 focus child
-# undo split: https://github.com/i3/i3/issues/3808
-bindsym $mod+grave floating toggle; floating toggle
-bindsym $mod+equal $ex "dunstctl close-all"
+
+# note, i used to have a key: "floating toggle; floating toggle" to
+# as undo split, as suggested here https://github.com/i3/i3/issues/3808
+# but something
+#
+bindsym $mod+grave floating toggle
+bindsym $mod+equal $ex "i3-set-layout splith"
# move firefox to current workspace.
# https://i3wm.org/docs/userguide.html#keybindings
# get class with xprop, example output
# WM_CLASS(STRING) = "irssi", "URxvt"
# xprop |& grep WM_CLASS
-bindsym $mod+w $ex i3-pull abrowser
+bindsym $mod+w $ex "/a/exe/i3-abrowser"
bindsym $mod+shift+w fullscreen toggle
-bindsym $mod+e $ex i3-pull emacs
-bindsym $mod+shift+e unmark emacs; mark emacs
+bindsym $mod+e $ex "/a/exe/i3-emacs"
+# unused
+#bindsym $mod+shift+e
bindsym $mod+r $ex "/a/bin/ds/xl"
-# todo, in newer i3, make this toggle split tabbed
-bindsym $mod+t layout toggle splith splitv tabbed
-#bindsym $mod+Shift+t move workspace to output up
-bindsym $mod+Shift+t move workspace to output right
-# there's a bug about this. it is not logical that there is no "split
-# tabbed", but you accomplish that by doing this.
-bindsym $mod+g split vertical, layout tabbed
-bindsym $mod+shift+g $ex "/b/ds/i3-auto-layout-toggle"
+
+bindsym $mod+t $ex "i3-set-layout splitv"
+
+bindsym $mod+g $ex "i3-set-layout tabbed"
+
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
bindsym $mod+u focus left; $ex "i3-mouse-warp"
+# i dont expect to use this much
+bindsym $mod+shift+u $ex "i3-auto-layout-toggle"
bindsym $mod+i focus right; $ex "i3-mouse-warp"
bindsym $mod+o focus up; $ex "i3-mouse-warp"
bindsym $mod+p focus down; $ex "i3-mouse-warp"
-bindsym $mod+Left $ex "/a/exe/i3-maybe-double-move left"
-bindsym $mod+Right $ex "i3-maybe-double-move right"
-bindsym $mod+Up $ex "i3-maybe-double-move up"
-bindsym $mod+Down $ex "i3-maybe-double-move down"
+bindsym $mod+Left $ex "i3-split-push left"
+bindsym $mod+Right $ex "i3-split-push right"
+bindsym $mod+Up $ex "i3-split-push up"
+bindsym $mod+Down $ex "i3-split-push down"
-bindsym $mod+Shift+a move container to workspace 4
-bindsym $mod+a workspace 4
+# for testing in case there is a problem with above.
+# these could be rebound to other things.
+bindsym $mod+shift+Left move left
+bindsym $mod+shift+Right move right
+bindsym $mod+shift+Up move up
+bindsym $mod+shift+Down move down
-bindsym $mod+Shift+s move container to workspace 3
-bindsym $mod+s workspace 3
+bindsym $mod+Shift+a move container to workspace 1
+bindsym $mod+a workspace 1
-bindsym $mod+Shift+d move container to workspace 2
-bindsym $mod+d workspace 2
-bindsym $mod+Shift+f move container to workspace 1
-bindsym $mod+f workspace 1
+bindsym $mod+Shift+s move container to workspace 4
+bindsym $mod+s workspace 4
+
+bindsym $mod+Shift+d move container to workspace 3
+bindsym $mod+d workspace 3
+
+bindsym $mod+Shift+f move container to workspace 2
+bindsym $mod+f workspace 2
bindsym $mod+Shift+z move container to workspace 5
bindsym $mod+z workspace 5
bindsym $mod+Shift+x move container to workspace 6
bindsym $mod+x workspace 6
-
-# todo, in newer i3, make this split toggle
bindsym $mod+v split vertical
-bindsym $mod+Shift+v split horizontal
-#
+bindsym $mod+Shift+v move workspace to output BIG-LEFT
+
+# 122 = XF86AudioLowerVolume, keyboardio function + t
+bindcode 122 $ex "toggle-mute unmute"; mode "ptt"
+mode "ptt" {
+# normally, if we hold down a button, it will start automatically
+# repeating itself, up and down events. But this stops that from
+# happening. Based on testing, making mode be 1st or 2nd doesn't matter.
+bindcode --release 122 $ex "toggle-mute mute"; mode "default"
+}
+# 171 = XF86AudioNext, keyboardio function + g
+bindcode 171 $ex "toggle-mute unmute"
+
## temp for testing, add antying here
-##bindsym $mod+shift+g
-bindsym $mod+b $ex i3-pull term
+#bindsym $mod+shift+5 $ex "/a/a.sh"
+
+
+bindsym $mod+b $ex "/a/exe/i3-konsole"
bindsym $mod+shift+b unmark term; mark term
+
+
# for use to cleanup extra emacs windows
# https://faq.i3wm.org/question/7662/reverse-perl-matches-in-criteria-in-i3-config.1.html
# I found their regex slightly wrong. This is a hacky way to
bindsym $mod+c kill
-
-bindsym $mod+Shift+Home move container to workspace 7
-bindsym $mod+Home workspace 7
+bindsym $mod+Home split horizontal
+bindsym $mod+Shift+End move container to workspace 7
+bindsym $mod+End workspace 7
bindsym $mod+Shift+q move container to workspace 8
bindsym $mod+q workspace 8
bindsym $mod+Shift+9 move container to workspace 10
bindsym $mod+9 workspace 10
+bindsym $mod+m $ex "dunstctl close-all"
bindsym $mod+Shift+m border toggle
# 65 = space.
# change focus between tiling / floating windows
bindcode $mod+shift+65 focus mode_toggle
-# Use Mouse+$mod to drag floating windows to their wanted position
-floating_modifier $mod
-bindsym $mod+shift+h $ex clip-hc
-bindsym $mod+j $ex "/b/ds/i3-split-maybe"; exec emacsclient -c
-bindsym $mod+shift+j $ex clip-up
-bindsym $mod+k $ex "/b/ds/i3-split-maybe"; exec konsole
-bindsym $mod+shift+k $ex mpv --profile=a /a/bin/data/clips/enter-in.flac
+bindsym $mod+shift+h $ex /b/ds/stream-clip hc
+bindsym $mod+j $ex "i3-split-maybe"; exec emacsclient -c
+bindsym $mod+shift+j $ex /b/ds/stream-clip up
+bindsym $mod+k $ex "i3-split-maybe"; exec konsole
+bindsym $mod+shift+k $ex /b/ds/stream-clip intro
bindsym $mod+l $ex dmenu_run
-bindsym $mod+shift+l $ex mpv --profile=a /a/bin/data/clips/tokyo-eye.flac
-bindsym $mod+shift+semicolon $ex clip-sad
+bindsym $mod+shift+l $ex /b/ds/stream-clip steady
+bindsym $mod+shift+semicolon $ex /b/ds/stream-clip sad
# note default is 27% on my system76. not sure if these
# keybinds will screw up other laptop brightness keys.
bindsym XF86MonBrightnessUp $ex brightnessctl s +5%
bindsym XF86MonBrightnessDown $ex brightnessctl s 5%-
+for_window [class="copyq" instance="copyq" window_type="normal"] floating enable
+# eh, dont really like web page titles + a long browser name string.
+for_window [class="firefox" instance="Navigator" window_role="browser"] title_format "b"
+bindsym $mod+y $ex copyq-restart
+bindsym $mod+shift+y $ex "/a/exe/i3-chat"
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:monospace 7
-# todo: only available in newer i3n
-hide_edge_borders vertical
+# not helpful when i have split screen from myx
+#hide_edge_borders vertical
#exec --no-startup-id /usr/lib/x86_64-linux-gnu/libexec/kdeconnectd
# Start clipster daemon
#exec --no-startup-id /a/opt/clipster/clipster -d
-
-# shortcut to selection widget (primary)
-bindsym $mod+End $ex /a/opt/clipster/clipster -sp
-
# title bars but no borders. i tried this out a bit
#default_border normal 0
-default_border pixel 4
+
+# default border is like 2 pixels
+default_border pixel 2
+# for debugging
+#default_border normal 10
# I dont see a way to make processing windows act like normal windows,
# this does it.
for_window [class="focus" instance="focus"] floating disable
client.focused #4c7899 #285577 #ffffff #2e9ef4 #ff4400
-client.focused_inactive #333333 #5f676a #ffffff #484e50 #DBEEF4
+client.focused_inactive #333333 #5f676a #ffffff #484e50 #B8C8CD
client.unfocused #333333 #222222 #888888 #292d2e #B8C8CD