mostly fixes, some improvements
[distro-setup] / i3-sway / common.conf
index 5860ee4eac46813ea40ed44ffeb648e4098cae66..a12b57314b7d61d206e33f257d3fe00e39ef818d 100644 (file)
@@ -7,7 +7,13 @@
 set $mod Mod4
 
 bindsym $mod+2 exec "pavucontrol"
+# calling without -no-remote makes this to be the instance that links
+# will open in from other applications.
 bindsym $mod+3 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 exec "abrowser -no-remote -P firefox-main-profile"
 bindsym $mod+5 exec "/usr/local/bin/start-tor-browser"
@@ -18,11 +24,19 @@ bindsym $mod+6 exec "/a/bin/redshift.sh"
 # bindsym $mod+grave exec "t s lunch; t in; t out -a '45 minutes from now'"
 
 
-bindsym $mod+w focus parent
+bindsym $mod+equal focus parent
+# 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 [class="abrowser"] move workspace current
+
 bindsym $mod+e fullscreen toggle
 bindsym $mod+r exec "/a/bin/ds/xl"
 # todo, in newer i3, make this toggle split tabbed
 bindsym $mod+t layout toggle split
+#bindsym $mod+Shift+t move workspace to output up
 bindsym $mod+Shift+t move workspace to output right
 bindsym $mod+g layout tabbed
 
@@ -61,7 +75,14 @@ bindsym $mod+x workspace 6
 
 # todo, in newer i3, make this split toggle
 bindsym $mod+v split vertical
-bindsym $mod+b split horizontal
+bindsym $mod+Shift+v split horizontal
+# 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
+# ignore my irc emacs instances, their window titles
+# are irc room names. Another way would be to hack on the
+# window title, or xprop stuff, but I figure I'm switching
+# to wayland soon, lets wait and see how things work there.
+bindsym $mod+b [class="Emacs" title="^(?!#[a-zA-Z][a-zA-Z-]*$)"] move workspace current
 
 bindsym $mod+c kill
 
@@ -80,6 +101,14 @@ bindsym $mod+9 workspace 10
 # random keybind, feel free to change
 bindsym $mod+Shift+m border toggle
 
+# toggle tiling / floating
+bindcode $mod+Shift+65 floating toggle
+
+# change focus between tiling / floating windows
+bindcode $mod+65 focus mode_toggle
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
 bindsym $mod+j exec emacsclient -c
 bindsym $mod+k exec konsole
 bindsym $mod+l exec dmenu_run
@@ -106,3 +135,14 @@ bindsym $mod+End exec /a/opt/clipster/clipster -sp
 
 # file:///usr/share/doc/i3-wm/userguide.html#_border_style_for_new_windows
 new_window none
+
+# I dont see a way to make processing windows act like normal windows,
+# this does it.
+# https://unix.stackexchange.com/questions/450700/opening-a-programme-in-a-floating-window-in-i3
+#
+# This is the info for a processing window launched from the ide.
+# I'm not sure I want it like this, so commenting it out for now.
+#for_window [class="processing-core-PApplet" instance="processing-core-PApplet"] floating disable
+
+# this is the processing window for my app named focus.
+for_window [class="focus" instance="focus"] floating disable