*: Use tabs for indentation where appropriate

I am a big supporter of the approach to indent with tabs and align with
spaces. (Read [here][1] f.e.) Thus at some places a simple `s/ {4}/\t/g`
(replace 4 with whatever fits) is not enough and a bit more thought is
needed. Because of that there are still places where I plan to
substitute the whitespace in the future.

This patch contains exclusively whitespace changes. Check for yourself
with `git diff --ignore-all-space`.

[1]: https://dmitryfrank.com/articles/indent_with_tabs_align_with_spaces
This commit is contained in:
2022-05-11 15:28:49 +02:00
parent b96d32996b
commit 00927c8921
9 changed files with 390 additions and 390 deletions

View File

@@ -1,8 +1,8 @@
#!/bin/sh #!/bin/sh
if [ "$(rfkill -o SOFT --noheadings list wlan)" = "blocked" ]; then if [ "$(rfkill -o SOFT --noheadings list wlan)" = "blocked" ]; then
notify-send "Airplane mode toggled" "On" notify-send "Airplane mode toggled" "On"
else else
notify-send "Airplane mode toggled" "Off" notify-send "Airplane mode toggled" "Off"
fi fi

View File

@@ -135,31 +135,31 @@ bindsym $mod+Shift+e exec \
# resize window (you can also use the mouse for that) # resize window (you can also use the mouse for that)
mode "resize" { mode "resize" {
bindsym h resize grow left bindsym h resize grow left
bindsym j resize grow down bindsym j resize grow down
bindsym k resize grow up bindsym k resize grow up
bindsym l resize grow right bindsym l resize grow right
bindsym Shift+h resize shrink right bindsym Shift+h resize shrink right
bindsym Shift+j resize shrink up bindsym Shift+j resize shrink up
bindsym Shift+k resize shrink down bindsym Shift+k resize shrink down
bindsym Shift+l resize shrink left bindsym Shift+l resize shrink left
# Set window size to predefined values # Set window size to predefined values
# firefox anti fingerprinting # firefox anti fingerprinting
bindsym p resize set 1920 1080 bindsym p resize set 1920 1080
# scratchpad-terminal default size # scratchpad-terminal default size
bindsym s resize set 1600 900 bindsym s resize set 1600 900
# "fullscreen" # "fullscreen"
bindsym f resize set 3200 1770 bindsym f resize set 3200 1770
# Move window to center # Move window to center
bindsym c move position center bindsym c move position center
# back to normal: Enter or Escape # back to normal: Enter or Escape
bindsym Return mode "default" bindsym Return mode "default"
bindsym Escape mode "default" bindsym Escape mode "default"
bindsym $mod+r mode "default" bindsym $mod+r mode "default"
} }
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"

View File

@@ -2,89 +2,89 @@
# See https://github.com/polybar/polybar-scripts/pull/237 # See https://github.com/polybar/polybar-scripts/pull/237
bluetooth_print() { bluetooth_print() {
bluetoothctl | while read -r; do bluetoothctl | while read -r; do
if [[ "$(systemctl is-active "bluetooth.service")" = "active" ]]; then if [[ "$(systemctl is-active "bluetooth.service")" = "active" ]]; then
devices_paired=$( devices_paired=$(
echo paired-devices \ echo paired-devices \
| bluetoothctl \ | bluetoothctl \
| sed -n '/paired-devices/,$p' \ | sed -n '/paired-devices/,$p' \
| grep Device \ | grep Device \
| cut -d ' ' -f 2 | cut -d ' ' -f 2
) )
counter=0 counter=0
echo "$devices_paired" | while read -r line; do echo "$devices_paired" | while read -r line; do
device_info=$(echo "info $line" | bluetoothctl) device_info=$(echo "info $line" | bluetoothctl)
if echo "$device_info" | grep -q "Connected: yes"; then if echo "$device_info" | grep -q "Connected: yes"; then
device_alias=$( device_alias=$(
echo "$device_info" \ echo "$device_info" \
| grep "Alias" \ | grep "Alias" \
| cut -d ' ' -f 2- | cut -d ' ' -f 2-
) )
if [[ $counter -gt 0 ]]; then if [[ $counter -gt 0 ]]; then
printf ", %s" "$device_alias" printf ", %s" "$device_alias"
else else
printf ": %s" "$device_alias" printf ": %s" "$device_alias"
fi fi
counter=$((counter + 1)) counter=$((counter + 1))
fi fi
done done
if echo show | bluetoothctl | grep -q "Powered: no"; then if echo show | bluetoothctl | grep -q "Powered: no"; then
printf '' printf ''
fi fi
printf '\n' printf '\n'
else else
echo "" echo ""
fi fi
done done
} }
bluetooth_toggle() { bluetooth_toggle() {
if echo show | bluetoothctl | grep -q "Powered: no"; then if echo show | bluetoothctl | grep -q "Powered: no"; then
echo "power on" | bluetoothctl >> /dev/null echo "power on" | bluetoothctl >> /dev/null
sleep 1 sleep 1
devices_paired=$( devices_paired=$(
echo paired-devices echo paired-devices
| bluetoothctl \ | bluetoothctl \
| sed -n '/paired-devices/,$p' \ | sed -n '/paired-devices/,$p' \
| grep Device \ | grep Device \
| cut -d ' ' -f 2 | cut -d ' ' -f 2
) )
echo "$devices_paired" | while read -r line; do echo "$devices_paired" | while read -r line; do
echo "connect $line" | bluetoothctl >> /dev/null echo "connect $line" | bluetoothctl >> /dev/null
done done
else else
devices_paired=$( devices_paired=$(
echo paired-devices \ echo paired-devices \
| bluetoothctl \ | bluetoothctl \
| sed -n '/paired-devices/,$p' \ | sed -n '/paired-devices/,$p' \
| grep Device \ | grep Device \
| cut -d ' ' -f 2 | cut -d ' ' -f 2
) )
echo "$devices_paired" | while read -r line; do echo "$devices_paired" | while read -r line; do
device_info=$(echo "info $line" | bluetoothctl) device_info=$(echo "info $line" | bluetoothctl)
if echo "$device_info" | grep -q "Connected: yes"; then if echo "$device_info" | grep -q "Connected: yes"; then
echo "disconnect $line" | bluetoothctl >> /dev/null echo "disconnect $line" | bluetoothctl >> /dev/null
fi fi
done done
echo "power off" | bluetoothctl >> /dev/null echo "power off" | bluetoothctl >> /dev/null
fi fi
} }
case "$1" in case "$1" in
--toggle) --toggle)
bluetooth_toggle bluetooth_toggle
;; ;;
*) *)
bluetooth_print bluetooth_print
;; ;;
esac esac

View File

@@ -2,8 +2,8 @@
connection="$(nmcli con show --active | awk '$3 ~ /^(vpn|tun)$/ { print $1 }')" connection="$(nmcli con show --active | awk '$3 ~ /^(vpn|tun)$/ { print $1 }')"
if [ -n "$connection" ]; then if [ -n "$connection" ]; then
echo "VPN: $connection" echo "VPN: $connection"
exit 0 exit 0
fi fi
# [o] is a hack to not grep the grep-command. See: # [o] is a hack to not grep the grep-command. See:

View File

@@ -48,307 +48,307 @@ OPENSCAD_IMGSIZE=${RNGR_OPENSCAD_IMGSIZE:-1000,1000}
OPENSCAD_COLORSCHEME=${RNGR_OPENSCAD_COLORSCHEME:-Tomorrow Night} OPENSCAD_COLORSCHEME=${RNGR_OPENSCAD_COLORSCHEME:-Tomorrow Night}
handle_extension() { handle_extension() {
case "${FILE_EXTENSION_LOWER}" in case "${FILE_EXTENSION_LOWER}" in
## Archive ## Archive
a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\ a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip) rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
atool --list -- "${FILE_PATH}" && exit 5 atool --list -- "${FILE_PATH}" && exit 5
bsdtar --list --file "${FILE_PATH}" && exit 5 bsdtar --list --file "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
rar) rar)
## Avoid password prompt by providing empty password ## Avoid password prompt by providing empty password
unrar lt -p- -- "${FILE_PATH}" && exit 5 unrar lt -p- -- "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
7z) 7z)
## Avoid password prompt by providing empty password ## Avoid password prompt by providing empty password
7z l -p -- "${FILE_PATH}" && exit 5 7z l -p -- "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
## PDF ## PDF
pdf) pdf)
## Preview as text conversion ## Preview as text conversion
pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | \ pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | \
fmt -w "${PV_WIDTH}" && exit 5 fmt -w "${PV_WIDTH}" && exit 5
mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | \ mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | \
fmt -w "${PV_WIDTH}" && exit 5 fmt -w "${PV_WIDTH}" && exit 5
exiftool "${FILE_PATH}" && exit 5 exiftool "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
## BitTorrent ## BitTorrent
torrent) torrent)
transmission-show -- "${FILE_PATH}" && exit 5 transmission-show -- "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
## OpenDocument ## OpenDocument
odt|ods|odp|sxw) odt|ods|odp|sxw)
## Preview as text conversion ## Preview as text conversion
odt2txt "${FILE_PATH}" && exit 5 odt2txt "${FILE_PATH}" && exit 5
## Preview as markdown conversion ## Preview as markdown conversion
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5 pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
## XLSX ## XLSX
xlsx) xlsx)
## Preview as csv conversion ## Preview as csv conversion
## Uses: https://github.com/dilshod/xlsx2csv ## Uses: https://github.com/dilshod/xlsx2csv
xlsx2csv -- "${FILE_PATH}" && exit 5 xlsx2csv -- "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
## HTML ## HTML
htm|html|xhtml) htm|html|xhtml)
## Preview as text conversion ## Preview as text conversion
w3m -dump "${FILE_PATH}" && exit 5 w3m -dump "${FILE_PATH}" && exit 5
lynx -dump -- "${FILE_PATH}" && exit 5 lynx -dump -- "${FILE_PATH}" && exit 5
elinks -dump "${FILE_PATH}" && exit 5 elinks -dump "${FILE_PATH}" && exit 5
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5 pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
;; ;;
## JSON ## JSON
json) json)
jq --color-output . "${FILE_PATH}" && exit 5 jq --color-output . "${FILE_PATH}" && exit 5
python -m json.tool -- "${FILE_PATH}" && exit 5 python -m json.tool -- "${FILE_PATH}" && exit 5
;; ;;
## Direct Stream Digital/Transfer (DSDIFF) and wavpack aren't detected ## Direct Stream Digital/Transfer (DSDIFF) and wavpack aren't detected
## by file(1). ## by file(1).
dff|dsf|wv|wvc) dff|dsf|wv|wvc)
mediainfo "${FILE_PATH}" && exit 5 mediainfo "${FILE_PATH}" && exit 5
exiftool "${FILE_PATH}" && exit 5 exiftool "${FILE_PATH}" && exit 5
;; # Continue with next handler on failure ;; # Continue with next handler on failure
esac esac
} }
handle_image() { handle_image() {
## Size of the preview if there are multiple options or it has to be ## Size of the preview if there are multiple options or it has to be
## rendered from vector graphics. If the conversion program allows ## rendered from vector graphics. If the conversion program allows
## specifying only one dimension while keeping the aspect ratio, the width ## specifying only one dimension while keeping the aspect ratio, the width
## will be used. ## will be used.
local DEFAULT_SIZE="1920x1080" local DEFAULT_SIZE="1920x1080"
local mimetype="${1}" local mimetype="${1}"
case "${mimetype}" in case "${mimetype}" in
## SVG ## SVG
# image/svg+xml|image/svg) # image/svg+xml|image/svg)
# convert -- "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6 # convert -- "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6
# exit 1;; # exit 1;;
## DjVu ## DjVu
# image/vnd.djvu) # image/vnd.djvu)
# ddjvu -format=tiff -quality=90 -page=1 -size="${DEFAULT_SIZE}" \ # ddjvu -format=tiff -quality=90 -page=1 -size="${DEFAULT_SIZE}" \
# - "${IMAGE_CACHE_PATH}" < "${FILE_PATH}" \ # - "${IMAGE_CACHE_PATH}" < "${FILE_PATH}" \
# && exit 6 || exit 1;; # && exit 6 || exit 1;;
## Canon RAW ## Canon RAW
image/x-canon-cr2) image/x-canon-cr2)
exiftool -b -PreviewImage "${FILE_PATH}" > "${IMAGE_CACHE_PATH}" && exit 6 exiftool -b -PreviewImage "${FILE_PATH}" > "${IMAGE_CACHE_PATH}" && exit 6
exit 1;; exit 1;;
## Image ## Image
image/*) image/*)
local orientation local orientation
orientation="$( identify -format '%[EXIF:Orientation]\n' -- "${FILE_PATH}" )" orientation="$( identify -format '%[EXIF:Orientation]\n' -- "${FILE_PATH}" )"
## If orientation data is present and the image actually ## If orientation data is present and the image actually
## needs rotating ("1" means no rotation)... ## needs rotating ("1" means no rotation)...
if [[ -n "$orientation" && "$orientation" != 1 ]]; then if [[ -n "$orientation" && "$orientation" != 1 ]]; then
## ...auto-rotate the image according to the EXIF data. ## ...auto-rotate the image according to the EXIF data.
convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6 convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6
fi fi
## `w3mimgdisplay` will be called for all images (unless overriden ## `w3mimgdisplay` will be called for all images (unless overriden
## as above), but might fail for unsupported types. ## as above), but might fail for unsupported types.
exit 7;; exit 7;;
## Video ## Video
video/*) video/*)
# Thumbnail # Thumbnail
ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6 ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6
exit 1;; exit 1;;
## PDF ## PDF
# application/pdf) # application/pdf)
# pdftoppm -f 1 -l 1 \ # pdftoppm -f 1 -l 1 \
# -scale-to-x "${DEFAULT_SIZE%x*}" \ # -scale-to-x "${DEFAULT_SIZE%x*}" \
# -scale-to-y -1 \ # -scale-to-y -1 \
# -singlefile \ # -singlefile \
# -jpeg -tiffcompression jpeg \ # -jpeg -tiffcompression jpeg \
# -- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \ # -- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
# && exit 6 || exit 1;; # && exit 6 || exit 1;;
## ePub, MOBI, FB2 (using Calibre) ## ePub, MOBI, FB2 (using Calibre)
# application/epub+zip|application/x-mobipocket-ebook|\ # application/epub+zip|application/x-mobipocket-ebook|\
# application/x-fictionbook+xml) # application/x-fictionbook+xml)
# # ePub (using https://github.com/marianosimone/epub-thumbnailer) # # ePub (using https://github.com/marianosimone/epub-thumbnailer)
# epub-thumbnailer "${FILE_PATH}" "${IMAGE_CACHE_PATH}" \ # epub-thumbnailer "${FILE_PATH}" "${IMAGE_CACHE_PATH}" \
# "${DEFAULT_SIZE%x*}" && exit 6 # "${DEFAULT_SIZE%x*}" && exit 6
# ebook-meta --get-cover="${IMAGE_CACHE_PATH}" -- "${FILE_PATH}" \ # ebook-meta --get-cover="${IMAGE_CACHE_PATH}" -- "${FILE_PATH}" \
# >/dev/null && exit 6 # >/dev/null && exit 6
# exit 1;; # exit 1;;
## Font ## Font
application/font*|application/*opentype) application/font*|application/*opentype)
preview_png="/tmp/$(basename "${IMAGE_CACHE_PATH%.*}").png" preview_png="/tmp/$(basename "${IMAGE_CACHE_PATH%.*}").png"
if fontimage -o "${preview_png}" \ if fontimage -o "${preview_png}" \
--pixelsize "120" \ --pixelsize "120" \
--fontname \ --fontname \
--pixelsize "80" \ --pixelsize "80" \
--text " ABCDEFGHIJKLMNOPQRSTUVWXYZ " \ --text " ABCDEFGHIJKLMNOPQRSTUVWXYZ " \
--text " abcdefghijklmnopqrstuvwxyz " \ --text " abcdefghijklmnopqrstuvwxyz " \
--text " 0123456789.:,;(*!?') ff fl fi ffi ffl " \ --text " 0123456789.:,;(*!?') ff fl fi ffi ffl " \
--text " The quick brown fox jumps over the lazy dog. " \ --text " The quick brown fox jumps over the lazy dog. " \
"${FILE_PATH}"; "${FILE_PATH}";
then then
convert -- "${preview_png}" "${IMAGE_CACHE_PATH}" \ convert -- "${preview_png}" "${IMAGE_CACHE_PATH}" \
&& rm "${preview_png}" \ && rm "${preview_png}" \
&& exit 6 && exit 6
else else
exit 1 exit 1
fi fi
;; ;;
## Preview archives using the first image inside. ## Preview archives using the first image inside.
## (Very useful for comic book collections for example.) ## (Very useful for comic book collections for example.)
# application/zip|application/x-rar|application/x-7z-compressed|\ # application/zip|application/x-rar|application/x-7z-compressed|\
# application/x-xz|application/x-bzip2|application/x-gzip|application/x-tar) # application/x-xz|application/x-bzip2|application/x-gzip|application/x-tar)
# local fn=""; local fe="" # local fn=""; local fe=""
# local zip=""; local rar=""; local tar=""; local bsd="" # local zip=""; local rar=""; local tar=""; local bsd=""
# case "${mimetype}" in # case "${mimetype}" in
# application/zip) zip=1 ;; # application/zip) zip=1 ;;
# application/x-rar) rar=1 ;; # application/x-rar) rar=1 ;;
# application/x-7z-compressed) ;; # application/x-7z-compressed) ;;
# *) tar=1 ;; # *) tar=1 ;;
# esac # esac
# { [ "$tar" ] && fn=$(tar --list --file "${FILE_PATH}"); } || \ # { [ "$tar" ] && fn=$(tar --list --file "${FILE_PATH}"); } || \
# { fn=$(bsdtar --list --file "${FILE_PATH}") && bsd=1 && tar=""; } || \ # { fn=$(bsdtar --list --file "${FILE_PATH}") && bsd=1 && tar=""; } || \
# { [ "$rar" ] && fn=$(unrar lb -p- -- "${FILE_PATH}"); } || \ # { [ "$rar" ] && fn=$(unrar lb -p- -- "${FILE_PATH}"); } || \
# { [ "$zip" ] && fn=$(zipinfo -1 -- "${FILE_PATH}"); } || return # { [ "$zip" ] && fn=$(zipinfo -1 -- "${FILE_PATH}"); } || return
# #
# fn=$(echo "$fn" | python -c "import sys; import mimetypes as m; \ # fn=$(echo "$fn" | python -c "import sys; import mimetypes as m; \
# [ print(l, end='') for l in sys.stdin if \ # [ print(l, end='') for l in sys.stdin if \
# (m.guess_type(l[:-1])[0] or '').startswith('image/') ]" |\ # (m.guess_type(l[:-1])[0] or '').startswith('image/') ]" |\
# sort -V | head -n 1) # sort -V | head -n 1)
# [ "$fn" = "" ] && return # [ "$fn" = "" ] && return
# [ "$bsd" ] && fn=$(printf '%b' "$fn") # [ "$bsd" ] && fn=$(printf '%b' "$fn")
# #
# [ "$tar" ] && tar --extract --to-stdout \ # [ "$tar" ] && tar --extract --to-stdout \
# --file "${FILE_PATH}" -- "$fn" > "${IMAGE_CACHE_PATH}" && exit 6 # --file "${FILE_PATH}" -- "$fn" > "${IMAGE_CACHE_PATH}" && exit 6
# fe=$(echo -n "$fn" | sed 's/[][*?\]/\\\0/g') # fe=$(echo -n "$fn" | sed 's/[][*?\]/\\\0/g')
# [ "$bsd" ] && bsdtar --extract --to-stdout \ # [ "$bsd" ] && bsdtar --extract --to-stdout \
# --file "${FILE_PATH}" -- "$fe" > "${IMAGE_CACHE_PATH}" && exit 6 # --file "${FILE_PATH}" -- "$fe" > "${IMAGE_CACHE_PATH}" && exit 6
# [ "$bsd" ] || [ "$tar" ] && rm -- "${IMAGE_CACHE_PATH}" # [ "$bsd" ] || [ "$tar" ] && rm -- "${IMAGE_CACHE_PATH}"
# [ "$rar" ] && unrar p -p- -inul -- "${FILE_PATH}" "$fn" > \ # [ "$rar" ] && unrar p -p- -inul -- "${FILE_PATH}" "$fn" > \
# "${IMAGE_CACHE_PATH}" && exit 6 # "${IMAGE_CACHE_PATH}" && exit 6
# [ "$zip" ] && unzip -pP "" -- "${FILE_PATH}" "$fe" > \ # [ "$zip" ] && unzip -pP "" -- "${FILE_PATH}" "$fe" > \
# "${IMAGE_CACHE_PATH}" && exit 6 # "${IMAGE_CACHE_PATH}" && exit 6
# [ "$rar" ] || [ "$zip" ] && rm -- "${IMAGE_CACHE_PATH}" # [ "$rar" ] || [ "$zip" ] && rm -- "${IMAGE_CACHE_PATH}"
# ;; # ;;
esac esac
# openscad_image() { # openscad_image() {
# TMPPNG="$(mktemp -t XXXXXX.png)" # TMPPNG="$(mktemp -t XXXXXX.png)"
# openscad --colorscheme="${OPENSCAD_COLORSCHEME}" \ # openscad --colorscheme="${OPENSCAD_COLORSCHEME}" \
# --imgsize="${OPENSCAD_IMGSIZE/x/,}" \ # --imgsize="${OPENSCAD_IMGSIZE/x/,}" \
# -o "${TMPPNG}" "${1}" # -o "${TMPPNG}" "${1}"
# mv "${TMPPNG}" "${IMAGE_CACHE_PATH}" # mv "${TMPPNG}" "${IMAGE_CACHE_PATH}"
# } # }
# case "${FILE_EXTENSION_LOWER}" in # case "${FILE_EXTENSION_LOWER}" in
# ## 3D models # ## 3D models
# ## OpenSCAD only supports png image output, and ${IMAGE_CACHE_PATH} # ## OpenSCAD only supports png image output, and ${IMAGE_CACHE_PATH}
# ## is hardcoded as jpeg. So we make a tempfile.png and just # ## is hardcoded as jpeg. So we make a tempfile.png and just
# ## move/rename it to jpg. This works because image libraries are # ## move/rename it to jpg. This works because image libraries are
# ## smart enough to handle it. # ## smart enough to handle it.
# csg|scad) # csg|scad)
# openscad_image "${FILE_PATH}" && exit 6 # openscad_image "${FILE_PATH}" && exit 6
# ;; # ;;
# 3mf|amf|dxf|off|stl) # 3mf|amf|dxf|off|stl)
# openscad_image <(echo "import(\"${FILE_PATH}\");") && exit 6 # openscad_image <(echo "import(\"${FILE_PATH}\");") && exit 6
# ;; # ;;
# esac # esac
} }
handle_mime() { handle_mime() {
local mimetype="${1}" local mimetype="${1}"
case "${mimetype}" in case "${mimetype}" in
## RTF and DOC ## RTF and DOC
text/rtf|*msword) text/rtf|*msword)
## Preview as text conversion ## Preview as text conversion
## note: catdoc does not always work for .doc files ## note: catdoc does not always work for .doc files
## catdoc: http://www.wagner.pp.ru/~vitus/software/catdoc/ ## catdoc: http://www.wagner.pp.ru/~vitus/software/catdoc/
catdoc -- "${FILE_PATH}" && exit 5 catdoc -- "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
## DOCX, ePub, FB2 (using markdown) ## DOCX, ePub, FB2 (using markdown)
## You might want to remove "|epub" and/or "|fb2" below if you have ## You might want to remove "|epub" and/or "|fb2" below if you have
## uncommented other methods to preview those formats ## uncommented other methods to preview those formats
*wordprocessingml.document|*/epub+zip|*/x-fictionbook+xml) *wordprocessingml.document|*/epub+zip|*/x-fictionbook+xml)
## Preview as markdown conversion ## Preview as markdown conversion
pandoc -s -t markdown -- "${FILE_PATH}" && exit 5 pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
## XLS ## XLS
*ms-excel) *ms-excel)
## Preview as csv conversion ## Preview as csv conversion
## xls2csv comes with catdoc: ## xls2csv comes with catdoc:
## http://www.wagner.pp.ru/~vitus/software/catdoc/ ## http://www.wagner.pp.ru/~vitus/software/catdoc/
xls2csv -- "${FILE_PATH}" && exit 5 xls2csv -- "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
## Text ## Text
text/* | */xml) text/* | */xml)
bat --decorations=always --color=always --paging=never \ bat --decorations=always --color=always --paging=never \
--terminal-width="$PV_WIDTH" -- "${FILE_PATH}" && exit 0 --terminal-width="$PV_WIDTH" -- "${FILE_PATH}" && exit 0
## Syntax highlight ## Syntax highlight
if [[ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then if [[ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then
exit 2 exit 2
fi fi
if [[ "$( tput colors )" -ge 256 ]]; then if [[ "$( tput colors )" -ge 256 ]]; then
local pygmentize_format='terminal256' local pygmentize_format='terminal256'
local highlight_format='xterm256' local highlight_format='xterm256'
else else
local pygmentize_format='terminal' local pygmentize_format='terminal'
local highlight_format='ansi' local highlight_format='ansi'
fi fi
env HIGHLIGHT_OPTIONS="${HIGHLIGHT_OPTIONS}" highlight \ env HIGHLIGHT_OPTIONS="${HIGHLIGHT_OPTIONS}" highlight \
--out-format="${highlight_format}" \ --out-format="${highlight_format}" \
--force -- "${FILE_PATH}" && exit 5 --force -- "${FILE_PATH}" && exit 5
env COLORTERM=8bit bat --color=always --style="plain" \ env COLORTERM=8bit bat --color=always --style="plain" \
-- "${FILE_PATH}" && exit 5 -- "${FILE_PATH}" && exit 5
pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}"\ pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}"\
-- "${FILE_PATH}" && exit 5 -- "${FILE_PATH}" && exit 5
exit 2;; exit 2;;
## DjVu ## DjVu
image/vnd.djvu) image/vnd.djvu)
## Preview as text conversion (requires djvulibre) ## Preview as text conversion (requires djvulibre)
djvutxt "${FILE_PATH}" | fmt -w "${PV_WIDTH}" && exit 5 djvutxt "${FILE_PATH}" | fmt -w "${PV_WIDTH}" && exit 5
exiftool "${FILE_PATH}" && exit 5 exiftool "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
## Image ## Image
image/*) image/*)
## Preview as text conversion ## Preview as text conversion
# img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4 # img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
exiftool "${FILE_PATH}" && exit 5 exiftool "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
## Video and audio ## Video and audio
video/* | audio/*) video/* | audio/*)
mediainfo "${FILE_PATH}" && exit 5 mediainfo "${FILE_PATH}" && exit 5
exiftool "${FILE_PATH}" && exit 5 exiftool "${FILE_PATH}" && exit 5
exit 1;; exit 1;;
esac esac
} }
handle_fallback() { handle_fallback() {
echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" && exit 5 echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" && exit 5
exit 1 exit 1
} }
MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )" MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )"
if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then
handle_image "${MIMETYPE}" handle_image "${MIMETYPE}"
fi fi
handle_extension handle_extension
handle_mime "${MIMETYPE}" handle_mime "${MIMETYPE}"

View File

@@ -13,7 +13,7 @@ XOFF=0
FONT="DejaVu Sans Mono 8" FONT="DejaVu Sans Mono 8"
# if [ -r "$DIR/config" ]; then # if [ -r "$DIR/config" ]; then
# source "$DIR/config" # source "$DIR/config"
# elif [ -r "$HOME/.config/rofi/wifi" ]; then # elif [ -r "$HOME/.config/rofi/wifi" ]; then
# source "$HOME/.config/rofi/wifi" # source "$HOME/.config/rofi/wifi"
# else # else

View File

@@ -17,40 +17,40 @@ set shortmess+=c
" Always show the signcolumn, otherwise it would shift the text each time " Always show the signcolumn, otherwise it would shift the text each time
" diagnostics appear/become resolved. " diagnostics appear/become resolved.
if has("patch-8.1.1564") if has("patch-8.1.1564")
" Recently vim can merge signcolumn and number column into one " Recently vim can merge signcolumn and number column into one
set signcolumn=number set signcolumn=number
else else
set signcolumn=yes set signcolumn=yes
endif endif
" Use tab for trigger completion with characters ahead and navigate. " Use tab for trigger completion with characters ahead and navigate.
" NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by " NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by
" other plugin before putting this into your config. " other plugin before putting this into your config.
inoremap <silent><expr> <TAB> inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" : \ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" : \ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh() \ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! s:check_back_space() abort function! s:check_back_space() abort
let col = col('.') - 1 let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s' return !col || getline('.')[col - 1] =~# '\s'
endfunction endfunction
" Use <c-space> to trigger completion. " Use <c-space> to trigger completion.
if has('nvim') if has('nvim')
inoremap <silent><expr> <c-space> coc#refresh() inoremap <silent><expr> <c-space> coc#refresh()
else else
inoremap <silent><expr> <c-@> coc#refresh() inoremap <silent><expr> <c-@> coc#refresh()
endif endif
" Use <cr> to confirm completion, `<C-g>u` means break undo chain at current " Use <cr> to confirm completion, `<C-g>u` means break undo chain at current
" position. Coc only does snippet and additional edit on confirm. " position. Coc only does snippet and additional edit on confirm.
" <cr> could be remapped by other vim plugin, try `:verbose imap <CR>`. " <cr> could be remapped by other vim plugin, try `:verbose imap <CR>`.
if exists('*complete_info') if exists('*complete_info')
inoremap <expr> <cr> complete_info()["selected"] != "-1" ? "\<C-y>" : "\<C-g>u\<CR>" inoremap <expr> <cr> complete_info()["selected"] != "-1" ? "\<C-y>" : "\<C-g>u\<CR>"
else else
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>" inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
endif endif
" GoTo code navigation. " GoTo code navigation.
@@ -63,11 +63,11 @@ nmap <silent> gr <Plug>(coc-references)
nnoremap <silent> K :call <SID>show_documentation()<CR> nnoremap <silent> K :call <SID>show_documentation()<CR>
function! s:show_documentation() function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0) if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>') execute 'h '.expand('<cword>')
else else
call CocAction('doHover') call CocAction('doHover')
endif endif
endfunction endfunction
" Highlight the symbol and its references when holding the cursor. " Highlight the symbol and its references when holding the cursor.
@@ -81,11 +81,11 @@ xmap <leader>f <Plug>(coc-format-selected)
nmap <leader>f <Plug>(coc-format-selected) nmap <leader>f <Plug>(coc-format-selected)
augroup mygroup augroup mygroup
autocmd! autocmd!
" Setup formatexpr specified filetype(s). " Setup formatexpr specified filetype(s).
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
" Update signature help on jump placeholder. " Update signature help on jump placeholder.
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end augroup end
" Applying codeAction to the selected region. " Applying codeAction to the selected region.

View File

@@ -19,16 +19,16 @@ sleep_delay=1
# Run before starting the locker # Run before starting the locker
pre_lock() { pre_lock() {
playerctl pause playerctl pause
"${XDG_CONFIG_HOME:-$HOME/.config}/compositor/launch.sh" -k "${XDG_CONFIG_HOME:-$HOME/.config}/compositor/launch.sh" -k
amixer -q -D pulse sset Master mute amixer -q -D pulse sset Master mute
return return
} }
# Run after the locker exits # Run after the locker exits
post_lock() { post_lock() {
"${XDG_CONFIG_HOME:-$HOME/.config}/compositor/launch.sh" "${XDG_CONFIG_HOME:-$HOME/.config}/compositor/launch.sh"
return return
} }
############################################################################### ###############################################################################
@@ -39,15 +39,15 @@ pre_lock
trap 'kill %%' TERM INT trap 'kill %%' TERM INT
if [[ -e /dev/fd/${XSS_SLEEP_LOCK_FD:--1} ]]; then if [[ -e /dev/fd/${XSS_SLEEP_LOCK_FD:--1} ]]; then
# lock fd is open, make sure the locker does not inherit a copy # lock fd is open, make sure the locker does not inherit a copy
$locker {XSS_SLEEP_LOCK_FD}<&- & $locker {XSS_SLEEP_LOCK_FD}<&- &
sleep $sleep_delay sleep $sleep_delay
# now close our fd (only remaining copy) to indicate we're ready to sleep # now close our fd (only remaining copy) to indicate we're ready to sleep
exec {XSS_SLEEP_LOCK_FD}<&- exec {XSS_SLEEP_LOCK_FD}<&-
else else
$locker & $locker &
fi fi
wait # for locker to exit wait # for locker to exit

View File

@@ -4,7 +4,7 @@
# ('*/5 * * * * /usr/local/bin/wifi-mute') # ('*/5 * * * * /usr/local/bin/wifi-mute')
if [[ "$(nmcli -t -f name con show --active)" =~ eduroam* ]]; then # iwgetid -r if [[ "$(nmcli -t -f name con show --active)" =~ eduroam* ]]; then # iwgetid -r
# TODO: mute only speaker, not headphones # TODO: mute only speaker, not headphones
amixer set Master mute amixer set Master mute
fi fi