From e05888f73181321269f3eaff51592173aea04d03 Mon Sep 17 00:00:00 2001 From: Phuntsok Drak-pa Date: Wed, 23 Oct 2019 14:51:34 +0200 Subject: [PATCH] added wrapper around yadm, changed to /usr/bin/env fish --- .config/i3/config##yadm.j2 | 10 ++--- .local/bin/README.org | 82 ++++++++++++++++++++++++++++++++------ .local/bin/askpass | 2 +- .local/bin/dmenu | 4 +- .local/bin/rofi-emoji | 2 +- .local/bin/rofi-mount | 2 +- .local/bin/rofi-umount | 2 +- .local/bin/starwars | 2 +- .local/bin/wacom-setup | 72 ++++++++++++++++----------------- .local/bin/yadm | 2 + 10 files changed, 120 insertions(+), 60 deletions(-) create mode 100755 .local/bin/yadm diff --git a/.config/i3/config##yadm.j2 b/.config/i3/config##yadm.j2 index 2107333..b791299 100644 --- a/.config/i3/config##yadm.j2 +++ b/.config/i3/config##yadm.j2 @@ -50,7 +50,6 @@ bindsym $alt+F4 kill # program launcher bindsym $mod+Shift+d exec --no-startup-id j4-dmenu-desktop bindsym $mod+d exec --no-startup-id $rofiexec -bindsym $mod+w exec --no-startup-id rofi-wifi-menu # change focus bindsym $mod+$left focus left @@ -126,9 +125,9 @@ workspace 10 output eDP-1 {% endif -%} # reload the configuration file -bindsym $mod+Shift+c reload +bindsym $mod+Shift+c exec yadm alt && i3-msg reload # restart i3 inplace -bindsym $mod+Shift+r restart +bindsym $mod+Shift+r exec yadm alt && i3-msg restart # exit i3 bindsym $mod+Shift+e exec $exiti3 @@ -185,7 +184,7 @@ bindsym $mod+$alt+c exec speedcrunch bindsym $mod+F3 exec arandr bindsym $mod+Shift+l exec dmenu-lpass -bindsym $mod+Shift+p exec ~/.config/polybar/launch.sh +bindsym $mod+Shift+p exec polybar-launch # Brightness keyboard shortcuts bindsym XF86MonBrightnessUp exec "light -A 5" @@ -215,6 +214,7 @@ bindsym $mod+Shift+h exec $term htop bindsym $mod+Ctrl+m exec rofi-mount bindsym $mod+Ctrl+u exec rofi-dumount bindsym $mod+$alt+e exec rofi-emoji +bindsym $mod+w exec wacom-setup # Music shortcuts bindsym $alt+XF86AudioRaiseVolume exec mpc next @@ -267,7 +267,7 @@ exec --no-startup-id compton -F --opengl --config ~/.config/compton exec --no-startup-id /usr/lib/mate-polkit/polkit-mate-authentication-agent-1 {% endif -%} exec_always --no-startup-id enable_touch -exec_always --no-startup-id ~/.config/polybar/launch.sh +exec_always --no-startup-id polybar-launch exec --no-startup-id xss-lock -- i3lock -fol exec --no-startup-id xfce4-power-manager exec --no-startup-id clight diff --git a/.local/bin/README.org b/.local/bin/README.org index 381ec90..5395257 100644 --- a/.local/bin/README.org +++ b/.local/bin/README.org @@ -46,7 +46,8 @@ - [[#askpass][Askpass]] - [[#dmenu][Dmenu]] - [[#emoji-picker][Emoji picker]] -- [[#rofimount][Rofimount]] +- [[#polybar-launch][Polybar-launch]] +- [[#rofi-mount][Rofi-mount]] - [[#get-the-mountable-elements][Get the mountable elements]] - [[#get-the-drive-to-mount][Get the drive to mount]] - [[#mount-a-usb-drive-hard-drive-or-partition][Mount a USB drive, hard drive or partition]] @@ -54,7 +55,7 @@ - [[#mount-a-cd-drive][Mount a CD drive]] - [[#ask-what-type-of-drive-we-want-to-mount][Ask what type of drive we want to mount]] - [[#launch-the-mounting-functions][Launch the mounting functions]] -- [[#rofiumount][Rofiumount]] +- [[#rofi-umount][Rofi-umount]] - [[#get-the-unmountable-drives][Get the unmountable drives]] - [[#unmount-disk-partitions][Unmount disk partitions]] - [[#unmount-android-device][Unmount Android device]] @@ -67,6 +68,7 @@ - [[#select-our-screen][Select our screen]] - [[#adjust-the-tablet][Adjust the tablet]] - [[#lauch-the-functions][Lauch the functions]] +- [[#yadm][Yadm]] * Presentation :PROPERTIES: @@ -94,7 +96,7 @@ and with [[https://wiki.archlinux.org/index.php/Rofi][rofi]] support instead of [[https://wiki.archlinux.org/index.php/Dmenu][dmenu]]. As you can see, this is a oneliner if we ignore the initial shebang. This executable is pointed at by the #+BEGIN_SRC fish :exports code - #!/usr/bin/fish + #!/usr/bin/env fish rofi -dmenu -font 'DejaVu Sans 10' -password -no-fixed-num-lines \ -p (printf $argv[1] | sed s/://) #+END_SRC @@ -108,8 +110,8 @@ emulation of dmenu, since I prefer rofi’s appearance. It basically calls rofi’s dmenu emulation with the arguments initially passed to dmenu. #+BEGIN_SRC fish - #!/usr/bin/fish - /usr/bin/rofi -dmenu $argv + #!/usr/bin/env fish + rofi -dmenu $argv #+END_SRC * Emoji picker @@ -121,7 +123,7 @@ [[file:~/.config/emoji.txt][~/.config/emoji.txt]] to provide a small, local search for emojis. Once the emoji is selected, it is copied to the clipboard using =xclipboard=. #+BEGIN_SRC fish - #!/usr/bin/fish + #!/usr/bin/env fish grep -v "#" ~/.config/emoji.txt | rofi -dmenu -i | awk '{print $1}' | tr -d '\n' | xclip -selection clipboard #+END_SRC @@ -135,7 +137,49 @@ It is inspired from [[https://www.youtube.com/watch?v=UCEXY46t3OA][this video]] from [[https://lukesmith.xyz/][Luke Smith]], rewritten in Fish. -* Rofimount +* Polybar-launch + :PROPERTIES: + :CUSTOM_ID: h-68587918-879b-42db-b304-901d01233f95 + :HEADER-ARGS: :tangle polybar-launch :exports code + :END: + This scripts allows the user to kill polybar and relaunch it, or to simply + launch it if polybar isn’t launched yet. This script is a bash script, so + let’s declare its shebang. + #+BEGIN_SRC bash + #!/usr/bin/env bash + #+END_SRC + + First thing to do is kill all polybar processes. + #+BEGIN_SRC bash + killall -q polybar + #+END_SRC + + Now we have to wait untill all polybar processes have been shut down. + #+BEGIN_SRC bash + while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + #+END_SRC + + Now that our system isn’t running polybar anymore, we’ll launch it again on + all of our screens. By the way, I have two bars, so I’ll have to lauch them + both. + #+BEGIN_SRC bash + if type "xrandr"; then + for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do + MONITOR=$m polybar --reload top & + MONITOR=$m polybar --reload bottom & + done + else + polybar --reload top & + polybar --reload bottom & + fi + #+END_SRC + + And we’re done! Let’s just launch a notification polybar has been relaunched. + #+BEGIN_SRC bash + notify-send "Polybar restarted!" -a "polybar-launch" + #+END_SRC + +* Rofi-mount :PROPERTIES: :HEADER-ARGS: :tangle rofi-mount :exports code :CUSTOM_ID: h-32ee4a66-e7fb-4abf-a168-fa259efdb1f4 @@ -146,7 +190,7 @@ original script. For the record, this is a fish script. Let’s declare our shebang. #+BEGIN_SRC fish - #!/usr/bin/fish + #!/usr/bin/env fish #+END_SRC ** Get the mountable elements @@ -527,7 +571,7 @@ And with that, this is the end of our script! -* Rofiumount +* Rofi-umount :PROPERTIES: :CUSTOM_ID: h-68a1f671-5dc6-4120-81c8-c94fffa7d7a3 :HEADER-ARGS: :tangle rofi-umount :exports code @@ -535,7 +579,7 @@ =rofiumount= is the counterpart of =rofimount= for unmounting our mounted partitions. It is a fish script, so let’s declare it as that with its shebang. #+BEGIN_SRC fish - #!/usr/bin/fish + #!/usr/bin/env fish #+END_SRC ** Get the unmountable drives @@ -773,7 +817,7 @@ This is a one-liner that allows you to watch Star Wars episode 4 in ASCII art in your terminal. Here is the code: #+BEGIN_SRC fish - #!/usr/bin/fish + #!/usr/bin/env fish telnet towel.blinkenlights.nl #+END_SRC @@ -785,7 +829,7 @@ I made a small and quick utility to set up my Wacom tablet so it is only bound to one screen. This is a fish script, so let’s insert the sheband. #+BEGIN_SRC fish - #!/usr/bin/fish + #!/usr/bin/env fish #+END_SRC ** Set our variables @@ -944,3 +988,17 @@ set_screen adjust_device #+END_SRC + +* Yadm + :PROPERTIES: + :CUSTOM_ID: h-9535957b-7559-4244-a5e0-d056c4770fea + :HEADER-ARGS: :tangle yadm :exports code + :END: + For some reason, =yadm= won’t stop making polybar crash. So, I created this + script that will wrap yadm with a call to yadm, and then a call to + =polybar-launch= declared in [[#polybar-launch][Polybar-launch]]. This is a oneliner, as you can + see below: + #+BEGIN_SRC fish + #!/usr/bin/env fish + /usr/bin/yadm $argv; polybar-launch 2>/dev/null >/dev/null + #+END_SRC diff --git a/.local/bin/askpass b/.local/bin/askpass index b561eb3..7b9acd2 100755 --- a/.local/bin/askpass +++ b/.local/bin/askpass @@ -1,3 +1,3 @@ -#!/usr/bin/fish +#!/usr/bin/env fish rofi -dmenu -font 'DejaVu Sans 10' -password -no-fixed-num-lines \ -p (printf $argv[1] | sed s/://) diff --git a/.local/bin/dmenu b/.local/bin/dmenu index 38ad158..85fbfa0 100755 --- a/.local/bin/dmenu +++ b/.local/bin/dmenu @@ -1,2 +1,2 @@ -#!/usr/bin/fish -/usr/bin/rofi -dmenu $argv +#!/usr/bin/env fish +rofi -dmenu $argv diff --git a/.local/bin/rofi-emoji b/.local/bin/rofi-emoji index f5a22aa..9e578d2 100755 --- a/.local/bin/rofi-emoji +++ b/.local/bin/rofi-emoji @@ -1,4 +1,4 @@ -#!/usr/bin/fish +#!/usr/bin/env fish grep -v "#" ~/.config/emoji.txt | rofi -dmenu -i | awk '{print $1}' | tr -d '\n' | xclip -selection clipboard set emoji (xclip -o -selection clipboard | tr -d '\n') diff --git a/.local/bin/rofi-mount b/.local/bin/rofi-mount index 4d4c929..f7a0f3b 100755 --- a/.local/bin/rofi-mount +++ b/.local/bin/rofi-mount @@ -1,4 +1,4 @@ -#!/usr/bin/fish +#!/usr/bin/env fish begin diff --git a/.local/bin/rofi-umount b/.local/bin/rofi-umount index 89da6ef..6f8a873 100755 --- a/.local/bin/rofi-umount +++ b/.local/bin/rofi-umount @@ -1,4 +1,4 @@ -#!/usr/bin/fish +#!/usr/bin/env fish set -g drives (lsblk -nrpo "name,type,size,mountpoint" | \ awk '$2=="part"&&$4!~/\/boot|\/home$|SWAP/&&length($4)>1{printf "%s (%s)\n",$4,$3}') diff --git a/.local/bin/starwars b/.local/bin/starwars index 7e0453a..86a4ea9 100755 --- a/.local/bin/starwars +++ b/.local/bin/starwars @@ -1,2 +1,2 @@ -#!/usr/bin/fish +#!/usr/bin/env fish telnet towel.blinkenlights.nl diff --git a/.local/bin/wacom-setup b/.local/bin/wacom-setup index b954f7d..c23f383 100755 --- a/.local/bin/wacom-setup +++ b/.local/bin/wacom-setup @@ -1,63 +1,63 @@ -#!/usr/bin/fish +#!/usr/bin/env fish function set_device - set -g DEVICE "Wacom USB Bamboo PAD Pen stylus" - set -g DEVICETOUCH "Wacom USB Bamboo PAD Finger touch" +set -g DEVICE "Wacom USB Bamboo PAD Pen stylus" +set -g DEVICETOUCH "Wacom USB Bamboo PAD Finger touch" - set -g WACOMPROPTOUCHSPEED "Device Accel Velocity Scaling" - set -g WACOMPROPSCROLLPSEED "ScrollDistance" +set -g WACOMPROPTOUCHSPEED "Device Accel Velocity Scaling" +set -g WACOMPROPSCROLLPSEED "ScrollDistance" - xsetwacom set "$DEVICE" ResetArea +xsetwacom set "$DEVICE" ResetArea - set -l AREATOT (xsetwacom get "$DEVICE" Area) - set -g AREAX (echo $AREATOT | awk '{print $3}') - set -g AREAY (echo $AREATOT | awk '{print $4}') +set -l AREATOT (xsetwacom get "$DEVICE" Area) +set -g AREAX (echo $AREATOT | awk '{print $3}') +set -g AREAY (echo $AREATOT | awk '{print $4}') end function set_screen - set CONNECTED_DISPLAYS (xrandr -q --current | \ - sed -n 's/^\([^ ]\+\) connected .*/\1/p') desktop +set CONNECTED_DISPLAYS (xrandr -q --current | \ +sed -n 's/^\([^ ]\+\) connected .*/\1/p') desktop - set -g SCREEN (for d in $CONNECTED_DISPLAYS - echo $d - end | rofi -dmenu -i -p "Select your dispaly" | tr -d '\n') +set -g SCREEN (for d in $CONNECTED_DISPLAYS + echo $d +end | rofi -dmenu -i -p "Select your dispaly" | tr -d '\n') - set -l LINE (xrandr -q --current | if [ "$SCREEN" = "desktop" ] - sed -n 's/^Screen 0:.*, current \([0-9]\+\) x \([0-9]\+\),.*/\1 \2/p' - else - sed -n "s/^$SCREEN"' connected \(primary \)\{0,1\}\([0-9]\+\)x\([0-9]\+\)+.*/\2 \3/p' - end) +set -l LINE (xrandr -q --current | if [ "$SCREEN" = "desktop" ] + sed -n 's/^Screen 0:.*, current \([0-9]\+\) x \([0-9]\+\),.*/\1 \2/p' +else + sed -n "s/^$SCREEN"' connected \(primary \)\{0,1\}\([0-9]\+\)x\([0-9]\+\)+.*/\2 \3/p' +end) - echo $LINE | read -g WIDTH HEIGHT +echo $LINE | read -g WIDTH HEIGHT - if test -z $WIDTH || test -z $HEIGHT - exit 1 - end +if test -z $WIDTH || test -z $HEIGHT + exit 1 +end end function adjust_device - set RATIOAREAY (math ceil \($AREAX \* $HEIGHT \/ $WIDTH\)) - set RATIOAREAX (math ceil \($AREAY \* $WIDTH \/ $HEIGHT\)) +set RATIOAREAY (math ceil \($AREAX \* $HEIGHT \/ $WIDTH\)) +set RATIOAREAX (math ceil \($AREAY \* $WIDTH \/ $HEIGHT\)) - if test $AREAY -gt $RATIOAREAY - set -g NEWAREAX $AREAX - set -g NEWAREAY $RATIOAREAY - else - set -g NEWAREAX $RATIOAREAX - set -g NEWAREAY $AREAY - end +if test $AREAY -gt $RATIOAREAY + set -g NEWAREAX $AREAX + set -g NEWAREAY $RATIOAREAY +else + set -g NEWAREAX $RATIOAREAX + set -g NEWAREAY $AREAY +end - xsetwacom set "$DEVICE" Area 0 0 $NEWAREAX $NEWAREAY - xsetwacom set "$DEVICE" MapToOutput "$SCREEN" +xsetwacom set "$DEVICE" Area 0 0 $NEWAREAX $NEWAREAY +xsetwacom set "$DEVICE" MapToOutput "$SCREEN" - xinput set-float-prop $DEVICETOUCH $WACOMPROPTOUCHSPEED 0.5 +xinput set-float-prop $DEVICETOUCH $WACOMPROPTOUCHSPEED 0.5 - xsetwacom set $DEVICETOUCH $WACOMPROPSCROLLPSEED "90" +xsetwacom set $DEVICETOUCH $WACOMPROPSCROLLPSEED "90" end diff --git a/.local/bin/yadm b/.local/bin/yadm new file mode 100755 index 0000000..faa6536 --- /dev/null +++ b/.local/bin/yadm @@ -0,0 +1,2 @@ +#!/usr/bin/env fish +/usr/bin/yadm $argv; polybar-launch 2>/dev/null >/dev/null