wacom-emoji now literate programming, fixed issue with rofi-emoji
This commit is contained in:
		
							parent
							
								
									825c41e5b2
								
							
						
					
					
						commit
						317eca7eb1
					
				@ -62,6 +62,11 @@
 | 
				
			|||||||
  - [[#ask-what-type-of-drive-to-unmount][Ask what type of drive to unmount]]
 | 
					  - [[#ask-what-type-of-drive-to-unmount][Ask what type of drive to unmount]]
 | 
				
			||||||
  - [[#launch-the-unmounting-functions][Launch the unmounting functions]]
 | 
					  - [[#launch-the-unmounting-functions][Launch the unmounting functions]]
 | 
				
			||||||
- [[#starwars][Starwars]]
 | 
					- [[#starwars][Starwars]]
 | 
				
			||||||
 | 
					- [[#wacom-setup][Wacom setup]]
 | 
				
			||||||
 | 
					  - [[#set-our-variables][Set our variables]]
 | 
				
			||||||
 | 
					  - [[#select-our-screen][Select our screen]]
 | 
				
			||||||
 | 
					  - [[#adjust-the-tablet][Adjust the tablet]]
 | 
				
			||||||
 | 
					  - [[#lauch-the-functions][Lauch the functions]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Presentation
 | 
					* Presentation
 | 
				
			||||||
  :PROPERTIES:
 | 
					  :PROPERTIES:
 | 
				
			||||||
@ -771,3 +776,171 @@
 | 
				
			|||||||
    #!/usr/bin/fish
 | 
					    #!/usr/bin/fish
 | 
				
			||||||
    telnet towel.blinkenlights.nl
 | 
					    telnet towel.blinkenlights.nl
 | 
				
			||||||
  #+END_SRC
 | 
					  #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Wacom setup
 | 
				
			||||||
 | 
					  :PROPERTIES:
 | 
				
			||||||
 | 
					  :CUSTOM_ID: h-e407ceef-2f14-4474-916b-6b687cf9f2e9
 | 
				
			||||||
 | 
					  :HEADER-ARGS: :tangle wacom-setup :exports code
 | 
				
			||||||
 | 
					  :END:
 | 
				
			||||||
 | 
					  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
 | 
				
			||||||
 | 
					  #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					** Set our variables
 | 
				
			||||||
 | 
					   :PROPERTIES:
 | 
				
			||||||
 | 
					   :CUSTOM_ID: h-c46f0eaf-ae46-4595-8d7a-944bc789cc06
 | 
				
			||||||
 | 
					   :END:
 | 
				
			||||||
 | 
					   Let’s first declare our function that will be called to set our variables.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					   function set_device
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   We need some variables in order to correctly set our tablet. First, let’s get
 | 
				
			||||||
 | 
					   declare what the name of our tablet is, and what the name of its touchpad is.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					     set -g DEVICE "Wacom USB Bamboo PAD Pen stylus"
 | 
				
			||||||
 | 
					     set -g DEVICETOUCH "Wacom USB Bamboo PAD Finger touch"
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   We will also  modify two settings: the  speed of the cursor  on the touchpad,
 | 
				
			||||||
 | 
					   and the scroll speed. Let’s declare the name of these two settings.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					     set -g WACOMPROPTOUCHSPEED "Device Accel Velocity Scaling"
 | 
				
			||||||
 | 
					     set -g WACOMPROPSCROLLPSEED "ScrollDistance"
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   To get the correct values for the area  it can cover, we’ll need to reset our
 | 
				
			||||||
 | 
					   tablet.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					   xsetwacom set "$DEVICE" ResetArea
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Now we can get the X and Y areas.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					     set -l AREATOT (xsetwacom get "$DEVICE" Area)
 | 
				
			||||||
 | 
					     set -g AREAX (echo $AREATOT | awk '{print $3}')
 | 
				
			||||||
 | 
					     set -g AREAY (echo $AREATOT | awk '{print $4}')
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Now let’s close our function.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					   end
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					** Select our screen
 | 
				
			||||||
 | 
					   :PROPERTIES:
 | 
				
			||||||
 | 
					   :CUSTOM_ID: h-c81850ec-b2dd-4c57-8570-aca14ca4061b
 | 
				
			||||||
 | 
					   :END:
 | 
				
			||||||
 | 
					   This function will allow us to select  the screen on which the tablet will be
 | 
				
			||||||
 | 
					   active.  We can  also select  the option  “desktop” so  that all  screens are
 | 
				
			||||||
 | 
					   selected. Let’s declare our function.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					   function set_screen
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   First, let’s set what screens are available, including the desktop option.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					     set CONNECTED_DISPLAYS (xrandr -q --current | \
 | 
				
			||||||
 | 
					     sed -n 's/^\([^ ]\+\) connected .*/\1/p') desktop
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Now, let’s select the one we wish to use using rofi.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					     set -g SCREEN (for d in $CONNECTED_DISPLAYS
 | 
				
			||||||
 | 
					         echo $d
 | 
				
			||||||
 | 
					     end | rofi -dmenu -i -p "Select your dispaly" | tr -d '\n')
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Now, let’s get the resolution of our selected screen.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					     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)
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   From that, let’s get the vertical and horizontal resolution of our screen.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					   echo $LINE | read -g WIDTH HEIGHT
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   If any of our =WIDTH= ou =HEIGHT= it empty, we’ll have to abort the script.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					     if test -z $WIDTH || test -z $HEIGHT
 | 
				
			||||||
 | 
					         exit 1
 | 
				
			||||||
 | 
					     end
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Let’s close our function now.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					   end
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					** Adjust the tablet
 | 
				
			||||||
 | 
					   :PROPERTIES:
 | 
				
			||||||
 | 
					   :CUSTOM_ID: h-7e7bcdd1-dce8-43aa-b26e-cc4f38be2a1b
 | 
				
			||||||
 | 
					   :END:
 | 
				
			||||||
 | 
					   This function  will take care  of adjusting our  tablet to our  screen. Let’s
 | 
				
			||||||
 | 
					   declare our function.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					   function adjust_device
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   If our screen is too high or too  wide for our tablet, we will have to adjust
 | 
				
			||||||
 | 
					   the  height or  width  of the  area  used by  the tablet.  So  let’s get  the
 | 
				
			||||||
 | 
					   theoretical new height and width of the area.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					     set RATIOAREAY (math ceil \($AREAX \* $HEIGHT \/ $WIDTH\))
 | 
				
			||||||
 | 
					     set RATIOAREAX (math ceil \($AREAY \* $WIDTH \/ $HEIGHT\))
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Now,  if  the  current height  of  the  tablet’s  area  is greater  than  the
 | 
				
			||||||
 | 
					   theoretical new  area, it means the  current area is too  high. Otherwise, it
 | 
				
			||||||
 | 
					   should be the other way around. Let’s set =NEWAREAX= and =NEWAREAY= that will
 | 
				
			||||||
 | 
					   be used to set the new area for the tablet.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					     if test $AREAY -gt $RATIOAREAY
 | 
				
			||||||
 | 
					         set -g NEWAREAX $AREAX
 | 
				
			||||||
 | 
					         set -g NEWAREAY $RATIOAREAY
 | 
				
			||||||
 | 
					     else
 | 
				
			||||||
 | 
					         set -g NEWAREAX $RATIOAREAX
 | 
				
			||||||
 | 
					         set -g NEWAREAY $AREAY
 | 
				
			||||||
 | 
					     end
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Alright, now let’s set the new area with these new variables.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					     xsetwacom set "$DEVICE" Area 0 0 $NEWAREAX $NEWAREAY
 | 
				
			||||||
 | 
					     xsetwacom set "$DEVICE" MapToOutput "$SCREEN"
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Let’s slow down the cursor’s speed on the touchpad.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					   xinput set-float-prop $DEVICETOUCH $WACOMPROPTOUCHSPEED 0.5
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Let’s also slow down the scroll speed of the touchpad.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					     xsetwacom set $DEVICETOUCH $WACOMPROPSCROLLPSEED "90"
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Now, let’s close the function.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					   end
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					** Lauch the functions
 | 
				
			||||||
 | 
					   :PROPERTIES:
 | 
				
			||||||
 | 
					   :CUSTOM_ID: h-e8699018-acf1-42f9-9ce7-4f7bd1a83f9c
 | 
				
			||||||
 | 
					   :END:
 | 
				
			||||||
 | 
					   Back  to the  main  body of  the  script,  we can  now  launch the  functions
 | 
				
			||||||
 | 
					   sequencially.
 | 
				
			||||||
 | 
					   #+BEGIN_SRC fish
 | 
				
			||||||
 | 
					     set_device
 | 
				
			||||||
 | 
					     set_screen
 | 
				
			||||||
 | 
					     adjust_device
 | 
				
			||||||
 | 
					   #+END_SRC
 | 
				
			||||||
 | 
				
			|||||||
@ -2,6 +2,6 @@
 | 
				
			|||||||
grep -v "#" ~/.config/emoji.txt | rofi -dmenu -i | awk '{print $1}' | tr -d '\n' | xclip -selection clipboard
 | 
					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')
 | 
					set emoji (xclip -o -selection clipboard | tr -d '\n')
 | 
				
			||||||
test -z "$emoji" && exit
 | 
					test -z "$emoji" && notify-send "No emoji copied" && exit
 | 
				
			||||||
set -a emoji "copied to clipboard"
 | 
					set -a emoji "copied to clipboard"
 | 
				
			||||||
pgrep -x dunst >/dev/null && notify-send $emoji
 | 
					pgrep -x dunst >/dev/null && notify-send $emoji
 | 
				
			||||||
 | 
				
			|||||||
@ -1,32 +1,46 @@
 | 
				
			|||||||
#!/usr/bin/fish
 | 
					#!/usr/bin/fish
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function set_device
 | 
					function set_device
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    set -g DEVICE "Wacom USB Bamboo PAD Pen stylus"
 | 
					    set -g DEVICE "Wacom USB Bamboo PAD Pen stylus"
 | 
				
			||||||
    set -g DEVICETOUCH "Wacom USB Bamboo PAD Finger touch"
 | 
					    set -g DEVICETOUCH "Wacom USB Bamboo PAD Finger touch"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    set -g WACOMPROPTOUCHSPEED "Device Accel Velocity Scaling"
 | 
					    set -g WACOMPROPTOUCHSPEED "Device Accel Velocity Scaling"
 | 
				
			||||||
 | 
					    set -g WACOMPROPSCROLLPSEED "ScrollDistance"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    xsetwacom set "$DEVICE" ResetArea
 | 
					    xsetwacom set "$DEVICE" ResetArea
 | 
				
			||||||
    set AREATOT (xsetwacom get "$DEVICE" Area)
 | 
					
 | 
				
			||||||
 | 
					    set -l AREATOT (xsetwacom get "$DEVICE" Area)
 | 
				
			||||||
    set -g AREAX (echo $AREATOT | awk '{print $3}')
 | 
					    set -g AREAX (echo $AREATOT | awk '{print $3}')
 | 
				
			||||||
    set -g AREAY (echo $AREATOT | awk '{print $4}')
 | 
					    set -g AREAY (echo $AREATOT | awk '{print $4}')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function set_screen
 | 
					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
 | 
					    set -g SCREEN (for d in $CONNECTED_DISPLAYS
 | 
				
			||||||
        echo $d
 | 
					        echo $d
 | 
				
			||||||
    end | rofi -dmenu -i -p "Select your dispaly" | tr -d '\n')
 | 
					    end | rofi -dmenu -i -p "Select your dispaly" | tr -d '\n')
 | 
				
			||||||
    set -g LINE (xrandr -q --current | if [ "$SCREEN" = desktop ]
 | 
					
 | 
				
			||||||
 | 
					    set -l LINE (xrandr -q --current | if [ "$SCREEN" = "desktop" ]
 | 
				
			||||||
        sed -n 's/^Screen 0:.*, current \([0-9]\+\) x \([0-9]\+\),.*/\1 \2/p'
 | 
					        sed -n 's/^Screen 0:.*, current \([0-9]\+\) x \([0-9]\+\),.*/\1 \2/p'
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        sed -n "s/^$SCREEN"' connected \(primary \)\{0,1\}\([0-9]\+\)x\([0-9]\+\)+.*/\2 \3/p'
 | 
					        sed -n "s/^$SCREEN"' connected \(primary \)\{0,1\}\([0-9]\+\)x\([0-9]\+\)+.*/\2 \3/p'
 | 
				
			||||||
    end)
 | 
					    end)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    echo $LINE | read -g WIDTH HEIGHT
 | 
					    echo $LINE | read -g WIDTH HEIGHT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if test -z $WIDTH || test -z $HEIGHT
 | 
					    if test -z $WIDTH || test -z $HEIGHT
 | 
				
			||||||
        return 1
 | 
					        exit 1
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function adjust_device
 | 
					function adjust_device
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    set RATIOAREAY (math ceil \($AREAX \* $HEIGHT \/ $WIDTH\))
 | 
					    set RATIOAREAY (math ceil \($AREAX \* $HEIGHT \/ $WIDTH\))
 | 
				
			||||||
    set RATIOAREAX (math ceil \($AREAY \* $WIDTH \/ $HEIGHT\))
 | 
					    set RATIOAREAX (math ceil \($AREAY \* $WIDTH \/ $HEIGHT\))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -41,11 +55,10 @@ function adjust_device
 | 
				
			|||||||
    xsetwacom set "$DEVICE" Area 0 0 $NEWAREAX $NEWAREAY
 | 
					    xsetwacom set "$DEVICE" Area 0 0 $NEWAREAX $NEWAREAY
 | 
				
			||||||
    xsetwacom set "$DEVICE" MapToOutput "$SCREEN"
 | 
					    xsetwacom set "$DEVICE" MapToOutput "$SCREEN"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # slow down touchpad
 | 
					 | 
				
			||||||
    xinput set-float-prop $DEVICETOUCH $WACOMPROPTOUCHSPEED 0.5
 | 
					    xinput set-float-prop $DEVICETOUCH $WACOMPROPTOUCHSPEED 0.5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # slow down scrolling speed
 | 
					    xsetwacom set $DEVICETOUCH $WACOMPROPSCROLLPSEED "90"
 | 
				
			||||||
    xsetwacom set $DEVICETOUCH "ScrollDistance" "90"
 | 
					
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set_device
 | 
					set_device
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user