[rc] add toggle-tablet script for use with my X220t
[~bandali/configs] / rc.org
diff --git a/rc.org b/rc.org
index 8673a4f..f43e2e8 100644 (file)
--- a/rc.org
+++ b/rc.org
@@ -66,7 +66,7 @@ sent_tag = sent
 sxhkd &
 sh ~/.fehbg &
 xfce4-panel -d &
 sxhkd &
 sh ~/.fehbg &
 xfce4-panel -d &
-#compton &
+compton &
 sleep 0.5 && pasystray --notify=all &
 
 bspc monitor -d I II III IV V VI VII VIII IX X
 sleep 0.5 && pasystray --notify=all &
 
 bspc monitor -d I II III IV V VI VII VIII IX X
@@ -85,7 +85,7 @@ bspc config gapless_monocle      true
 bspc config click_to_focus       button1
 bspc config directional_focus_tightness low
 
 bspc config click_to_focus       button1
 bspc config directional_focus_tightness low
 
-bspc rule -a Firefox desktop='^1' follow=on
+#bspc rule -a Firefox desktop='^1' follow=on
 bspc rule -a Nightly desktop='^1' follow=on
 bspc rule -a Emacs desktop='^2' state=tiled follow=on
 #bspc rule -a Chromium desktop='^4' follow=on
 bspc rule -a Nightly desktop='^1' follow=on
 bspc rule -a Emacs desktop='^2' state=tiled follow=on
 #bspc rule -a Chromium desktop='^4' follow=on
@@ -204,6 +204,9 @@ super + apostrophe
 #XF86KbdBrightness{Up,Down}
 #      kbdlight {up,down}
 
 #XF86KbdBrightness{Up,Down}
 #      kbdlight {up,down}
 
+XF86RotateWindows
+       toggle-tablet
+
 #
 # bspwm hotkeys
 #
 #
 # bspwm hotkeys
 #
@@ -623,7 +626,7 @@ timeout = 0
 
 ** Fontconfig
 :PROPERTIES:
 
 ** Fontconfig
 :PROPERTIES:
-:header-args+: :tangle ~/.config/fontconfig/fonts.conf
+:header-args+: :tangle ~/.config/fontconfig/fonts.conf :comments none
 :END:
 
 #+begin_src xml
 :END:
 
 #+begin_src xml
@@ -787,6 +790,22 @@ $clean_ext = "aux out";
 # $pdf_previewer = 'exec zathura --synctex-forward -x \'emacsclient --no-wait +%{line} %{input}\' %O %S';
 #+end_src
 
 # $pdf_previewer = 'exec zathura --synctex-forward -x \'emacsclient --no-wait +%{line} %{input}\' %O %S';
 #+end_src
 
+** libinput
+
+Improve XPS 15 9560's touchpad experience.
+
+#+begin_src conf :tangle (when (and (eq system-type 'gnu/linux) (string= (system-name) "plasma")) "/sudo::/etc/X11/xorg.conf.d/30-touchpad.conf")
+Section "InputClass"
+    Identifier "libinput touchpad catchall"
+    Driver "libinput"
+    MatchIsTouchpad "on"
+    Option "ClickMethod" "clickfinger"
+    Option "NaturalScrolling" "true"
+    Option "Tapping" "on"
+    Option "TappingButtonMap" "lrm"
+EndSection
+#+end_src
+
 ** getmail
 
 *** getmailrc
 ** getmail
 
 *** getmailrc
@@ -3335,7 +3354,7 @@ exit 1
 
 ** redshift
 :PROPERTIES:
 
 ** redshift
 :PROPERTIES:
-:header-args+: :tangle ~/.config/redshift.conf
+:header-args+: :tangle ~/.config/redshift.conf :comments none
 :END:
 
 #+begin_src conf
 :END:
 
 #+begin_src conf
@@ -3443,7 +3462,7 @@ rofi.theme: /usr/share/rofi/themes//gruvbox-light.rasi
 # rofi command. Make sure to have "$@" as last argument
 _rofi () {
     #rofi -no-auto-select -kb-accept-entry "!Return" -i -no-levenshtein-sort "$@"
 # rofi command. Make sure to have "$@" as last argument
 _rofi () {
     #rofi -no-auto-select -kb-accept-entry "!Return" -i -no-levenshtein-sort "$@"
-    rofi -i -no-auto-select "$@"
+    rofi -i -no-auto-select -kb-accept-entry "!Return" "$@"
 }
 
 # xdotool needs the keyboard layout to be set using setxkbmap
 }
 
 # xdotool needs the keyboard layout to be set using setxkbmap
@@ -3865,15 +3884,12 @@ source $HOME/.zprofile
 export _JAVA_AWT_WM_NONREPARENTING=1
 export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true'
 
 export _JAVA_AWT_WM_NONREPARENTING=1
 export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true'
 
-# unlock-def-gk.py &
-
 if [ $(hostname) = "plasma" ]
 then
 if [ $(hostname) = "plasma" ]
 then
-    bspwm &
-elif [ $(hostname) = "enigma" ]
-then
-    emacs -ib 0 &
+    unlock-def-gk.py &
 fi
 fi
+
+bspwm &
 #+end_src
 
 *** X resources
 #+end_src
 
 *** X resources
@@ -4369,7 +4385,7 @@ zpacman_frontend='yay'
 #+begin_src sh
 #PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"
 #PATH=$HOME/.gem/ruby/2.4.0/bin:$PATH
 #+begin_src sh
 #PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"
 #PATH=$HOME/.gem/ruby/2.4.0/bin:$PATH
-export PATH=$HOME/.local/bin:$HOME/.cabal/bin:$HOME/.cargo/bin:$PATH
+export PATH=$HOME/.local/bin:$HOME/.cabal/bin:$HOME/.cargo/bin:$HOME/.elan/bin:$PATH
 export XDG_CONFIG_HOME=$HOME/.config
 export XDG_DATA_HOME=$HOME/.local/share
 export XDG_DATA_DIRS=/usr/local/share:/usr/share
 export XDG_CONFIG_HOME=$HOME/.config
 export XDG_DATA_HOME=$HOME/.local/share
 export XDG_DATA_DIRS=/usr/local/share:/usr/share
@@ -4394,7 +4410,7 @@ export MOZ_USE_XINPUT2=1  # precise scrolling in firefox
 #export JAVA_HOME=/usr/lib/jvm/java-8-openjdk
 #export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G"
 
 #export JAVA_HOME=/usr/lib/jvm/java-8-openjdk
 #export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G"
 
-#if [ -e /home/amin/.nix-profile/etc/profile.d/nix.sh ]; then . /home/amin/.nix-profile/etc/profile.d/nix.sh; fi # added by Nix installer
+if [ -e /home/amin/.nix-profile/etc/profile.d/nix.sh ]; then . /home/amin/.nix-profile/etc/profile.d/nix.sh; fi # added by Nix installer
 #+end_src
 
 *** zshenv
 #+end_src
 
 *** zshenv
@@ -4476,7 +4492,6 @@ alias jcl=journalctl
 alias m="mbsync -Va; getmail; notmuch new"
 alias best="youtube-dl -f best"
 alias ace="mosh amin@ace.aminb.org"
 alias m="mbsync -Va; getmail; notmuch new"
 alias best="youtube-dl -f best"
 alias ace="mosh amin@ace.aminb.org"
-alias nix="ssh amin@aminb.org"
 
 aur() {
    cd ~/usr/build
 
 aur() {
    cd ~/usr/build
@@ -4534,6 +4549,44 @@ fi
 xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/presentation-mode -T
 #+end_src
 
 xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/presentation-mode -T
 #+end_src
 
+** toggle-tablet
+:PROPERTIES:
+:header-args+: :tangle ~/.local/bin/toggle-tablet :shebang "#!/bin/bash"
+:END:
+
+This script toggles between a 'normal' mode and a 'tablet' mode, doing
+a few things:
+
+- rotates the screen using =xrandr=, so that rotating the physical
+  display of my X220t would have the laptop's battery on the right
+  hand side,
+- enables touch screen,
+- properly rotates the stylus pen and touch screen pointers, and
+- toggles between RGB and Vertical BGR sub-pixel order.
+
+#+begin_src bash
+case $(xfconf-query -c pointers -p /Wacom_ISDv4_E6_Pen_stylus/Properties/Wacom_Rotation) in
+    0)  # Screen is not rotated, we should rotate it right (90°)
+           xrandr -o 3
+           xfconf-query -c pointers -p /Wacom_ISDv4_E6_Pen_stylus/Properties/Wacom_Rotation -s 1
+           xfconf-query -c pointers -p /Wacom_ISDv4_E6_Finger_touch/Properties/Device_Enabled -s 1
+           xfconf-query -c pointers -p /Wacom_ISDv4_E6_Finger_touch/Properties/Wacom_Rotation -s 1
+           xfconf-query -c xsettings -p /Xft/RGBA -s vbgr
+           ;;
+    1)  # Currently top is rotated right, we should set it normal (0°)
+          xrandr -o 0
+          xfconf-query -c pointers -p /Wacom_ISDv4_E6_Pen_stylus/Properties/Wacom_Rotation -s 0
+          xfconf-query -c pointers -p /Wacom_ISDv4_E6_Finger_touch/Properties/Wacom_Rotation -s 0
+          xfconf-query -c pointers -p /Wacom_ISDv4_E6_Finger_touch/Properties/Device_Enabled -s 0
+          xfconf-query -c xsettings -p /Xft/RGBA -s rgb
+          ;;
+    *)
+           echo "Unknown result from 'xfconf-query -c pointers -p /Wacom_ISDv4_E6_Pen_stylus/Properties/Wacom_Rotation'" >&2
+           exit 1
+           ;;
+esac
+#+end_src
+
 ** unlock-def-gk.py
 :PROPERTIES:
 :header-args+: :tangle ~/.local/bin/unlock-def-gk.py :shebang "#!/usr/bin/env python2"
 ** unlock-def-gk.py
 :PROPERTIES:
 :header-args+: :tangle ~/.local/bin/unlock-def-gk.py :shebang "#!/usr/bin/env python2"