Update 2022-12-06 08:01 OpenBSD/amd64

This commit is contained in:
c0dev0id
2022-12-06 08:01:44 +01:00
parent fb05d04fee
commit df81168e5e
28 changed files with 701 additions and 4 deletions
+60
View File
@@ -0,0 +1,60 @@
#!/bin/sh
. $HOME/.bin/_config
showlist() {
printf '%s\n' \
"next
prev
play
stop
shuffle
sort
load tank
load local
---------
> $(amused status | head -1 | sed 's,/tank/pub/Audio_/,,g')
---------"
amused show | cut -d'/' -f5-
}
SEL="$( showlist | $DMENU_CMD -p Playlist -l 30)"
amused_shuffle() {(
twmnc -d 2000 -t "amused" -c "shuffle started in background";
amused show | sort -R | amused load;
twmnc -d 2000 -t "amused" -c "shuffle finished";
)&}
amused_sort() {(
twmnc -d 2000 -t "amused" -c "sorting started in background"
amused show | sort -u | amused load
twmnc -d 2000 -t "amused" -c "sorting finished"
)&}
amused_load_tank() {(
twmnc -d 2000 -t "amused" -c "loading started in background"
amused load < /home/sdk/.music.all.txt
twmnc -d 2000 -t "amused" -c "loading finished"
)&}
amused_load_local() {(
twmnc -d 2000 -t "amused" -c "loading started in background"
find ~/MusicSelection -type f | amused load
twmnc -d 2000 -t "amused" -c "loading finished"
)&}
amused_cmd() {
amused "${@}"
twmnc -d 5000 \
-t "amused $1" \
-c "$(amused status | head -1 | cut -d'/' -f5-)"
}
case "${SEL}" in
play) amused_cmd play; ;;
prev) amused_cmd pref; ;;
stop) amused_cmd stop; ;;
next) amused_cmd next; ;;
shuffle) amused_shuffle; ;;
sort) amused_sort; ;;
load*tank) amused_load_tank; ;;
load*local) amused_load_local; ;;
*) amused_cmd jump "${SEL}"; ;;
esac
+20
View File
@@ -0,0 +1,20 @@
#!/bin/sh
# needs: jq, curl, ffplay, notify-send
# https://codevoid.de/1/git/dotfiles/file/.bin/_config.gph
. ~/.bin/_config
PLAYER="ffplay -loglevel error"
JSON="https://streaming.media.ccc.de/streams/v2.json"
QUALITY="hd-native"
FORMAT="webm"
SLUG=$(curl -s "$JSON" | jq -crM '.[].groups[].rooms[].slug' | $DMENU_CMD -p Stream )
if [ ! -z "$SLUG" ];
then
URL=$(curl -s "$JSON" | jq -Mcr ".[].groups[].rooms[] | select(.slug==\"$SLUG\") | .streams[] | select(.slug==\"$QUALITY\").urls.$FORMAT.url")
ERR="$($PLAYER "$URL" 2>&1 > /dev/null)"
[ ! -z "$ERR" ] && notify-send "$ERR"
fi
Executable
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh
. $HOME/.bin/_config
texec "sacc codevoid.de/1/fefe"
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh
. $HOME/.bin/_config
texec "sacc codevoid.de/1/hn"
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh
. $HOME/.bin/_config
texec "tmux new-session -A -s irrsi irssi"
+34
View File
@@ -0,0 +1,34 @@
#!/bin/sh
. $HOME/.bin/_config
SEL=$(printf "BACKLIGHT\nAUDIODEVICE\nLIDACTION\nSCREEN\nCONFIGFILES" \
| $DMENU_CMD -p Mailbox)
case $SEL in
"BACKLIGHT")
S=$(printf "10\n20\n30\n40\n50\n60\n70\n80\n90\n100" | $DMENU_CMD -p Backlight)
doas wsconsctl display.brightness=$S
;;
"AUDIODEVICE")
D=$(printf "0\n1\n2\n3\n4\n5" | $DMENU_CMD -p AudioDevice)
sndioctl server.device=$D
;;
"LIDACTION")
A=$(printf "enable\ndisable" | $DMENU_CMD -p Lidaction)
case $A in
"enable") doas sysctl machdep.lidaction=1; ;;
"disable") doas sysctl machdep.lidaction=0; ;;
esac
;;
"CONFIGFILES")
C=$(printf "cwmrc\nvimrc\nkshrc\nvimb\nmuttrc\nspectrwm" | sort | $DMENU_CMD -p File)
case $C in
"cwmrc") texec "vim $HOME/.cwmrc"; ;;
"mailcap") texec "vim $HOME/.mutt/mailcap"; ;;
"muttrc") texec "vim $HOME/.mutt/rc-common $HOME/.mutt/rc-account-*"; ;;
"spectrwm") texec "vim $HOME/.config/spectrwm/spectrwm.conf"; ;;
"vimb") texec "vim $HOME/.config/vimb/config"; ;;
"vimrc") texec "vim $HOME/.vim/vimrc"; ;;
esac
;;
esac
Executable
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh
. $HOME/.bin/_config
$BTERM $@
Executable
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh
. $HOME/.bin/_config
$DMENURUN_CMD -p Exec
+4
View File
@@ -0,0 +1,4 @@
#!/bin/sh
. $HOME/.bin/_config
APP=$(ls -1 $HOME/.bin/apps/ | $DMENU_CMD -p App)
[ ! -z "$APP" ] && $HOME/.bin/apps/$APP
+187
View File
@@ -0,0 +1,187 @@
#!/bin/sh
# dexec_browser
# A multi browser launcher
#
# 1. choose input source
# (filtered-, full history, clipboad, manual entry)
# 2. choose how to handle the input
# (can suggest a matching default)
# 3. choose which browser to use
# (can suggest a matching default)
HISTFILE="${HOME}/.browser_history"
test -f ${HOME}/.bin/_config \
&& . ${HOME}/.bin/_config \
|| DMENU_CMD=dmenu
test -f "${HISTFILE}" \
|| touch "${HISTFILE}"
PICKLIST="paste_from_clipboard
pick_from_history
-----------------
$(cat "${HISTFILE}" \
| cut -b 23- \
| sort -u \
| egrep -v ' |^[^a-zA-Z0-9]' \
| fgrep '.')
http://localhost"
# show filtered history file
# EXPECTS: $PICKLIST $HISTFILE $DMENU_CMD
# PROVIDES: $INPUT
read_input() {
local S=$(printf '%s\n' "${PICKLIST}" \
| ${DMENU_CMD} -p "Bookmarks")
case "${S}" in
paste_from_clipboard)
S=$(xclip -o \
| head -n 1) ;;
pick_from_history)
S=$(sort -r "${HISTFILE}" \
| ${DMENU_CMD} -p "History:" \
|cut -b23-) ;;
esac
[ -z "${S}" ] && exit 0
INPUT="${S}"
}
# Decide how to open the thing
# EXPECTS: $INPUT $DMENU_CMD
# PROVIDES: $URI
choose_wrapper() {
local SE="OPEN URL
Amazon
CPAN
Crates.io
DuckDuckGo Web Search
DuckDuckGo Image Search
Github
Marc Info MessageID
Marc Info OpenBSD Misc List
Marc Info OpenBSD Ports CVS
Marc Info OpenBSD Ports List
Marc Info OpenBSD Tech List
PDF Viewer
SearX Web Search
SearX Image Search
Wikipedia DE
Wikipedia EN
InternetMovieDataBase (IMDB)
OpenStreetMap (OSM)
Grep.app
Google Maps
Youtube"
local C="$(printf '%s' "${INPUT}" \
| head -n 1)"
case "${C}" in
*::*) DEFAULT="CPAN (default)"; ;;
http*) DEFAULT="OPEN (default)"; ;;
192.168.*) DEFAULT="OPEN (default)"; ;;
gopher*) DEFAULT="OPEN (default)"; ;;
www.*) DEFAULT="OPEN (default)"; ;;
\<*@*\>) DEFAULT="Marc Info Message ID (default)"; ;;
*.com|*.de|*.net|*.org) DEFAULT="OPEN (default)"; ;;
*.at|*.ch|*.social) DEFAULT="OPEN (default)"; ;;
*.io|*.sh|*.pw|*.party) DEFAULT="OPEN (default)"; ;;
*.coffee|*.me|*.cloud) DEFAULT="OPEN (default)"; ;;
*.[a-zA-Z]*/*) DEFAULT="OPEN (default)"; ;;
*) DEFAULT="DuckDuckGo Web Search (default)"; ;;
esac
local S="$(printf "%s\n%s" "${DEFAULT}" "${SE}" \
| ${DMENU_CMD} -p "Search Where?")"
case "${S}" in
OPEN*) URI="${C}"; ;;
Amazon*) URI="https://www.amazon.de/s?k=${C}"; ;;
CPAN*) URI="https://metacpan.org/search?q=${C}"; ;;
Crate*) URI="https://crates.io/search?q=${C}"; ;;
Grep*) URI="https://grep.app/search?q=${C}"; ;;
Github) URI="https://github.com/search?q=${C}"; ;;
D*Web*) URI="https://html.duckduckgo.com/html?q=${C}"; ;;
D*Ima*) URI="https://duckduckgo.com/?q=${C}&iax=images&ia=images"; ;;
S*Web*) URI="https://searx.bar/search?q=${C}&category_general=on"; ;;
S*Ima*) URI="https://searx.bar/search?q=${C}&category_images=on"; ;;
W*DE*) URI="https://de.m.wikipedia.org/wiki/Spezial:Suche/${C}"; ;;
W*EN*) URI="https://en.m.wikipedia.org/wiki/Spezial:Search/${C}"; ;;
*IMDB*) URI="https://www.imdb.com/find?q=${C}"; ;;
O*S*M*) URI="https://www.openstreetmap.org/search?query=${C}"; ;;
G*Maps) URI="https://www.google.com/maps/place/${C}"; ;;
You*be) URI="https://m.youtube.com/results?sp=mAEA&search_query=${C}" ;;
M*I*ID*) URI="https://marc.info/?i=$(printf '%s' "${C}" | tr -d '<>')"; ;;
M*I*P*List) URI="https://marc.info/?l=openbsd-ports&s=${C}&q=b"; ;;
M*I*T*List) URI="https://marc.info/?l=openbsd-tech&s=${C}&q=b"; ;;
M*I*M*List) URI="https://marc.info/?l=openbsd-misc&s=${C}&q=b"; ;;
M*I*P*CVS) URI="https://marc.info/?l=openbsd-ports-cvs&s=${C}&q=b"; ;;
*) exit 0 ;;
esac
}
# Which browser shall we use?
# EXPECTS: $URI $DMENU_CMD
# PROVIDES: $BROWSER
choose_browser() {
case "${URI}" in
gopher://*) DEFAULT="Lagrange (default)"; ;;
gemini://*) DEFAULT="Lagrange (default)"; ;;
*.pdf|*.cb|*.ps) DEFAULT="Zathura (default)"; ;;
192.168.*) DEFAULT="Firefox (default)"; ;;
*github.com*) DEFAULT="Firefox (default)"; ;;
*amazon.de*) DEFAULT="Firefox (default)"; ;;
*twitter.com*) DEFAULT="Firefox (default)"; ;;
*chaos.social*) DEFAULT="Firefox (default)"; ;;
*hetzner.cloud*) DEFAULT="Firefox (default)"; ;;
*hetzner.de*) DEFAULT="Firefox (default)"; ;;
*duckduckgo.com/*images*) DEFAULT="Firefox (default)"; ;;
*codevoid.de*) DEFAULT="Luakit (default)"; ;;
*google.*) DEFAULT="Chrome (default)"; ;;
*youtube.com*) DEFAULT="Chrome (default)"; ;;
*youtu.be*) DEFAULT="Chrome (default)"; ;;
*bsd.network*) DEFAULT="Chrome (default)"; ;;
*itch.io*) DEFAULT="Chrome (default)"; ;;
*chat.uugrn.org*) DEFAULT="Chrome (default)"; ;;
*[./]amazon.*) DEFAULT="Firefox (default)"; ;;
*comdirect.de*) DEFAULT="Firefox (default)"; ;;
*motorradfreunde-rheinneckar.de*) DEFAULT="Firefox (default)"; ;;
*polo-motorrad.com*) DEFAULT="Firefox (default)"; ;;
*peek-cloppenburg.de*) DEFAULT="Firefox (default)"; ;;
*asos.com*) DEFAULT="Firefox (default)"; ;;
*zalando.de*) DEFAULT="Firefox (default)"; ;;
*) DEFAULT="Luakit (default)"; ;;
esac
local S="${DEFAULT}\nLuakit\nFirefox\nChrome\nQutebrowser\nNetsurf\nTor-Browser"
case $(echo "${S}" | ${DMENU_CMD} -p "Browser") in
Netsurf*) BROWSER=netsurf-gtk3 ;;
Vimb*) BROWSER=vimb ;;
Quteb*r*) BROWSER=qutebrowser ;;
Surf*) BROWSER=surf ;;
Otter*r*) BROWSER=otter-browser ;;
Luakit*) BROWSER="luakit -Un" ;;
Chrome*) BROWSER=chrome ;;
Firefox*) BROWSER=firefox ;;
Tor-B*r*) BROWSER=tor-browser ;;
Zathura*) BROWSER=zathura ;;
Lagrange*) BROWSER=lagrange ;;
*) exit 0;;
esac
}
save_history() {
printf '%s %s\n' "$(date +"%Y-%m-%d %H:%M:%S |")" "${INPUT}" \
>> "${HISTFILE}"
}
# main program starts here.
read_input
choose_wrapper
choose_browser
save_history
exec $BROWSER "$(printf '%s' "${URI}" | sed 's/ /%20/g')"
+4
View File
@@ -0,0 +1,4 @@
#!/bin/sh
. $HOME/.bin/_config
D="$(echo "$(xclip -o)" | $DMENU_CMD -p Translate)"
[ ! -z "$D" ] && ding "$D"
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
. $HOME/.bin/_config
WID=$(wmctrl -l | col -b \
| grep -v "^$" \
| awk '{printf("%s",$1);$1="";$2="";$3=""; print $0}' \
| $DMENU_CMD -p "Windows" \
| awk '{ print $1 }' \
)
[ -z "$WID" ] || wmctrl -i -a $WID
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
ALIASES=$(ksh -ic alias | grep ^mutt- | cut -d= -f1)
. $HOME/.bin/_config
MAILBOX="imaps://mail.codevoid.de"
SEL=$(printf "$ALIASES" | $DMENU_CMD -p Mutt)
[ -z "$SEL" ] || texec $SEL
Executable
+12
View File
@@ -0,0 +1,12 @@
#!/bin/sh
. $HOME/.bin/_config
MAN="$( for i in $(jot 9 1); do
man -s $i -k . | awk -v i=$i -F"(" '{ gsub(", ","\n"i"-",$1); print i"-"$1}'
done | $DMENU_CMD -p "Manpage" )"
if [ ! -z "$MAN" ]; then
M="$(printf '%s' "$MAN" | cut -d"-" -f2)"
S="$(printf '%s' "$MAN" | cut -d"-" -f1)"
bterm -e man -s "$S" "$M"
fi
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env bash
. $HOME/.bin/_config
shopt -s nullglob globstar
prefix=${PASSWORD_STORE_DIR-~/.password-store}
password_files=( "$prefix"/**/*.gpg )
password_files=( "${password_files[@]#"$prefix"/}" )
password_files=( "${password_files[@]%.gpg}" )
password=$(printf '%s\n' "${password_files[@]}" | $DMENU_CMD -p Password)
[[ -n $password ]] || exit
# read password file
password_out=$(pass "$password" 2> /dev/null)
# copy password line
printf "%s" "$password_out" | head -1 | xclip -r
# extract additional information
password_info=$(printf "%s" "$password_out" | grep -Ei 'login|user')
url_info=$(printf "%s" "$password_out" | grep -Ei '^url' | awk -F"[ :]*" '{ $1=""; print $0 }' )
# show desktop notification
if [[ -n $password_info ]]; then
notify pass "$(printf '%s' "$password_info")"
else
notify pass "No username provided."
fi
Executable
+49
View File
@@ -0,0 +1,49 @@
#!/bin/sh
. $HOME/.bin/_config
SEL=$(printf "Notes\nDocuments\nContacts\nSlides" | $DMENU_CMD -p "Information System")
case $SEL in
Notes)
N=$(printf "Todo\nNotes\nEvents" | $DMENU_CMD -p Notes)
case $N in
Todo) hterm -e "vim scp://sdk@shell.codevoid.de/work/notes/todos.txt"; ;;
Notes) hterm -e "vim scp://sdk@shell.codevoid.de/work/notes/notes.txt" ;;
Events) hterm -e "vim scp://sdk@shell.codevoid.de/work/notes/events.txt" ;;
esac
;;
Documents)
DOC=$(ls -1pr $PIMDIR/documents/ | grep -v '/$' | sort -hr | $DMENU_CMD -p Documents -l 25)
if [ ! -z "$DOC" ]; then
ACT=$(printf "View\nEdit\nEmail" | $DMENU_CMD -p Action)
case $ACT in
View) mupdf "$PIMDIR/documents/$DOC" ;;
Edit) pdfarranger "$PIMDIR/documents/$DOC" ;;
Email) texec "mutt -a \"$PIMDIR/documents/$DOC\"" ;;
esac
fi
;;
Contacts)
C=$(contactsearch | $DMENU_CMD -p Contacts -l 25)
if [ ! -z "$C" ]; then
_file=$(printf "$C" | cut -d" " -f1)
if [ -f "$PIMDIR/contacts/$_file" ]; then
texec "vim \"$PIMDIR/contacts/$_file\""
else
printf "Name:\nAddress:\nHome:\nWork:\nMail:\nWeb:\nBirthday:\n" >> "$PIMDIR/contacts/$_file"
texec "vim \"$PIMDIR/contacts/$_file\""
fi
fi
;;
Slides)
P=$(ls -1 "$PIMDIR/slides/" | sort -hr | $DMENU_CMD -p Slides -l 25)
if [ ! -z "$P" ]; then
ACT=$(printf "Open\nEdit" | $DMENU_CMD -p Action)
case $ACT in
Open) sent "$PIMDIR/slides/$P" ;;
Edit) texec "vim \"$PIMDIR/slides/$P\"" ;;
esac
fi
;;
esac
+25
View File
@@ -0,0 +1,25 @@
#!/bin/sh
# provides DMENU_CMD (dmenu + color parameter)
. $HOME/.bin/_config
cd /usr/ports
DIR=$( ls -1d */* mystuff/*/* | egrep -v '^pobj|^distfiles|^log|^plist|^packages|CVS|Makefile|\.tgz$' | dmenu -p "DIR:" $DMENUOPTS -l 20);
if [ ! -z "$DIR" ]; then
cd /usr/ports/$DIR
DIR2=$(printf "%s\n\n%s\n%s\n%s\n\nCVS %s\n" \
"/usr/ports/$DIR" \
"Package: $(make show=FULLPKGNAME)" \
"Maintainer: $(make show=MAINTAINER)" \
"Homepage: $(make show=HOMEPAGE)" \
"$(cvs log -Nl -rHEAD 2>&1 | awk '{ if ($0 ~ /^===/) p++; if (p == 1) print $0; if ($0 ~ /^---/) p++; }')" \
| dmenu -p "INFO:" $DMENUOPTS -l 20)
if [ ! -z "$DIR2" ]; then
case "$DIR2" in
Homepage*) firefox "$(make show=HOMEPAGE)" & ;;
Package*) make show=FULLPKGNAME | xclip -r ;;
Maintainer*) make show=MAINTAINER | xclip -r ;;
*) cd "$DIR2"; port mark; dterm & ;;
esac
fi
fi
Executable
+13
View File
@@ -0,0 +1,13 @@
#!/bin/sh
. $HOME/.bin/_config
CONF=$(cat $HOME/.ssh/config| grep -Ei "^host" | grep -v '*' | cut -d" " -f2)
HOSTS=$(cat $HOME/.ssh/known_hosts | cut -d" " -f1 | tr ',' '\n')
HOST=$(printf '%s\n%s' "$CONF" "$HOSTS" | grep -v '=' | sort -ru | $DMENU_CMD -p SSH)
if [ ! -z "$HOST" ]; then
case "$HOST" in
*-sftp) texec "sftp $HOST"; ;;
*) texec "ssh $HOST"; ;;
esac
fi
+4
View File
@@ -0,0 +1,4 @@
#!/bin/sh
. $HOME/.bin/_config
S=$(dmenu_path | $DMENU_CMD -p Exec)
[ ! -z $S ] && sterm -e "$S"
Executable
+55
View File
@@ -0,0 +1,55 @@
#!/bin/sh
. $HOME/.bin/_config
PSSH="${USER}@${DOMAIN}"
LOC="p"
f="$1"
if [ "$1" = "-h" ]; then
printf "Usage:\n"
printf " paste < text.txt - read from stdin, generate filename\n"
printf " paste new.txt < file.txt - read from stdin with filename\n"
printf " paste file.txt - upload file as is\n"
return 0
fi
if [ -z "$1" ]; then
f="$(date +"%Y-%m-%d_%M-%S")-$(pwgen -1 4 -A -0).txt"
ssh ${PSSH} "printf \"%s\" \"$(cat)\" > ${RPATH}/${LOC}/$f"
elif [ -f "$f" ]; then
scp "$f" ${PSSH}:"${RPATH}/${LOC}/${f##*/}"
else
ssh ${PSSH} "printf \"%s\n\" \"$(cat)\" > ${RPATH}/${LOC}/${f##*/}"
fi
SELECTOR="9"
# if data comes from stdin
if [ ! -t 0 ]; then
# it's always 0
SELECTOR="0"
else
# if a parmeter is given and it's a file
if [ -f "$f" ]; then
# determine type and set selector
case "$(file --mime-type -b "$f")" in
image/*) SELECTOR="I";;
text/*) SELECTOR="0";;
message/*) SELECTOR="0";;
*/x-shellscript) SELECTOR="0";;
*/pgp-keys) SELECTOR="0";;
esac
else
# parameter given, but not a file, must be cat then...
SELECTOR=0
fi
fi
printf "https://${DOMAIN}/${SELECTOR}/${LOC}/${f##*/}\n"
printf "https://${DOMAIN}/${SELECTOR}/${LOC}/${f##*/}" | xclip
# write paste history (for convenience and rmpaste)
printf "$(date +"%Y-%m-%d %M:%S")|$f\n" \
| ssh -q $PSSH "cat - >> $RPATH/${LOC}/.pastehistory"
[ -z $DISPLAY ] || notify-send "$(xclip -o)"
Executable
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh +x
. $HOME/.bin/_config
$HTERM -T "term" $@
Executable
+6
View File
@@ -0,0 +1,6 @@
#!/bin/sh
. $HOME/.bin/_config
ssh $USER@$DOMAIN "cd $RPATH/p && ls -tr1 | xargs file --mime-type" \
| awk -F'[ :]*' -v url="https://$DOMAIN" \
'{if ($2 ~ /^image/) { print url"/I/p/"$1 } else { print url"/0/p/"$1 }}'
Executable
+97
View File
@@ -0,0 +1,97 @@
#!/bin/ksh
if [ -z "$1" ];
then
print "Parameter missing."
exit 2
fi
###################################################
# URLS
###################################################
if print "$1" | egrep -qi '^shell:|^ushell:|^cvs:';
then
_server=${1%%:*}
_dir=${1#*:}
ssh -tt $_server "vim $_dir"
exit 0
fi
if print "$1" | egrep -qi '^http[s]{0,1}://';
then
case "$1" in
*.mkv) mpv "$1"; ;;
*.mp4) mpv "$1"; ;;
*.webm) mpv "$1"; ;;
*) sacc "$1"; ;;
esac
${BROWSER:=luakit} "$1"
exit 0
fi
if print "$1" | egrep -qi '^gopher://';
then
case "$1" in
*.mkv) mpv "$1"; ;;
*.mp4) mpv "$1"; ;;
*.webm) mpv "$1"; ;;
*) sacc "$1"; ;;
esac
exit 0
fi
###################################################
# REAL FILES
###################################################
if [ ! -f "$1" ];
then
print "Parameter is not a file."
exit 1
fi
###################################################
# EXTENSIONS
###################################################
EXT="$(print "${1##*.}" | tr '[:upper:]' '[:lower:]')"
case "$EXT" in
docx) libreoffice "$1"; ;;
xlsx) libreoffice "$1"; ;;
txt) vim "$1"; ;;
m2ts) mpv "$1"; ;;
sid) sidplay "$1"; ;;
out) kdump -RTf "$1" | less; ;;
*) unset EXT; ;;
esac
if [ ! -z "$EXT" ];
then
exit 0;
fi
###################################################
# MIME TYPES
###################################################
case "$(file -ib "$1")" in
# full qualified
application/ogg) ogg123 "$1"; ;;
application/pdf) mupdf-gl -XJA0 "$1"; ;;
application/postscript) mupdf-gl -XJA0 "$1"; ;;
application/vnd.oasis.opendocument.*) libreoffice "$1"; ;;
audio/mpeg) mpg123 "$1"; ;;
audio/midi) timidity "$1"; ;;
# with wildcards
audio/*) mpv "$1"; ;;
video/*) mpv "$1"; ;;
image/webp) mpv "$1"; ;;
image/*) sxiv -N floating -g 1280x720+300+180 -ab "$1"; ;;
# can't handle
application/octet-stream) print "Sorry, can't handle: $1"; ;;
# vim can handle a lot!
*) vim "$1"; ;;
esac
Executable
+27
View File
@@ -0,0 +1,27 @@
#!/bin/sh
. $HOME/.bin/_config
PSSH="$USER@$DOMAIN"
LOC="p"
if [ "$1" = "-h" ]; then
printf "Usage:\n"
printf " rmpaste - deletes last paste based on ~/.pastehistory\n"
printf " rmpaste <filename> - deletes paste with <filename>\n"
return 0
fi
if [ -z $1 ]; then
if ssh -q $PSSH "! [ -s $RPATH/$LOC/.pastehistory ];"; then
printf "The history file is empty.\n"
return 0
fi
f=$(ssh -q $PSSH "tail -1 $RPATH/$LOC/.pastehistory | cut -d'|' -f2")
read d?"Delete last paste? ($f) [y/N] : "
if [ "$d" = "y" ]; then
ssh $PSSH "rm $RPATH/$LOC/$f"
ssh -q $PSSH "sed -i '$ d' $RPATH/$LOC/.pastehistory"
fi
else
ssh $PSSH "rm $RPATH/$LOC/$1"
fi
Executable
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh
. $HOME/.bin/_config
$STERM $@
Executable
+31
View File
@@ -0,0 +1,31 @@
#!/bin/sh
set -xe
[ -f /usr/bin/doas ] || alias doas=sudo
_input="$(echo "$1" | sed 's/:$//g')"
_file="$(echo "$_input" | sed 's/:[0-9:]*$//g')"
_fnr="$(echo "$_input" | awk -F: '{ print NF }')"
[ ! -w $_file ] \
&& _cmd="doas vim" \
|| _cmd="vim"
if [ $_fnr -eq 3 ]
then
_row="$(echo "$_input" | awk -F: '{ print $2 }')"
_col="$(echo "$_input" | awk -F: '{ print $3 }')"
$_cmd -c ":call cursor($_row,$_col)" "$_file"
elif [ $_fnr -eq 2 ]
then
_row="$(echo "$_input" | awk -F: '{ print $2 }')"
$_cmd +$_row "$_file"
else
echo "No cursor position found..."
$_cmd "$_file"
fi
exit 0
+1 -2
View File
@@ -506,9 +506,8 @@ dotfiles_autoupdate() {
dotfiles_init() {
git --no-replace-objects clone --bare --depth 1 \
sdk@home.codevoid.de:.dotfiles.git $HOME/.cfg;
git@github.com:c0dev0id/dotfiles.git $HOME/.cfg;
config config --local status.showUntrackedFiles no;
mkdir -p $HOME/.vim/undo $HOME/.vim/swapfiles $HOME/.vim/backup;
config checkout -f
}
+2 -2
View File
@@ -1,5 +1,6 @@
let g:netrw_dirhistmax =10
let g:netrw_dirhistcnt =3
let g:netrw_dirhistcnt =4
let g:netrw_dirhist_4='/home/sdk/.bin'
let g:netrw_dirhist_3='/home/sdk'
let g:netrw_dirhist_2='/home/sdk/.vim'
let g:netrw_dirhist_1='sftp://sdk@gopher.codevoid.de/../www/htdocs/gopher/'
@@ -9,4 +10,3 @@ let g:netrw_dirhist_8='/home/sdk/code/bar'
let g:netrw_dirhist_7='/home/sdk/code/drist'
let g:netrw_dirhist_6='/home/sdk/code'
let g:netrw_dirhist_5='/home/sdk/.FontForge'
let g:netrw_dirhist_4='/home/sdk/.audacity-data'