updates
This commit is contained in:
parent
d28e196e5a
commit
ccaa081a8f
@ -6,7 +6,14 @@
|
|||||||
# to clean up.
|
# to clean up.
|
||||||
|
|
||||||
# Adds `~/.local/bin` to $PATH
|
# Adds `~/.local/bin` to $PATH
|
||||||
export PATH="$PATH:$HOME/.local/bin/:/usr/local/go/bin/"
|
PATH="$PATH:$HOME/.local/bin/" export PATH
|
||||||
|
|
||||||
|
# plan9 to path
|
||||||
|
PLAN9="/usr/local/plan9" export PLAN9
|
||||||
|
PATH="$PATH:$PLAN9/bin" export PATH
|
||||||
|
|
||||||
|
# go bin to path
|
||||||
|
PATH="$PATH:/usr/local/go/bin/" export PATH
|
||||||
|
|
||||||
# Userwide npm installations
|
# Userwide npm installations
|
||||||
export npm_config_prefix="$HOME/.local"
|
export npm_config_prefix="$HOME/.local"
|
||||||
|
|||||||
@ -6,9 +6,6 @@
|
|||||||
# Compiles .tex. groff (.mom, .ms), .rmd, .md, .org. Opens .sent files as sent
|
# Compiles .tex. groff (.mom, .ms), .rmd, .md, .org. Opens .sent files as sent
|
||||||
# presentations. Runs scripts based on extension or shebang.
|
# 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="${1}"
|
file="${1}"
|
||||||
ext="${file##*.}"
|
ext="${file##*.}"
|
||||||
dir=${file%/*}
|
dir=${file%/*}
|
||||||
@ -20,6 +17,7 @@ case "${ext}" in
|
|||||||
[0-9]) preconv "${file}" | refer -PS -e | groff -mandoc -T pdf > "${base}.pdf" ;;
|
[0-9]) preconv "${file}" | refer -PS -e | groff -mandoc -T pdf > "${base}.pdf" ;;
|
||||||
mom|ms) preconv "${file}" | refer -PS -e | groff -T pdf -m"${ext}" > "${base}.pdf" ;;
|
mom|ms) preconv "${file}" | refer -PS -e | groff -T pdf -m"${ext}" > "${base}.pdf" ;;
|
||||||
c) cc "${file}" -o "${base}" && "./${base}" ;;
|
c) cc "${file}" -o "${base}" && "./${base}" ;;
|
||||||
|
cob) cobc -x -o "$base" "$file" && "$base" ;;
|
||||||
cpp) g++ "${file}" -o "${base}" && "./${base}" ;;
|
cpp) g++ "${file}" -o "${base}" && "./${base}" ;;
|
||||||
cs) mcs "${file}" && mono "${base}.exe" ;;
|
cs) mcs "${file}" && mono "${base}.exe" ;;
|
||||||
go) go run "${file}" ;;
|
go) go run "${file}" ;;
|
||||||
@ -33,20 +31,12 @@ case "${ext}" in
|
|||||||
pandoc -t ms --highlight-style="kate" -s -o "${base}.pdf" "${file}" ;;
|
pandoc -t ms --highlight-style="kate" -s -o "${base}.pdf" "${file}" ;;
|
||||||
org) emacs "${file}" --batch -u "${USER}" -f org-latex-export-to-pdf ;;
|
org) emacs "${file}" --batch -u "${USER}" -f org-latex-export-to-pdf ;;
|
||||||
py) python "${file}" ;;
|
py) python "${file}" ;;
|
||||||
|
rink) rink -f "${file}" ;;
|
||||||
[rR]md) Rscript -e "rmarkdown::render('${file}', quiet=TRUE)" ;;
|
[rR]md) Rscript -e "rmarkdown::render('${file}', quiet=TRUE)" ;;
|
||||||
rs) cargo build ;;
|
rs) cargo build ;;
|
||||||
sass) sassc -a "${file}" "${base}.css" ;;
|
sass) sassc -a "${file}" "${base}.css" ;;
|
||||||
scad) openscad -o "${base}.stl" "${file}" ;;
|
scad) openscad -o "${base}.stl" "${file}" ;;
|
||||||
sent) setsid -f sent "${file}" 2> "/dev/null" ;;
|
sent) setsid -f sent "${file}" 2> "/dev/null" ;;
|
||||||
tex)
|
tex) latexmk ;;
|
||||||
textarget="$(getcomproot "${file}" || echo "${file}")"
|
|
||||||
command="pdflatex"
|
|
||||||
head -n5 "${textarget}" | grep -qi "xelatex" && command="xelatex"
|
|
||||||
${command} --output-directory="${textarget%/*}" "${textarget%.*}" &&
|
|
||||||
grep -qi addbibresource "${textarget}" &&
|
|
||||||
biber --input-directory "${textarget%/*}" "${textarget%.*}" &&
|
|
||||||
${command} --output-directory="${textarget%/*}" "${textarget%.*}" &&
|
|
||||||
${command} --output-directory="${textarget%/*}" "${textarget%.*}"
|
|
||||||
;;
|
|
||||||
*) sed -n '/^#!/s/^#!//p; q' "${file}" | xargs -r -I % "${file}" ;;
|
*) sed -n '/^#!/s/^#!//p; q' "${file}" | xargs -r -I % "${file}" ;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
21
.local/bin/dmenuhandler
Executable file
21
.local/bin/dmenuhandler
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Feed this script a link and it will give dmenu
|
||||||
|
# some choice programs to use to open it.
|
||||||
|
feed="${1:-$(true | dmenu -p 'Paste URL or file path')}"
|
||||||
|
|
||||||
|
case "$(printf "copy url\\nnsxiv\\nsetbg\\nPDF\\nbrowser\\nlynx\\nvim\\nmpv\\nmpv loop\\nmpv float\\nqueue download\\nqueue yt-dlp\\nqueue yt-dlp audio" | dmenu -i -p "Open it with?")" in
|
||||||
|
"copy url") echo "$feed" | xclip -selection clipboard ;;
|
||||||
|
mpv) setsid -f mpv -quiet "$feed" >/dev/null 2>&1 ;;
|
||||||
|
"mpv loop") setsid -f mpv -quiet --loop "$feed" >/dev/null 2>&1 ;;
|
||||||
|
"mpv float") setsid -f "$TERMINAL" -e mpv --geometry=+0-0 --autofit=30% --title="mpvfloat" "$feed" >/dev/null 2>&1 ;;
|
||||||
|
"queue yt-dlp") qndl "$feed" >/dev/null 2>&1 ;;
|
||||||
|
"queue yt-dlp audio") qndl "$feed" 'yt-dlp -o "%(title)s.%(ext)s" -f bestaudio --embed-metadata --restrict-filenames' ;;
|
||||||
|
"queue download") qndl "$feed" 'curl -LO' >/dev/null 2>&1 ;;
|
||||||
|
PDF) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && zathura "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;;
|
||||||
|
nsxiv) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && nsxiv -a "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;;
|
||||||
|
vim) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && setsid -f "$TERMINAL" -e "$EDITOR" "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;;
|
||||||
|
setbg) curl -L "$feed" > $XDG_CACHE_HOME/pic ; xwallpaper --zoom $XDG_CACHE_HOME/pic >/dev/null 2>&1 ;;
|
||||||
|
browser) setsid -f "$BROWSER" "$feed" >/dev/null 2>&1 ;;
|
||||||
|
lynx) lynx "$feed" >/dev/null 2>&1 ;;
|
||||||
|
esac
|
||||||
@ -9,12 +9,12 @@ output="$(date '+%y%m%d-%H%M-%S').png"
|
|||||||
xclip_cmd="xclip -sel clip -t image/png"
|
xclip_cmd="xclip -sel clip -t image/png"
|
||||||
ocr_cmd="xclip -sel clip"
|
ocr_cmd="xclip -sel clip"
|
||||||
|
|
||||||
case "$(printf "a selected area\\ncurrent window\\nfull screen\\na selected area (copy)\\ncurrent window (copy)\\nfull screen (copy)\\nOCR a selected area (copy)" | dmenu -l 7 -i -p "Screenshot which area?")" in
|
case "$(printf "a selected area\\ncurrent window\\nfull screen\\na selected area (copy)\\ncurrent window (copy)\\nfull screen (copy)\\ncopy selected image to text" | dmenu -l 7 -i -p "Screenshot which area?")" in
|
||||||
"a selected area") maim -u -s pic-selected-"${output}" ;;
|
"a selected area") maim -u -s pic-selected-"${output}" ;;
|
||||||
"current window") maim -B -q -d 0.2 -i "$(xdotool getactivewindow)" pic-window-"${output}" ;;
|
"current window") maim -B -q -d 0.2 -i "$(xdotool getactivewindow)" pic-window-"${output}" ;;
|
||||||
"full screen") maim -q -d 0.2 pic-full-"${output}" ;;
|
"full screen") maim -q -d 0.2 pic-full-"${output}" ;;
|
||||||
"a selected area (copy)") maim -u -s | ${xclip_cmd} ;;
|
"a selected area (copy)") maim -u -s | ${xclip_cmd} ;;
|
||||||
"current window (copy)") maim -q -d 0.2 -i "$(xdotool getactivewindow)" | ${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} ;;
|
"full screen (copy)") maim -q -d 0.2 | ${xclip_cmd} ;;
|
||||||
"a selected area (OCR)") tmpfile=$(mktemp /tmp/ocr-XXXXXX.png) && maim -u -s > "$tmpfile" && tesseract "$tmpfile" - -l eng | ${ocr_cmd} && rm "$tmpfile" ;;
|
"copy selected image to text") tmpfile=$(mktemp /tmp/ocr-XXXXXX.png) && maim -u -s > "$tmpfile" && tesseract "$tmpfile" - -l eng | ${ocr_cmd} && rm "$tmpfile" ;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
@ -79,8 +79,13 @@ case "$chosen" in
|
|||||||
💾*)
|
💾*)
|
||||||
chosen="${chosen%% *}"
|
chosen="${chosen%% *}"
|
||||||
chosen="${chosen:1}" # This is a bashism.
|
chosen="${chosen:1}" # This is a bashism.
|
||||||
|
parttype="$(echo "$lsblkoutput" | grep "$chosen")"
|
||||||
attemptmount || getmount
|
attemptmount || getmount
|
||||||
sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)"
|
case "${parttype##* }" in
|
||||||
|
vfat) sudo -A mount -t vfat "$chosen" "$mp" -o rw,umask=0000 ;;
|
||||||
|
btrfs) sudo -A mount "$chosen" "$mp" ;;
|
||||||
|
*) sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)" ;;
|
||||||
|
esac
|
||||||
notify-send "💾Drive Mounted." "$chosen mounted to $mp."
|
notify-send "💾Drive Mounted." "$chosen mounted to $mp."
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|||||||
22
.local/bin/sd
Executable file
22
.local/bin/sd
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Open a terminal window in the same directory as the currently active window.
|
||||||
|
|
||||||
|
windowPID=$(xprop -id "$(xprop -root | sed -n "/_NET_ACTIVE_WINDOW/ s/^.*# // p")" | sed -n "/PID/ s/^.*= // p")
|
||||||
|
PIDlist=$(pstree -lpATna "$windowPID" | sed -En 's/.*,([0-9]+).*/\1/p' | tac)
|
||||||
|
for PID in $PIDlist; do
|
||||||
|
cmdline=$(ps -o args= -p "$PID")
|
||||||
|
process_group_leader=$(ps -o comm= -p "$(ps -o pgid= -p "$PID" | tr -d ' ')")
|
||||||
|
cwd=$(readlink /proc/"$PID"/cwd)
|
||||||
|
# zsh and lf won't be ignored even if it shows ~ or /
|
||||||
|
case "$cmdline" in
|
||||||
|
'lf -server') continue ;;
|
||||||
|
"${SHELL##*/}"|'lf'|'lf '*) break ;;
|
||||||
|
esac
|
||||||
|
# git (and its sub-processes) will show the root of a repository instead of the actual cwd, so they're ignored
|
||||||
|
[ "$process_group_leader" = 'git' ] || [ ! -d "$cwd" ] && continue
|
||||||
|
# This is to ignore programs that show ~ or / instead of the actual working directory
|
||||||
|
[ "$cwd" != "$HOME" ] && [ "$cwd" != '/' ] && break
|
||||||
|
done
|
||||||
|
[ "$PWD" != "$cwd" ] && [ -d "$cwd" ] && { cd "$cwd" || exit 1; }
|
||||||
|
"$TERMINAL"
|
||||||
36
.local/bin/sysact
Executable file
36
.local/bin/sysact
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# A dmenu wrapper script for system functions.
|
||||||
|
export WM="dwm"
|
||||||
|
case "$(readlink -f /sbin/init)" in
|
||||||
|
*systemd*) ctl='systemctl' ;;
|
||||||
|
*) ctl='loginctl' ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
wmpid(){ # This function is needed if there are multiple instances of the window manager.
|
||||||
|
tree="$(pstree -ps $$)"
|
||||||
|
tree="${tree#*$WM(}"
|
||||||
|
echo "${tree%%)*}"
|
||||||
|
}
|
||||||
|
|
||||||
|
lock(){
|
||||||
|
mpc pause
|
||||||
|
pauseallmpv
|
||||||
|
wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
|
kill -44 $(pidof dwmblocks)
|
||||||
|
slock
|
||||||
|
wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
|
kill -44 $(pidof dwmblocks)
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$(printf "🔒 lock\n🚪 leave $WM\n♻️ renew $WM\n🐻 hibernate\n🔃 reboot\n🖥️shutdown\n💤 sleep\n📺 display off" | dmenu -i -p 'Action: ')" in
|
||||||
|
'🔒 lock') lock ;;
|
||||||
|
"🚪 leave $WM") kill -TERM "$(wmpid)" ;;
|
||||||
|
"♻️ renew $WM") kill -HUP "$(wmpid)" ;;
|
||||||
|
'🐻 hibernate') slock $ctl hibernate -i ;;
|
||||||
|
'💤 sleep') slock $ctl suspend -i ;;
|
||||||
|
'🔃 reboot') $ctl reboot -i ;;
|
||||||
|
'🖥️shutdown') $ctl poweroff -i ;;
|
||||||
|
'📺 display off') xset dpms force off ;;
|
||||||
|
*) exit 1 ;;
|
||||||
|
esac
|
||||||
Loading…
Reference in New Issue
Block a user