diff --git a/README.md b/README.md index 08fceeb..f32a30a 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,11 @@ To call these mine would be largely a lie as many of them were created by [Derek Taylor](https://gitlab.com/dwt1) and [Luke Smith](https://gitlab.com/LukeSmithxyz). -The install script simply copies them to to `/usr/local/bin`. +There are a few scripts provided for installing, removing and updating. + +- `install` simply copies the scripts to `$HOME/.local/bin` +- `install-system` copies them to `/usr/local/bin` +- `uninstall-system` removes them from `/usr/local/bin` +- and `update-voidrice` will copy those that have been stolen directly from the aforementioned Luke Smith to the scripts folder. Note that this assumes Luke's `voidrice` repo is sitting as an adjacent sibling to the `inks-scripts` repo under the same parent. See [ink-os](https://gitlab.inkletblot.com/inkletblot/ink-os) for their usage and more information. diff --git a/compiler b/compiler deleted file mode 100755 index 67992be..0000000 --- a/compiler +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh - -# This script will compile or run another finishing operation on a document. I -# have this script run via vim. -# -# Compiles .tex. groff (.mom, .ms), .rmd, .md, .org. Opens .sent files as sent -# presentations. Runs scripts based on extension or shebang. -# -# Note that .tex files which you wish to compile with XeLaTeX should have the -# string "xelatex" somewhere in a comment/command in the first 5 lines. - -file=$(readlink -f "$1") -dir=${file%/*} -base="${file%.*}" -ext="${file##*.}" - -cd "$dir" || exit 1 - -textype() { \ - command="pdflatex" - ( head -n5 "$file" | grep -qi 'xelatex' ) && command="xelatex" - $command --output-directory="$dir" "$base" && - grep -qi addbibresource "$file" && - biber --input-directory "$dir" "$base" && - $command --output-directory="$dir" "$base" && - $command --output-directory="$dir" "$base" -} - -case "$ext" in - # Try to keep these cases in alphabetical order. - [0-9]) preconv "$file" | refer -PS -e | groff -mandoc -T pdf > "$base".pdf ;; - c) cc "$file" -o "$base" && "$base" ;; - cpp) g++ "$file" -o "$base" && "$base" ;; - cs) mcs "$file" && mono "$base".exe ;; - go) go run "$file" ;; - h) sudo make install ;; - java) javac -d classes "$file" && java -cp classes "${1%.*}" ;; - m) octave "$file" ;; - md) if [ -x "$(command -v lowdown)" ]; then - lowdown --parse-no-intraemph "$file" -Tms | groff -mpdfmark -ms -kept > "$base".pdf - elif [ -x "$(command -v groffdown)" ]; then - groffdown -i "$file" | groff > "$base.pdf" - else - pandoc -t ms --highlight-style=kate -s -o "$base".pdf "$file" - fi ; ;; - mom) preconv "$file" | refer -PS -e | groff -mom -kept -T pdf > "$base".pdf ;; - ms) preconv "$file" | refer -PS -e | groff -me -ms -kept -T pdf > "$base".pdf ;; - org) emacs "$file" --batch -u "$USER" -f org-latex-export-to-pdf ;; - py) python "$file" ;; - [rR]md) Rscript -e "rmarkdown::render('$file', quiet=TRUE)" ;; - rs) cargo build ;; - sass) sassc -a "$file" "$base.css" ;; - scad) openscad -o "$base".stl "$file" ;; - sent) setsid -f sent "$file" 2>/dev/null ;; - tex) textype "$file" ;; - *) sed -n '/^#!/s/^#!//p; q' "$file" | xargs -r -I % "$file" ;; -esac diff --git a/displayselect b/displayselect deleted file mode 100755 index f9e8062..0000000 --- a/displayselect +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/sh - -# A UI for detecting and selecting all displays. Probes xrandr for connected -# displays and lets user select one to use. User may also select "manual -# selection" which opens arandr. - -twoscreen() { # If multi-monitor is selected and there are two screens. - - mirror=$(printf "no\\nyes" | dmenu -i -p "Mirror displays?") - # Mirror displays using native resolution of external display and a scaled - # version for the internal display - if [ "$mirror" = "yes" ]; then - external=$(echo "$screens" | dmenu -i -p "Optimize resolution for:") - internal=$(echo "$screens" | grep -v "$external") - - res_external=$(xrandr --query | sed -n "/^$external/,/\+/p" | \ - tail -n 1 | awk '{print $1}') - res_internal=$(xrandr --query | sed -n "/^$internal/,/\+/p" | \ - tail -n 1 | awk '{print $1}') - - res_ext_x=$(echo "$res_external" | sed 's/x.*//') - res_ext_y=$(echo "$res_external" | sed 's/.*x//') - res_int_x=$(echo "$res_internal" | sed 's/x.*//') - res_int_y=$(echo "$res_internal" | sed 's/.*x//') - - scale_x=$(echo "$res_ext_x / $res_int_x" | bc -l) - scale_y=$(echo "$res_ext_y / $res_int_y" | bc -l) - - xrandr --output "$external" --auto --scale 1.0x1.0 \ - --output "$internal" --auto --same-as "$external" \ - --scale "$scale_x"x"$scale_y" - else - - primary=$(echo "$screens" | dmenu -i -p "Select primary display:") - secondary=$(echo "$screens" | grep -v "$primary") - direction=$(printf "left\\nright" | dmenu -i -p "What side of $primary should $secondary be on?") - xrandr --output "$primary" --auto --scale 1.0x1.0 --output "$secondary" --"$direction"-of "$primary" --auto --scale 1.0x1.0 - fi - } - -morescreen() { # If multi-monitor is selected and there are more than two screens. - primary=$(echo "$screens" | dmenu -i -p "Select primary display:") - secondary=$(echo "$screens" | grep -v "$primary" | dmenu -i -p "Select secondary display:") - direction=$(printf "left\\nright" | dmenu -i -p "What side of $primary should $secondary be on?") - tertiary=$(echo "$screens" | grep -v "$primary" | grep -v "$secondary" | dmenu -i -p "Select third display:") - xrandr --output "$primary" --auto --output "$secondary" --"$direction"-of "$primary" --auto --output "$tertiary" --"$(printf "left\\nright" | grep -v "$direction")"-of "$primary" --auto - } - -multimon() { # Multi-monitor handler. - case "$(echo "$screens" | wc -l)" in - 2) twoscreen ;; - *) morescreen ;; - esac ;} - -onescreen() { # If only one output available or chosen. - xrandr --output "$1" --auto --scale 1.0x1.0 $(echo "$allposs" | grep -v "\b$1" | awk '{print "--output", $1, "--off"}' | paste -sd ' ' -) - } - -postrun() { # Stuff to run to clean up. - setbg # Fix background if screen size/arangement has changed. - remaps # Re-remap keys if keyboard added (for laptop bases) - { killall dunst ; setsid -f dunst ;} >/dev/null 2>&1 # Restart dunst to ensure proper location on screen - } - -# Get all possible displays -allposs=$(xrandr -q | grep "connected") - -# Get all connected screens. -screens=$(echo "$allposs" | awk '/ connected/ {print $1}') - -# If there's only one screen -[ "$(echo "$screens" | wc -l)" -lt 2 ] && - { onescreen "$screens"; postrun; notify-send "💻 Only one screen detected." "Using it in its optimal settings..."; exit ;} - -# Get user choice including multi-monitor and manual selection: -chosen=$(printf "%s\\nmulti-monitor\\nmanual selection" "$screens" | dmenu -i -p "Select display arangement:") && -case "$chosen" in - "manual selection") arandr ; exit ;; - "multi-monitor") multimon ;; - *) onescreen "$chosen" ;; -esac - -postrun diff --git a/dmenumount b/dmenumount deleted file mode 100755 index abeb0ce..0000000 --- a/dmenumount +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh - -# Gives a dmenu prompt to mount unmounted drives and Android phones. If -# they're in /etc/fstab, they'll be mounted automatically. Otherwise, you'll -# be prompted to give a mountpoint from already existsing directories. If you -# input a novel directory, it will prompt you to create that directory. - -getmount() { \ - [ -z "$chosen" ] && exit 1 - # shellcheck disable=SC2086 - mp="$(find $1 2>/dev/null | dmenu -i -p "Type in mount point.")" || exit 1 - test -z "$mp" && exit 1 - if [ ! -d "$mp" ]; then - mkdiryn=$(printf "No\\nYes" | dmenu -i -p "$mp does not exist. Create it?") || exit 1 - [ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo -A mkdir -p "$mp") - fi - } - -mountusb() { \ - chosen="$(echo "$usbdrives" | dmenu -i -p "Mount which drive?")" || exit 1 - chosen="$(echo "$chosen" | awk '{print $1}')" - sudo -A mount "$chosen" 2>/dev/null && notify-send "💻 USB mounting" "$chosen mounted." && exit 0 - alreadymounted=$(lsblk -nrpo "name,type,mountpoint" | awk '$3!~/\/boot|\/home$|SWAP/&&length($3)>1{printf "-not ( -path *%s -prune ) ",$3}') - getmount "/mnt /media /mount /home -maxdepth 5 -type d $alreadymounted" - partitiontype="$(lsblk -no "fstype" "$chosen")" - case "$partitiontype" in - "vfat") sudo -A mount -t vfat "$chosen" "$mp" -o rw,umask=0000;; - "exfat") sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)";; - *) sudo -A mount "$chosen" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; sudo -A chown "$user":"$ug" "$mp";; - esac - notify-send "💻 USB mounting" "$chosen mounted to $mp." - } - -mountandroid() { \ - chosen="$(echo "$anddrives" | dmenu -i -p "Which Android device?")" || exit 1 - chosen="$(echo "$chosen" | cut -d : -f 1)" - getmount "$HOME -maxdepth 3 -type d" - simple-mtpfs --device "$chosen" "$mp" - echo "OK" | dmenu -i -p "Tap Allow on your phone if it asks for permission and then press enter" || exit 1 - simple-mtpfs --device "$chosen" "$mp" - notify-send "🤖 Android Mounting" "Android device mounted to $mp." - } - -asktype() { \ - choice="$(printf "USB\\nAndroid" | dmenu -i -p "Mount a USB drive or Android device?")" || exit 1 - case $choice in - USB) mountusb ;; - Android) mountandroid ;; - esac - } - -anddrives=$(simple-mtpfs -l 2>/dev/null) -usbdrives="$(lsblk -rpo "name,type,size,label,mountpoint,fstype" | grep -v crypto_LUKS | grep 'part\|rom' | sed 's/ /:/g' | awk -F':' '$5==""{printf "%s (%s) %s\n",$1,$3,$4}')" - -if [ -z "$usbdrives" ]; then - [ -z "$anddrives" ] && echo "No USB drive or Android device detected" && exit - echo "Android device(s) detected." - mountandroid -else - if [ -z "$anddrives" ]; then - echo "USB drive(s) detected." - mountusb - else - echo "Mountable USB drive(s) and Android device(s) detected." - asktype - fi -fi diff --git a/dmenumountcifs b/dmenumountcifs deleted file mode 100755 index 46c2b57..0000000 --- a/dmenumountcifs +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -# Gives a dmenu prompt to mount unmounted local NAS shares for read/write. -# Requirements - "%wheel ALL=(ALL) NOPASSWD: ALL" -# -# Browse for mDNS/DNS-SD services using the Avahi daemon... -srvname=$(avahi-browse _smb._tcp -t | awk '{print $4}' | dmenu -i -p "Which NAS?") || exit 1 -notify-send "Searching for network shares..." "Please wait..." -# Choose share disk... -share=$(smbclient -L "$srvname" -N | grep Disk | awk '{print $1}' | dmenu -i -p "Mount which share?") || exit 1 -# Format URL... -share2mnt=//"$srvname".local/"$share" - -sharemount() { - mounted=$(mount -v | grep "$share2mnt") || ([ ! -d /mnt/"$share" ] && sudo mkdir /mnt/"$share") - [ -z "$mounted" ] && sudo mount -t cifs "$share2mnt" -o user=nobody,password="",noperm /mnt/"$share" && notify-send "Netshare $share mounted" && exit 0 - notify-send "Netshare $share already mounted"; exit 1 -} - -sharemount diff --git a/dmenuumount b/dmenuumount deleted file mode 100755 index 946d12c..0000000 --- a/dmenuumount +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh - -# A dmenu prompt to unmount drives. -# Provides you with mounted partitions, select one to unmount. -# Drives mounted at /, /boot and /home will not be options to unmount. - -unmountusb() { - [ -z "$drives" ] && exit - chosen="$(echo "$drives" | dmenu -i -p "Unmount which drive?")" || exit 1 - chosen="$(echo "$chosen" | awk '{print $1}')" - [ -z "$chosen" ] && exit - sudo -A umount "$chosen" && notify-send "💻 USB unmounting" "$chosen unmounted." - } - -unmountandroid() { \ - chosen="$(awk '/simple-mtpfs/ {print $2}' /etc/mtab | dmenu -i -p "Unmount which device?")" || exit 1 - [ -z "$chosen" ] && exit - sudo -A umount -l "$chosen" && notify-send "🤖 Android unmounting" "$chosen unmounted." - } - -asktype() { \ - choice="$(printf "USB\\nAndroid" | dmenu -i -p "Unmount a USB drive or Android device?")" || exit 1 - case "$choice" in - USB) unmountusb ;; - Android) unmountandroid ;; - esac - } - -drives=$(lsblk -nrpo "name,type,size,mountpoint,label" | awk -F':' '{gsub(/ /,":")}$4!~/\/boot|\/efi|\/home$|SWAP/&&length($4)>1{printf "%s (%s) %s\n",$4,$3,$5}') - -if ! grep simple-mtpfs /etc/mtab; then - [ -z "$drives" ] && echo "No drives to unmount." && exit - echo "Unmountable USB drive detected." - unmountusb -else - if [ -z "$drives" ] - then - echo "Unmountable Android device detected." - unmountandroid - else - echo "Unmountable USB drive(s) and Android device(s) detected." - asktype - fi -fi diff --git a/install.sh b/install similarity index 100% rename from install.sh rename to install diff --git a/install-system.sh b/install-system similarity index 100% rename from install-system.sh rename to install-system diff --git a/lfub b/lfub deleted file mode 100755 index 9012f50..0000000 --- a/lfub +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -# This is a wrapper script for lb that allows it to create image previews with -# ueberzug. This works in concert with the lf configuration file and the -# lf-cleaner script. - -set -e - -cleanup() { - exec 3>&- - rm "$FIFO_UEBERZUG" -} - -if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then - lf "$@" -else - [ ! -d "$HOME/.cache/lf" ] && mkdir -p "$HOME/.cache/lf" - export FIFO_UEBERZUG="$HOME/.cache/lf/ueberzug-$$" - mkfifo "$FIFO_UEBERZUG" - ueberzug layer -s <"$FIFO_UEBERZUG" -p json & - exec 3>"$FIFO_UEBERZUG" - trap cleanup HUP INT QUIT TERM PWR EXIT - lf "$@" 3>&- -fi diff --git a/maimpick b/maimpick deleted file mode 100755 index 8ea9f5e..0000000 --- a/maimpick +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -# This is bound to Shift+PrintScreen by default, requires maim. It lets you -# choose the kind of screenshot to take, including copying the image or even -# highlighting an area to copy. scrotcucks on suicidewatch right now. - -# variables -output="$(date '+%y%m%d-%H%M-%S').png" -xclip_cmd="xclip -sel clip -t image/png" - -case "$(printf "a selected area\\ncurrent window\\nfull screen\\na selected area (copy)\\ncurrent window (copy)\\nfull screen (copy)" | dmenu -l 6 -i -p "Screenshot which area?")" in - "a selected area") maim -s pic-selected-"${output}" ;; - "current window") maim -q -d 0.2 -i "$(xdotool getactivewindow)" pic-window-"${output}" ;; - "full screen") maim -q -d 0.2 pic-full-"${output}" ;; - "a selected area (copy)") maim -s | ${xclip_cmd} ;; - "current window (copy)") maim -q -d 0.2 -i "$(xdotool getactivewindow)" | ${xclip_cmd} ;; - "full screen (copy)") maim -q -d 0.2 | ${xclip_cmd} ;; -esac diff --git a/nohup.out b/nohup.out deleted file mode 100644 index 2178638..0000000 --- a/nohup.out +++ /dev/null @@ -1,487 +0,0 @@ -/home/solomon/.config/shell/profile: line 9: $PATH:${$(find ~/.local/bin -type d -printf %p:)%%:}: bad substitution -keycode 8 = -keycode 9 = Escape NoSymbol Escape -keycode 10 = 1 exclam 1 exclam -keycode 11 = 2 at 2 at -keycode 12 = 3 numbersign 3 numbersign -keycode 13 = 4 dollar 4 dollar -keycode 14 = 5 percent 5 percent -keycode 15 = 6 asciicircum 6 asciicircum dead_circumflex dead_circumflex dead_circumflex -keycode 16 = 7 ampersand 7 ampersand -keycode 17 = 8 asterisk 8 asterisk -keycode 18 = 9 parenleft 9 parenleft dead_grave dead_breve dead_grave -keycode 19 = 0 parenright 0 parenright -keycode 20 = bracketleft braceleft bracketleft braceleft -keycode 21 = bracketright braceright bracketright braceright dead_tilde NoSymbol dead_tilde -keycode 22 = BackSpace BackSpace BackSpace BackSpace -keycode 23 = Tab ISO_Left_Tab Tab ISO_Left_Tab -keycode 24 = apostrophe quotedbl apostrophe quotedbl dead_acute dead_diaeresis dead_acute -keycode 25 = comma less comma less dead_cedilla dead_caron dead_cedilla -keycode 26 = period greater period greater dead_abovedot periodcentered dead_abovedot -keycode 27 = p P p P -keycode 28 = y Y y Y -keycode 29 = f F f F -keycode 30 = g G g G -keycode 31 = c C c C -keycode 32 = r R r R -keycode 33 = l L l L -keycode 34 = slash question slash question -keycode 35 = equal plus equal plus -keycode 36 = Return NoSymbol Return -keycode 37 = Control_L NoSymbol Control_L -keycode 38 = a A a A -keycode 39 = o O o O -keycode 40 = e E e E -keycode 41 = u U u U -keycode 42 = i I i I -keycode 43 = d D d D -keycode 44 = h H h H -keycode 45 = t T t T -keycode 46 = n N n N -keycode 47 = s S s S -keycode 48 = minus underscore minus underscore -keycode 49 = grave asciitilde grave asciitilde dead_grave dead_tilde dead_grave -keycode 50 = Shift_L NoSymbol Shift_L -keycode 51 = backslash bar backslash bar -keycode 52 = semicolon colon semicolon colon dead_ogonek dead_doubleacute dead_ogonek -keycode 53 = q Q q Q -keycode 54 = j J j J -keycode 55 = k K k K -keycode 56 = x X x X -keycode 57 = b B b B -keycode 58 = m M m M -keycode 59 = w W w W -keycode 60 = v V v V -keycode 61 = z Z z Z -keycode 62 = Shift_R NoSymbol Shift_R -keycode 63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab -keycode 64 = Alt_L Meta_L Alt_L Meta_L -keycode 65 = space NoSymbol space -keycode 66 = Caps_Lock NoSymbol Caps_Lock -keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1 -keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2 -keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3 -keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4 -keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5 -keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6 -keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7 -keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8 -keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9 -keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10 -keycode 77 = Num_Lock NoSymbol Num_Lock -keycode 78 = Scroll_Lock NoSymbol Scroll_Lock -keycode 79 = KP_Home KP_7 KP_Home KP_7 -keycode 80 = KP_Up KP_8 KP_Up KP_8 -keycode 81 = KP_Prior KP_9 KP_Prior KP_9 -keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode -keycode 83 = KP_Left KP_4 KP_Left KP_4 -keycode 84 = KP_Begin KP_5 KP_Begin KP_5 -keycode 85 = KP_Right KP_6 KP_Right KP_6 -keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode -keycode 87 = KP_End KP_1 KP_End KP_1 -keycode 88 = KP_Down KP_2 KP_Down KP_2 -keycode 89 = KP_Next KP_3 KP_Next KP_3 -keycode 90 = KP_Insert KP_0 KP_Insert KP_0 -keycode 91 = KP_Delete KP_Decimal KP_Delete KP_Decimal -keycode 92 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift -keycode 93 = -keycode 94 = less greater less greater bar brokenbar bar -keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11 -keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12 -keycode 97 = -keycode 98 = Katakana NoSymbol Katakana -keycode 99 = Hiragana NoSymbol Hiragana -keycode 100 = Henkan_Mode NoSymbol Henkan_Mode -keycode 101 = Hiragana_Katakana NoSymbol Hiragana_Katakana -keycode 102 = Muhenkan NoSymbol Muhenkan -keycode 103 = -keycode 104 = KP_Enter NoSymbol KP_Enter -keycode 105 = Control_R NoSymbol Control_R -keycode 106 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab -keycode 107 = Print Sys_Req Print Sys_Req -keycode 108 = Alt_R Meta_R Alt_R Meta_R -keycode 109 = Linefeed NoSymbol Linefeed -keycode 110 = Home NoSymbol Home -keycode 111 = Up NoSymbol Up -keycode 112 = Prior NoSymbol Prior -keycode 113 = Left NoSymbol Left -keycode 114 = Right NoSymbol Right -keycode 115 = End NoSymbol End -keycode 116 = Down NoSymbol Down -keycode 117 = Next NoSymbol Next -keycode 118 = Insert NoSymbol Insert -keycode 119 = Delete NoSymbol Delete -keycode 120 = -keycode 121 = XF86AudioMute NoSymbol XF86AudioMute -keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume -keycode 123 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume -keycode 124 = XF86PowerOff NoSymbol XF86PowerOff -keycode 125 = KP_Equal NoSymbol KP_Equal -keycode 126 = plusminus NoSymbol plusminus -keycode 127 = Pause Break Pause Break -keycode 128 = XF86LaunchA NoSymbol XF86LaunchA -keycode 129 = KP_Decimal KP_Decimal KP_Decimal KP_Decimal -keycode 130 = Hangul NoSymbol Hangul -keycode 131 = Hangul_Hanja NoSymbol Hangul_Hanja -keycode 132 = -keycode 133 = Super_L NoSymbol Super_L -keycode 134 = Super_R NoSymbol Super_R -keycode 135 = Menu NoSymbol Menu -keycode 136 = Cancel NoSymbol Cancel -keycode 137 = Redo NoSymbol Redo -keycode 138 = SunProps NoSymbol SunProps -keycode 139 = Undo NoSymbol Undo -keycode 140 = SunFront NoSymbol SunFront -keycode 141 = XF86Copy NoSymbol XF86Copy -keycode 142 = XF86Open NoSymbol XF86Open -keycode 143 = XF86Paste NoSymbol XF86Paste -keycode 144 = Find NoSymbol Find -keycode 145 = XF86Cut NoSymbol XF86Cut -keycode 146 = Help NoSymbol Help -keycode 147 = XF86MenuKB NoSymbol XF86MenuKB -keycode 148 = XF86Calculator NoSymbol XF86Calculator -keycode 149 = -keycode 150 = XF86Sleep NoSymbol XF86Sleep -keycode 151 = XF86WakeUp NoSymbol XF86WakeUp -keycode 152 = XF86Explorer NoSymbol XF86Explorer -keycode 153 = XF86Send NoSymbol XF86Send -keycode 154 = -keycode 155 = XF86Xfer NoSymbol XF86Xfer -keycode 156 = XF86Launch1 NoSymbol XF86Launch1 -keycode 157 = XF86Launch2 NoSymbol XF86Launch2 -keycode 158 = XF86WWW NoSymbol XF86WWW -keycode 159 = XF86DOS NoSymbol XF86DOS -keycode 160 = XF86ScreenSaver NoSymbol XF86ScreenSaver -keycode 161 = XF86RotateWindows NoSymbol XF86RotateWindows -keycode 162 = XF86TaskPane NoSymbol XF86TaskPane -keycode 163 = XF86Mail NoSymbol XF86Mail -keycode 164 = XF86Favorites NoSymbol XF86Favorites -keycode 165 = XF86MyComputer NoSymbol XF86MyComputer -keycode 166 = XF86Back NoSymbol XF86Back -keycode 167 = XF86Forward NoSymbol XF86Forward -keycode 168 = -keycode 169 = XF86Eject NoSymbol XF86Eject -keycode 170 = XF86Eject NoSymbol XF86Eject -keycode 171 = XF86AudioNext NoSymbol XF86AudioNext -keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause -keycode 173 = XF86AudioPrev NoSymbol XF86AudioPrev -keycode 174 = XF86AudioStop XF86Eject XF86AudioStop XF86Eject -keycode 175 = XF86AudioRecord NoSymbol XF86AudioRecord -keycode 176 = XF86AudioRewind NoSymbol XF86AudioRewind -keycode 177 = XF86Phone NoSymbol XF86Phone -keycode 178 = -keycode 179 = XF86Tools NoSymbol XF86Tools -keycode 180 = XF86HomePage NoSymbol XF86HomePage -keycode 181 = XF86Reload NoSymbol XF86Reload -keycode 182 = XF86Close NoSymbol XF86Close -keycode 183 = -keycode 184 = -keycode 185 = XF86ScrollUp NoSymbol XF86ScrollUp -keycode 186 = XF86ScrollDown NoSymbol XF86ScrollDown -keycode 187 = parenleft NoSymbol parenleft -keycode 188 = parenright NoSymbol parenright -keycode 189 = XF86New NoSymbol XF86New -keycode 190 = Redo NoSymbol Redo -keycode 191 = XF86Tools NoSymbol XF86Tools -keycode 192 = XF86Launch5 NoSymbol XF86Launch5 -keycode 193 = XF86Launch6 NoSymbol XF86Launch6 -keycode 194 = XF86Launch7 NoSymbol XF86Launch7 -keycode 195 = XF86Launch8 NoSymbol XF86Launch8 -keycode 196 = XF86Launch9 NoSymbol XF86Launch9 -keycode 197 = -keycode 198 = XF86AudioMicMute NoSymbol XF86AudioMicMute -keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle -keycode 200 = XF86TouchpadOn NoSymbol XF86TouchpadOn -keycode 201 = XF86TouchpadOff NoSymbol XF86TouchpadOff -keycode 202 = -keycode 203 = Mode_switch NoSymbol Mode_switch -keycode 204 = NoSymbol Alt_L NoSymbol Alt_L -keycode 205 = NoSymbol Meta_L NoSymbol Meta_L -keycode 206 = NoSymbol Super_L NoSymbol Super_L -keycode 207 = NoSymbol Hyper_L NoSymbol Hyper_L -keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay -keycode 209 = XF86AudioPause NoSymbol XF86AudioPause -keycode 210 = XF86Launch3 NoSymbol XF86Launch3 -keycode 211 = XF86Launch4 NoSymbol XF86Launch4 -keycode 212 = XF86LaunchB NoSymbol XF86LaunchB -keycode 213 = XF86Suspend NoSymbol XF86Suspend -keycode 214 = XF86Close NoSymbol XF86Close -keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay -keycode 216 = XF86AudioForward NoSymbol XF86AudioForward -keycode 217 = -keycode 218 = Print NoSymbol Print -keycode 219 = -keycode 220 = XF86WebCam NoSymbol XF86WebCam -keycode 221 = XF86AudioPreset NoSymbol XF86AudioPreset -keycode 222 = -keycode 223 = XF86Mail NoSymbol XF86Mail -keycode 224 = XF86Messenger NoSymbol XF86Messenger -keycode 225 = XF86Search NoSymbol XF86Search -keycode 226 = XF86Go NoSymbol XF86Go -keycode 227 = XF86Finance NoSymbol XF86Finance -keycode 228 = XF86Game NoSymbol XF86Game -keycode 229 = XF86Shop NoSymbol XF86Shop -keycode 230 = -keycode 231 = Cancel NoSymbol Cancel -keycode 232 = XF86MonBrightnessDown NoSymbol XF86MonBrightnessDown -keycode 233 = XF86MonBrightnessUp NoSymbol XF86MonBrightnessUp -keycode 234 = XF86AudioMedia NoSymbol XF86AudioMedia -keycode 235 = XF86Display NoSymbol XF86Display -keycode 236 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff -keycode 237 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown -keycode 238 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp -keycode 239 = XF86Send NoSymbol XF86Send -keycode 240 = XF86Reply NoSymbol XF86Reply -keycode 241 = XF86MailForward NoSymbol XF86MailForward -keycode 242 = XF86Save NoSymbol XF86Save -keycode 243 = XF86Documents NoSymbol XF86Documents -keycode 244 = XF86Battery NoSymbol XF86Battery -keycode 245 = XF86Bluetooth NoSymbol XF86Bluetooth -keycode 246 = XF86WLAN NoSymbol XF86WLAN -keycode 247 = XF86UWB NoSymbol XF86UWB -keycode 248 = -keycode 249 = XF86Next_VMode NoSymbol XF86Next_VMode -keycode 250 = XF86Prev_VMode NoSymbol XF86Prev_VMode -keycode 251 = XF86MonBrightnessCycle NoSymbol XF86MonBrightnessCycle -keycode 252 = XF86BrightnessAuto NoSymbol XF86BrightnessAuto -keycode 253 = XF86DisplayOff NoSymbol XF86DisplayOff -keycode 254 = XF86WWAN NoSymbol XF86WWAN -keycode 255 = XF86RFKill NoSymbol XF86RFKill -[ 06/22/2022 15:35:34.813 session_init FATAL ERROR ] Another composite manager is already running -Bad _NET_DESKTOP with data[0]=-1 -Bad _NET_DESKTOP with data[0]=-1 -Bad _NET_DESKTOP with data[0]=-1 -blueman-applet 15.35.35 WARNING PluginManager:147 __load_plugin: Not loading PPPSupport because its conflict has higher priority -WARNING: No icon found in path: 'nm-device-wired' -WARNING: No icon found in path: 'nm-signal-75' -blueman-applet 15.35.35 WARNING PluginManager:147 __load_plugin: Not loading DhcpClient because its conflict has higher priority -blueman-applet 15.35.35 WARNING TransferService:213 _make_share_path: Failed to get Download dir from XDG -Initializing local storage instance -(electron) Sending uncompressed crash reports is deprecated and will be removed in a future version of Electron. Set { compress: true } to opt-in to the new behavior. Crash reports will be uploaded gzipped, which most crash reporting servers support. - -(blueman-tray:1763): Gdk-CRITICAL **: 15:35:36.177: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed -WARNING: No icon found in path: 'kdeconnect' -/home/solomon/.config/Element exists: yes -/home/solomon/.config/Riot exists: no -[06/22/22, 15:35:36:543] info: -╔═════════════════════════════════════════════════════╗ -║ Slack 4.26.1, linux 5.18.5-arch1-1 on x64 ║ -╚═════════════════════════════════════════════════════╝ -[06/22/22, 15:35:36:544] info: Configured logger via -{ - "enableConsoleTransport": true, - "identifierOverride": "webapp-service-worker-console", - "shouldUseNewBackend": false, - "loggerInstanceCount": 2 -} -[06/22/22, 15:35:36:544] info: Predefined values for process -{ - "NODE_ENV": "production", - "platform": "linux", - "type": "browser", - "timeZone": "Australia/Adelaide", - "PACKAGE_MANIFEST.productName": "Slack", - "PACKAGE_MANIFEST.version": "4.26.1", - "PACKAGE_MANIFEST.commit": "76f5abf", - "PACKAGE_MANIFEST.branch": "HEAD" -} -No update_base_url is defined: auto update is disabled -[1561:0622/153536.611598:ERROR:browser_main_loop.cc(269)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed -Fetching translation json for locale: en_EN -Changing application language to en-us -Fetching translation json for locale: en-us -Resetting the UI components after locale change -Resetting the UI components after locale change -[1561:0622/153536.817038:ERROR:browser_main_loop.cc(269)] Gdk: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed -[1563:0622/153536.822165:ERROR:browser_main_loop.cc(267)] Gdk: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed -Changing application language to en-us -Fetching translation json for locale: en-us -Resetting the UI components after locale change -[06/22/22, 15:35:37:879] info: -╔═════════════════════════════════════════════════════╗ -║ Slack 4.26.1, linux 5.18.5-arch1-1 on x64 ║ -╚═════════════════════════════════════════════════════╝ -[06/22/22, 15:35:37:880] info: Configured logger via -{ - "enableConsoleTransport": true, - "identifierOverride": "webapp-console", - "shouldUseNewBackend": false, - "loggerInstanceCount": 3 -} -[06/22/22, 15:35:37:880] info: Predefined values for process -{ - "NODE_ENV": "production", - "platform": "linux", - "type": "browser", - "timeZone": "Australia/Adelaide", - "PACKAGE_MANIFEST.productName": "Slack", - "PACKAGE_MANIFEST.version": "4.26.1", - "PACKAGE_MANIFEST.commit": "76f5abf", - "PACKAGE_MANIFEST.branch": "HEAD" -} -[06/22/22, 15:35:37:880] info: Starting Sentry (Renderer) -[06/22/22, 15:35:37:881] info: getSentryDSN: Setting sentry URL to slack.com -[06/22/22, 15:35:37:881] info: Creating desktop interface object -[06/22/22, 15:35:37:881] info: Exposing context bridge -[06/22/22, 15:35:37:881] info: Store: WINDOW_CREATED { - "type": "main", - "id": 1, - "frame": { - "isHtmlFullScreen": false, - "isFullScreen": false, - "isMinimized": false, - "isMaximized": false, - "isVisible": false, - "isFocused": false, - "bounds": { - "x": 4243, - "y": 221, - "width": 1674, - "height": 1021 - } - } -} -[06/22/22, 15:35:37:881] info: Store: RECORD_PERFORMANCE_TIMING { - "phase": 1, - "interval": 330 -} -[06/22/22, 15:35:37:881] info: Store: UPSERT_WEB_CONTENTS { - "id": 1, - "state": "unloaded" -} -[06/22/22, 15:35:37:881] info: [TRACER] Tracing is not sampled by default for this session. -[06/22/22, 15:35:37:881] warn: TELEMETRY You tried to get a team-specific telemeter but didn’t provide enough context and are getting the generic telemeter instead which is likely not what you want. -[06/22/22, 15:35:37:881] info: Store: UPSERT_WEB_CONTENTS { - "id": 1, - "state": "loaded" -} -[06/22/22, 15:35:37:882] info: Store: RECORD_PERFORMANCE_TIMING { - "phase": 2, - "interval": 1137 -} -[06/22/22, 15:35:37:882] info: Store: MAIN_WINDOW_SHOWN -[06/22/22, 15:35:37:882] info: Store: UPDATE_SETTINGS { - "mainWindowSettings": { - "fullScreen": false, - "maximized": false, - "bounds": { - "x": 4243, - "y": 390, - "width": 1674, - "height": 1021 - } - } -} -[06/22/22, 15:35:37:882] info: Store: CLEAR_NOTIFICATIONS -[06/22/22, 15:35:37:885] info: Store: UPSERT_WEB_CONTENTS { - "id": 1, - "type": "app", - "history": "[REDACTED]" -} -[06/22/22, 15:35:38:275] info: Breadcrumb: fetch: undefined { - "method": "GET", - "url": "https://slack.com/api/api.test?error=", - "status_code": 200 -} -[06/22/22, 15:35:38:278] info: Network status check { - "elapsed_time_ms": 407, - "navigator_online": true, - "api_test": "online" -} -[06/22/22, 15:35:38:280] info: Store: SET_NETWORK_STATUS online -[06/22/22, 15:35:38:925] info: Store: UPDATE_SETTINGS { - "mainWindowSettings": { - "fullScreen": false, - "maximized": false, - "bounds": { - "x": 1683, - "y": 26, - "width": 2554, - "height": 1411 - } - } -} -[06/22/22, 15:35:41:745] info: Breadcrumb: ui.click: body > div#page_contents -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -[06/22/22, 15:35:47:843] info: Breadcrumb: ui.click: body > div#page_contents -[06/22/22, 15:35:48:732] info: Store: QUIT_APP -[06/22/22, 15:35:48:772] info: Store: DOWNLOADS_CLEANED_UP -[06/22/22, 15:35:48:786] info: Store: UPSERT_WEB_CONTENTS { - "id": 1, - "state": "page-closed" -} -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -[GFX1-]: More than 1 GPU from same vendor detected via PCI, cannot deduce device -Missing chrome or resource URL: resource://gre/modules/UpdateListener.jsm -https://launchermeta.mojang.com/v1/products/launcher/6f083b80d5e6fabbc4236f81d0d8f8a350c665a9/linux.json -[2022-06-22T06:06:20Z ERROR mp4parse] Found 2 nul bytes in "\0\0" -[2022-06-22T06:06:20Z ERROR mp4parse] Found 2 nul bytes in "\0\0" -[2022-06-22T06:06:20Z ERROR mp4parse] Found 2 nul bytes in "\0\0" -[2022-06-22T06:06:20Z ERROR mp4parse] Found 2 nul bytes in "\0\0" -[0622/153625.348211:INFO:main_context.cpp(130)] CEF initialized successfully. -[0622/153625.348770:INFO:main_context.cpp(132)] CEF version: 99.2.14+g3f796b8+chromium-99.0.4844.84 -sh: line 1: orca: command not found -Created browser window for reuse: 0xc00003 -[0622/153625.501373:ERROR:browser_main_loop.cc(268)] Gdk: _gdk_frame_clock_freeze: assertion 'GDK_IS_FRAME_CLOCK (clock)' failed -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'kdeconnect' -WARNING: No icon found in path: 'kdeconnect' -[0622/153822.926398:ERROR:browser_main_loop.cc(268)] Gdk: _gdk_frame_clock_thaw: assertion 'GDK_IS_FRAME_CLOCK (clock)' failed -[0622/153822.943614:ERROR:gl_surface_egl.cc(808)] EGL Driver message (Critical) eglMakeCurrent: Failed to make the GLX context current -[0622/153822.943860:ERROR:skia_output_surface_impl_on_gpu.cc(1722)] Failed to make current. -[0622/153822.944109:ERROR:skia_output_surface_impl_on_gpu.cc(1722)] Failed to make current. -[0622/153822.946796:WARNING:connection.cc(61)] X error received. Request: DestroyWindowRequest, Error: WindowError{.sequence = 892, .bad_value = 12582916, .minor_opcode = 0, .major_opcode = 4} -[0622/153822.975142:ERROR:gl_surface_egl.cc(808)] EGL Driver message (Critical) eglMakeCurrent: Failed to make the GLX context current -[0622/153822.975742:ERROR:gl_surface_egl.cc(808)] EGL Driver message (Critical) eglDestroyContext: Failed to make the GLX context current -[0622/153822.975808:ERROR:gl_context_egl.cc(367)] eglDestroyContext failed with error EGL_CONTEXT_LOST -[0622/153822.976394:ERROR:shared_image_stub.cc(519)] SharedImageStub: context already lost -WARNING: No icon found in path: 'kdeconnect' -WARNING: No icon found in path: 'kdeconnect' -WARNING: No icon found in path: 'kdeconnect' -WARNING: No icon found in path: 'call-start' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'call-start' -Bad _NET_DESKTOP with data[0]=-1 -user error (Error in function getWindowAttributes) -user error (Error in function getWindowAttributes) -user error (Error in function getWindowAttributes) -Bad _NET_DESKTOP with data[0]=-1 -user error (Error in function getWindowAttributes) -WARNING: No icon found in path: 'kdeconnect' -WARNING: No icon found in path: 'kdeconnect' -WARNING: No icon found in path: 'kdeconnect' -WARNING: No icon found in path: 'kdeconnect' -user error (Error in function getWindowAttributes) -Bad _NET_DESKTOP with data[0]=-1 -user error (Error in function getWindowAttributes) -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'call-start' -WARNING: No icon found in path: 'call-start' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -WARNING: No icon found in path: 'Nextcloud' -user error (Error in function getWindowAttributes) -WARNING: No icon found in path: 'dialog-information' -user error (Error in function getWindowAttributes) -WARNING: No icon found in path: 'dialog-information' -xmoxmobar: Caughbt sairg:na lC xa1u5g;h te xsiitginnagl.m .o1.b5 -X connection to :0 broken (explicit kill or server shutdown). -a;r :e xCiatuignhgt. .s.i -gnal 15; exiting... -[1563:0622/184521.356164:ERROR:zygote_communication_linux.cc(276)] Failed to send GetTerminationStatus message to zygote -X connection to :0 broken (explicit kill or server shutdown). diff --git a/opout b/opout deleted file mode 100755 index faf6575..0000000 --- a/opout +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -# opout: "open output": A general handler for opening a file's intended output, -# usually the pdf of a compiled document. I find this useful especially -# running from vim. - -basename="${1%.*}" - -case "${*}" in - *.tex|*.m[dse]|*.[rR]md|*.mom|*.[0-9]) setsid -f xdg-open "$basename".pdf >/dev/null 2>&1 ;; - *.html) setsid -f "$BROWSER" "$basename".html >/dev/null 2>&1 ;; - *.sent) setsid -f sent "$1" >/dev/null 2>&1 ;; -esac diff --git a/rotdir b/rotdir deleted file mode 100755 index 86da6db..0000000 --- a/rotdir +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# When I open an image from the file manager in sxiv (the image viewer), I want -# to be able to press the next/previous keys to key through the rest of the -# images in the same directory. This script "rotates" the content of a -# directory based on the first chosen file, so that if I open the 15th image, -# if I press next, it will go to the 16th etc. Autistic, I know, but this is -# one of the reasons that sxiv is great for being able to read standard input. - -[ -z "$1" ] && echo "usage: rotdir regex 2>&1" && exit 1 -base="$(basename "$1")" -ls "$PWD" | awk -v BASE="$base" 'BEGIN { lines = ""; m = 0; } { if ($0 == BASE) { m = 1; } } { if (!m) { if (lines) { lines = lines"\n"; } lines = lines""$0; } else { print $0; } } END { print lines; }' diff --git a/rssadd b/rssadd deleted file mode 100755 index 910fca3..0000000 --- a/rssadd +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -if echo "$1" | grep -q "https*://\S\+\.[A-Za-z]\+\S*" ; then - url="$1" -else - url="$(grep -Eom1 '<[^>]+(rel="self"|application/[a-z]+\+xml)[^>]+>' "$1" | - grep -o "https?://[^\" ]")" - - echo "$url" | grep -q "https*://\S\+\.[A-Za-z]\+\S*" || - notify-send "That doesn't look like a full URL." && exit 1 -fi - -RSSFILE="${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/urls" -if awk '{print $1}' "$RSSFILE" | grep "^$url$" >/dev/null; then - notify-send "You already have this RSS feed." -else - echo "$url" >> "$RSSFILE" && notify-send "RSS feed added." -fi diff --git a/scripts/dmenumount b/scripts/dmenumount index b98b6a3..abeb0ce 100755 --- a/scripts/dmenumount +++ b/scripts/dmenumount @@ -9,7 +9,7 @@ getmount() { \ [ -z "$chosen" ] && exit 1 # shellcheck disable=SC2086 mp="$(find $1 2>/dev/null | dmenu -i -p "Type in mount point.")" || exit 1 - [ "$mp" = "" ] && exit 1 + test -z "$mp" && exit 1 if [ ! -d "$mp" ]; then mkdiryn=$(printf "No\\nYes" | dmenu -i -p "$mp does not exist. Create it?") || exit 1 [ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo -A mkdir -p "$mp") @@ -50,7 +50,7 @@ asktype() { \ } anddrives=$(simple-mtpfs -l 2>/dev/null) -usbdrives="$(lsblk -rpo "name,type,size,mountpoint" | grep 'part\|rom' | awk '$4==""{printf "%s (%s)\n",$1,$3}')" +usbdrives="$(lsblk -rpo "name,type,size,label,mountpoint,fstype" | grep -v crypto_LUKS | grep 'part\|rom' | sed 's/ /:/g' | awk -F':' '$5==""{printf "%s (%s) %s\n",$1,$3,$4}')" if [ -z "$usbdrives" ]; then [ -z "$anddrives" ] && echo "No USB drive or Android device detected" && exit diff --git a/scripts/dmenuumount b/scripts/dmenuumount index 26612ef..946d12c 100755 --- a/scripts/dmenuumount +++ b/scripts/dmenuumount @@ -26,7 +26,7 @@ asktype() { \ esac } -drives=$(lsblk -nrpo "name,type,size,mountpoint" | awk '$4!~/\/boot|\/home$|SWAP/&&length($4)>1{printf "%s (%s)\n",$4,$3}') +drives=$(lsblk -nrpo "name,type,size,mountpoint,label" | awk -F':' '{gsub(/ /,":")}$4!~/\/boot|\/efi|\/home$|SWAP/&&length($4)>1{printf "%s (%s) %s\n",$4,$3,$5}') if ! grep simple-mtpfs /etc/mtab; then [ -z "$drives" ] && echo "No drives to unmount." && exit diff --git a/scripts/maimpick b/scripts/maimpick index 7125e61..8ea9f5e 100755 --- a/scripts/maimpick +++ b/scripts/maimpick @@ -4,11 +4,15 @@ # choose the kind of screenshot to take, including copying the image or even # highlighting an area to copy. scrotcucks on suicidewatch right now. +# variables +output="$(date '+%y%m%d-%H%M-%S').png" +xclip_cmd="xclip -sel clip -t image/png" + case "$(printf "a selected area\\ncurrent window\\nfull screen\\na selected area (copy)\\ncurrent window (copy)\\nfull screen (copy)" | dmenu -l 6 -i -p "Screenshot which area?")" in - "a selected area") maim -s pic-selected-"$(date '+%y%m%d-%H%M-%S').png" ;; - "current window") maim -i "$(xdotool getactivewindow)" pic-window-"$(date '+%y%m%d-%H%M-%S').png" ;; - "full screen") maim pic-full-"$(date '+%y%m%d-%H%M-%S').png" ;; - "a selected area (copy)") maim -s | xclip -selection clipboard -t image/png ;; - "current window (copy)") maim -i "$(xdotool getactivewindow)" | xclip -selection clipboard -t image/png ;; - "full screen (copy)") maim | xclip -selection clipboard -t image/png ;; + "a selected area") maim -s pic-selected-"${output}" ;; + "current window") maim -q -d 0.2 -i "$(xdotool getactivewindow)" pic-window-"${output}" ;; + "full screen") maim -q -d 0.2 pic-full-"${output}" ;; + "a selected area (copy)") maim -s | ${xclip_cmd} ;; + "current window (copy)") maim -q -d 0.2 -i "$(xdotool getactivewindow)" | ${xclip_cmd} ;; + "full screen (copy)") maim -q -d 0.2 | ${xclip_cmd} ;; esac diff --git a/scripts/rssadd b/scripts/rssadd index fb60be8..910fca3 100755 --- a/scripts/rssadd +++ b/scripts/rssadd @@ -1,12 +1,12 @@ #!/bin/sh -if echo "$1" | grep "https*://\S\+\.[A-Za-z]\+\S*" >/dev/null; then +if echo "$1" | grep -q "https*://\S\+\.[A-Za-z]\+\S*" ; then url="$1" else url="$(grep -Eom1 '<[^>]+(rel="self"|application/[a-z]+\+xml)[^>]+>' "$1" | - sed -E 's_^.*href="(https?://[^"]+)".*$_\1_')" + grep -o "https?://[^\" ]")" - ! grep "https*://\S\+\.[A-Za-z]\+\S*" <<<"$url" && + echo "$url" | grep -q "https*://\S\+\.[A-Za-z]\+\S*" || notify-send "That doesn't look like a full URL." && exit 1 fi diff --git a/scripts/xmobar-status-net b/scripts/xmobar-status-net index 98e7b44..4725516 100755 --- a/scripts/xmobar-status-net +++ b/scripts/xmobar-status-net @@ -1,8 +1,8 @@ #!/bin/sh -dev_wifi=wlp3s0 -dev_eth=enp0s25 -dev_vpn=proton0 +dev_wifi=$(cat $HOME/.config/xmobar/dev_wifi) +dev_eth=$(cat $HOME/.config/xmobar/dev_eth) +dev_vpn=$(cat $HOME/.config/xmobar/dev_vpn) base03=#002b36 base02=#073642 @@ -35,10 +35,10 @@ wifi_icon="" connectivity="$(nmcli networking connectivity)" case $connectivity in - none) color=$red; icon=" " ;; # f056 fa-minus-circle + none) color=$red; icon=" " ;; # f056 fa-minus-circle portal) color=$yellow; icon=" " ;; # f05c fa-times-circle-o - limited) color=$yellow; icon=" " ;; # f01b fa-arrow-circle-o-up - full) color=$std_color; icon=" " ;; # f0aa fa-arrow-circle-up + limited) color=$yellow; icon=" " ;; # f01b fa-arrow-circle-o-up + full) color=$std_color; icon=" " ;; # f0aa fa-arrow-circle-up *) color=$red; icon=" " ;; # f29c fa-question-circle-o esac @@ -60,36 +60,14 @@ fi ssid="$(iw dev $dev_wifi link | grep -i SSID)" if [ -n "$ssid" ] then - signal="$(iw dev wlp4s0 station dump | egrep '[^ ]signal avg')" + signal="$(iw dev $dev_wifi station dump | egrep '[^ ]signal avg')" signal="${signal#*-}" signal="${signal%% *}" signal="$((2*(100-signal)))" - -# if ((signal < 20)) -# then -# sigicon="⠀" -# elif ((signal < 40)) -# then -# sigicon="⣀" -# elif ((signal < 60)) -# then -# sigicon="⣤" -# elif ((signal < 80)) -# then -# sigicon="⣶" -# else -# sigicon="⣿" -# fi + signal=$((signal/5*5)) # get rid of some jitter ((signal > 100)) && signal=100 - # ▁ ▂ ▃ ▄ ▅ ▆ ▇ █ - wifi_status=" $wifi_icon ${signal}% ${ssid##*SSID: }" -# if [ -n "$eth" ] -# then -# wifi_ip="$(ip -o address | grep -i "$dev_wifi *inet ")" -# wifi_ip=" ${wifi_ip##*inet }" -# wifi_status="$wifi_status${wifi_ip%%/*}" -# fi + wifi_status=" $wifi_icon ${signal}% ${ssid##*SSID: }" fi vpn="$(ip -o address | grep -i "$dev_vpn *inet ")" diff --git a/uninstall-system.sh b/uninstall-system similarity index 100% rename from uninstall-system.sh rename to uninstall-system diff --git a/update-voidrice.sh b/update-voidrice similarity index 91% rename from update-voidrice.sh rename to update-voidrice index f00adb5..a44b181 100755 --- a/update-voidrice.sh +++ b/update-voidrice @@ -8,7 +8,7 @@ scripts=$(ls scripts) crons=$(ls scripts/cron) for script in $scripts; do - cp ../voidrice/.local/bin/$script . -v + cp ../voidrice/.local/bin/$script ./scripts/ -v done