updated readme and network script

This commit is contained in:
Solomon Laing 2022-07-19 15:48:23 +09:30
parent 2507182f14
commit 067fb9715e
21 changed files with 32 additions and 887 deletions

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

24
lfub
View File

@ -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

View File

@ -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

487
nohup.out
View File

@ -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 didnt 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).

13
opout
View File

@ -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

12
rotdir
View File

@ -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; }'

18
rssadd
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
@ -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=" <fn=1>$wifi_icon </fn> <fc=#50fa7b>${signal}</fc>% ${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=" <fn=1>$wifi_icon </fn> <fc=$green>${signal}</fc>% ${ssid##*SSID: }"
fi
vpn="$(ip -o address | grep -i "$dev_vpn *inet ")"

View File

@ -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