From fe9be01d591f2eb2f2c0b739e7de5a11ef46b418 Mon Sep 17 00:00:00 2001 From: Prof-Bloodstone <46570876+Prof-Bloodstone@users.noreply.github.com> Date: Sat, 8 May 2021 01:42:23 +0200 Subject: [PATCH 001/175] dmenumount: Don't show partitions with children This PR makes `dmenumount` script filter out all devices, which have childs. This way it won't suggest to mount your partitions which have LUKS or lvm setup on it. If someone knows of a better way to do something, that'd be appreciated :) --- .local/bin/dmenumount | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.local/bin/dmenumount b/.local/bin/dmenumount index b98b6a3a..825ff562 100755 --- a/.local/bin/dmenumount +++ b/.local/bin/dmenumount @@ -50,7 +50,11 @@ 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}')" +# Get all block devices which are parents of other devices +parentnames="$(lsblk -rpo "pkname" | awk 'NR!=1 && $0 != ""' | uniq | xargs printf '^%s$|' | sed 's/|$//')" +# Get all `part` and `rom` devices, which aren't a parent to another device +# This allows ommiting partitions which have i.e. crypt or lvm childs +usbdrives="$(lsblk -rpo "name,type,size,mountpoint" | awk -v parentnames="$parentnames" '$2 ~ "part|rom" && $4=="" && $1 !~ parentnames {printf "%s (%s)\n",$1,$3}')" if [ -z "$usbdrives" ]; then [ -z "$anddrives" ] && echo "No USB drive or Android device detected" && exit From 965a1dcad234ebeca20641f625947d51c0c07625 Mon Sep 17 00:00:00 2001 From: Richard Halford <63303646+rsHalford@users.noreply.github.com> Date: Fri, 3 Sep 2021 17:15:52 +0100 Subject: [PATCH 002/175] Add partition labelling to dmenumount If a partition doesn't have a label, it results in a double space that awk ignores. Which is why the changes include a pipe into sed. --- .local/bin/dmenumount | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/dmenumount b/.local/bin/dmenumount index 3cb1f814..cb0601e9 100755 --- a/.local/bin/dmenumount +++ b/.local/bin/dmenumount @@ -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" | 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 From f70612800b1974f2ec09002f30a6710a2fde2183 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Sat, 21 May 2022 14:40:59 -0400 Subject: [PATCH 003/175] force suspend and hibernate --- .local/bin/sysact | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.local/bin/sysact b/.local/bin/sysact index eb9390fb..64c2f320 100755 --- a/.local/bin/sysact +++ b/.local/bin/sysact @@ -17,8 +17,8 @@ case "$(printf "๐Ÿ”’ lock\n๐Ÿšช leave $WM\nโ™ป๏ธ renew $WM\n๐Ÿป hibernate\n '๐Ÿ”’ lock') slock ;; "๐Ÿšช leave $WM") kill -TERM "$(wmpid)" ;; "โ™ป๏ธ renew $WM") kill -HUP "$(wmpid)" ;; - '๐Ÿป hibernate') slock $ctl hibernate ;; - '๐Ÿ’ค sleep') slock $ctl suspend ;; + '๐Ÿป hibernate') slock $ctl hibernate -i ;; + '๐Ÿ’ค sleep') slock $ctl suspend -i ;; '๐Ÿ”ƒ reboot') $ctl reboot -i ;; '๐Ÿ–ฅ๏ธshutdown') $ctl poweroff -i ;; '๐Ÿ“บ display off') xset dpms force off ;; From d283f12ef9c524a88550097bceda029b3eb9a71c Mon Sep 17 00:00:00 2001 From: David Delarosa Date: Wed, 25 May 2022 18:13:38 +0300 Subject: [PATCH 004/175] Use tmpfs for speed and I/O reduction (#1122) --- .local/bin/statusbar/sb-nettraf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/statusbar/sb-nettraf b/.local/bin/statusbar/sb-nettraf index c71d38e9..178f6773 100755 --- a/.local/bin/statusbar/sb-nettraf +++ b/.local/bin/statusbar/sb-nettraf @@ -17,7 +17,7 @@ update() { read -r i < "$arg" sum=$(( sum + i )) done - cache=${XDG_CACHE_HOME:-$HOME/.cache}/${1##*/} + cache=/tmp/${1##*/} [ -f "$cache" ] && read -r old < "$cache" || old=0 printf %d\\n "$sum" > "$cache" printf %d\\n $(( sum - old )) From 6d0ad93751a3584788d066802a4b59fa8f7cab1b Mon Sep 17 00:00:00 2001 From: krisdoodle45 <86745210+krisdoodle45@users.noreply.github.com> Date: Mon, 6 Jun 2022 20:58:12 +0200 Subject: [PATCH 005/175] Give linkhandler option to read from clipboard --- .local/bin/linkhandler | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.local/bin/linkhandler b/.local/bin/linkhandler index fa74cafb..a1c63948 100755 --- a/.local/bin/linkhandler +++ b/.local/bin/linkhandler @@ -6,6 +6,11 @@ # if a music file or pdf, it will download, # otherwise it opens link in browser. +# If -c passed, read from clipboard +while getopts 'c' o; do case "${o}" in + c) set "$(xclip -o)";; +esac done + # If no url given. Opens browser. For using script as $BROWSER. [ -z "$1" ] && { "$BROWSER"; exit; } From 15b4de6cf2e1a4a0878a6d5b8b33ceb31d073fa2 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Thu, 9 Jun 2022 15:07:37 -0400 Subject: [PATCH 006/175] lindypress.net rss feed added --- .config/newsboat/urls | 1 + 1 file changed, 1 insertion(+) diff --git a/.config/newsboat/urls b/.config/newsboat/urls index ad1d119a..73a1f3e2 100644 --- a/.config/newsboat/urls +++ b/.config/newsboat/urls @@ -1,4 +1,5 @@ https://lukesmith.xyz/rss.xml +https://lindypress.net/rss https://notrelated.xyz/rss https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "~Luke Smith (YouTube)" https://landchad.net/rss.xml From 6207180f7bb12ae81187a0fd1dbfc62d3162ba69 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 10 Jun 2022 07:54:49 -0400 Subject: [PATCH 007/175] fix keyhandler --- .config/sxiv/exec/key-handler | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.config/sxiv/exec/key-handler b/.config/sxiv/exec/key-handler index f3dd7dca..4a4f10a1 100755 --- a/.config/sxiv/exec/key-handler +++ b/.config/sxiv/exec/key-handler @@ -4,12 +4,12 @@ do case "$1" in "w") setbg "$file" & ;; "c") - [ -z "$destdir" ] && destdir="$(sed "s/\s.*#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | awk '{print $2}' | dmenu -l 20 -i -p "Copy file(s) to where?" | sed "s|~|$HOME|g")" + [ -z "$destdir" ] && destdir="$(sed "s/#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | awk '{print $2}' | dmenu -l 20 -i -p "Copy file(s) to where?" | sed "s|~|$HOME|g")" [ ! -d "$destdir" ] && notify-send "$destdir is not a directory, cancelled." && exit cp "$file" "$destdir" && notify-send -i "$(readlink -f "$file")" "$file copied to $destdir." & ;; "m") - [ -z "$destdir" ] && destdir="$(sed "s/\s.*#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | awk '{print $2}' | dmenu -l 20 -i -p "Move file(s) to where?" | sed "s|~|$HOME|g")" + [ -z "$destdir" ] && destdir="$(sed "s/#.*$//;/^\s*$/d" ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | awk '{print $2}' | dmenu -l 20 -i -p "Move file(s) to where?" | sed "s|~|$HOME|g")" [ ! -d "$destdir" ] && notify-send "$destdir is not a directory, cancelled." && exit mv "$file" "$destdir" && notify-send -i "$(readlink -f "$file")" "$file moved to $destdir." & ;; From b63045a0c09f13b8a6cf255f275e5f2b04f8d020 Mon Sep 17 00:00:00 2001 From: i-c-u-p <96894903+i-c-u-p@users.noreply.github.com> Date: Wed, 15 Jun 2022 15:03:25 +0000 Subject: [PATCH 008/175] use "|" as sed delimiter if pattern has "/" (#1118) removes the need for "/" to be escaped with a backslash --- .local/bin/dmenuhandler | 6 +++--- .local/bin/peertubetorrent | 4 ++-- .local/bin/statusbar/sb-clock | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.local/bin/dmenuhandler b/.local/bin/dmenuhandler index 3e5055f1..1c48f3ac 100755 --- a/.local/bin/dmenuhandler +++ b/.local/bin/dmenuhandler @@ -12,9 +12,9 @@ case "$(printf "Copy URL\\nsxiv\\nsetbg\\nPDF\\nbrowser\\nlynx\\nvim\\nmpv\\nmpv "queue yt-dlp") qndl "$feed" >/dev/null 2>&1 ;; "queue yt-dlp audio") qndl "$feed" 'yt-dlp --embed-metadata -icx -f bestaudio/best' >/dev/null 2>&1 ;; "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 ;; - sxiv) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s/.*\///;s/%20/ /g")" && sxiv -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 ;; + 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 ;; + sxiv) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && sxiv -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 ;; diff --git a/.local/bin/peertubetorrent b/.local/bin/peertubetorrent index e89b1c01..4d8f6301 100755 --- a/.local/bin/peertubetorrent +++ b/.local/bin/peertubetorrent @@ -3,7 +3,7 @@ # first argument is the video link, second is the quality (360, 480 or 1080) # 13/07/20 - Arthur Bais -instance=$(echo "$1" | sed "s/\/w.\+//") -vidid=$(echo "$1" | sed "s/.\+\///") +instance=$(echo "$1" | sed "s|/w.\+||") +vidid=$(echo "$1" | sed "s|.\+/||") link=$(curl -s "$instance/api/v1/videos/$vidid" | grep -o "$instance/download/torrents/.\{37\}$2.torrent") transadd "$link" diff --git a/.local/bin/statusbar/sb-clock b/.local/bin/statusbar/sb-clock index d25e8d00..e1ca8c74 100755 --- a/.local/bin/statusbar/sb-clock +++ b/.local/bin/statusbar/sb-clock @@ -19,7 +19,7 @@ case "$clock" in esac case $BLOCK_BUTTON in - 1) notify-send "This Month" "$(cal --color=always | sed "s/..7m//;s/..27m/<\/span><\/b>/")" && notify-send "Appointments" "$(calcurse -d3)" ;; + 1) notify-send "This Month" "$(cal --color=always | sed "s/..7m//;s|..27m||")" && notify-send "Appointments" "$(calcurse -d3)" ;; 2) setsid -f "$TERMINAL" -e calcurse ;; 3) notify-send "๐Ÿ“… Time/date module" "\- Left click to show upcoming appointments for the next three days via \`calcurse -d3\` and show the month via \`cal\` - Middle click opens calcurse if installed" ;; From bac8a110ecd69c542f16596a432f7a8b03ce1fb8 Mon Sep 17 00:00:00 2001 From: anntnzrb <51257127+anntnzrb@users.noreply.github.com> Date: Wed, 15 Jun 2022 10:04:32 -0500 Subject: [PATCH 009/175] Screenshot utility improvements (maimpick) (#1114) * maimpick delay for proper screenshots An extra delay is needed for {window, full}-screenshots to prevent the dmenu prompt from showing; example attached. As of this writing I'm thinking the delay may vary depending on several factors, to name a few... dmenu patches, compositor animations, etc. * refactor to extract commonly used commands --- .local/bin/maimpick | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.local/bin/maimpick b/.local/bin/maimpick index 7125e615..8ea9f5ec 100755 --- a/.local/bin/maimpick +++ b/.local/bin/maimpick @@ -4,11 +4,15 @@ # choose the kind of screenshot to take, including copying the image or even # highlighting an area to copy. scrotcucks on suicidewatch right now. +# variables +output="$(date '+%y%m%d-%H%M-%S').png" +xclip_cmd="xclip -sel clip -t image/png" + case "$(printf "a selected area\\ncurrent window\\nfull screen\\na selected area (copy)\\ncurrent window (copy)\\nfull screen (copy)" | dmenu -l 6 -i -p "Screenshot which area?")" in - "a selected area") maim -s pic-selected-"$(date '+%y%m%d-%H%M-%S').png" ;; - "current window") maim -i "$(xdotool getactivewindow)" pic-window-"$(date '+%y%m%d-%H%M-%S').png" ;; - "full screen") maim pic-full-"$(date '+%y%m%d-%H%M-%S').png" ;; - "a selected area (copy)") maim -s | xclip -selection clipboard -t image/png ;; - "current window (copy)") maim -i "$(xdotool getactivewindow)" | xclip -selection clipboard -t image/png ;; - "full screen (copy)") maim | xclip -selection clipboard -t image/png ;; + "a selected area") maim -s pic-selected-"${output}" ;; + "current window") maim -q -d 0.2 -i "$(xdotool getactivewindow)" pic-window-"${output}" ;; + "full screen") maim -q -d 0.2 pic-full-"${output}" ;; + "a selected area (copy)") maim -s | ${xclip_cmd} ;; + "current window (copy)") maim -q -d 0.2 -i "$(xdotool getactivewindow)" | ${xclip_cmd} ;; + "full screen (copy)") maim -q -d 0.2 | ${xclip_cmd} ;; esac From 09ca9e57acf3cbc568842b542379ec57a1184b2e Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 17 Jun 2022 12:36:14 -0400 Subject: [PATCH 010/175] Fix fzf select in lf (#1126) Without double quotes, fzf-select fails when selecting a file whose path contains whitespace. --- .config/lf/lfrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index f12d9c75..315ac3f7 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -94,7 +94,7 @@ cmd setbg "$1" cmd bulkrename $vidir # Bindings -map $lf -remote "send $id select '$(fzf)'" +map $lf -remote "send $id select \"$(fzf)\"" map J $lf -remote "send $id cd $(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf)" map gh map g top From f03efe97d9d01407691a940d8d6703ab82547bc6 Mon Sep 17 00:00:00 2001 From: Rokosun <79040025+futureisfoss@users.noreply.github.com> Date: Fri, 24 Jun 2022 03:35:02 +0000 Subject: [PATCH 011/175] fix bug in samedir script (#1127) samedir didn't work properly when the shell was opened inside lf using the w keybinding, now its fixed. --- .local/bin/samedir | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.local/bin/samedir b/.local/bin/samedir index 0a19707e..371ec648 100755 --- a/.local/bin/samedir +++ b/.local/bin/samedir @@ -4,7 +4,7 @@ PID=$(xprop -id "$(xprop -root | xprop -root | sed -n "/_NET_ACTIVE_WINDOW/ s/^.*# // p")" | sed -n "/PID/ s/^.*= // p") PID="$(pstree -lpA "$PID")" -PID="${PID##*(}" -PID="${PID%)}" +PID="${PID##*"${SHELL##*/}"(}" +PID="${PID%%)*}" cd "$(readlink /proc/"$PID"/cwd)" || return 1 "$TERMINAL" From c8a6455a67aa708c28f886c2d5f2cafe9336d283 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Mon, 27 Jun 2022 13:09:49 -0400 Subject: [PATCH 012/175] if no arg, assume xclip contents, no -c --- .local/bin/linkhandler | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/.local/bin/linkhandler b/.local/bin/linkhandler index a1c63948..cc971fc7 100755 --- a/.local/bin/linkhandler +++ b/.local/bin/linkhandler @@ -6,23 +6,21 @@ # if a music file or pdf, it will download, # otherwise it opens link in browser. -# If -c passed, read from clipboard -while getopts 'c' o; do case "${o}" in - c) set "$(xclip -o)";; -esac done +if [ -z "$1" ]; then + url="$(xclip -o)" +else + url="$1" +fi -# If no url given. Opens browser. For using script as $BROWSER. -[ -z "$1" ] && { "$BROWSER"; exit; } - -case "$1" in +case "$url" in *mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtu.be*|*hooktube.com*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*) - setsid -f mpv -quiet "$1" >/dev/null 2>&1 ;; + setsid -f mpv -quiet "$url" >/dev/null 2>&1 ;; *png|*jpg|*jpe|*jpeg|*gif) - curl -sL "$1" > "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" && sxiv -a "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; + curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && sxiv -a "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; *pdf|*cbz|*cbr) - curl -sL "$1" > "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" && zathura "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; + curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && zathura "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; *mp3|*flac|*opus|*mp3?source*) - qndl "$1" 'curl -LO' >/dev/null 2>&1 ;; + qndl "$url" 'curl -LO' >/dev/null 2>&1 ;; *) - [ -f "$1" ] && setsid -f "$TERMINAL" -e "$EDITOR" "$1" >/dev/null 2>&1 || setsid -f "$BROWSER" "$1" >/dev/null 2>&1 + [ -f "$url" ] && setsid -f "$TERMINAL" -e "$EDITOR" "$url" >/dev/null 2>&1 || setsid -f "$BROWSER" "$url" >/dev/null 2>&1 esac From a2827f76cbf4b290c8842e00d8885eb1ed5220b8 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Tue, 28 Jun 2022 16:41:36 -0400 Subject: [PATCH 013/175] don't use vimling --- .config/nvim/init.vim | 1 - 1 file changed, 1 deletion(-) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 5707eaea..913c4789 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -12,7 +12,6 @@ Plug 'tpope/vim-surround' Plug 'preservim/nerdtree' Plug 'junegunn/goyo.vim' Plug 'jreybert/vimagit' -Plug 'lukesmithxyz/vimling' Plug 'vimwiki/vimwiki' Plug 'vim-airline/vim-airline' Plug 'tpope/vim-commentary' From 395ec0d4007405cf7c177b369c58b942a7fd0f96 Mon Sep 17 00:00:00 2001 From: Secondarian <101978322+Secondarian@users.noreply.github.com> Date: Fri, 1 Jul 2022 23:26:58 +0200 Subject: [PATCH 014/175] Regions for Germany This lets you choose regions for Germany and get radar gifs from the national weather service instead of Sat24 which are way higher quality. --- .local/bin/statusbar/sb-doppler | 52 +++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/.local/bin/statusbar/sb-doppler b/.local/bin/statusbar/sb-doppler index dabf18b2..ca95bdfd 100755 --- a/.local/bin/statusbar/sb-doppler +++ b/.local/bin/statusbar/sb-doppler @@ -4,8 +4,29 @@ secs=600 # Download a new doppler radar if one hasn't been downloaded in $secs seconds. radarloc="${XDG_CACHE_HOME:-$HOME/.cache}/radar" +radarger="${XDG_CACHE_HOME:-$HOME/.cache}/radarger" doppler="${XDG_CACHE_HOME:-$HOME/.cache}/doppler.gif" +pickger() { chosenger="$(echo "BAW: Baden-Wรผrttemberg +BAY: Bavaria +BBB: Berlin +BBB: Brandenburg +HES: Hesse +MVP: Mecklenburg-Western Pomerania +NIB: Lower Saxony +NIB: Bremen +NRW: North Rhine-Westphalia +RPS: Rhineland-Palatinate +RPS: Saarland +SAC: Saxony +SAA: Saxony-Anhalt +SHH: Schleswig-Holstein +SHH: Hamburg +THU: Thuringia" | dmenu -r -i -l 50 -p "Select a radar to use as default:" | sed "s/:.*//" | tr "[:upper:]" "[:lower:]")" + +# Secondary sanity check of selection and ensure user did not escape for Germany. +echo "$chosenger" | grep -q "[a-z]" && echo "$chosenger" > "$radarger" ;} + pickloc() { chosen="$(echo "US: Northeast US: Southeast US: PacNorthWest @@ -229,20 +250,27 @@ continentcode=$(echo "$chosen" | sed "s/:.*//") radarcode=$(echo "$chosen" | sed "s/..: // ; s/:.*//") # Sanity check of selection and ensure user did not escape. -echo "$radarcode" | grep -q "^[A-Z]\+$" && printf "%s,%s\\n" "$continentcode" "$radarcode" > "$radarloc" ;} +echo "$radarcode" | grep -q "^[A-Z]\+$" && printf "%s,%s\\n" "$continentcode" "$radarcode" > "$radarloc" -getdoppler() { - cont="$(sed "s/,.*//" "$radarloc")" +# Prompts for choosing region if in Germany. +case $(cut -c 4- "$radarloc") in + DE) pickger ;; + *) ;; +esac ;} + +getdoppler() { cont="$(sed "s/,.*//" "$radarloc")" loc="$(cut -c 4- "$radarloc")" - notify-send "๐ŸŒฆ๏ธ Doppler RADAR" "Pulling most recent Doppler RADAR for $loc." - if [ "$cont" = "US" ] ; then - curl -sL "https://radar.weather.gov/ridge/lite/${loc}_loop.gif" > "$doppler" ; - elif [ "$cont" = "EU" ] ; then - curl -sL "https://api.sat24.com/animated/${loc}/rainTMC/2/" > "$doppler" ; - elif [ "$cont" = "AF" ] ; then - curl -sL "https://api.sat24.com/animated/${loc}/rain/2/" > "$doppler" ; - fi -} + notify-send "๐ŸŒฆ๏ธ Doppler RADAR" "Pulling most recent Doppler RADAR for $loc" + case $cont in + US) curl -sL "https://radar.weather.gov/ridge/lite/${loc}_loop.gif" > "$doppler" ;; + EU) case $loc in + DE) [ ! -f "$radarger" ] && pickger + ger="$(cat "$radarger")" + curl -sL "https://www.dwd.de/DWD/wetter/radar/radfilm_${ger}_akt.gif" > "$doppler" ;; + *) curl -sL "https://api.sat24.com/animated/${loc}/rainTMC/2/" > "$doppler" ;; + esac ;; + AF) curl -sL "https://api.sat24.com/animated/${loc}/rain/2/" > "$doppler" ;; + esac ;} showdoppler() { setsid -f mpv --no-osc --loop=inf --no-terminal "$doppler" ;} From f5725a6cd2bed5eec6a3295f626dcf8fcdf25349 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 1 Jul 2022 21:30:08 -0400 Subject: [PATCH 015/175] fix --- .local/bin/statusbar/sb-doppler | 73 +++++++++++++++------------------ 1 file changed, 32 insertions(+), 41 deletions(-) diff --git a/.local/bin/statusbar/sb-doppler b/.local/bin/statusbar/sb-doppler index ca95bdfd..91ec3106 100755 --- a/.local/bin/statusbar/sb-doppler +++ b/.local/bin/statusbar/sb-doppler @@ -4,29 +4,8 @@ secs=600 # Download a new doppler radar if one hasn't been downloaded in $secs seconds. radarloc="${XDG_CACHE_HOME:-$HOME/.cache}/radar" -radarger="${XDG_CACHE_HOME:-$HOME/.cache}/radarger" doppler="${XDG_CACHE_HOME:-$HOME/.cache}/doppler.gif" -pickger() { chosenger="$(echo "BAW: Baden-Wรผrttemberg -BAY: Bavaria -BBB: Berlin -BBB: Brandenburg -HES: Hesse -MVP: Mecklenburg-Western Pomerania -NIB: Lower Saxony -NIB: Bremen -NRW: North Rhine-Westphalia -RPS: Rhineland-Palatinate -RPS: Saarland -SAC: Saxony -SAA: Saxony-Anhalt -SHH: Schleswig-Holstein -SHH: Hamburg -THU: Thuringia" | dmenu -r -i -l 50 -p "Select a radar to use as default:" | sed "s/:.*//" | tr "[:upper:]" "[:lower:]")" - -# Secondary sanity check of selection and ensure user did not escape for Germany. -echo "$chosenger" | grep -q "[a-z]" && echo "$chosenger" > "$radarger" ;} - pickloc() { chosen="$(echo "US: Northeast US: Southeast US: PacNorthWest @@ -243,34 +222,46 @@ AF: TZ: Tanzania AF: TN: Tunisia AF: ZM: Zambia AF: KE: Kenya -AF: AO: Angola" | dmenu -r -i -l 50 -p "Select a radar to use as default:" | tr "[:lower:]" "[:upper:]")" +AF: AO: Angola +DE: BAW: Baden-Wรผrttemberg +DE: BAY: Bavaria +DE: BBB: Berlin +DE: BBB: Brandenburg +DE: HES: Hesse +DE: MVP: Mecklenburg-Western Pomerania +DE: NIB: Lower Saxony +DE: NIB: Bremen +DE: NRW: North Rhine-Westphalia +DE: RPS: Rhineland-Palatinate +DE: RPS: Saarland +DE: SAC: Saxony +DE: SAA: Saxony-Anhalt +DE: SHH: Schleswig-Holstein +DE: SHH: Hamburg +DE: THU: Thuringia" | dmenu -r -i -l 50 -p "Select a radar to use as default:" | tr "[:lower:]" "[:upper:]")" # Set continent code and radar code. continentcode=$(echo "$chosen" | sed "s/:.*//") radarcode=$(echo "$chosen" | sed "s/..: // ; s/:.*//") # Sanity check of selection and ensure user did not escape. -echo "$radarcode" | grep -q "^[A-Z]\+$" && printf "%s,%s\\n" "$continentcode" "$radarcode" > "$radarloc" +echo "$radarcode" | grep -q "^[A-Z]\+$" && printf "%s,%s\\n" "$continentcode" "$radarcode" > "$radarloc" ;} -# Prompts for choosing region if in Germany. -case $(cut -c 4- "$radarloc") in - DE) pickger ;; - *) ;; -esac ;} - -getdoppler() { cont="$(sed "s/,.*//" "$radarloc")" +getdoppler() { + cont="$(sed "s/,.*//" "$radarloc")" loc="$(cut -c 4- "$radarloc")" - notify-send "๐ŸŒฆ๏ธ Doppler RADAR" "Pulling most recent Doppler RADAR for $loc" - case $cont in - US) curl -sL "https://radar.weather.gov/ridge/lite/${loc}_loop.gif" > "$doppler" ;; - EU) case $loc in - DE) [ ! -f "$radarger" ] && pickger - ger="$(cat "$radarger")" - curl -sL "https://www.dwd.de/DWD/wetter/radar/radfilm_${ger}_akt.gif" > "$doppler" ;; - *) curl -sL "https://api.sat24.com/animated/${loc}/rainTMC/2/" > "$doppler" ;; - esac ;; - AF) curl -sL "https://api.sat24.com/animated/${loc}/rain/2/" > "$doppler" ;; - esac ;} + notify-send "๐ŸŒฆ๏ธ Doppler RADAR" "Pulling most recent Doppler RADAR for $loc." + if [ "$cont" = "US" ] ; then + curl -sL "https://radar.weather.gov/ridge/lite/${loc}_loop.gif" > "$doppler" ; + elif [ "$cont" = "EU" ] ; then + curl -sL "https://api.sat24.com/animated/${loc}/rainTMC/2/" > "$doppler" ; + elif [ "$cont" = "AF" ] ; then + curl -sL "https://api.sat24.com/animated/${loc}/rain/2/" > "$doppler" ; + elif [ "$cont" = "DE" ] ; then + loc="$(echo "$loc" | tr "[:upper:]" "[:lower:]")" + curl -sL "https://www.dwd.de/DWD/wetter/radar/radfilm_${loc}_akt.gif" > "$doppler" ; + fi +} showdoppler() { setsid -f mpv --no-osc --loop=inf --no-terminal "$doppler" ;} From e1a2dfccb0f432ac5dd25f478e6b9f4f309b0ada Mon Sep 17 00:00:00 2001 From: JC Date: Sat, 2 Jul 2022 20:48:05 +0100 Subject: [PATCH 016/175] Switch pipewire session manager to wireplumber (#1133) --- .config/pipewire/pipewire.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.config/pipewire/pipewire.conf b/.config/pipewire/pipewire.conf index ae5c76e9..2cc2cda5 100644 --- a/.config/pipewire/pipewire.conf +++ b/.config/pipewire/pipewire.conf @@ -236,12 +236,12 @@ context.exec = [ # but it is better to start it as a systemd service. # Run the session manager with -h for options. # - { path = "/usr/bin/pipewire-media-session" args = "" } + { path = "/usr/bin/wireplumber" args = "" } # # You can optionally start the pulseaudio-server here as well # but it is better to start it as a systemd service. # It can be interesting to start another daemon here that listens # on another address with the -a option (eg. -a tcp:4713). # - { path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" } + { path = "/usr/bin/wireplumber" args = "-c pipewire-pulse.conf" } ] From 688ea20708534d7f37a69f5b3adbc6cb90821d7c Mon Sep 17 00:00:00 2001 From: pony-montana <96387969+pony-montana@users.noreply.github.com> Date: Mon, 4 Jul 2022 04:27:18 +0200 Subject: [PATCH 017/175] fix wireplumber (#1134) As we see in the docs here: https://pipewire.pages.freedesktop.org/wireplumber/running-wireplumber-daemon.html#pipewire-conf we need to start wireplumber in replace of the old media session, not "wireplumber as server". (This is my first hecking commit ever !!!!!!!!!) --- .config/pipewire/pipewire.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/pipewire/pipewire.conf b/.config/pipewire/pipewire.conf index 2cc2cda5..b8a36725 100644 --- a/.config/pipewire/pipewire.conf +++ b/.config/pipewire/pipewire.conf @@ -243,5 +243,5 @@ context.exec = [ # It can be interesting to start another daemon here that listens # on another address with the -a option (eg. -a tcp:4713). # - { path = "/usr/bin/wireplumber" args = "-c pipewire-pulse.conf" } + { path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" } ] From f25687ad7841b85b02b06555163ad6c409ec8af0 Mon Sep 17 00:00:00 2001 From: i-c-u-p <96894903+i-c-u-p@users.noreply.github.com> Date: Tue, 5 Jul 2022 21:40:16 +0000 Subject: [PATCH 018/175] change if statement to case (#1137) --- .local/bin/statusbar/sb-doppler | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/.local/bin/statusbar/sb-doppler b/.local/bin/statusbar/sb-doppler index 91ec3106..26d37b44 100755 --- a/.local/bin/statusbar/sb-doppler +++ b/.local/bin/statusbar/sb-doppler @@ -251,16 +251,13 @@ getdoppler() { cont="$(sed "s/,.*//" "$radarloc")" loc="$(cut -c 4- "$radarloc")" notify-send "๐ŸŒฆ๏ธ Doppler RADAR" "Pulling most recent Doppler RADAR for $loc." - if [ "$cont" = "US" ] ; then - curl -sL "https://radar.weather.gov/ridge/lite/${loc}_loop.gif" > "$doppler" ; - elif [ "$cont" = "EU" ] ; then - curl -sL "https://api.sat24.com/animated/${loc}/rainTMC/2/" > "$doppler" ; - elif [ "$cont" = "AF" ] ; then - curl -sL "https://api.sat24.com/animated/${loc}/rain/2/" > "$doppler" ; - elif [ "$cont" = "DE" ] ; then - loc="$(echo "$loc" | tr "[:upper:]" "[:lower:]")" - curl -sL "https://www.dwd.de/DWD/wetter/radar/radfilm_${loc}_akt.gif" > "$doppler" ; - fi + case "$cont" in + "US") curl -sL "https://radar.weather.gov/ridge/lite/${loc}_loop.gif" > "$doppler" ;; + "EU") curl -sL "https://api.sat24.com/animated/${loc}/rainTMC/2/" > "$doppler" ;; + "AF") curl -sL "https://api.sat24.com/animated/${loc}/rain/2/" > "$doppler" ;; + "DE") loc="$(echo "$loc" | tr "[:upper:]" "[:lower:]")" + curl -sL "https://www.dwd.de/DWD/wetter/radar/radfilm_${loc}_akt.gif" > "$doppler" ;; + esac } showdoppler() { setsid -f mpv --no-osc --loop=inf --no-terminal "$doppler" ;} From c20acc474f7054f65c6ee410c0e26dcbcfc89927 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Wed, 6 Jul 2022 18:09:17 +0200 Subject: [PATCH 019/175] Little optimizations (#1138) --- .local/bin/statusbar/sb-doppler | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/.local/bin/statusbar/sb-doppler b/.local/bin/statusbar/sb-doppler index 26d37b44..b5833a7b 100755 --- a/.local/bin/statusbar/sb-doppler +++ b/.local/bin/statusbar/sb-doppler @@ -240,18 +240,21 @@ DE: SHH: Schleswig-Holstein DE: SHH: Hamburg DE: THU: Thuringia" | dmenu -r -i -l 50 -p "Select a radar to use as default:" | tr "[:lower:]" "[:upper:]")" -# Set continent code and radar code. -continentcode=$(echo "$chosen" | sed "s/:.*//") -radarcode=$(echo "$chosen" | sed "s/..: // ; s/:.*//") +# Ensure user did not escape. +[ -z "$chosen" ] && exit 1 -# Sanity check of selection and ensure user did not escape. -echo "$radarcode" | grep -q "^[A-Z]\+$" && printf "%s,%s\\n" "$continentcode" "$radarcode" > "$radarloc" ;} +# Set continent code and radar code. +continentcode=${chosen%%:*} +radarcode=${chosen#* } radarcode=${radarcode%:*} + +# Print codes to $radarloc file. + printf "%s,%s\\n" "$continentcode" "$radarcode" > "$radarloc" ;} getdoppler() { - cont="$(sed "s/,.*//" "$radarloc")" - loc="$(cut -c 4- "$radarloc")" + cont=$(cut -c -2 "$radarloc") + loc=$(cut -c 4- "$radarloc") notify-send "๐ŸŒฆ๏ธ Doppler RADAR" "Pulling most recent Doppler RADAR for $loc." - case "$cont" in + case "$cont" in "US") curl -sL "https://radar.weather.gov/ridge/lite/${loc}_loop.gif" > "$doppler" ;; "EU") curl -sL "https://api.sat24.com/animated/${loc}/rainTMC/2/" > "$doppler" ;; "AF") curl -sL "https://api.sat24.com/animated/${loc}/rain/2/" > "$doppler" ;; From f1e68ed533d4cd31996f9cfb0efc3be4ec4f3ff1 Mon Sep 17 00:00:00 2001 From: Rainer Wittmaack Date: Thu, 7 Jul 2022 08:32:34 -0500 Subject: [PATCH 020/175] move weatherreport to $XDG_CACHE_HOME (#1140) --- .local/bin/statusbar/sb-forecast | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/statusbar/sb-forecast b/.local/bin/statusbar/sb-forecast index 7b8416ec..45584c52 100755 --- a/.local/bin/statusbar/sb-forecast +++ b/.local/bin/statusbar/sb-forecast @@ -6,7 +6,7 @@ # If we have internet, get a weather report from wttr.in and store it locally. # You could set up a shell alias to view the full file in a pager in the # terminal if desired. This function will only be run once a day when needed. -weatherreport="${XDG_DATA_HOME:-$HOME/.local/share}/weatherreport" +weatherreport="${XDG_CACHE_HOME:-$HOME/.cache}/weatherreport" getforecast() { curl -sf "wttr.in/$LOCATION" > "$weatherreport" || exit 1 ;} # Some very particular and terse stream manipulation. We get the maximum From 9cfdaf901d27766bbcddbcf685fd3052c9617483 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 8 Jul 2022 13:01:53 -0400 Subject: [PATCH 021/175] add font-awesome material if available --- .config/fontconfig/fonts.conf | 4 + .local/bin/dmenuunicode | 2 +- .local/share/larbs/chars/emoji | 1630 +++++++++++++++++++++++++ .local/share/larbs/chars/font-awesome | 1456 ++++++++++++++++++++++ 4 files changed, 3091 insertions(+), 1 deletion(-) create mode 100644 .local/share/larbs/chars/emoji create mode 100644 .local/share/larbs/chars/font-awesome diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf index be47e011..d7efc385 100755 --- a/.config/fontconfig/fonts.conf +++ b/.config/fontconfig/fonts.conf @@ -7,6 +7,7 @@ Linux Libertine Joy Pixels Noto Color Emoji + FontAwesome @@ -15,6 +16,7 @@ Linux Biolinum Joy Pixels Noto Color Emoji + FontAwesome @@ -23,6 +25,7 @@ Linux Biolinum Joy Pixels Noto Color Emoji + FontAwesome @@ -30,6 +33,7 @@ Noto Sans Mono Liberation Mono + FontAwesome Braille diff --git a/.local/bin/dmenuunicode b/.local/bin/dmenuunicode index 7d9a4ea6..704c8098 100755 --- a/.local/bin/dmenuunicode +++ b/.local/bin/dmenuunicode @@ -3,7 +3,7 @@ # The famous "get a menu of emojis to copy" script. # Get user selection via dmenu from emoji file. -chosen=$(cut -d ';' -f1 ~/.local/share/larbs/emoji | dmenu -i -l 30 | sed "s/ .*//") +chosen=$(cut -d ';' -f1 ~/.local/share/larbs/chars/* | dmenu -i -l 30 | sed "s/ .*//") # Exit if none chosen. [ -z "$chosen" ] && exit diff --git a/.local/share/larbs/chars/emoji b/.local/share/larbs/chars/emoji new file mode 100644 index 00000000..6803731f --- /dev/null +++ b/.local/share/larbs/chars/emoji @@ -0,0 +1,1630 @@ +๐Ÿ˜€ grinning face +๐Ÿ˜ƒ grinning face with big eyes +๐Ÿ˜„ grinning face with smiling eyes +๐Ÿ˜ beaming face with smiling eyes +๐Ÿ˜† grinning squinting face +๐Ÿ˜… grinning face with sweat +๐Ÿคฃ rolling on the floor laughing +๐Ÿ˜‚ face with tears of joy +๐Ÿ™‚ slightly smiling face +๐Ÿ™ƒ upside-down face +๐Ÿซ  melting face +๐Ÿ˜‰ winking face +๐Ÿ˜Š smiling face with smiling eyes +๐Ÿ˜‡ smiling face with halo +๐Ÿฅฐ smiling face with hearts +๐Ÿ˜ smiling face with heart-eyes +๐Ÿคฉ star-struck +๐Ÿ˜˜ face blowing a kiss +๐Ÿ˜— kissing face +โ˜บ๏ธ smiling face +๐Ÿ˜š kissing face with closed eyes +๐Ÿ˜™ kissing face with smiling eyes +๐Ÿฅฒ smiling face with tear +๐Ÿ˜‹ face savoring food +๐Ÿ˜› face with tongue +๐Ÿ˜œ winking face with tongue +๐Ÿคช zany face +๐Ÿ˜ squinting face with tongue +๐Ÿค‘ money-mouth face +๐Ÿค— smiling face with open hands +๐Ÿคญ face with hand over mouth +๐Ÿซข face with open eyes and hand over mouth +๐Ÿซฃ face with peeking eye +๐Ÿคซ shushing face +๐Ÿค” thinking face +๐Ÿซก saluting face +๐Ÿค zipper-mouth face +๐Ÿคจ face with raised eyebrow +๐Ÿ˜ neutral face +๐Ÿ˜‘ expressionless face +๐Ÿ˜ถ face without mouth +๐Ÿซฅ dotted line face +๐Ÿ˜ smirking face +๐Ÿ˜’ unamused face +๐Ÿ™„ face with rolling eyes +๐Ÿ˜ฌ grimacing face +๐Ÿคฅ lying face +๐Ÿ˜Œ relieved face +๐Ÿ˜” pensive face +๐Ÿ˜ช sleepy face +๐Ÿคค drooling face +๐Ÿ˜ด sleeping face +๐Ÿ˜ท face with medical mask +๐Ÿค’ face with thermometer +๐Ÿค• face with head-bandage +๐Ÿคข nauseated face +๐Ÿคฎ face vomiting +๐Ÿคง sneezing face +๐Ÿฅต hot face +๐Ÿฅถ cold face +๐Ÿฅด woozy face +๐Ÿ˜ต face with crossed-out eyes +๐Ÿคฏ exploding head +๐Ÿค  cowboy hat face +๐Ÿฅณ partying face +๐Ÿฅธ disguised face +๐Ÿ˜Ž smiling face with sunglasses +๐Ÿค“ nerd face +๐Ÿง face with monocle +๐Ÿ˜• confused face +๐Ÿซค face with diagonal mouth +๐Ÿ˜Ÿ worried face +๐Ÿ™ slightly frowning face +โ˜น๏ธ frowning face +๐Ÿ˜ฎ face with open mouth +๐Ÿ˜ฏ hushed face +๐Ÿ˜ฒ astonished face +๐Ÿ˜ณ flushed face +๐Ÿฅบ pleading face +๐Ÿฅน face holding back tears +๐Ÿ˜ฆ frowning face with open mouth +๐Ÿ˜ง anguished face +๐Ÿ˜จ fearful face +๐Ÿ˜ฐ anxious face with sweat +๐Ÿ˜ฅ sad but relieved face +๐Ÿ˜ข crying face +๐Ÿ˜ญ loudly crying face +๐Ÿ˜ฑ face screaming in fear +๐Ÿ˜– confounded face +๐Ÿ˜ฃ persevering face +๐Ÿ˜ž disappointed face +๐Ÿ˜“ downcast face with sweat +๐Ÿ˜ฉ weary face +๐Ÿ˜ซ tired face +๐Ÿฅฑ yawning face +๐Ÿ˜ค face with steam from nose +๐Ÿ˜ก pouting face +๐Ÿ˜  angry face +๐Ÿคฌ face with symbols on mouth +๐Ÿ˜ˆ smiling face with horns +๐Ÿ‘ฟ angry face with horns +๐Ÿ’€ skull +โ˜ ๏ธ skull and crossbones +๐Ÿ’ฉ pile of poo +๐Ÿคก clown face +๐Ÿ‘น ogre +๐Ÿ‘บ goblin +๐Ÿ‘ป ghost +๐Ÿ‘ฝ alien +๐Ÿ‘พ alien monster +๐Ÿค– robot +๐Ÿ˜บ grinning cat +๐Ÿ˜ธ grinning cat with smiling eyes +๐Ÿ˜น cat with tears of joy +๐Ÿ˜ป smiling cat with heart-eyes +๐Ÿ˜ผ cat with wry smile +๐Ÿ˜ฝ kissing cat +๐Ÿ™€ weary cat +๐Ÿ˜ฟ crying cat +๐Ÿ˜พ pouting cat +๐Ÿ™ˆ see-no-evil monkey +๐Ÿ™‰ hear-no-evil monkey +๐Ÿ™Š speak-no-evil monkey +๐Ÿ’‹ kiss mark +๐Ÿ’Œ love letter +๐Ÿ’˜ heart with arrow +๐Ÿ’ heart with ribbon +๐Ÿ’– sparkling heart +๐Ÿ’— growing heart +๐Ÿ’“ beating heart +๐Ÿ’ž revolving hearts +๐Ÿ’• two hearts +๐Ÿ’Ÿ heart decoration +โฃ๏ธ heart exclamation +๐Ÿ’” broken heart +โค๏ธ red heart +๐Ÿงก orange heart +๐Ÿ’› yellow heart +๐Ÿ’š green heart +๐Ÿ’™ blue heart +๐Ÿ’œ purple heart +๐ŸคŽ brown heart +๐Ÿ–ค black heart +๐Ÿค white heart +๐Ÿ’ฏ hundred points +๐Ÿ’ข anger symbol +๐Ÿ’ฅ collision +๐Ÿ’ซ dizzy +๐Ÿ’ฆ sweat droplets +๐Ÿ’จ dashing away +๐Ÿ•ณ๏ธ hole +๐Ÿ’ฃ bomb +๐Ÿ’ฌ speech balloon +๐Ÿ—จ๏ธ left speech bubble +๐Ÿ—ฏ๏ธ right anger bubble +๐Ÿ’ญ thought balloon +๐Ÿ’ค zzz +๐Ÿ‘‹ waving hand +๐Ÿคš raised back of hand +๐Ÿ–๏ธ hand with fingers splayed +โœ‹ raised hand +๐Ÿ–– vulcan salute +๐Ÿซฑ rightwards hand +๐Ÿซฒ leftwards hand +๐Ÿซณ palm down hand +๐Ÿซด palm up hand +๐Ÿ‘Œ OK hand +๐ŸคŒ pinched fingers +๐Ÿค pinching hand +โœŒ๏ธ victory hand +๐Ÿคž crossed fingers +๐Ÿซฐ hand with index finger and thumb crossed +๐ŸคŸ love-you gesture +๐Ÿค˜ sign of the horns +๐Ÿค™ call me hand +๐Ÿ‘ˆ backhand index pointing left +๐Ÿ‘‰ backhand index pointing right +๐Ÿ‘† backhand index pointing up +๐Ÿ–• middle finger +๐Ÿ‘‡ backhand index pointing down +โ˜๏ธ index pointing up +๐Ÿซต index pointing at the viewer +๐Ÿ‘ thumbs up +๐Ÿ‘Ž thumbs down +โœŠ raised fist +๐Ÿ‘Š oncoming fist +๐Ÿค› left-facing fist +๐Ÿคœ right-facing fist +๐Ÿ‘ clapping hands +๐Ÿ™Œ raising hands +๐Ÿซถ heart hands +๐Ÿ‘ open hands +๐Ÿคฒ palms up together +๐Ÿค handshake +๐Ÿ™ folded hands +โœ๏ธ writing hand +๐Ÿ’… nail polish +๐Ÿคณ selfie +๐Ÿ’ช flexed biceps +๐Ÿฆพ mechanical arm +๐Ÿฆฟ mechanical leg +๐Ÿฆต leg +๐Ÿฆถ foot +๐Ÿ‘‚ ear +๐Ÿฆป ear with hearing aid +๐Ÿ‘ƒ nose +๐Ÿง  brain +๐Ÿซ€ anatomical heart +๐Ÿซ lungs +๐Ÿฆท tooth +๐Ÿฆด bone +๐Ÿ‘€ eyes +๐Ÿ‘๏ธ eye +๐Ÿ‘… tongue +๐Ÿ‘„ mouth +๐Ÿซฆ biting lip +๐Ÿ‘ถ baby +๐Ÿง’ child +๐Ÿ‘ฆ boy +๐Ÿ‘ง girl +๐Ÿง‘ person +๐Ÿ‘ฑ person: blond hair +๐Ÿ‘จ man +๐Ÿง” person: beard +๐Ÿ‘ฉ woman +๐Ÿง“ older person +๐Ÿ‘ด old man +๐Ÿ‘ต old woman +๐Ÿ™ person frowning +๐Ÿ™Ž person pouting +๐Ÿ™… person gesturing NO +๐Ÿ™† person gesturing OK +๐Ÿ’ person tipping hand +๐Ÿ™‹ person raising hand +๐Ÿง deaf person +๐Ÿ™‡ person bowing +๐Ÿคฆ person facepalming +๐Ÿคท person shrugging +๐Ÿ‘ฎ police officer +๐Ÿ•ต๏ธ detective +๐Ÿ’‚ guard +๐Ÿฅท ninja +๐Ÿ‘ท construction worker +๐Ÿซ… person with crown +๐Ÿคด prince +๐Ÿ‘ธ princess +๐Ÿ‘ณ person wearing turban +๐Ÿ‘ฒ person with skullcap +๐Ÿง• woman with headscarf +๐Ÿคต person in tuxedo +๐Ÿ‘ฐ person with veil +๐Ÿคฐ pregnant woman +๐Ÿซƒ pregnant man +๐Ÿซ„ pregnant person +๐Ÿคฑ breast-feeding +๐Ÿ‘ผ baby angel +๐ŸŽ… Santa Claus +๐Ÿคถ Mrs. Claus +๐Ÿฆธ superhero +๐Ÿฆน supervillain +๐Ÿง™ mage +๐Ÿงš fairy +๐Ÿง› vampire +๐Ÿงœ merperson +๐Ÿง elf +๐Ÿงž genie +๐ŸงŸ zombie +๐ŸงŒ troll +๐Ÿ’† person getting massage +๐Ÿ’‡ person getting haircut +๐Ÿšถ person walking +๐Ÿง person standing +๐ŸงŽ person kneeling +๐Ÿƒ person running +๐Ÿ’ƒ woman dancing +๐Ÿ•บ man dancing +๐Ÿ•ด๏ธ person in suit levitating +๐Ÿ‘ฏ people with bunny ears +๐Ÿง– person in steamy room +๐Ÿง— person climbing +๐Ÿคบ person fencing +๐Ÿ‡ horse racing +โ›ท๏ธ skier +๐Ÿ‚ snowboarder +๐ŸŒ๏ธ person golfing +๐Ÿ„ person surfing +๐Ÿšฃ person rowing boat +๐ŸŠ person swimming +โ›น๏ธ person bouncing ball +๐Ÿ‹๏ธ person lifting weights +๐Ÿšด person biking +๐Ÿšต person mountain biking +๐Ÿคธ person cartwheeling +๐Ÿคผ people wrestling +๐Ÿคฝ person playing water polo +๐Ÿคพ person playing handball +๐Ÿคน person juggling +๐Ÿง˜ person in lotus position +๐Ÿ›€ person taking bath +๐Ÿ›Œ person in bed +๐Ÿ‘ญ women holding hands +๐Ÿ‘ซ woman and man holding hands +๐Ÿ‘ฌ men holding hands +๐Ÿ’ kiss +๐Ÿ’‘ couple with heart +๐Ÿ‘ช family +๐Ÿ—ฃ๏ธ speaking head +๐Ÿ‘ค bust in silhouette +๐Ÿ‘ฅ busts in silhouette +๐Ÿซ‚ people hugging +๐Ÿ‘ฃ footprints +๐Ÿต monkey face +๐Ÿ’ monkey +๐Ÿฆ gorilla +๐Ÿฆง orangutan +๐Ÿถ dog face +๐Ÿ• dog +๐Ÿฆฎ guide dog +๐Ÿฉ poodle +๐Ÿบ wolf +๐ŸฆŠ fox +๐Ÿฆ raccoon +๐Ÿฑ cat face +๐Ÿˆ cat +๐Ÿฆ lion +๐Ÿฏ tiger face +๐Ÿ… tiger +๐Ÿ† leopard +๐Ÿด horse face +๐ŸŽ horse +๐Ÿฆ„ unicorn +๐Ÿฆ“ zebra +๐ŸฆŒ deer +๐Ÿฆฌ bison +๐Ÿฎ cow face +๐Ÿ‚ ox +๐Ÿƒ water buffalo +๐Ÿ„ cow +๐Ÿท pig face +๐Ÿ– pig +๐Ÿ— boar +๐Ÿฝ pig nose +๐Ÿ ram +๐Ÿ‘ ewe +๐Ÿ goat +๐Ÿช camel +๐Ÿซ two-hump camel +๐Ÿฆ™ llama +๐Ÿฆ’ giraffe +๐Ÿ˜ elephant +๐Ÿฆฃ mammoth +๐Ÿฆ rhinoceros +๐Ÿฆ› hippopotamus +๐Ÿญ mouse face +๐Ÿ mouse +๐Ÿ€ rat +๐Ÿน hamster +๐Ÿฐ rabbit face +๐Ÿ‡ rabbit +๐Ÿฟ๏ธ chipmunk +๐Ÿฆซ beaver +๐Ÿฆ” hedgehog +๐Ÿฆ‡ bat +๐Ÿป bear +๐Ÿจ koala +๐Ÿผ panda +๐Ÿฆฅ sloth +๐Ÿฆฆ otter +๐Ÿฆจ skunk +๐Ÿฆ˜ kangaroo +๐Ÿฆก badger +๐Ÿพ paw prints +๐Ÿฆƒ turkey +๐Ÿ” chicken +๐Ÿ“ rooster +๐Ÿฃ hatching chick +๐Ÿค baby chick +๐Ÿฅ front-facing baby chick +๐Ÿฆ bird +๐Ÿง penguin +๐Ÿ•Š๏ธ dove +๐Ÿฆ… eagle +๐Ÿฆ† duck +๐Ÿฆข swan +๐Ÿฆ‰ owl +๐Ÿฆค dodo +๐Ÿชถ feather +๐Ÿฆฉ flamingo +๐Ÿฆš peacock +๐Ÿฆœ parrot +๐Ÿธ frog +๐ŸŠ crocodile +๐Ÿข turtle +๐ŸฆŽ lizard +๐Ÿ snake +๐Ÿฒ dragon face +๐Ÿ‰ dragon +๐Ÿฆ• sauropod +๐Ÿฆ– T-Rex +๐Ÿณ spouting whale +๐Ÿ‹ whale +๐Ÿฌ dolphin +๐Ÿฆญ seal +๐ŸŸ fish +๐Ÿ  tropical fish +๐Ÿก blowfish +๐Ÿฆˆ shark +๐Ÿ™ octopus +๐Ÿš spiral shell +๐Ÿชธ coral +๐ŸŒ snail +๐Ÿฆ‹ butterfly +๐Ÿ› bug +๐Ÿœ ant +๐Ÿ honeybee +๐Ÿชฒ beetle +๐Ÿž lady beetle +๐Ÿฆ— cricket +๐Ÿชณ cockroach +๐Ÿ•ท๏ธ spider +๐Ÿ•ธ๏ธ spider web +๐Ÿฆ‚ scorpion +๐ŸฆŸ mosquito +๐Ÿชฐ fly +๐Ÿชฑ worm +๐Ÿฆ  microbe +๐Ÿ’ bouquet +๐ŸŒธ cherry blossom +๐Ÿ’ฎ white flower +๐Ÿชท lotus +๐Ÿต๏ธ rosette +๐ŸŒน rose +๐Ÿฅ€ wilted flower +๐ŸŒบ hibiscus +๐ŸŒป sunflower +๐ŸŒผ blossom +๐ŸŒท tulip +๐ŸŒฑ seedling +๐Ÿชด potted plant +๐ŸŒฒ evergreen tree +๐ŸŒณ deciduous tree +๐ŸŒด palm tree +๐ŸŒต cactus +๐ŸŒพ sheaf of rice +๐ŸŒฟ herb +โ˜˜๏ธ shamrock +๐Ÿ€ four leaf clover +๐Ÿ maple leaf +๐Ÿ‚ fallen leaf +๐Ÿƒ leaf fluttering in wind +๐Ÿชน empty nest +๐Ÿชบ nest with eggs +๐Ÿ‡ grapes +๐Ÿˆ melon +๐Ÿ‰ watermelon +๐ŸŠ tangerine +๐Ÿ‹ lemon +๐ŸŒ banana +๐Ÿ pineapple +๐Ÿฅญ mango +๐ŸŽ red apple +๐Ÿ green apple +๐Ÿ pear +๐Ÿ‘ peach +๐Ÿ’ cherries +๐Ÿ“ strawberry +๐Ÿซ blueberries +๐Ÿฅ kiwi fruit +๐Ÿ… tomato +๐Ÿซ’ olive +๐Ÿฅฅ coconut +๐Ÿฅ‘ avocado +๐Ÿ† eggplant +๐Ÿฅ” potato +๐Ÿฅ• carrot +๐ŸŒฝ ear of corn +๐ŸŒถ๏ธ hot pepper +๐Ÿซ‘ bell pepper +๐Ÿฅ’ cucumber +๐Ÿฅฌ leafy green +๐Ÿฅฆ broccoli +๐Ÿง„ garlic +๐Ÿง… onion +๐Ÿ„ mushroom +๐Ÿฅœ peanuts +๐Ÿซ˜ beans +๐ŸŒฐ chestnut +๐Ÿž bread +๐Ÿฅ croissant +๐Ÿฅ– baguette bread +๐Ÿซ“ flatbread +๐Ÿฅจ pretzel +๐Ÿฅฏ bagel +๐Ÿฅž pancakes +๐Ÿง‡ waffle +๐Ÿง€ cheese wedge +๐Ÿ– meat on bone +๐Ÿ— poultry leg +๐Ÿฅฉ cut of meat +๐Ÿฅ“ bacon +๐Ÿ” hamburger +๐ŸŸ french fries +๐Ÿ• pizza +๐ŸŒญ hot dog +๐Ÿฅช sandwich +๐ŸŒฎ taco +๐ŸŒฏ burrito +๐Ÿซ” tamale +๐Ÿฅ™ stuffed flatbread +๐Ÿง† falafel +๐Ÿฅš egg +๐Ÿณ cooking +๐Ÿฅ˜ shallow pan of food +๐Ÿฒ pot of food +๐Ÿซ• fondue +๐Ÿฅฃ bowl with spoon +๐Ÿฅ— green salad +๐Ÿฟ popcorn +๐Ÿงˆ butter +๐Ÿง‚ salt +๐Ÿฅซ canned food +๐Ÿฑ bento box +๐Ÿ˜ rice cracker +๐Ÿ™ rice ball +๐Ÿš cooked rice +๐Ÿ› curry rice +๐Ÿœ steaming bowl +๐Ÿ spaghetti +๐Ÿ  roasted sweet potato +๐Ÿข oden +๐Ÿฃ sushi +๐Ÿค fried shrimp +๐Ÿฅ fish cake with swirl +๐Ÿฅฎ moon cake +๐Ÿก dango +๐ŸฅŸ dumpling +๐Ÿฅ  fortune cookie +๐Ÿฅก takeout box +๐Ÿฆ€ crab +๐Ÿฆž lobster +๐Ÿฆ shrimp +๐Ÿฆ‘ squid +๐Ÿฆช oyster +๐Ÿฆ soft ice cream +๐Ÿง shaved ice +๐Ÿจ ice cream +๐Ÿฉ doughnut +๐Ÿช cookie +๐ŸŽ‚ birthday cake +๐Ÿฐ shortcake +๐Ÿง cupcake +๐Ÿฅง pie +๐Ÿซ chocolate bar +๐Ÿฌ candy +๐Ÿญ lollipop +๐Ÿฎ custard +๐Ÿฏ honey pot +๐Ÿผ baby bottle +๐Ÿฅ› glass of milk +โ˜• hot beverage +๐Ÿซ– teapot +๐Ÿต teacup without handle +๐Ÿถ sake +๐Ÿพ bottle with popping cork +๐Ÿท wine glass +๐Ÿธ cocktail glass +๐Ÿน tropical drink +๐Ÿบ beer mug +๐Ÿป clinking beer mugs +๐Ÿฅ‚ clinking glasses +๐Ÿฅƒ tumbler glass +๐Ÿซ— pouring liquid +๐Ÿฅค cup with straw +๐Ÿง‹ bubble tea +๐Ÿงƒ beverage box +๐Ÿง‰ mate +๐ŸงŠ ice +๐Ÿฅข chopsticks +๐Ÿฝ๏ธ fork and knife with plate +๐Ÿด fork and knife +๐Ÿฅ„ spoon +๐Ÿ”ช kitchen knife +๐Ÿซ™ jar +๐Ÿบ amphora +๐ŸŒ globe showing Europe-Africa +๐ŸŒŽ globe showing Americas +๐ŸŒ globe showing Asia-Australia +๐ŸŒ globe with meridians +๐Ÿ—บ๏ธ world map +๐Ÿ—พ map of Japan +๐Ÿงญ compass +๐Ÿ”๏ธ snow-capped mountain +โ›ฐ๏ธ mountain +๐ŸŒ‹ volcano +๐Ÿ—ป mount fuji +๐Ÿ•๏ธ camping +๐Ÿ–๏ธ beach with umbrella +๐Ÿœ๏ธ desert +๐Ÿ๏ธ desert island +๐Ÿž๏ธ national park +๐ŸŸ๏ธ stadium +๐Ÿ›๏ธ classical building +๐Ÿ—๏ธ building construction +๐Ÿงฑ brick +๐Ÿชจ rock +๐Ÿชต wood +๐Ÿ›– hut +๐Ÿ˜๏ธ houses +๐Ÿš๏ธ derelict house +๐Ÿ  house +๐Ÿก house with garden +๐Ÿข office building +๐Ÿฃ Japanese post office +๐Ÿค post office +๐Ÿฅ hospital +๐Ÿฆ bank +๐Ÿจ hotel +๐Ÿฉ love hotel +๐Ÿช convenience store +๐Ÿซ school +๐Ÿฌ department store +๐Ÿญ factory +๐Ÿฏ Japanese castle +๐Ÿฐ castle +๐Ÿ’’ wedding +๐Ÿ—ผ Tokyo tower +๐Ÿ—ฝ Statue of Liberty +โ›ช church +๐Ÿ•Œ mosque +๐Ÿ›• hindu temple +๐Ÿ• synagogue +โ›ฉ๏ธ shinto shrine +๐Ÿ•‹ kaaba +โ›ฒ fountain +โ›บ tent +๐ŸŒ foggy +๐ŸŒƒ night with stars +๐Ÿ™๏ธ cityscape +๐ŸŒ„ sunrise over mountains +๐ŸŒ… sunrise +๐ŸŒ† cityscape at dusk +๐ŸŒ‡ sunset +๐ŸŒ‰ bridge at night +โ™จ๏ธ hot springs +๐ŸŽ  carousel horse +๐Ÿ› playground slide +๐ŸŽก ferris wheel +๐ŸŽข roller coaster +๐Ÿ’ˆ barber pole +๐ŸŽช circus tent +๐Ÿš‚ locomotive +๐Ÿšƒ railway car +๐Ÿš„ high-speed train +๐Ÿš… bullet train +๐Ÿš† train +๐Ÿš‡ metro +๐Ÿšˆ light rail +๐Ÿš‰ station +๐ŸšŠ tram +๐Ÿš monorail +๐Ÿšž mountain railway +๐Ÿš‹ tram car +๐ŸšŒ bus +๐Ÿš oncoming bus +๐ŸšŽ trolleybus +๐Ÿš minibus +๐Ÿš‘ ambulance +๐Ÿš’ fire engine +๐Ÿš“ police car +๐Ÿš” oncoming police car +๐Ÿš• taxi +๐Ÿš– oncoming taxi +๐Ÿš— automobile +๐Ÿš˜ oncoming automobile +๐Ÿš™ sport utility vehicle +๐Ÿ›ป pickup truck +๐Ÿšš delivery truck +๐Ÿš› articulated lorry +๐Ÿšœ tractor +๐ŸŽ๏ธ racing car +๐Ÿ๏ธ motorcycle +๐Ÿ›ต motor scooter +๐Ÿฆฝ manual wheelchair +๐Ÿฆผ motorized wheelchair +๐Ÿ›บ auto rickshaw +๐Ÿšฒ bicycle +๐Ÿ›ด kick scooter +๐Ÿ›น skateboard +๐Ÿ›ผ roller skate +๐Ÿš bus stop +๐Ÿ›ฃ๏ธ motorway +๐Ÿ›ค๏ธ railway track +๐Ÿ›ข๏ธ oil drum +โ›ฝ fuel pump +๐Ÿ›ž wheel +๐Ÿšจ police car light +๐Ÿšฅ horizontal traffic light +๐Ÿšฆ vertical traffic light +๐Ÿ›‘ stop sign +๐Ÿšง construction +โš“ anchor +๐Ÿ›Ÿ ring buoy +โ›ต sailboat +๐Ÿ›ถ canoe +๐Ÿšค speedboat +๐Ÿ›ณ๏ธ passenger ship +โ›ด๏ธ ferry +๐Ÿ›ฅ๏ธ motor boat +๐Ÿšข ship +โœˆ๏ธ airplane +๐Ÿ›ฉ๏ธ small airplane +๐Ÿ›ซ airplane departure +๐Ÿ›ฌ airplane arrival +๐Ÿช‚ parachute +๐Ÿ’บ seat +๐Ÿš helicopter +๐ŸšŸ suspension railway +๐Ÿš  mountain cableway +๐Ÿšก aerial tramway +๐Ÿ›ฐ๏ธ satellite +๐Ÿš€ rocket +๐Ÿ›ธ flying saucer +๐Ÿ›Ž๏ธ bellhop bell +๐Ÿงณ luggage +โŒ› hourglass done +โณ hourglass not done +โŒš watch +โฐ alarm clock +โฑ๏ธ stopwatch +โฒ๏ธ timer clock +๐Ÿ•ฐ๏ธ mantelpiece clock +๐Ÿ•› twelve oโ€™clock +๐Ÿ•ง twelve-thirty +๐Ÿ• one oโ€™clock +๐Ÿ•œ one-thirty +๐Ÿ•‘ two oโ€™clock +๐Ÿ• two-thirty +๐Ÿ•’ three oโ€™clock +๐Ÿ•ž three-thirty +๐Ÿ•“ four oโ€™clock +๐Ÿ•Ÿ four-thirty +๐Ÿ•” five oโ€™clock +๐Ÿ•  five-thirty +๐Ÿ•• six oโ€™clock +๐Ÿ•ก six-thirty +๐Ÿ•– seven oโ€™clock +๐Ÿ•ข seven-thirty +๐Ÿ•— eight oโ€™clock +๐Ÿ•ฃ eight-thirty +๐Ÿ•˜ nine oโ€™clock +๐Ÿ•ค nine-thirty +๐Ÿ•™ ten oโ€™clock +๐Ÿ•ฅ ten-thirty +๐Ÿ•š eleven oโ€™clock +๐Ÿ•ฆ eleven-thirty +๐ŸŒ‘ new moon +๐ŸŒ’ waxing crescent moon +๐ŸŒ“ first quarter moon +๐ŸŒ” waxing gibbous moon +๐ŸŒ• full moon +๐ŸŒ– waning gibbous moon +๐ŸŒ— last quarter moon +๐ŸŒ˜ waning crescent moon +๐ŸŒ™ crescent moon +๐ŸŒš new moon face +๐ŸŒ› first quarter moon face +๐ŸŒœ last quarter moon face +๐ŸŒก๏ธ thermometer +โ˜€๏ธ sun +๐ŸŒ full moon face +๐ŸŒž sun with face +๐Ÿช ringed planet +โญ star +๐ŸŒŸ glowing star +๐ŸŒ  shooting star +๐ŸŒŒ milky way +โ˜๏ธ cloud +โ›… sun behind cloud +โ›ˆ๏ธ cloud with lightning and rain +๐ŸŒค๏ธ sun behind small cloud +๐ŸŒฅ๏ธ sun behind large cloud +๐ŸŒฆ๏ธ sun behind rain cloud +๐ŸŒง๏ธ cloud with rain +๐ŸŒจ๏ธ cloud with snow +๐ŸŒฉ๏ธ cloud with lightning +๐ŸŒช๏ธ tornado +๐ŸŒซ๏ธ fog +๐ŸŒฌ๏ธ wind face +๐ŸŒ€ cyclone +๐ŸŒˆ rainbow +๐ŸŒ‚ closed umbrella +โ˜‚๏ธ umbrella +โ˜” umbrella with rain drops +โ›ฑ๏ธ umbrella on ground +โšก high voltage +โ„๏ธ snowflake +โ˜ƒ๏ธ snowman +โ›„ snowman without snow +โ˜„๏ธ comet +๐Ÿ”ฅ fire +๐Ÿ’ง droplet +๐ŸŒŠ water wave +๐ŸŽƒ jack-o-lantern +๐ŸŽ„ Christmas tree +๐ŸŽ† fireworks +๐ŸŽ‡ sparkler +๐Ÿงจ firecracker +โœจ sparkles +๐ŸŽˆ balloon +๐ŸŽ‰ party popper +๐ŸŽŠ confetti ball +๐ŸŽ‹ tanabata tree +๐ŸŽ pine decoration +๐ŸŽŽ Japanese dolls +๐ŸŽ carp streamer +๐ŸŽ wind chime +๐ŸŽ‘ moon viewing ceremony +๐Ÿงง red envelope +๐ŸŽ€ ribbon +๐ŸŽ wrapped gift +๐ŸŽ—๏ธ reminder ribbon +๐ŸŽŸ๏ธ admission tickets +๐ŸŽซ ticket +๐ŸŽ–๏ธ military medal +๐Ÿ† trophy +๐Ÿ… sports medal +๐Ÿฅ‡ 1st place medal +๐Ÿฅˆ 2nd place medal +๐Ÿฅ‰ 3rd place medal +โšฝ soccer ball +โšพ baseball +๐ŸฅŽ softball +๐Ÿ€ basketball +๐Ÿ volleyball +๐Ÿˆ american football +๐Ÿ‰ rugby football +๐ŸŽพ tennis +๐Ÿฅ flying disc +๐ŸŽณ bowling +๐Ÿ cricket game +๐Ÿ‘ field hockey +๐Ÿ’ ice hockey +๐Ÿฅ lacrosse +๐Ÿ“ ping pong +๐Ÿธ badminton +๐ŸฅŠ boxing glove +๐Ÿฅ‹ martial arts uniform +๐Ÿฅ… goal net +โ›ณ flag in hole +โ›ธ๏ธ ice skate +๐ŸŽฃ fishing pole +๐Ÿคฟ diving mask +๐ŸŽฝ running shirt +๐ŸŽฟ skis +๐Ÿ›ท sled +๐ŸฅŒ curling stone +๐ŸŽฏ bullseye +๐Ÿช€ yo-yo +๐Ÿช kite +๐ŸŽฑ pool 8 ball +๐Ÿ”ฎ crystal ball +๐Ÿช„ magic wand +๐Ÿงฟ nazar amulet +๐Ÿชฌ hamsa +๐ŸŽฎ video game +๐Ÿ•น๏ธ joystick +๐ŸŽฐ slot machine +๐ŸŽฒ game die +๐Ÿงฉ puzzle piece +๐Ÿงธ teddy bear +๐Ÿช… piรฑata +๐Ÿชฉ mirror ball +๐Ÿช† nesting dolls +โ™ ๏ธ spade suit +โ™ฅ๏ธ heart suit +โ™ฆ๏ธ diamond suit +โ™ฃ๏ธ club suit +โ™Ÿ๏ธ chess pawn +๐Ÿƒ joker +๐Ÿ€„ mahjong red dragon +๐ŸŽด flower playing cards +๐ŸŽญ performing arts +๐Ÿ–ผ๏ธ framed picture +๐ŸŽจ artist palette +๐Ÿงต thread +๐Ÿชก sewing needle +๐Ÿงถ yarn +๐Ÿชข knot +๐Ÿ‘“ glasses +๐Ÿ•ถ๏ธ sunglasses +๐Ÿฅฝ goggles +๐Ÿฅผ lab coat +๐Ÿฆบ safety vest +๐Ÿ‘” necktie +๐Ÿ‘• t-shirt +๐Ÿ‘– jeans +๐Ÿงฃ scarf +๐Ÿงค gloves +๐Ÿงฅ coat +๐Ÿงฆ socks +๐Ÿ‘— dress +๐Ÿ‘˜ kimono +๐Ÿฅป sari +๐Ÿฉฑ one-piece swimsuit +๐Ÿฉฒ briefs +๐Ÿฉณ shorts +๐Ÿ‘™ bikini +๐Ÿ‘š womanโ€™s clothes +๐Ÿ‘› purse +๐Ÿ‘œ handbag +๐Ÿ‘ clutch bag +๐Ÿ›๏ธ shopping bags +๐ŸŽ’ backpack +๐Ÿฉด thong sandal +๐Ÿ‘ž manโ€™s shoe +๐Ÿ‘Ÿ running shoe +๐Ÿฅพ hiking boot +๐Ÿฅฟ flat shoe +๐Ÿ‘  high-heeled shoe +๐Ÿ‘ก womanโ€™s sandal +๐Ÿฉฐ ballet shoes +๐Ÿ‘ข womanโ€™s boot +๐Ÿ‘‘ crown +๐Ÿ‘’ womanโ€™s hat +๐ŸŽฉ top hat +๐ŸŽ“ graduation cap +๐Ÿงข billed cap +๐Ÿช– military helmet +โ›‘๏ธ rescue workerโ€™s helmet +๐Ÿ“ฟ prayer beads +๐Ÿ’„ lipstick +๐Ÿ’ ring +๐Ÿ’Ž gem stone +๐Ÿ”‡ muted speaker +๐Ÿ”ˆ speaker low volume +๐Ÿ”‰ speaker medium volume +๐Ÿ”Š speaker high volume +๐Ÿ“ข loudspeaker +๐Ÿ“ฃ megaphone +๐Ÿ“ฏ postal horn +๐Ÿ”” bell +๐Ÿ”• bell with slash +๐ŸŽผ musical score +๐ŸŽต musical note +๐ŸŽถ musical notes +๐ŸŽ™๏ธ studio microphone +๐ŸŽš๏ธ level slider +๐ŸŽ›๏ธ control knobs +๐ŸŽค microphone +๐ŸŽง headphone +๐Ÿ“ป radio +๐ŸŽท saxophone +๐Ÿช— accordion +๐ŸŽธ guitar +๐ŸŽน musical keyboard +๐ŸŽบ trumpet +๐ŸŽป violin +๐Ÿช• banjo +๐Ÿฅ drum +๐Ÿช˜ long drum +๐Ÿ“ฑ mobile phone +๐Ÿ“ฒ mobile phone with arrow +โ˜Ž๏ธ telephone +๐Ÿ“ž telephone receiver +๐Ÿ“Ÿ pager +๐Ÿ“  fax machine +๐Ÿ”‹ battery +๐Ÿชซ low battery +๐Ÿ”Œ electric plug +๐Ÿ’ป laptop +๐Ÿ–ฅ๏ธ desktop computer +๐Ÿ–จ๏ธ printer +โŒจ๏ธ keyboard +๐Ÿ–ฑ๏ธ computer mouse +๐Ÿ–ฒ๏ธ trackball +๐Ÿ’ฝ computer disk +๐Ÿ’พ floppy disk +๐Ÿ’ฟ optical disk +๐Ÿ“€ dvd +๐Ÿงฎ abacus +๐ŸŽฅ movie camera +๐ŸŽž๏ธ film frames +๐Ÿ“ฝ๏ธ film projector +๐ŸŽฌ clapper board +๐Ÿ“บ television +๐Ÿ“ท camera +๐Ÿ“ธ camera with flash +๐Ÿ“น video camera +๐Ÿ“ผ videocassette +๐Ÿ” magnifying glass tilted left +๐Ÿ”Ž magnifying glass tilted right +๐Ÿ•ฏ๏ธ candle +๐Ÿ’ก light bulb +๐Ÿ”ฆ flashlight +๐Ÿฎ red paper lantern +๐Ÿช” diya lamp +๐Ÿ“” notebook with decorative cover +๐Ÿ“• closed book +๐Ÿ“– open book +๐Ÿ“— green book +๐Ÿ“˜ blue book +๐Ÿ“™ orange book +๐Ÿ“š books +๐Ÿ““ notebook +๐Ÿ“’ ledger +๐Ÿ“ƒ page with curl +๐Ÿ“œ scroll +๐Ÿ“„ page facing up +๐Ÿ“ฐ newspaper +๐Ÿ—ž๏ธ rolled-up newspaper +๐Ÿ“‘ bookmark tabs +๐Ÿ”– bookmark +๐Ÿท๏ธ label +๐Ÿ’ฐ money bag +๐Ÿช™ coin +๐Ÿ’ด yen banknote +๐Ÿ’ต dollar banknote +๐Ÿ’ถ euro banknote +๐Ÿ’ท pound banknote +๐Ÿ’ธ money with wings +๐Ÿ’ณ credit card +๐Ÿงพ receipt +๐Ÿ’น chart increasing with yen +โœ‰๏ธ envelope +๐Ÿ“ง e-mail +๐Ÿ“จ incoming envelope +๐Ÿ“ฉ envelope with arrow +๐Ÿ“ค outbox tray +๐Ÿ“ฅ inbox tray +๐Ÿ“ฆ package +๐Ÿ“ซ closed mailbox with raised flag +๐Ÿ“ช closed mailbox with lowered flag +๐Ÿ“ฌ open mailbox with raised flag +๐Ÿ“ญ open mailbox with lowered flag +๐Ÿ“ฎ postbox +๐Ÿ—ณ๏ธ ballot box with ballot +โœ๏ธ pencil +โœ’๏ธ black nib +๐Ÿ–‹๏ธ fountain pen +๐Ÿ–Š๏ธ pen +๐Ÿ–Œ๏ธ paintbrush +๐Ÿ–๏ธ crayon +๐Ÿ“ memo +๐Ÿ’ผ briefcase +๐Ÿ“ file folder +๐Ÿ“‚ open file folder +๐Ÿ—‚๏ธ card index dividers +๐Ÿ“… calendar +๐Ÿ“† tear-off calendar +๐Ÿ—’๏ธ spiral notepad +๐Ÿ—“๏ธ spiral calendar +๐Ÿ“‡ card index +๐Ÿ“ˆ chart increasing +๐Ÿ“‰ chart decreasing +๐Ÿ“Š bar chart +๐Ÿ“‹ clipboard +๐Ÿ“Œ pushpin +๐Ÿ“ round pushpin +๐Ÿ“Ž paperclip +๐Ÿ–‡๏ธ linked paperclips +๐Ÿ“ straight ruler +๐Ÿ“ triangular ruler +โœ‚๏ธ scissors +๐Ÿ—ƒ๏ธ card file box +๐Ÿ—„๏ธ file cabinet +๐Ÿ—‘๏ธ wastebasket +๐Ÿ”’ locked +๐Ÿ”“ unlocked +๐Ÿ” locked with pen +๐Ÿ” locked with key +๐Ÿ”‘ key +๐Ÿ—๏ธ old key +๐Ÿ”จ hammer +๐Ÿช“ axe +โ›๏ธ pick +โš’๏ธ hammer and pick +๐Ÿ› ๏ธ hammer and wrench +๐Ÿ—ก๏ธ dagger +โš”๏ธ crossed swords +๐Ÿ”ซ water pistol +๐Ÿชƒ boomerang +๐Ÿน bow and arrow +๐Ÿ›ก๏ธ shield +๐Ÿชš carpentry saw +๐Ÿ”ง wrench +๐Ÿช› screwdriver +๐Ÿ”ฉ nut and bolt +โš™๏ธ gear +๐Ÿ—œ๏ธ clamp +โš–๏ธ balance scale +๐Ÿฆฏ white cane +๐Ÿ”— link +โ›“๏ธ chains +๐Ÿช hook +๐Ÿงฐ toolbox +๐Ÿงฒ magnet +๐Ÿชœ ladder +โš—๏ธ alembic +๐Ÿงช test tube +๐Ÿงซ petri dish +๐Ÿงฌ dna +๐Ÿ”ฌ microscope +๐Ÿ”ญ telescope +๐Ÿ“ก satellite antenna +๐Ÿ’‰ syringe +๐Ÿฉธ drop of blood +๐Ÿ’Š pill +๐Ÿฉน adhesive bandage +๐Ÿฉผ crutch +๐Ÿฉบ stethoscope +๐Ÿฉป x-ray +๐Ÿšช door +๐Ÿ›— elevator +๐Ÿชž mirror +๐ŸชŸ window +๐Ÿ›๏ธ bed +๐Ÿ›‹๏ธ couch and lamp +๐Ÿช‘ chair +๐Ÿšฝ toilet +๐Ÿช  plunger +๐Ÿšฟ shower +๐Ÿ› bathtub +๐Ÿชค mouse trap +๐Ÿช’ razor +๐Ÿงด lotion bottle +๐Ÿงท safety pin +๐Ÿงน broom +๐Ÿงบ basket +๐Ÿงป roll of paper +๐Ÿชฃ bucket +๐Ÿงผ soap +๐Ÿซง bubbles +๐Ÿชฅ toothbrush +๐Ÿงฝ sponge +๐Ÿงฏ fire extinguisher +๐Ÿ›’ shopping cart +๐Ÿšฌ cigarette +โšฐ๏ธ coffin +๐Ÿชฆ headstone +โšฑ๏ธ funeral urn +๐Ÿ—ฟ moai +๐Ÿชง placard +๐Ÿชช identification card +๐Ÿง ATM sign +๐Ÿšฎ litter in bin sign +๐Ÿšฐ potable water +โ™ฟ wheelchair symbol +๐Ÿšน menโ€™s room +๐Ÿšบ womenโ€™s room +๐Ÿšป restroom +๐Ÿšผ baby symbol +๐Ÿšพ water closet +๐Ÿ›‚ passport control +๐Ÿ›ƒ customs +๐Ÿ›„ baggage claim +๐Ÿ›… left luggage +โš ๏ธ warning +๐Ÿšธ children crossing +โ›” no entry +๐Ÿšซ prohibited +๐Ÿšณ no bicycles +๐Ÿšญ no smoking +๐Ÿšฏ no littering +๐Ÿšฑ non-potable water +๐Ÿšท no pedestrians +๐Ÿ“ต no mobile phones +๐Ÿ”ž no one under eighteen +โ˜ข๏ธ radioactive +โ˜ฃ๏ธ biohazard +โฌ†๏ธ up arrow +โ†—๏ธ up-right arrow +โžก๏ธ right arrow +โ†˜๏ธ down-right arrow +โฌ‡๏ธ down arrow +โ†™๏ธ down-left arrow +โฌ…๏ธ left arrow +โ†–๏ธ up-left arrow +โ†•๏ธ up-down arrow +โ†”๏ธ left-right arrow +โ†ฉ๏ธ right arrow curving left +โ†ช๏ธ left arrow curving right +โคด๏ธ right arrow curving up +โคต๏ธ right arrow curving down +๐Ÿ”ƒ clockwise vertical arrows +๐Ÿ”„ counterclockwise arrows button +๐Ÿ”™ BACK arrow +๐Ÿ”š END arrow +๐Ÿ”› ON! arrow +๐Ÿ”œ SOON arrow +๐Ÿ” TOP arrow +๐Ÿ› place of worship +โš›๏ธ atom symbol +๐Ÿ•‰๏ธ om +โœก๏ธ star of David +โ˜ธ๏ธ wheel of dharma +โ˜ฏ๏ธ yin yang +โœ๏ธ latin cross +โ˜ฆ๏ธ orthodox cross +โ˜ช๏ธ star and crescent +โ˜ฎ๏ธ peace symbol +๐Ÿ•Ž menorah +๐Ÿ”ฏ dotted six-pointed star +โ™ˆ Aries +โ™‰ Taurus +โ™Š Gemini +โ™‹ Cancer +โ™Œ Leo +โ™ Virgo +โ™Ž Libra +โ™ Scorpio +โ™ Sagittarius +โ™‘ Capricorn +โ™’ Aquarius +โ™“ Pisces +โ›Ž Ophiuchus +๐Ÿ”€ shuffle tracks button +๐Ÿ” repeat button +๐Ÿ”‚ repeat single button +โ–ถ๏ธ play button +โฉ fast-forward button +โญ๏ธ next track button +โฏ๏ธ play or pause button +โ—€๏ธ reverse button +โช fast reverse button +โฎ๏ธ last track button +๐Ÿ”ผ upwards button +โซ fast up button +๐Ÿ”ฝ downwards button +โฌ fast down button +โธ๏ธ pause button +โน๏ธ stop button +โบ๏ธ record button +โ๏ธ eject button +๐ŸŽฆ cinema +๐Ÿ”… dim button +๐Ÿ”† bright button +๐Ÿ“ถ antenna bars +๐Ÿ“ณ vibration mode +๐Ÿ“ด mobile phone off +โ™€๏ธ female sign +โ™‚๏ธ male sign +โšง๏ธ transgender symbol +โœ–๏ธ multiply +โž• plus +โž– minus +โž— divide +๐ŸŸฐ heavy equals sign +โ™พ๏ธ infinity +โ€ผ๏ธ double exclamation mark +โ‰๏ธ exclamation question mark +โ“ red question mark +โ” white question mark +โ• white exclamation mark +โ— red exclamation mark +ใ€ฐ๏ธ wavy dash +๐Ÿ’ฑ currency exchange +๐Ÿ’ฒ heavy dollar sign +โš•๏ธ medical symbol +โ™ป๏ธ recycling symbol +โšœ๏ธ fleur-de-lis +๐Ÿ”ฑ trident emblem +๐Ÿ“› name badge +๐Ÿ”ฐ Japanese symbol for beginner +โญ• hollow red circle +โœ… check mark button +โ˜‘๏ธ check box with check +โœ”๏ธ check mark +โŒ cross mark +โŽ cross mark button +โžฐ curly loop +โžฟ double curly loop +ใ€ฝ๏ธ part alternation mark +โœณ๏ธ eight-spoked asterisk +โœด๏ธ eight-pointed star +โ‡๏ธ sparkle +ยฉ๏ธ copyright +ยฎ๏ธ registered +โ„ข๏ธ trade mark +#๏ธโƒฃ keycap: # +*๏ธโƒฃ keycap: * +0๏ธโƒฃ keycap: 0 +1๏ธโƒฃ keycap: 1 +2๏ธโƒฃ keycap: 2 +3๏ธโƒฃ keycap: 3 +4๏ธโƒฃ keycap: 4 +5๏ธโƒฃ keycap: 5 +6๏ธโƒฃ keycap: 6 +7๏ธโƒฃ keycap: 7 +8๏ธโƒฃ keycap: 8 +9๏ธโƒฃ keycap: 9 +๐Ÿ”Ÿ keycap: 10 +๐Ÿ”  input latin uppercase +๐Ÿ”ก input latin lowercase +๐Ÿ”ข input numbers +๐Ÿ”ฃ input symbols +๐Ÿ”ค input latin letters +๐Ÿ…ฐ๏ธ A button (blood type) +๐Ÿ†Ž AB button (blood type) +๐Ÿ…ฑ๏ธ B button (blood type) +๐Ÿ†‘ CL button +๐Ÿ†’ COOL button +๐Ÿ†“ FREE button +โ„น๏ธ information +๐Ÿ†” ID button +โ“‚๏ธ circled M +๐Ÿ†• NEW button +๐Ÿ†– NG button +๐Ÿ…พ๏ธ O button (blood type) +๐Ÿ†— OK button +๐Ÿ…ฟ๏ธ P button +๐Ÿ†˜ SOS button +๐Ÿ†™ UP! button +๐Ÿ†š VS button +๐Ÿˆ Japanese โ€œhereโ€ button +๐Ÿˆ‚๏ธ Japanese โ€œservice chargeโ€ button +๐Ÿˆท๏ธ Japanese โ€œmonthly amountโ€ button +๐Ÿˆถ Japanese โ€œnot free of chargeโ€ button +๐Ÿˆฏ Japanese โ€œreservedโ€ button +๐Ÿ‰ Japanese โ€œbargainโ€ button +๐Ÿˆน Japanese โ€œdiscountโ€ button +๐Ÿˆš Japanese โ€œfree of chargeโ€ button +๐Ÿˆฒ Japanese โ€œprohibitedโ€ button +๐Ÿ‰‘ Japanese โ€œacceptableโ€ button +๐Ÿˆธ Japanese โ€œapplicationโ€ button +๐Ÿˆด Japanese โ€œpassing gradeโ€ button +๐Ÿˆณ Japanese โ€œvacancyโ€ button +ใŠ—๏ธ Japanese โ€œcongratulationsโ€ button +ใŠ™๏ธ Japanese โ€œsecretโ€ button +๐Ÿˆบ Japanese โ€œopen for businessโ€ button +๐Ÿˆต Japanese โ€œno vacancyโ€ button +๐Ÿ”ด red circle +๐ŸŸ  orange circle +๐ŸŸก yellow circle +๐ŸŸข green circle +๐Ÿ”ต blue circle +๐ŸŸฃ purple circle +๐ŸŸค brown circle +โšซ black circle +โšช white circle +๐ŸŸฅ red square +๐ŸŸง orange square +๐ŸŸจ yellow square +๐ŸŸฉ green square +๐ŸŸฆ blue square +๐ŸŸช purple square +๐ŸŸซ brown square +โฌ› black large square +โฌœ white large square +โ—ผ๏ธ black medium square +โ—ป๏ธ white medium square +โ—พ black medium-small square +โ—ฝ white medium-small square +โ–ช๏ธ black small square +โ–ซ๏ธ white small square +๐Ÿ”ถ large orange diamond +๐Ÿ”ท large blue diamond +๐Ÿ”ธ small orange diamond +๐Ÿ”น small blue diamond +๐Ÿ”บ red triangle pointed up +๐Ÿ”ป red triangle pointed down +๐Ÿ’  diamond with a dot +๐Ÿ”˜ radio button +๐Ÿ”ณ white square button +๐Ÿ”ฒ black square button +๐Ÿ chequered flag +๐Ÿšฉ triangular flag +๐ŸŽŒ crossed flags +๐Ÿด black flag +๐Ÿณ๏ธ white flag +๐Ÿ‡ฆ๐Ÿ‡จ flag: Ascension Island +๐Ÿ‡ฆ๐Ÿ‡ฉ flag: Andorra +๐Ÿ‡ฆ๐Ÿ‡ช flag: United Arab Emirates +๐Ÿ‡ฆ๐Ÿ‡ซ flag: Afghanistan +๐Ÿ‡ฆ๐Ÿ‡ฌ flag: Antigua & Barbuda +๐Ÿ‡ฆ๐Ÿ‡ฎ flag: Anguilla +๐Ÿ‡ฆ๐Ÿ‡ฑ flag: Albania +๐Ÿ‡ฆ๐Ÿ‡ฒ flag: Armenia +๐Ÿ‡ฆ๐Ÿ‡ด flag: Angola +๐Ÿ‡ฆ๐Ÿ‡ถ flag: Antarctica +๐Ÿ‡ฆ๐Ÿ‡ท flag: Argentina +๐Ÿ‡ฆ๐Ÿ‡ธ flag: American Samoa +๐Ÿ‡ฆ๐Ÿ‡น flag: Austria +๐Ÿ‡ฆ๐Ÿ‡บ flag: Australia +๐Ÿ‡ฆ๐Ÿ‡ผ flag: Aruba +๐Ÿ‡ฆ๐Ÿ‡ฝ flag: ร…land Islands +๐Ÿ‡ฆ๐Ÿ‡ฟ flag: Azerbaijan +๐Ÿ‡ง๐Ÿ‡ฆ flag: Bosnia & Herzegovina +๐Ÿ‡ง๐Ÿ‡ง flag: Barbados +๐Ÿ‡ง๐Ÿ‡ฉ flag: Bangladesh +๐Ÿ‡ง๐Ÿ‡ช flag: Belgium +๐Ÿ‡ง๐Ÿ‡ซ flag: Burkina Faso +๐Ÿ‡ง๐Ÿ‡ฌ flag: Bulgaria +๐Ÿ‡ง๐Ÿ‡ญ flag: Bahrain +๐Ÿ‡ง๐Ÿ‡ฎ flag: Burundi +๐Ÿ‡ง๐Ÿ‡ฏ flag: Benin +๐Ÿ‡ง๐Ÿ‡ฑ flag: St. Barthรฉlemy +๐Ÿ‡ง๐Ÿ‡ฒ flag: Bermuda +๐Ÿ‡ง๐Ÿ‡ณ flag: Brunei +๐Ÿ‡ง๐Ÿ‡ด flag: Bolivia +๐Ÿ‡ง๐Ÿ‡ถ flag: Caribbean Netherlands +๐Ÿ‡ง๐Ÿ‡ท flag: Brazil +๐Ÿ‡ง๐Ÿ‡ธ flag: Bahamas +๐Ÿ‡ง๐Ÿ‡น flag: Bhutan +๐Ÿ‡ง๐Ÿ‡ป flag: Bouvet Island +๐Ÿ‡ง๐Ÿ‡ผ flag: Botswana +๐Ÿ‡ง๐Ÿ‡พ flag: Belarus +๐Ÿ‡ง๐Ÿ‡ฟ flag: Belize +๐Ÿ‡จ๐Ÿ‡ฆ flag: Canada +๐Ÿ‡จ๐Ÿ‡จ flag: Cocos (Keeling) Islands +๐Ÿ‡จ๐Ÿ‡ฉ flag: Congo - Kinshasa +๐Ÿ‡จ๐Ÿ‡ซ flag: Central African Republic +๐Ÿ‡จ๐Ÿ‡ฌ flag: Congo - Brazzaville +๐Ÿ‡จ๐Ÿ‡ญ flag: Switzerland +๐Ÿ‡จ๐Ÿ‡ฎ flag: Cรดte dโ€™Ivoire +๐Ÿ‡จ๐Ÿ‡ฐ flag: Cook Islands +๐Ÿ‡จ๐Ÿ‡ฑ flag: Chile +๐Ÿ‡จ๐Ÿ‡ฒ flag: Cameroon +๐Ÿ‡จ๐Ÿ‡ณ flag: China +๐Ÿ‡จ๐Ÿ‡ด flag: Colombia +๐Ÿ‡จ๐Ÿ‡ต flag: Clipperton Island +๐Ÿ‡จ๐Ÿ‡ท flag: Costa Rica +๐Ÿ‡จ๐Ÿ‡บ flag: Cuba +๐Ÿ‡จ๐Ÿ‡ป flag: Cape Verde +๐Ÿ‡จ๐Ÿ‡ผ flag: Curaรงao +๐Ÿ‡จ๐Ÿ‡ฝ flag: Christmas Island +๐Ÿ‡จ๐Ÿ‡พ flag: Cyprus +๐Ÿ‡จ๐Ÿ‡ฟ flag: Czechia +๐Ÿ‡ฉ๐Ÿ‡ช flag: Germany +๐Ÿ‡ฉ๐Ÿ‡ฌ flag: Diego Garcia +๐Ÿ‡ฉ๐Ÿ‡ฏ flag: Djibouti +๐Ÿ‡ฉ๐Ÿ‡ฐ flag: Denmark +๐Ÿ‡ฉ๐Ÿ‡ฒ flag: Dominica +๐Ÿ‡ฉ๐Ÿ‡ด flag: Dominican Republic +๐Ÿ‡ฉ๐Ÿ‡ฟ flag: Algeria +๐Ÿ‡ช๐Ÿ‡ฆ flag: Ceuta & Melilla +๐Ÿ‡ช๐Ÿ‡จ flag: Ecuador +๐Ÿ‡ช๐Ÿ‡ช flag: Estonia +๐Ÿ‡ช๐Ÿ‡ฌ flag: Egypt +๐Ÿ‡ช๐Ÿ‡ญ flag: Western Sahara +๐Ÿ‡ช๐Ÿ‡ท flag: Eritrea +๐Ÿ‡ช๐Ÿ‡ธ flag: Spain +๐Ÿ‡ช๐Ÿ‡น flag: Ethiopia +๐Ÿ‡ช๐Ÿ‡บ flag: European Union +๐Ÿ‡ซ๐Ÿ‡ฎ flag: Finland +๐Ÿ‡ซ๐Ÿ‡ฏ flag: Fiji +๐Ÿ‡ซ๐Ÿ‡ฐ flag: Falkland Islands +๐Ÿ‡ซ๐Ÿ‡ฒ flag: Micronesia +๐Ÿ‡ซ๐Ÿ‡ด flag: Faroe Islands +๐Ÿ‡ซ๐Ÿ‡ท flag: France +๐Ÿ‡ฌ๐Ÿ‡ฆ flag: Gabon +๐Ÿ‡ฌ๐Ÿ‡ง flag: United Kingdom +๐Ÿ‡ฌ๐Ÿ‡ฉ flag: Grenada +๐Ÿ‡ฌ๐Ÿ‡ช flag: Georgia +๐Ÿ‡ฌ๐Ÿ‡ซ flag: French Guiana +๐Ÿ‡ฌ๐Ÿ‡ฌ flag: Guernsey +๐Ÿ‡ฌ๐Ÿ‡ญ flag: Ghana +๐Ÿ‡ฌ๐Ÿ‡ฎ flag: Gibraltar +๐Ÿ‡ฌ๐Ÿ‡ฑ flag: Greenland +๐Ÿ‡ฌ๐Ÿ‡ฒ flag: Gambia +๐Ÿ‡ฌ๐Ÿ‡ณ flag: Guinea +๐Ÿ‡ฌ๐Ÿ‡ต flag: Guadeloupe +๐Ÿ‡ฌ๐Ÿ‡ถ flag: Equatorial Guinea +๐Ÿ‡ฌ๐Ÿ‡ท flag: Greece +๐Ÿ‡ฌ๐Ÿ‡ธ flag: South Georgia & South Sandwich Islands +๐Ÿ‡ฌ๐Ÿ‡น flag: Guatemala +๐Ÿ‡ฌ๐Ÿ‡บ flag: Guam +๐Ÿ‡ฌ๐Ÿ‡ผ flag: Guinea-Bissau +๐Ÿ‡ฌ๐Ÿ‡พ flag: Guyana +๐Ÿ‡ญ๐Ÿ‡ฐ flag: Hong Kong SAR China +๐Ÿ‡ญ๐Ÿ‡ฒ flag: Heard & McDonald Islands +๐Ÿ‡ญ๐Ÿ‡ณ flag: Honduras +๐Ÿ‡ญ๐Ÿ‡ท flag: Croatia +๐Ÿ‡ญ๐Ÿ‡น flag: Haiti +๐Ÿ‡ญ๐Ÿ‡บ flag: Hungary +๐Ÿ‡ฎ๐Ÿ‡จ flag: Canary Islands +๐Ÿ‡ฎ๐Ÿ‡ฉ flag: Indonesia +๐Ÿ‡ฎ๐Ÿ‡ช flag: Ireland +๐Ÿ‡ฎ๐Ÿ‡ฑ flag: Israel +๐Ÿ‡ฎ๐Ÿ‡ฒ flag: Isle of Man +๐Ÿ‡ฎ๐Ÿ‡ณ flag: India +๐Ÿ‡ฎ๐Ÿ‡ด flag: British Indian Ocean Territory +๐Ÿ‡ฎ๐Ÿ‡ถ flag: Iraq +๐Ÿ‡ฎ๐Ÿ‡ท flag: Iran +๐Ÿ‡ฎ๐Ÿ‡ธ flag: Iceland +๐Ÿ‡ฎ๐Ÿ‡น flag: Italy +๐Ÿ‡ฏ๐Ÿ‡ช flag: Jersey +๐Ÿ‡ฏ๐Ÿ‡ฒ flag: Jamaica +๐Ÿ‡ฏ๐Ÿ‡ด flag: Jordan +๐Ÿ‡ฏ๐Ÿ‡ต flag: Japan +๐Ÿ‡ฐ๐Ÿ‡ช flag: Kenya +๐Ÿ‡ฐ๐Ÿ‡ฌ flag: Kyrgyzstan +๐Ÿ‡ฐ๐Ÿ‡ญ flag: Cambodia +๐Ÿ‡ฐ๐Ÿ‡ฎ flag: Kiribati +๐Ÿ‡ฐ๐Ÿ‡ฒ flag: Comoros +๐Ÿ‡ฐ๐Ÿ‡ณ flag: St. Kitts & Nevis +๐Ÿ‡ฐ๐Ÿ‡ต flag: North Korea +๐Ÿ‡ฐ๐Ÿ‡ท flag: South Korea +๐Ÿ‡ฐ๐Ÿ‡ผ flag: Kuwait +๐Ÿ‡ฐ๐Ÿ‡พ flag: Cayman Islands +๐Ÿ‡ฐ๐Ÿ‡ฟ flag: Kazakhstan +๐Ÿ‡ฑ๐Ÿ‡ฆ flag: Laos +๐Ÿ‡ฑ๐Ÿ‡ง flag: Lebanon +๐Ÿ‡ฑ๐Ÿ‡จ flag: St. Lucia +๐Ÿ‡ฑ๐Ÿ‡ฎ flag: Liechtenstein +๐Ÿ‡ฑ๐Ÿ‡ฐ flag: Sri Lanka +๐Ÿ‡ฑ๐Ÿ‡ท flag: Liberia +๐Ÿ‡ฑ๐Ÿ‡ธ flag: Lesotho +๐Ÿ‡ฑ๐Ÿ‡น flag: Lithuania +๐Ÿ‡ฑ๐Ÿ‡บ flag: Luxembourg +๐Ÿ‡ฑ๐Ÿ‡ป flag: Latvia +๐Ÿ‡ฑ๐Ÿ‡พ flag: Libya +๐Ÿ‡ฒ๐Ÿ‡ฆ flag: Morocco +๐Ÿ‡ฒ๐Ÿ‡จ flag: Monaco +๐Ÿ‡ฒ๐Ÿ‡ฉ flag: Moldova +๐Ÿ‡ฒ๐Ÿ‡ช flag: Montenegro +๐Ÿ‡ฒ๐Ÿ‡ซ flag: St. Martin +๐Ÿ‡ฒ๐Ÿ‡ฌ flag: Madagascar +๐Ÿ‡ฒ๐Ÿ‡ญ flag: Marshall Islands +๐Ÿ‡ฒ๐Ÿ‡ฐ flag: North Macedonia +๐Ÿ‡ฒ๐Ÿ‡ฑ flag: Mali +๐Ÿ‡ฒ๐Ÿ‡ฒ flag: Myanmar (Burma) +๐Ÿ‡ฒ๐Ÿ‡ณ flag: Mongolia +๐Ÿ‡ฒ๐Ÿ‡ด flag: Macao SAR China +๐Ÿ‡ฒ๐Ÿ‡ต flag: Northern Mariana Islands +๐Ÿ‡ฒ๐Ÿ‡ถ flag: Martinique +๐Ÿ‡ฒ๐Ÿ‡ท flag: Mauritania +๐Ÿ‡ฒ๐Ÿ‡ธ flag: Montserrat +๐Ÿ‡ฒ๐Ÿ‡น flag: Malta +๐Ÿ‡ฒ๐Ÿ‡บ flag: Mauritius +๐Ÿ‡ฒ๐Ÿ‡ป flag: Maldives +๐Ÿ‡ฒ๐Ÿ‡ผ flag: Malawi +๐Ÿ‡ฒ๐Ÿ‡ฝ flag: Mexico +๐Ÿ‡ฒ๐Ÿ‡พ flag: Malaysia +๐Ÿ‡ฒ๐Ÿ‡ฟ flag: Mozambique +๐Ÿ‡ณ๐Ÿ‡ฆ flag: Namibia +๐Ÿ‡ณ๐Ÿ‡จ flag: New Caledonia +๐Ÿ‡ณ๐Ÿ‡ช flag: Niger +๐Ÿ‡ณ๐Ÿ‡ซ flag: Norfolk Island +๐Ÿ‡ณ๐Ÿ‡ฌ flag: Nigeria +๐Ÿ‡ณ๐Ÿ‡ฎ flag: Nicaragua +๐Ÿ‡ณ๐Ÿ‡ฑ flag: Netherlands +๐Ÿ‡ณ๐Ÿ‡ด flag: Norway +๐Ÿ‡ณ๐Ÿ‡ต flag: Nepal +๐Ÿ‡ณ๐Ÿ‡ท flag: Nauru +๐Ÿ‡ณ๐Ÿ‡บ flag: Niue +๐Ÿ‡ณ๐Ÿ‡ฟ flag: New Zealand +๐Ÿ‡ด๐Ÿ‡ฒ flag: Oman +๐Ÿ‡ต๐Ÿ‡ฆ flag: Panama +๐Ÿ‡ต๐Ÿ‡ช flag: Peru +๐Ÿ‡ต๐Ÿ‡ซ flag: French Polynesia +๐Ÿ‡ต๐Ÿ‡ฌ flag: Papua New Guinea +๐Ÿ‡ต๐Ÿ‡ญ flag: Philippines +๐Ÿ‡ต๐Ÿ‡ฐ flag: Pakistan +๐Ÿ‡ต๐Ÿ‡ฑ flag: Poland +๐Ÿ‡ต๐Ÿ‡ฒ flag: St. Pierre & Miquelon +๐Ÿ‡ต๐Ÿ‡ณ flag: Pitcairn Islands +๐Ÿ‡ต๐Ÿ‡ท flag: Puerto Rico +๐Ÿ‡ต๐Ÿ‡ธ flag: Palestinian Territories +๐Ÿ‡ต๐Ÿ‡น flag: Portugal +๐Ÿ‡ต๐Ÿ‡ผ flag: Palau +๐Ÿ‡ต๐Ÿ‡พ flag: Paraguay +๐Ÿ‡ถ๐Ÿ‡ฆ flag: Qatar +๐Ÿ‡ท๐Ÿ‡ช flag: Rรฉunion +๐Ÿ‡ท๐Ÿ‡ด flag: Romania +๐Ÿ‡ท๐Ÿ‡ธ flag: Serbia +๐Ÿ‡ท๐Ÿ‡บ flag: Russia +๐Ÿ‡ท๐Ÿ‡ผ flag: Rwanda +๐Ÿ‡ธ๐Ÿ‡ฆ flag: Saudi Arabia +๐Ÿ‡ธ๐Ÿ‡ง flag: Solomon Islands +๐Ÿ‡ธ๐Ÿ‡จ flag: Seychelles +๐Ÿ‡ธ๐Ÿ‡ฉ flag: Sudan +๐Ÿ‡ธ๐Ÿ‡ช flag: Sweden +๐Ÿ‡ธ๐Ÿ‡ฌ flag: Singapore +๐Ÿ‡ธ๐Ÿ‡ญ flag: St. Helena +๐Ÿ‡ธ๐Ÿ‡ฎ flag: Slovenia +๐Ÿ‡ธ๐Ÿ‡ฏ flag: Svalbard & Jan Mayen +๐Ÿ‡ธ๐Ÿ‡ฐ flag: Slovakia +๐Ÿ‡ธ๐Ÿ‡ฑ flag: Sierra Leone +๐Ÿ‡ธ๐Ÿ‡ฒ flag: San Marino +๐Ÿ‡ธ๐Ÿ‡ณ flag: Senegal +๐Ÿ‡ธ๐Ÿ‡ด flag: Somalia +๐Ÿ‡ธ๐Ÿ‡ท flag: Suriname +๐Ÿ‡ธ๐Ÿ‡ธ flag: South Sudan +๐Ÿ‡ธ๐Ÿ‡น flag: Sรฃo Tomรฉ & Prรญncipe +๐Ÿ‡ธ๐Ÿ‡ป flag: El Salvador +๐Ÿ‡ธ๐Ÿ‡ฝ flag: Sint Maarten +๐Ÿ‡ธ๐Ÿ‡พ flag: Syria +๐Ÿ‡ธ๐Ÿ‡ฟ flag: Eswatini +๐Ÿ‡น๐Ÿ‡ฆ flag: Tristan da Cunha +๐Ÿ‡น๐Ÿ‡จ flag: Turks & Caicos Islands +๐Ÿ‡น๐Ÿ‡ฉ flag: Chad +๐Ÿ‡น๐Ÿ‡ซ flag: French Southern Territories +๐Ÿ‡น๐Ÿ‡ฌ flag: Togo +๐Ÿ‡น๐Ÿ‡ญ flag: Thailand +๐Ÿ‡น๐Ÿ‡ฏ flag: Tajikistan +๐Ÿ‡น๐Ÿ‡ฐ flag: Tokelau +๐Ÿ‡น๐Ÿ‡ฑ flag: Timor-Leste +๐Ÿ‡น๐Ÿ‡ฒ flag: Turkmenistan +๐Ÿ‡น๐Ÿ‡ณ flag: Tunisia +๐Ÿ‡น๐Ÿ‡ด flag: Tonga +๐Ÿ‡น๐Ÿ‡ท flag: Turkey +๐Ÿ‡น๐Ÿ‡น flag: Trinidad & Tobago +๐Ÿ‡น๐Ÿ‡ป flag: Tuvalu +๐Ÿ‡น๐Ÿ‡ผ flag: Taiwan +๐Ÿ‡น๐Ÿ‡ฟ flag: Tanzania +๐Ÿ‡บ๐Ÿ‡ฆ flag: Ukraine +๐Ÿ‡บ๐Ÿ‡ฌ flag: Uganda +๐Ÿ‡บ๐Ÿ‡ฒ flag: U.S. Outlying Islands +๐Ÿ‡บ๐Ÿ‡ณ flag: United Nations +๐Ÿ‡บ๐Ÿ‡ธ flag: United States +๐Ÿ‡บ๐Ÿ‡พ flag: Uruguay +๐Ÿ‡บ๐Ÿ‡ฟ flag: Uzbekistan +๐Ÿ‡ป๐Ÿ‡ฆ flag: Vatican City +๐Ÿ‡ป๐Ÿ‡จ flag: St. Vincent & Grenadines +๐Ÿ‡ป๐Ÿ‡ช flag: Venezuela +๐Ÿ‡ป๐Ÿ‡ฌ flag: British Virgin Islands +๐Ÿ‡ป๐Ÿ‡ฎ flag: U.S. Virgin Islands +๐Ÿ‡ป๐Ÿ‡ณ flag: Vietnam +๐Ÿ‡ป๐Ÿ‡บ flag: Vanuatu +๐Ÿ‡ผ๐Ÿ‡ซ flag: Wallis & Futuna +๐Ÿ‡ผ๐Ÿ‡ธ flag: Samoa +๐Ÿ‡ฝ๐Ÿ‡ฐ flag: Kosovo +๐Ÿ‡พ๐Ÿ‡ช flag: Yemen +๐Ÿ‡พ๐Ÿ‡น flag: Mayotte +๐Ÿ‡ฟ๐Ÿ‡ฆ flag: South Africa +๐Ÿ‡ฟ๐Ÿ‡ฒ flag: Zambia +๐Ÿ‡ฟ๐Ÿ‡ผ flag: Zimbabwe +๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ flag: England +๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ flag: Scotland +๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ flag: Wales diff --git a/.local/share/larbs/chars/font-awesome b/.local/share/larbs/chars/font-awesome new file mode 100644 index 00000000..3283be3d --- /dev/null +++ b/.local/share/larbs/chars/font-awesome @@ -0,0 +1,1456 @@ +๏‰ฎ 500px; f26e +๏จ accessible-icon; f368 +๏ฉ accusoft; f369 +๏šฏ acquisitions-incorporated; f6af +๏™ ad; f641 +๏Šน address-book; f2b9 +๏Šป address-card; f2bb +๏‚ adjust; f042 +๏…ฐ adn; f170 +๏ช adversal; f36a +๏ซ affiliatetheme; f36b +๏— air-freshener; f5d0 +๏ ด airbnb; f834 +๏ฌ algolia; f36c +๏€ท align-center; f037 +๏€น align-justify; f039 +๏€ถ align-left; f036 +๏€ธ align-right; f038 +๏™‚ alipay; f642 +๏‘ก allergies; f461 +๏‰ฐ amazon; f270 +๏ฌ amazon-pay; f42c +๏ƒน ambulance; f0f9 +๏Šฃ american-sign-language-interpreting; f2a3 +๏ญ amilia; f36d +๏„ฝ anchor; f13d +๏…ป android; f17b +๏ˆ‰ angellist; f209 +๏„ƒ angle-double-down; f103 +๏„€ angle-double-left; f100 +๏„ angle-double-right; f101 +๏„‚ angle-double-up; f102 +๏„‡ angle-down; f107 +๏„„ angle-left; f104 +๏„… angle-right; f105 +๏„† angle-up; f106 +๏•– angry; f556 +๏ฎ angrycreative; f36e +๏  angular; f420 +๏™„ ankh; f644 +๏ฏ app-store; f36f +๏ฐ app-store-ios; f370 +๏ฑ apper; f371 +๏…น apple; f179 +๏—‘ apple-alt; f5d1 +๏• apple-pay; f415 +๏†‡ archive; f187 +๏•— archway; f557 +๏˜ arrow-alt-circle-down; f358 +๏™ arrow-alt-circle-left; f359 +๏š arrow-alt-circle-right; f35a +๏› arrow-alt-circle-up; f35b +๏‚ซ arrow-circle-down; f0ab +๏‚จ arrow-circle-left; f0a8 +๏‚ฉ arrow-circle-right; f0a9 +๏‚ช arrow-circle-up; f0aa +๏ฃ arrow-down; f063 +๏  arrow-left; f060 +๏ก arrow-right; f061 +๏ข arrow-up; f062 +๏‚ฒ arrows-alt; f0b2 +๏Œท arrows-alt-h; f337 +๏Œธ arrows-alt-v; f338 +๏บ artstation; f77a +๏Šข assistive-listening-systems; f2a2 +๏ฉ asterisk; f069 +๏ฒ asymmetrik; f372 +๏‡บ at; f1fa +๏•˜ atlas; f558 +๏ป atlassian; f77b +๏—’ atom; f5d2 +๏ณ audible; f373 +๏Šž audio-description; f29e +๏œ autoprefixer; f41c +๏ด avianex; f374 +๏ก aviato; f421 +๏•™ award; f559 +๏ต aws; f375 +๏ผ baby; f77c +๏ฝ baby-carriage; f77d +๏•š backspace; f55a +๏Š backward; f04a +๏Ÿฅ bacon; f7e5 +๎™ bacteria e059 +๎š bacterium e05a +๏™ฆ bahai; f666 +๏‰Ž balance-scale; f24e +๏”• balance-scale-left; f515 +๏”– balance-scale-right; f516 +๏ž ban; f05e +๏‘ข band-aid; f462 +๏‹• bandcamp; f2d5 +๏€ช barcode; f02a +๏ƒ‰ bars; f0c9 +๏ณ baseball-ball; f433 +๏ด basketball-ball; f434 +๏‹ bath; f2cd +๏‰„ battery-empty; f244 +๏‰€ battery-full; f240 +๏‰‚ battery-half; f242 +๏‰ƒ battery-quarter; f243 +๏‰ battery-three-quarters; f241 +๏ ต battle-net; f835 +๏ˆถ bed; f236 +๏ƒผ beer; f0fc +๏†ด behance; f1b4 +๏†ต behance-square; f1b5 +๏ƒณ bell; f0f3 +๏‡ถ bell-slash; f1f6 +๏•› bezier-curve; f55b +๏™‡ bible; f647 +๏ˆ† bicycle; f206 +๏กŠ biking; f84a +๏ธ bimobject; f378 +๏‡ฅ binoculars; f1e5 +๏ž€ biohazard; f780 +๏‡ฝ birthday-cake; f1fd +๏…ฑ bitbucket; f171 +๏น bitcoin; f379 +๏บ bity; f37a +๏‰พ black-tie; f27e +๏ป blackberry; f37b +๏”— blender; f517 +๏šถ blender-phone; f6b6 +๏Š blind; f29d +๏ž blog; f781 +๏ผ blogger; f37c +๏ฝ blogger-b; f37d +๏Š“ bluetooth; f293 +๏Š” bluetooth-b; f294 +๏€ฒ bold; f032 +๏ƒง bolt; f0e7 +๏‡ข bomb; f1e2 +๏—— bone; f5d7 +๏•œ bong; f55c +๏€ญ book; f02d +๏šท book-dead; f6b7 +๏Ÿฆ book-medical; f7e6 +๏”˜ book-open; f518 +๏—š book-reader; f5da +๏€ฎ bookmark; f02e +๏ ถ bootstrap; f836 +๏กŒ border-all; f84c +๏ก border-none; f850 +๏ก“ border-style; f853 +๏ถ bowling-ball; f436 +๏‘ฆ box; f466 +๏’ž box-open; f49e +๎› box-tissue e05b +๏‘จ boxes; f468 +๏Šก braille; f2a1 +๏—œ brain; f5dc +๏Ÿฌ bread-slice; f7ec +๏‚ฑ briefcase; f0b1 +๏‘ฉ briefcase-medical; f469 +๏”™ broadcast-tower; f519 +๏”š broom; f51a +๏• brush; f55d +๏…š btc; f15a +๏ ท buffer; f837 +๏†ˆ bug; f188 +๏†ญ building; f1ad +๏‚ก bullhorn; f0a1 +๏…€ bullseye; f140 +๏‘ช burn; f46a +๏ฟ buromobelexperte; f37f +๏ˆ‡ bus; f207 +๏•ž bus-alt; f55e +๏™Š business-time; f64a +๏ขฆ buy-n-large; f8a6 +๏‡ฌ calculator; f1ec +๏„ณ calendar; f133 +๏ณ calendar-alt; f073 +๏‰ด calendar-check; f274 +๏žƒ calendar-day; f783 +๏‰ฒ calendar-minus; f272 +๏‰ฑ calendar-plus; f271 +๏‰ณ calendar-times; f273 +๏ž„ calendar-week; f784 +๏€ฐ camera; f030 +๏‚ƒ camera-retro; f083 +๏šป campground; f6bb +๏ž… canadian-maple-leaf; f785 +๏ž† candy-cane; f786 +๏•Ÿ cannabis; f55f +๏‘ซ capsules; f46b +๏†น car; f1b9 +๏—ž car-alt; f5de +๏—Ÿ car-battery; f5df +๏—ก car-crash; f5e1 +๏—ค car-side; f5e4 +๏ฃฟ caravan; f8ff +๏ƒ— caret-down; f0d7 +๏ƒ™ caret-left; f0d9 +๏ƒš caret-right; f0da +๏… caret-square-down; f150 +๏†‘ caret-square-left; f191 +๏…’ caret-square-right; f152 +๏…‘ caret-square-up; f151 +๏ƒ˜ caret-up; f0d8 +๏ž‡ carrot; f787 +๏ˆ˜ cart-arrow-down; f218 +๏ˆ— cart-plus; f217 +๏žˆ cash-register; f788 +๏šพ cat; f6be +๏ญ cc-amazon-pay; f42d +๏‡ณ cc-amex; f1f3 +๏– cc-apple-pay; f416 +๏‰Œ cc-diners-club; f24c +๏‡ฒ cc-discover; f1f2 +๏‰‹ cc-jcb; f24b +๏‡ฑ cc-mastercard; f1f1 +๏‡ด cc-paypal; f1f4 +๏‡ต cc-stripe; f1f5 +๏‡ฐ cc-visa; f1f0 +๏Ž€ centercode; f380 +๏ž‰ centos; f789 +๏‚ฃ certificate; f0a3 +๏›€ chair; f6c0 +๏”› chalkboard; f51b +๏”œ chalkboard-teacher; f51c +๏—ง charging-station; f5e7 +๏‡พ chart-area; f1fe +๏‚€ chart-bar; f080 +๏ˆ chart-line; f201 +๏ˆ€ chart-pie; f200 +๏€Œ check; f00c +๏˜ check-circle; f058 +๏•  check-double; f560 +๏…Š check-square; f14a +๏Ÿฏ cheese; f7ef +๏น chess; f439 +๏บ chess-bishop; f43a +๏ผ chess-board; f43c +๏ฟ chess-king; f43f +๏‘ chess-knight; f441 +๏‘ƒ chess-pawn; f443 +๏‘… chess-queen; f445 +๏‘‡ chess-rook; f447 +๏„บ chevron-circle-down; f13a +๏„ท chevron-circle-left; f137 +๏„ธ chevron-circle-right; f138 +๏„น chevron-circle-up; f139 +๏ธ chevron-down; f078 +๏“ chevron-left; f053 +๏” chevron-right; f054 +๏ท chevron-up; f077 +๏†ฎ child; f1ae +๏‰จ chrome; f268 +๏ ธ chromecast; f838 +๏” church; f51d +๏„‘ circle; f111 +๏‡Ž circle-notch; f1ce +๏™ city; f64f +๏Ÿฒ clinic-medical; f7f2 +๏Œจ clipboard; f328 +๏‘ฌ clipboard-check; f46c +๏‘ญ clipboard-list; f46d +๏€— clock; f017 +๏‰ clone; f24d +๏ˆŠ closed-captioning; f20a +๏ƒ‚ cloud; f0c2 +๏ށ cloud-download-alt; f381 +๏œป cloud-meatball; f73b +๏›ƒ cloud-moon; f6c3 +๏œผ cloud-moon-rain; f73c +๏œฝ cloud-rain; f73d +๏€ cloud-showers-heavy; f740 +๏›„ cloud-sun; f6c4 +๏ƒ cloud-sun-rain; f743 +๏Ž‚ cloud-upload-alt; f382 +๎ฝ cloudflare e07d +๏Žƒ cloudscale; f383 +๏Ž„ cloudsmith; f384 +๏Ž… cloudversify; f385 +๏•ก cocktail; f561 +๏„ก code; f121 +๏„ฆ code-branch; f126 +๏‡‹ codepen; f1cb +๏Š„ codiepie; f284 +๏ƒด coffee; f0f4 +๏€“ cog; f013 +๏‚… cogs; f085 +๏”ž coins; f51e +๏ƒ› columns; f0db +๏ต comment; f075 +๏‰บ comment-alt; f27a +๏™‘ comment-dollar; f651 +๏’ญ comment-dots; f4ad +๏Ÿต comment-medical; f7f5 +๏’ณ comment-slash; f4b3 +๏‚† comments; f086 +๏™“ comments-dollar; f653 +๏”Ÿ compact-disc; f51f +๏…Ž compass; f14e +๏ฆ compress; f066 +๏ข compress-alt; f422 +๏žŒ compress-arrows-alt; f78c +๏•ข concierge-bell; f562 +๏ž confluence; f78d +๏ˆŽ connectdevelop; f20e +๏‰ญ contao; f26d +๏•ฃ cookie; f563 +๏•ค cookie-bite; f564 +๏ƒ… copy; f0c5 +๏‡น copyright; f1f9 +๏ขž cotton-bureau; f89e +๏’ธ couch; f4b8 +๏Žˆ cpanel; f388 +๏‰ž creative-commons; f25e +๏“ง creative-commons-by; f4e7 +๏“จ creative-commons-nc; f4e8 +๏“ฉ creative-commons-nc-eu; f4e9 +๏“ช creative-commons-nc-jp; f4ea +๏“ซ creative-commons-nd; f4eb +๏“ฌ creative-commons-pd; f4ec +๏“ญ creative-commons-pd-alt; f4ed +๏“ฎ creative-commons-remix; f4ee +๏“ฏ creative-commons-sa; f4ef +๏“ฐ creative-commons-sampling; f4f0 +๏“ฑ creative-commons-sampling-plus; f4f1 +๏“ฒ creative-commons-share; f4f2 +๏“ณ creative-commons-zero; f4f3 +๏‚ credit-card; f09d +๏›‰ critical-role; f6c9 +๏„ฅ crop; f125 +๏•ฅ crop-alt; f565 +๏™” cross; f654 +๏› crosshairs; f05b +๏”  crow; f520 +๏”ก crown; f521 +๏Ÿท crutch; f7f7 +๏„ผ css3; f13c +๏Ž‹ css3-alt; f38b +๏†ฒ cube; f1b2 +๏†ณ cubes; f1b3 +๏ƒ„ cut; f0c4 +๏ŽŒ cuttlefish; f38c +๏Ž d-and-d; f38d +๏›Š d-and-d-beyond; f6ca +๎’ dailymotion e052 +๏ˆ dashcube; f210 +๏‡€ database; f1c0 +๏Šค deaf; f2a4 +๎ท deezer e077 +๏†ฅ delicious; f1a5 +๏‡ democrat; f747 +๏ŽŽ deploydog; f38e +๏Ž deskpro; f38f +๏„ˆ desktop; f108 +๏›Œ dev; f6cc +๏†ฝ deviantart; f1bd +๏™• dharmachakra; f655 +๏ž dhl; f790 +๏‘ฐ diagnoses; f470 +๏ž‘ diaspora; f791 +๏”ข dice; f522 +๏› dice-d20; f6cf +๏›‘ dice-d6; f6d1 +๏”ฃ dice-five; f523 +๏”ค dice-four; f524 +๏”ฅ dice-one; f525 +๏”ฆ dice-six; f526 +๏”ง dice-three; f527 +๏”จ dice-two; f528 +๏†ฆ digg; f1a6 +๏Ž‘ digital-ocean; f391 +๏•ฆ digital-tachograph; f566 +๏—ซ directions; f5eb +๏Ž’ discord; f392 +๏Ž“ discourse; f393 +๏Ÿบ disease; f7fa +๏”ฉ divide; f529 +๏•ง dizzy; f567 +๏‘ฑ dna; f471 +๏Ž” dochub; f394 +๏Ž• docker; f395 +๏›“ dog; f6d3 +๏…• dollar-sign; f155 +๏‘ฒ dolly; f472 +๏‘ด dolly-flatbed; f474 +๏’น donate; f4b9 +๏”ช door-closed; f52a +๏”ซ door-open; f52b +๏†’ dot-circle; f192 +๏’บ dove; f4ba +๏€™ download; f019 +๏Ž– draft2digital; f396 +๏•จ drafting-compass; f568 +๏›• dragon; f6d5 +๏—ฎ draw-polygon; f5ee +๏…ฝ dribbble; f17d +๏Ž— dribbble-square; f397 +๏…ซ dropbox; f16b +๏•ฉ drum; f569 +๏•ช drum-steelpan; f56a +๏›— drumstick-bite; f6d7 +๏†ฉ drupal; f1a9 +๏‘‹ dumbbell; f44b +๏ž“ dumpster; f793 +๏ž” dumpster-fire; f794 +๏›™ dungeon; f6d9 +๏Ž™ dyalog; f399 +๏Žš earlybirds; f39a +๏“ด ebay; f4f4 +๏Š‚ edge; f282 +๎ธ edge-legacy e078 +๏„ edit; f044 +๏Ÿป egg; f7fb +๏’ eject; f052 +๏ฐ elementor; f430 +๏… ellipsis-h; f141 +๏…‚ ellipsis-v; f142 +๏—ฑ ello; f5f1 +๏ฃ ember; f423 +๏‡‘ empire; f1d1 +๏ƒ  envelope; f0e0 +๏Šถ envelope-open; f2b6 +๏™˜ envelope-open-text; f658 +๏†™ envelope-square; f199 +๏Š™ envira; f299 +๏”ฌ equals; f52c +๏„ญ eraser; f12d +๏Ž erlang; f39d +๏ฎ ethereum; f42e +๏ž– ethernet; f796 +๏‹— etsy; f2d7 +๏…“ euro-sign; f153 +๏ น evernote; f839 +๏ข exchange-alt; f362 +๏„ช exclamation; f12a +๏ช exclamation-circle; f06a +๏ฑ exclamation-triangle; f071 +๏ฅ expand; f065 +๏ค expand-alt; f424 +๏Œž expand-arrows-alt; f31e +๏ˆพ expeditedssl; f23e +๏ external-link-alt; f35d +๏  external-link-square-alt; f360 +๏ฎ eye; f06e +๏‡ป eye-dropper; f1fb +๏ฐ eye-slash; f070 +๏‚š ; facebook; f09a +๏Žž ; facebook-f; f39e +๏ŽŸ ; facebook-messenger; f39f +๏‚‚ ; facebook-square; f082 +๏กฃ ; fan; f863 +๏›œ ; fantasy-flight-games; f6dc +๏‰ ; fast-backward; f049 +๏ ; fast-forward; f050 +๎€… ; faucet e005 +๏†ฌ ; fax; f1ac +๏”ญ ; feather; f52d +๏•ซ ; feather-alt; f56b +๏ž— ; fedex; f797 +๏ž˜ ; fedora; f798 +๏†‚ ; female; f182 +๏ƒป ; fighter-jet; f0fb +๏ž™ ; figma; f799 +๏…› ; file; f15b +๏…œ ; file-alt; f15c +๏‡† ; file-archive; f1c6 +๏‡‡ ; file-audio; f1c7 +๏‡‰ ; file-code; f1c9 +๏•ฌ ; file-contract; f56c +๏› ; file-csv; f6dd +๏•ญ ; file-download; f56d +๏‡ƒ ; file-excel; f1c3 +๏•ฎ ; file-export; f56e +๏‡… ; file-image; f1c5 +๏•ฏ ; file-import; f56f +๏•ฐ ; file-invoice; f570 +๏•ฑ ; file-invoice-dollar; f571 +๏‘ท ; file-medical; f477 +๏‘ธ ; file-medical-alt; f478 +๏‡ ; file-pdf; f1c1 +๏‡„ ; file-powerpoint; f1c4 +๏•ฒ ; file-prescription; f572 +๏•ณ ; file-signature; f573 +๏•ด ; file-upload; f574 +๏‡ˆ ; file-video; f1c8 +๏‡‚ ; file-word; f1c2 +๏•ต ; fill; f575 +๏•ถ ; fill-drip; f576 +๏€ˆ ; film; f008 +๏‚ฐ ; filter; f0b0 +๏•ท ; fingerprint; f577 +๏ญ ; fire; f06d +๏Ÿค ; fire-alt; f7e4 +๏„ด ; fire-extinguisher; f134 +๏‰ฉ ; firefox; f269 +๎€‡ ; firefox-browser e007 +๏‘น ; first-aid; f479 +๏Šฐ ; first-order; f2b0 +๏”Š ; first-order-alt; f50a +๏Žก ; firstdraft; f3a1 +๏•ธ ; fish; f578 +๏›ž ; fist-raised; f6de +๏€ค ; flag; f024 +๏„ž ; flag-checkered; f11e +๏ ; flag-usa; f74d +๏ƒƒ ; flask; f0c3 +๏…ฎ ; flickr; f16e +๏‘ ; flipboard; f44d +๏•น ; flushed; f579 +๏— ; fly; f417 +๏ป ; folder; f07b +๏™ ; folder-minus; f65d +๏ผ ; folder-open; f07c +๏™ž ; folder-plus; f65e +๏€ฑ ; font; f031 +๏Šด ; font-awesome; f2b4 +๏œ ; font-awesome-alt; f35c +๏ฅ ; font-awesome-flag; f425 +๏Š€ ; fonticons; f280 +๏Žข ; fonticons-fi; f3a2 +๏‘Ž ; football-ball; f44e +๏І ; fort-awesome; f286 +๏Žฃ ; fort-awesome-alt; f3a3 +๏ˆ‘ ; forumbee; f211 +๏Ž ; forward; f04e +๏†€ ; foursquare; f180 +๏‹… ; free-code-camp; f2c5 +๏Žค ; freebsd; f3a4 +๏”ฎ ; frog; f52e +๏„™ ; frown; f119 +๏•บ ; frown-open; f57a +๏”‹ ; fulcrum; f50b +๏™ข ; funnel-dollar; f662 +๏‡ฃ ; futbol; f1e3 +๏”Œ galactic-republic; f50c +๏” galactic-senate; f50d +๏„› gamepad; f11b +๏”ฏ gas-pump; f52f +๏ƒฃ gavel; f0e3 +๏Žฅ gem; f3a5 +๏ˆญ genderless; f22d +๏‰ฅ get-pocket; f265 +๏‰  gg; f260 +๏‰ก gg-circle; f261 +๏›ข ghost; f6e2 +๏ซ gift; f06b +๏žœ gifts; f79c +๏‡“ git; f1d3 +๏ก git-alt; f841 +๏‡’ git-square; f1d2 +๏‚› github; f09b +๏„“ github-alt; f113 +๏‚’ github-square; f092 +๏Žฆ gitkraken; f3a6 +๏Š– gitlab; f296 +๏ฆ gitter; f426 +๏žŸ glass-cheers; f79f +๏€€ glass-martini; f000 +๏•ป glass-martini-alt; f57b +๏ž  glass-whiskey; f7a0 +๏”ฐ glasses; f530 +๏Šฅ glide; f2a5 +๏Šฆ glide-g; f2a6 +๏‚ฌ globe; f0ac +๏•ผ globe-africa; f57c +๏•ฝ globe-americas; f57d +๏•พ globe-asia; f57e +๏žข globe-europe; f7a2 +๏Žง gofore; f3a7 +๏‘ golf-ball; f450 +๏Žจ goodreads; f3a8 +๏Žฉ goodreads-g; f3a9 +๏†  google; f1a0 +๏Žช google-drive; f3aa +๎น google-pay e079 +๏Žซ google-play; f3ab +๏Šณ google-plus; f2b3 +๏ƒ• google-plus-g; f0d5 +๏ƒ” google-plus-square; f0d4 +๏‡ฎ google-wallet; f1ee +๏™ค gopuram; f664 +๏† graduation-cap; f19d +๏†„ gratipay; f184 +๏‹– grav; f2d6 +๏”ฑ greater-than; f531 +๏”ฒ greater-than-equal; f532 +๏•ฟ grimace; f57f +๏–€ grin; f580 +๏– grin-alt; f581 +๏–‚ grin-beam; f582 +๏–ƒ grin-beam-sweat; f583 +๏–„ grin-hearts; f584 +๏–… grin-squint; f585 +๏–† grin-squint-tears; f586 +๏–‡ grin-stars; f587 +๏–ˆ grin-tears; f588 +๏–‰ grin-tongue; f589 +๏–Š grin-tongue-squint; f58a +๏–‹ grin-tongue-wink; f58b +๏–Œ grin-wink; f58c +๏– grip-horizontal; f58d +๏žค grip-lines; f7a4 +๏žฅ grip-lines-vertical; f7a5 +๏–Ž grip-vertical; f58e +๏Žฌ gripfire; f3ac +๏Žญ grunt; f3ad +๎พ guilded e07e +๏žฆ guitar; f7a6 +๏Žฎ gulp; f3ae +๏ƒฝ h-square; f0fd +๏‡” hacker-news; f1d4 +๏Žฏ hacker-news-square; f3af +๏—ท hackerrank; f5f7 +๏ … hamburger; f805 +๏›ฃ hammer; f6e3 +๏™ฅ hamsa; f665 +๏’ฝ hand-holding; f4bd +๏’พ hand-holding-heart; f4be +๎œ hand-holding-medical e05c +๏“€ hand-holding-usd; f4c0 +๏“ hand-holding-water; f4c1 +๏‰˜ hand-lizard; f258 +๏ † hand-middle-finger; f806 +๏‰– hand-paper; f256 +๏‰› hand-peace; f25b +๏‚ง hand-point-down; f0a7 +๏‚ฅ hand-point-left; f0a5 +๏‚ค hand-point-right; f0a4 +๏‚ฆ hand-point-up; f0a6 +๏‰š hand-pointer; f25a +๏‰• hand-rock; f255 +๏‰— hand-scissors; f257 +๎ hand-sparkles e05d +๏‰™ hand-spock; f259 +๏“‚ hands; f4c2 +๏“„ hands-helping; f4c4 +๎ž hands-wash e05e +๏Šต handshake; f2b5 +๎Ÿ handshake-alt-slash e05f +๎  handshake-slash e060 +๏›ฆ hanukiah; f6e6 +๏ ‡ hard-hat; f807 +๏Š’ hashtag; f292 +๏ฃ€ hat-cowboy; f8c0 +๏ฃ hat-cowboy-side; f8c1 +๏›จ hat-wizard; f6e8 +๏‚  hdd; f0a0 +๎ก head-side-cough e061 +๎ข head-side-cough-slash e062 +๎ฃ head-side-mask e063 +๎ค head-side-virus e064 +๏‡œ heading; f1dc +๏€ฅ headphones; f025 +๏– headphones-alt; f58f +๏– headset; f590 +๏€„ heart; f004 +๏žฉ heart-broken; f7a9 +๏ˆž heartbeat; f21e +๏”ณ helicopter; f533 +๏–‘ highlighter; f591 +๏›ฌ hiking; f6ec +๏›ญ hippo; f6ed +๏‘’ hips; f452 +๏Žฐ hire-a-helper; f3b0 +๏‡š history; f1da +๎ฟ hive e07f +๏‘“ hockey-puck; f453 +๏žช holly-berry; f7aa +๏€• home; f015 +๏ง hooli; f427 +๏–’ hornbill; f592 +๏›ฐ horse; f6f0 +๏žซ horse-head; f7ab +๏ƒธ hospital; f0f8 +๏‘ฝ hospital-alt; f47d +๏‘พ hospital-symbol; f47e +๏  hospital-user; f80d +๏–“ hot-tub; f593 +๏  hotdog; f80f +๏–” hotel; f594 +๏Žฑ hotjar; f3b1 +๏‰” hourglass; f254 +๏‰“ hourglass-end; f253 +๏‰’ hourglass-half; f252 +๏‰‘ hourglass-start; f251 +๏›ฑ house-damage; f6f1 +๎ฅ house-user e065 +๏‰ผ houzz; f27c +๏›ฒ hryvnia; f6f2 +๏„ป html5; f13b +๏Žฒ hubspot; f3b2 +๏‰† i-cursor; f246 +๏  ice-cream; f810 +๏žญ icicles; f7ad +๏กญ icons; f86d +๏‹ id-badge; f2c1 +๏‹‚ id-card; f2c2 +๏‘ฟ id-card-alt; f47f +๎€“ ideal e013 +๏žฎ igloo; f7ae +๏€พ image; f03e +๏Œ‚ images; f302 +๏‹˜ imdb; f2d8 +๏€œ inbox; f01c +๏€ผ indent; f03c +๏‰ต industry; f275 +๏”ด infinity; f534 +๏„ฉ info; f129 +๏š info-circle; f05a +๎‚€ innosoft e080 +๏…ญ instagram; f16d +๎• instagram-square e055 +๎‚ instalod e081 +๏žฏ intercom; f7af +๏‰ซ internet-explorer; f26b +๏žฐ invision; f7b0 +๏ˆˆ ioxhost; f208 +๏€ณ italic; f033 +๏ บ itch-io; f83a +๏Žด itunes; f3b4 +๏Žต itunes-note; f3b5 +๏“ค java; f4e4 +๏™ฉ jedi; f669 +๏”Ž jedi-order; f50e +๏Žถ jenkins; f3b6 +๏žฑ jira; f7b1 +๏Žท joget; f3b7 +๏–• joint; f595 +๏†ช joomla; f1aa +๏™ช journal-whills; f66a +๏Žธ js; f3b8 +๏Žน js-square; f3b9 +๏‡Œ jsfiddle; f1cc +๏™ซ kaaba; f66b +๏—บ kaggle; f5fa +๏‚„ key; f084 +๏“ต keybase; f4f5 +๏„œ keyboard; f11c +๏Žบ keycdn; f3ba +๏™ญ khanda; f66d +๏Žป kickstarter; f3bb +๏Žผ kickstarter-k; f3bc +๏–– kiss; f596 +๏–— kiss-beam; f597 +๏–˜ kiss-wink-heart; f598 +๏”ต kiwi-bird; f535 +๏ฏ korvue; f42f +๏™ฏ landmark; f66f +๏†ซ language; f1ab +๏„‰ laptop; f109 +๏—ผ laptop-code; f5fc +๎ฆ laptop-house e066 +๏ ’ laptop-medical; f812 +๏Žฝ laravel; f3bd +๏ˆ‚ lastfm; f202 +๏ˆƒ lastfm-square; f203 +๏–™ laugh; f599 +๏–š laugh-beam; f59a +๏–› laugh-squint; f59b +๏–œ laugh-wink; f59c +๏—ฝ layer-group; f5fd +๏ฌ leaf; f06c +๏ˆ’ leanpub; f212 +๏‚” lemon; f094 +๏ less; f41d +๏”ถ less-than; f536 +๏”ท less-than-equal; f537 +๏Žพ level-down-alt; f3be +๏Žฟ level-up-alt; f3bf +๏‡ life-ring; f1cd +๏ƒซ lightbulb; f0eb +๏€ line; f3c0 +๏ƒ link; f0c1 +๏‚Œ linkedin; f08c +๏ƒก linkedin-in; f0e1 +๏Šธ linode; f2b8 +๏…ผ linux; f17c +๏†• lira-sign; f195 +๏€บ list; f03a +๏€ข list-alt; f022 +๏ƒ‹ list-ol; f0cb +๏ƒŠ list-ul; f0ca +๏„ค location-arrow; f124 +๏€ฃ lock; f023 +๏ lock-open; f3c1 +๏Œ‰ long-arrow-alt-down; f309 +๏ŒŠ long-arrow-alt-left; f30a +๏Œ‹ long-arrow-alt-right; f30b +๏ŒŒ long-arrow-alt-up; f30c +๏Šจ low-vision; f2a8 +๏– luggage-cart; f59d +๏˜„ lungs; f604 +๎ง lungs-virus e067 +๏ƒ lyft; f3c3 +๏„ magento; f3c4 +๏ƒ magic; f0d0 +๏ถ magnet; f076 +๏™ด mail-bulk; f674 +๏–ž mailchimp; f59e +๏†ƒ male; f183 +๏” mandalorian; f50f +๏‰น map; f279 +๏–Ÿ map-marked; f59f +๏–  map-marked-alt; f5a0 +๏ map-marker; f041 +๏… map-marker-alt; f3c5 +๏‰ถ map-pin; f276 +๏‰ท map-signs; f277 +๏˜ markdown; f60f +๏–ก marker; f5a1 +๏ˆข mars; f222 +๏ˆง mars-double; f227 +๏ˆฉ mars-stroke; f229 +๏ˆซ mars-stroke-h; f22b +๏ˆช mars-stroke-v; f22a +๏›บ mask; f6fa +๏“ถ mastodon; f4f6 +๏„ถ maxcdn; f136 +๏ฃŠ mdb; f8ca +๏–ข medal; f5a2 +๏† medapps; f3c6 +๏ˆบ medium; f23a +๏‡ medium-m; f3c7 +๏ƒบ medkit; f0fa +๏ˆ medrt; f3c8 +๏‹  meetup; f2e0 +๏–ฃ megaport; f5a3 +๏„š meh; f11a +๏–ค meh-blank; f5a4 +๏–ฅ meh-rolling-eyes; f5a5 +๏”ธ memory; f538 +๏žณ mendeley; f7b3 +๏™ถ menorah; f676 +๏ˆฃ mercury; f223 +๏“ meteor; f753 +๎€š microblog e01a +๏‹› microchip; f2db +๏„ฐ microphone; f130 +๏‰ microphone-alt; f3c9 +๏”น microphone-alt-slash; f539 +๏„ฑ microphone-slash; f131 +๏˜ microscope; f610 +๏Š microsoft; f3ca +๏จ minus; f068 +๏– minus-circle; f056 +๏…† minus-square; f146 +๏žต mitten; f7b5 +๏‹ mix; f3cb +๏Љ mixcloud; f289 +๎– mixer e056 +๏Œ mizuni; f3cc +๏„‹ mobile; f10b +๏ mobile-alt; f3cd +๏Š… modx; f285 +๏ monero; f3d0 +๏ƒ– money-bill; f0d6 +๏‘ money-bill-alt; f3d1 +๏”บ money-bill-wave; f53a +๏”ป money-bill-wave-alt; f53b +๏”ผ money-check; f53c +๏”ฝ money-check-alt; f53d +๏–ฆ monument; f5a6 +๏†† moon; f186 +๏–ง mortar-pestle; f5a7 +๏™ธ mosque; f678 +๏ˆœ motorcycle; f21c +๏›ผ mountain; f6fc +๏ฃŒ mouse; f8cc +๏‰… mouse-pointer; f245 +๏žถ mug-hot; f7b6 +๏€ music; f001 +๏’ napster; f3d2 +๏˜’ neos; f612 +๏›ฟ network-wired; f6ff +๏ˆฌ neuter; f22c +๏‡ช newspaper; f1ea +๏–จ nimblr; f5a8 +๏™ node; f419 +๏“ node-js; f3d3 +๏”พ not-equal; f53e +๏’ notes-medical; f481 +๏” npm; f3d4 +๏• ns8; f3d5 +๏– nutritionix; f3d6 +๏‰‡ object-group; f247 +๏‰ˆ object-ungroup; f248 +๎‚‚ octopus-deploy e082 +๏‰ฃ odnoklassniki; f263 +๏‰ค odnoklassniki-square; f264 +๏˜“ oil-can; f613 +๏” old-republic; f510 +๏™น om; f679 +๏ˆฝ opencart; f23d +๏†› openid; f19b +๏‰ช opera; f26a +๏ˆผ optin-monster; f23c +๏ฃ’ orcid; f8d2 +๏š osi; f41a +๏œ€ otter; f700 +๏€ป outdent; f03b +๏— page4; f3d7 +๏†Œ pagelines; f18c +๏ • pager; f815 +๏‡ผ paint-brush; f1fc +๏–ช paint-roller; f5aa +๏”ฟ palette; f53f +๏˜ palfed; f3d8 +๏’‚ pallet; f482 +๏‡˜ paper-plane; f1d8 +๏ƒ† paperclip; f0c6 +๏“ parachute-box; f4cd +๏‡ paragraph; f1dd +๏•€ parking; f540 +๏–ซ passport; f5ab +๏™ป pastafarianism; f67b +๏ƒช paste; f0ea +๏™ patreon; f3d9 +๏Œ pause; f04c +๏Š‹ pause-circle; f28b +๏†ฐ paw; f1b0 +๏‡ญ paypal; f1ed +๏™ผ peace; f67c +๏Œ„ pen; f304 +๏Œ… pen-alt; f305 +๏–ฌ pen-fancy; f5ac +๏–ญ pen-nib; f5ad +๏…‹ pen-square; f14b +๏Œƒ pencil-alt; f303 +๏–ฎ pencil-ruler; f5ae +๏œ„ penny-arcade; f704 +๎จ people-arrows e068 +๏“Ž people-carry; f4ce +๏ – pepper-hot; f816 +๎‚ƒ perbyte e083 +๏Š• percent; f295 +๏• percentage; f541 +๏š periscope; f3da +๏– person-booth; f756 +๏› phabricator; f3db +๏œ phoenix-framework; f3dc +๏”‘ phoenix-squadron; f511 +๏‚• phone; f095 +๏กน phone-alt; f879 +๏ phone-slash; f3dd +๏‚˜ phone-square; f098 +๏กป phone-square-alt; f87b +๏Š  phone-volume; f2a0 +๏กผ photo-video; f87c +๏‘— php; f457 +๏Šฎ pied-piper; f2ae +๏†จ pied-piper-alt; f1a8 +๏“ฅ pied-piper-hat; f4e5 +๏†ง pied-piper-pp; f1a7 +๎€ž pied-piper-square e01e +๏““ piggy-bank; f4d3 +๏’„ pills; f484 +๏ƒ’ pinterest; f0d2 +๏ˆฑ pinterest-p; f231 +๏ƒ“ pinterest-square; f0d3 +๏ ˜ pizza-slice; f818 +๏™ฟ place-of-worship; f67f +๏ฒ plane; f072 +๏–ฏ plane-arrival; f5af +๏–ฐ plane-departure; f5b0 +๎ฉ plane-slash e069 +๏‹ play; f04b +๏…„ play-circle; f144 +๏Ÿ playstation; f3df +๏‡ฆ plug; f1e6 +๏ง plus; f067 +๏• plus-circle; f055 +๏ƒพ plus-square; f0fe +๏‹Ž podcast; f2ce +๏š poll; f681 +๏š‚ poll-h; f682 +๏‹พ poo; f2fe +๏š poo-storm; f75a +๏˜™ poop; f619 +๏  portrait; f3e0 +๏…” pound-sign; f154 +๏€‘ power-off; f011 +๏šƒ pray; f683 +๏š„ praying-hands; f684 +๏–ฑ prescription; f5b1 +๏’… prescription-bottle; f485 +๏’† prescription-bottle-alt; f486 +๏€ฏ print; f02f +๏’‡ procedures; f487 +๏Šˆ product-hunt; f288 +๏•‚ project-diagram; f542 +๎ช pump-medical e06a +๎ซ pump-soap e06b +๏ก pushed; f3e1 +๏„ฎ puzzle-piece; f12e +๏ข python; f3e2 +๏‡– qq; f1d6 +๏€ฉ qrcode; f029 +๏„จ question; f128 +๏™ question-circle; f059 +๏‘˜ quidditch; f458 +๏‘™ quinscape; f459 +๏‹„ quora; f2c4 +๏„ quote-left; f10d +๏„Ž quote-right; f10e +๏š‡ quran; f687 +๏“ท r-project; f4f7 +๏žน radiation; f7b9 +๏žบ radiation-alt; f7ba +๏› rainbow; f75b +๏ด random; f074 +๏žป raspberry-pi; f7bb +๏‹™ ravelry; f2d9 +๏› react; f41b +๏ reacteurope; f75d +๏“• readme; f4d5 +๏‡ rebel; f1d0 +๏•ƒ receipt; f543 +๏ฃ™ record-vinyl; f8d9 +๏†ธ recycle; f1b8 +๏ฃ red-river; f3e3 +๏†ก reddit; f1a1 +๏Ё reddit-alien; f281 +๏†ข reddit-square; f1a2 +๏žผ redhat; f7bc +๏€ž redo; f01e +๏‹น redo-alt; f2f9 +๏‰ registered; f25d +๏กฝ remove-format; f87d +๏†‹ renren; f18b +๏ฅ reply; f3e5 +๏„ข reply-all; f122 +๏ฆ replyd; f3e6 +๏ž republican; f75e +๏“ธ researchgate; f4f8 +๏ง resolving; f3e7 +๏žฝ restroom; f7bd +๏น retweet; f079 +๏–ฒ rev; f5b2 +๏“– ribbon; f4d6 +๏œ‹ ring; f70b +๏€˜ road; f018 +๏•„ robot; f544 +๏„ต rocket; f135 +๏จ rocketchat; f3e8 +๏ฉ rockrms; f3e9 +๏“— route; f4d7 +๏‚ž rss; f09e +๏…ƒ rss-square; f143 +๏…˜ ruble-sign; f158 +๏•… ruler; f545 +๏•† ruler-combined; f546 +๏•‡ ruler-horizontal; f547 +๏•ˆ ruler-vertical; f548 +๏œŒ running; f70c +๏…– rupee-sign; f156 +๎บ rust e07a +๏–ณ sad-cry; f5b3 +๏–ด sad-tear; f5b4 +๏‰ง safari; f267 +๏ ป salesforce; f83b +๏ž sass; f41e +๏žฟ satellite; f7bf +๏Ÿ€ satellite-dish; f7c0 +๏ƒ‡ save; f0c7 +๏ช schlix; f3ea +๏•‰ school; f549 +๏•Š screwdriver; f54a +๏ŠŠ scribd; f28a +๏œŽ scroll; f70e +๏Ÿ‚ sd-card; f7c2 +๏€‚ search; f002 +๏šˆ search-dollar; f688 +๏š‰ search-location; f689 +๏€ search-minus; f010 +๏€Ž search-plus; f00e +๏ซ searchengin; f3eb +๏“˜ seedling; f4d8 +๏‹š sellcast; f2da +๏ˆ“ sellsy; f213 +๏ˆณ server; f233 +๏ฌ servicestack; f3ec +๏˜Ÿ shapes; f61f +๏ค share; f064 +๏‡  share-alt; f1e0 +๏‡ก share-alt-square; f1e1 +๏… share-square; f14d +๏ˆ‹ shekel-sign; f20b +๏ญ shield-alt; f3ed +๎ฌ shield-virus e06c +๏ˆš ship; f21a +๏’‹ shipping-fast; f48b +๏ˆ” shirtsinbulk; f214 +๏•‹ shoe-prints; f54b +๎— shopify e057 +๏А shopping-bag; f290 +๏Š‘ shopping-basket; f291 +๏บ shopping-cart; f07a +๏–ต shopware; f5b5 +๏‹Œ shower; f2cc +๏–ถ shuttle-van; f5b6 +๏“™ sign; f4d9 +๏‹ถ sign-in-alt; f2f6 +๏Šง sign-language; f2a7 +๏‹ต sign-out-alt; f2f5 +๏€’ signal; f012 +๏–ท signature; f5b7 +๏Ÿ„ sim-card; f7c4 +๏ˆ• simplybuilt; f215 +๎ญ sink e06d +๏ฎ sistrix; f3ee +๏ƒจ sitemap; f0e8 +๏”’ sith; f512 +๏Ÿ… skating; f7c5 +๏Ÿ† sketch; f7c6 +๏Ÿ‰ skiing; f7c9 +๏ŸŠ skiing-nordic; f7ca +๏•Œ skull; f54c +๏œ” skull-crossbones; f714 +๏ˆ– skyatlas; f216 +๏…พ skype; f17e +๏†˜ slack; f198 +๏ฏ slack-hash; f3ef +๏œ• slash; f715 +๏ŸŒ sleigh; f7cc +๏‡ž sliders-h; f1de +๏‡ง slideshare; f1e7 +๏„˜ smile; f118 +๏–ธ smile-beam; f5b8 +๏“š smile-wink; f4da +๏Ÿ smog; f75f +๏’ smoking; f48d +๏• smoking-ban; f54d +๏Ÿ sms; f7cd +๏Šซ snapchat; f2ab +๏Šฌ snapchat-ghost; f2ac +๏Šญ snapchat-square; f2ad +๏ŸŽ snowboarding; f7ce +๏‹œ snowflake; f2dc +๏Ÿ snowman; f7d0 +๏Ÿ’ snowplow; f7d2 +๎ฎ soap e06e +๏š– socks; f696 +๏–บ solar-panel; f5ba +๏ƒœ sort; f0dc +๏… sort-alpha-down; f15d +๏ข sort-alpha-down-alt; f881 +๏…ž sort-alpha-up; f15e +๏ข‚ sort-alpha-up-alt; f882 +๏…  sort-amount-down; f160 +๏ข„ sort-amount-down-alt; f884 +๏…ก sort-amount-up; f161 +๏ข… sort-amount-up-alt; f885 +๏ƒ sort-down; f0dd +๏…ข sort-numeric-down; f162 +๏ข† sort-numeric-down-alt; f886 +๏…ฃ sort-numeric-up; f163 +๏ข‡ sort-numeric-up-alt; f887 +๏ƒž sort-up; f0de +๏†พ soundcloud; f1be +๏Ÿ“ sourcetree; f7d3 +๏–ป spa; f5bb +๏†— space-shuttle; f197 +๏ณ speakap; f3f3 +๏ ผ speaker-deck; f83c +๏ข‘ spell-check; f891 +๏œ— spider; f717 +๏„ spinner; f110 +๏–ผ splotch; f5bc +๏†ผ spotify; f1bc +๏–ฝ spray-can; f5bd +๏ƒˆ square; f0c8 +๏‘œ square-full; f45c +๏š˜ square-root-alt; f698 +๏–พ squarespace; f5be +๏† stack-exchange; f18d +๏…ฌ stack-overflow; f16c +๏ก‚ stackpath; f842 +๏–ฟ stamp; f5bf +๏€… star; f005 +๏š™ star-and-crescent; f699 +๏‚‰ star-half; f089 +๏—€ star-half-alt; f5c0 +๏šš star-of-david; f69a +๏˜ก star-of-life; f621 +๏ต staylinked; f3f5 +๏†ถ steam; f1b6 +๏†ท steam-square; f1b7 +๏ถ steam-symbol; f3f6 +๏ˆ step-backward; f048 +๏‘ step-forward; f051 +๏ƒฑ stethoscope; f0f1 +๏ท sticker-mule; f3f7 +๏‰‰ sticky-note; f249 +๏ stop; f04d +๏Š stop-circle; f28d +๏‹ฒ stopwatch; f2f2 +๎ฏ stopwatch-20 e06f +๏•Ž store; f54e +๏• store-alt; f54f +๎ฐ store-alt-slash e070 +๎ฑ store-slash e071 +๏จ strava; f428 +๏• stream; f550 +๏ˆ street-view; f21d +๏ƒŒ strikethrough; f0cc +๏ฉ stripe; f429 +๏ช stripe-s; f42a +๏•‘ stroopwafel; f551 +๏ธ studiovinari; f3f8 +๏†ค stumbleupon; f1a4 +๏†ฃ stumbleupon-circle; f1a3 +๏„ฌ subscript; f12c +๏ˆน subway; f239 +๏ƒฒ suitcase; f0f2 +๏— suitcase-rolling; f5c1 +๏†… sun; f185 +๏‹ superpowers; f2dd +๏„ซ superscript; f12b +๏น supple; f3f9 +๏—‚ surprise; f5c2 +๏Ÿ– suse; f7d6 +๏—ƒ swatchbook; f5c3 +๏ฃก swift; f8e1 +๏—„ swimmer; f5c4 +๏—… swimming-pool; f5c5 +๏ ฝ symfony; f83d +๏š› synagogue; f69b +๏€ก sync; f021 +๏‹ฑ sync-alt; f2f1 +๏’Ž syringe; f48e +๏ƒŽ table; f0ce +๏‘ table-tennis; f45d +๏„Š tablet; f10a +๏บ tablet-alt; f3fa +๏’ tablets; f490 +๏ฝ tachometer-alt; f3fd +๏€ซ tag; f02b +๏€ฌ tags; f02c +๏“› tape; f4db +๏‚ฎ tasks; f0ae +๏†บ taxi; f1ba +๏“น teamspeak; f4f9 +๏˜ฎ teeth; f62e +๏˜ฏ teeth-open; f62f +๏‹† telegram; f2c6 +๏พ telegram-plane; f3fe +๏ฉ temperature-high; f769 +๏ซ temperature-low; f76b +๏‡• tencent-weibo; f1d5 +๏Ÿ— tenge; f7d7 +๏„  terminal; f120 +๏€ด text-height; f034 +๏€ต text-width; f035 +๏€Š th; f00a +๏€‰ th-large; f009 +๏€‹ th-list; f00b +๏š the-red-yeti; f69d +๏˜ฐ theater-masks; f630 +๏—† themeco; f5c6 +๏Šฒ themeisle; f2b2 +๏’‘ thermometer; f491 +๏‹‹ thermometer-empty; f2cb +๏‹‡ thermometer-full; f2c7 +๏‹‰ thermometer-half; f2c9 +๏‹Š thermometer-quarter; f2ca +๏‹ˆ thermometer-three-quarters; f2c8 +๏œฑ think-peaks; f731 +๏…ฅ thumbs-down; f165 +๏…ค thumbs-up; f164 +๏‚ thumbtack; f08d +๏ฟ ticket-alt; f3ff +๎ป tiktok e07b +๏€ times; f00d +๏— times-circle; f057 +๏ƒ tint; f043 +๏—‡ tint-slash; f5c7 +๏—ˆ tired; f5c8 +๏ˆ„ toggle-off; f204 +๏ˆ… toggle-on; f205 +๏Ÿ˜ toilet; f7d8 +๏œž toilet-paper; f71e +๎ฒ toilet-paper-slash e072 +๏•’ toolbox; f552 +๏Ÿ™ tools; f7d9 +๏—‰ tooth; f5c9 +๏š  torah; f6a0 +๏šก torii-gate; f6a1 +๏œข tractor; f722 +๏”“ trade-federation; f513 +๏‰œ trademark; f25c +๏˜ท traffic-light; f637 +๎ trailer e041 +๏ˆธ train; f238 +๏Ÿš tram; f7da +๏ˆค transgender; f224 +๏ˆฅ transgender-alt; f225 +๏‡ธ trash; f1f8 +๏‹ญ trash-alt; f2ed +๏ ฉ trash-restore; f829 +๏ ช trash-restore-alt; f82a +๏†ป tree; f1bb +๏† trello; f181 +๏‚‘ trophy; f091 +๏ƒ‘ truck; f0d1 +๏“ž truck-loading; f4de +๏˜ป truck-monster; f63b +๏“Ÿ truck-moving; f4df +๏˜ผ truck-pickup; f63c +๏•“ tshirt; f553 +๏‡ค tty; f1e4 +๏…ณ tumblr; f173 +๏…ด tumblr-square; f174 +๏‰ฌ tv; f26c +๏‡จ twitch; f1e8 +๏‚™ twitter; f099 +๏‚ twitter-square; f081 +๏ซ typo3; f42b +๏‚ uber; f402 +๏ŸŸ ubuntu; f7df +๏ƒ uikit; f403 +๏ฃจ umbraco; f8e8 +๏ƒฉ umbrella; f0e9 +๏—Š umbrella-beach; f5ca +๎‚„ uncharted e084 +๏ƒ underline; f0cd +๏ƒข undo; f0e2 +๏‹ช undo-alt; f2ea +๏„ uniregistry; f404 +๎‰ unity e049 +๏Šš universal-access; f29a +๏†œ university; f19c +๏„ง unlink; f127 +๏‚œ unlock; f09c +๏„พ unlock-alt; f13e +๎ผ unsplash e07c +๏… untappd; f405 +๏‚“ upload; f093 +๏Ÿ  ups; f7e0 +๏Ї usb; f287 +๏€‡ user; f007 +๏† user-alt; f406 +๏“บ user-alt-slash; f4fa +๏“ป user-astronaut; f4fb +๏“ผ user-check; f4fc +๏Šฝ user-circle; f2bd +๏“ฝ user-clock; f4fd +๏“พ user-cog; f4fe +๏“ฟ user-edit; f4ff +๏”€ user-friends; f500 +๏” user-graduate; f501 +๏œจ user-injured; f728 +๏”‚ user-lock; f502 +๏ƒฐ user-md; f0f0 +๏”ƒ user-minus; f503 +๏”„ user-ninja; f504 +๏ ฏ user-nurse; f82f +๏ˆด user-plus; f234 +๏ˆ› user-secret; f21b +๏”… user-shield; f505 +๏”† user-slash; f506 +๏”‡ user-tag; f507 +๏”ˆ user-tie; f508 +๏ˆต user-times; f235 +๏ƒ€ users; f0c0 +๏”‰ users-cog; f509 +๎ณ users-slash e073 +๏Ÿก usps; f7e1 +๏‡ ussunnah; f407 +๏‹ฅ utensil-spoon; f2e5 +๏‹ง utensils; f2e7 +๏ˆ vaadin; f408 +๏—‹ vector-square; f5cb +๏ˆก venus; f221 +๏ˆฆ venus-double; f226 +๏ˆจ venus-mars; f228 +๎‚… vest e085 +๎‚† vest-patches e086 +๏ˆท viacoin; f237 +๏Šฉ viadeo; f2a9 +๏Šช viadeo-square; f2aa +๏’’ vial; f492 +๏’“ vials; f493 +๏‰ viber; f409 +๏€ฝ video; f03d +๏“ข video-slash; f4e2 +๏šง vihara; f6a7 +๏Š vimeo; f40a +๏†” vimeo-square; f194 +๏‰ฝ vimeo-v; f27d +๏‡Š vine; f1ca +๎ด virus e074 +๎ต virus-slash e075 +๎ถ viruses e076 +๏†‰ vk; f189 +๏‹ vnv; f40b +๏ข— voicemail; f897 +๏‘Ÿ volleyball-ball; f45f +๏€ง volume-down; f027 +๏šฉ volume-mute; f6a9 +๏€ฆ volume-off; f026 +๏€จ volume-up; f028 +๏ฒ vote-yea; f772 +๏œฉ vr-cardboard; f729 +๏Ÿ vuejs; f41f +๏•” walking; f554 +๏•• wallet; f555 +๏’” warehouse; f494 +๎‚‡ watchman-monitoring e087 +๏ณ water; f773 +๏ พ wave-square; f83e +๏ ฟ waze; f83f +๏—Œ weebly; f5cc +๏†Š weibo; f18a +๏’– weight; f496 +๏— weight-hanging; f5cd +๏‡— weixin; f1d7 +๏ˆฒ whatsapp; f232 +๏Œ whatsapp-square; f40c +๏†“ wheelchair; f193 +๏ whmcs; f40d +๏‡ซ wifi; f1eb +๏‰ฆ wikipedia-w; f266 +๏œฎ wind; f72e +๏ window-close; f410 +๏‹ window-maximize; f2d0 +๏‹‘ window-minimize; f2d1 +๏‹’ window-restore; f2d2 +๏…บ windows; f17a +๏œฏ wine-bottle; f72f +๏“ฃ wine-glass; f4e3 +๏—Ž wine-glass-alt; f5ce +๏— wix; f5cf +๏œฐ wizards-of-the-coast; f730 +๎‚ˆ wodu e088 +๏”” wolf-pack-battalion; f514 +๏…™ won-sign; f159 +๏†š wordpress; f19a +๏‘ wordpress-simple; f411 +๏Š— wpbeginner; f297 +๏‹ž wpexplorer; f2de +๏Š˜ wpforms; f298 +๏ค wpressr; f3e4 +๏‚ญ wrench; f0ad +๏’— x-ray; f497 +๏’ xbox; f412 +๏…จ xing; f168 +๏…ฉ xing-square; f169 +๏ˆป y-combinator; f23b +๏†ž yahoo; f19e +๏ก€ yammer; f840 +๏“ yandex; f413 +๏” yandex-international; f414 +๏Ÿฃ yarn; f7e3 +๏‡ฉ yelp; f1e9 +๏…— yen-sign; f157 +๏šญ yin-yang; f6ad +๏Šฑ yoast; f2b1 +๏…ง youtube; f167 +๏ฑ youtube-square; f431 +๏˜ฟ zhihu; f63f From 77af528edfd4f225cb7fc4e6c08a6806be85556a Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 8 Jul 2022 14:25:42 -0400 Subject: [PATCH 022/175] setbg updates dwm colorscheme --- .local/bin/setbg | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.local/bin/setbg b/.local/bin/setbg index 28298960..b72dc7d5 100755 --- a/.local/bin/setbg +++ b/.local/bin/setbg @@ -17,13 +17,12 @@ trueloc="$(readlink -f "$1")" && case "$(file --mime-type -b "$trueloc")" in image/* ) ln -sf "$(readlink -f "$1")" "$bgloc" && notify-send -i "$bgloc" "Changing wallpaper..." ;; inode/directory ) ln -sf "$(find "$trueloc" -iregex '.*.\(jpg\|jpeg\|png\|gif\)' -type f | shuf -n 1)" "$bgloc" && notify-send -i "$bgloc" "Random Wallpaper chosen." ;; - *) notify-send "Error" "Not a valid image." ; exit 1;; + *) notify-send "๐Ÿ–ผ๏ธ Error" "Not a valid image or directory." ; exit 1;; esac # If pywal is installed, use it. if command -v wal >/dev/null 2>&1 ; then - wal -i "$(readlink -f $bgloc)" -o "${XDG_CONFIG_HOME:-$HOME/.config}/wal/postrun" >/dev/null 2>&1 && - pidof dwm >/dev/null && xdotool key super+F12 + wal -n -i "$(readlink -f $bgloc)" -o "${XDG_CONFIG_HOME:-$HOME/.config}/wal/postrun" >/dev/null 2>&1 # If pywal is removed, return config files to normal. else [ -f "$dunstconf.bak" ] && unlink "$dunstconf" && mv "$dunstconf.bak" "$dunstconf" @@ -31,3 +30,5 @@ else fi xwallpaper --zoom "$bgloc" +# If running, dwm hit the key to refresh the color scheme. +pidof dwm >/dev/null && xdotool key super+F5 From 2a34af646c7c8698a3a6f1d35e8160fffb51e2a2 Mon Sep 17 00:00:00 2001 From: Arjun Karangiya Date: Tue, 12 Jul 2022 23:32:44 +0530 Subject: [PATCH 023/175] killall needs full process name to work (#1141) --- .local/bin/td-toggle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/td-toggle b/.local/bin/td-toggle index 3c20ea19..de1a0e6e 100755 --- a/.local/bin/td-toggle +++ b/.local/bin/td-toggle @@ -4,7 +4,7 @@ if pidof transmission-daemon >/dev/null ; then - [ "$(printf "No\\nYes" | dmenu -i -p "Turn off transmission-daemon?")" = "Yes" ] && killall transmission-da && notify-send "transmission-daemon disabled." + [ "$(printf "No\\nYes" | dmenu -i -p "Turn off transmission-daemon?")" = "Yes" ] && killall transmission-daemon && notify-send "transmission-daemon disabled." else ifinstalled transmission-cli || exit [ "$(printf "No\\nYes" | dmenu -i -p "Turn on transmission daemon?")" = "Yes" ] && transmission-daemon && notify-send "transmission-daemon enabled." From 8f2810ac20c942f784d0cae1d11812d6ce51c308 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Tue, 19 Jul 2022 17:04:17 -0400 Subject: [PATCH 024/175] samedir now sd, libxft-bgra message removed --- .config/shell/aliasrc | 2 ++ .config/shell/profile | 12 +----------- .local/bin/{samedir => sd} | 0 3 files changed, 3 insertions(+), 11 deletions(-) rename .local/bin/{samedir => sd} (100%) diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc index 27d45271..8273a2f1 100644 --- a/.config/shell/aliasrc +++ b/.config/shell/aliasrc @@ -11,6 +11,8 @@ for command in mount umount sv pacman updatedb su shutdown poweroff reboot ; do alias $command="sudo $command" done; unset command +se() { cd ~/.local/bin; $EDITOR $(fzf) ;} + # Verbosity and settings that you pretty much just always are going to want. alias \ cp="cp -iv" \ diff --git a/.config/shell/profile b/.config/shell/profile index 9515179d..62d5e790 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -140,17 +140,7 @@ ex=๐ŸŽฏ:\ *.java=โ™จ:\ " -[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && shortcuts >/dev/null 2>&1 & - -if pacman -Qs libxft-bgra >/dev/null 2>&1; then - # Start graphical server on user's current tty if not already running. - [ "$(tty)" = "/dev/tty1" ] && ! pidof -s Xorg >/dev/null 2>&1 && exec startx "$XINITRC" -else - echo "\033[31mIMPORTANT\033[0m: Note that \033[32m\`libxft-bgra\`\033[0m must be installed for this build of dwm. -Please run: - \033[32myay -S libxft-bgra-git\033[0m -and replace \`libxft\`. Afterwards, you may start the graphical server by running \`startx\`." -fi +[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1 # Switch escape and caps if tty and no passwd required: sudo -n loadkeys ${XDG_DATA_HOME:-$HOME/.local/share}/larbs/ttymaps.kmap 2>/dev/null diff --git a/.local/bin/samedir b/.local/bin/sd similarity index 100% rename from .local/bin/samedir rename to .local/bin/sd From 946f2c4d1e87570d65f8246949eadec788c38ff2 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Wed, 20 Jul 2022 19:34:37 +0200 Subject: [PATCH 025/175] Restore startx command on boot (#1147) --- .config/shell/profile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.config/shell/profile b/.config/shell/profile index 62d5e790..65a7ff31 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -140,6 +140,9 @@ ex=๐ŸŽฏ:\ *.java=โ™จ:\ " +# Start graphical server on user's current tty if not already running. +[ "$(tty)" = "/dev/tty1" ] && ! pidof -s Xorg >/dev/null 2>&1 && exec startx "$XINITRC" + [ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1 # Switch escape and caps if tty and no passwd required: From 65c7da88ed1d512fcb926d8c69ce57d295f1d1b4 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Thu, 21 Jul 2022 14:33:35 -0400 Subject: [PATCH 026/175] fix #1150 --- .local/bin/booksplit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/booksplit b/.local/bin/booksplit index 69e4f36c..a6845f73 100755 --- a/.local/bin/booksplit +++ b/.local/bin/booksplit @@ -9,7 +9,7 @@ echo "Enter the artist/author:"; read -r author echo "Enter the publication year:"; read -r year inputaudio="$1" -ext="${1#*.}" +ext="${1##*.}" # Get a safe file name from the book. escbook="$(echo "$booktitle" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")" From f7839e8fd432627e610069d0070d3ea61805b5c8 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Wed, 3 Aug 2022 12:40:52 +0000 Subject: [PATCH 027/175] Change brave to librewolf in shell profile (#1154) --- .config/shell/profile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/shell/profile b/.config/shell/profile index 65a7ff31..d5b182f9 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -13,7 +13,7 @@ unsetopt PROMPT_SP # Default programs: export EDITOR="nvim" export TERMINAL="st" -export BROWSER="brave" +export BROWSER="librewolf" # ~/ Clean-up: export XDG_CONFIG_HOME="$HOME/.config" From 709795f42bf7722f26b4529259fc3eafd187f624 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Wed, 3 Aug 2022 15:19:27 -0400 Subject: [PATCH 028/175] shortcuts fix --- .config/shell/profile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.config/shell/profile b/.config/shell/profile index 65a7ff31..c77735db 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -140,10 +140,10 @@ ex=๐ŸŽฏ:\ *.java=โ™จ:\ " +[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1 + # Start graphical server on user's current tty if not already running. [ "$(tty)" = "/dev/tty1" ] && ! pidof -s Xorg >/dev/null 2>&1 && exec startx "$XINITRC" -[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1 - # Switch escape and caps if tty and no passwd required: sudo -n loadkeys ${XDG_DATA_HOME:-$HOME/.local/share}/larbs/ttymaps.kmap 2>/dev/null From 606905268fb71a1c6f3b23ddcaab38886b2f2296 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 5 Aug 2022 08:38:22 -0400 Subject: [PATCH 029/175] libreoffice programs, close #1155 --- .config/lf/lfrc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 315ac3f7..1d529498 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -44,6 +44,12 @@ cmd open ${{ video/*) setsid -f mpv $f -quiet >/dev/null 2>&1 ;; application/pdf|application/vnd*|application/epub*) setsid -f zathura $fx >/dev/null 2>&1 ;; application/pgp-encrypted) $EDITOR $fx ;; + application/vnd.openxmlformats-officedocument.wordprocessingml.document|application/vnd.oasis.opendocument.text) setsid -f lowriter $fx >/dev/null 2>&1 ;; + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet|application/octet-stream|application/vnd.oasis.opendocument.spreadsheet|application/vnd.oasis.opendocument.spreadsheet-template) setsid -f localc $fx >/dev/null 2>&1 ;; + application/vnd.openxmlformats-officedocument.presentationml.presentation|application/vnd.oasis.opendocument.presentation-template|application/vnd.oasis.opendocument.presentation|application/vnd.ms-powerpoint) setsid -f loimpress $fx >/dev/null 2>&1 ;; + application/vnd.oasis.opendocument.graphics|application/vnd.oasis.opendocument.graphics-template) setsid -f lodraw $fx >/dev/null 2>&1 ;; + application/vnd.oasis.opendocument.formula) setsid -f lomath $fx >/dev/null 2>&1 ;; + application/vnd.oasis.opendocument.database) setsid -f lobase $fx >/dev/null 2>&1 ;; *) for f in $fx; do setsid -f $OPENER $f >/dev/null 2>&1; done;; esac }} From d92287afe0d055319ad7e3df95732be72d693d09 Mon Sep 17 00:00:00 2001 From: snailed Date: Wed, 10 Aug 2022 11:53:24 +0000 Subject: [PATCH 030/175] Parse tex root for more complex latex files Allows parsing texroot comments so that you can compile a LaTeX document from outside of the document root, as long as it contains the usual magic comment format: % !TEX root = doc.tex --- .local/bin/compiler | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.local/bin/compiler b/.local/bin/compiler index 67992be8..85a0c581 100755 --- a/.local/bin/compiler +++ b/.local/bin/compiler @@ -18,6 +18,8 @@ cd "$dir" || exit 1 textype() { \ command="pdflatex" + texroot=$(grep -Poi "^ *% *\! *tex root *= *\w+(?:\.\w*)?" "$file" | cut -d "=" -f 2 | tr -d "[:blank:]") + [ -n "$texroot" ] && base=$texroot && echo "Compiling from TeX root: $texroot" ( head -n5 "$file" | grep -qi 'xelatex' ) && command="xelatex" $command --output-directory="$dir" "$base" && grep -qi addbibresource "$file" && From f9b5666a5768408dbb75df0cca242cae4505c9fb Mon Sep 17 00:00:00 2001 From: snailed Date: Mon, 15 Aug 2022 12:10:32 +0000 Subject: [PATCH 031/175] Better passing of filenames to shell scripts (#1161) Doing things the way it's intended. This also makes it easier to copy the autocmd to a lua based configuration. --- .config/nvim/init.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 913c4789..c6258b33 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -85,10 +85,10 @@ set noshowcmd nnoremap S :%s//g " Compile document, be it groff/LaTeX/markdown/etc. - map c :w! \| !compiler "%" + map c :w! \| !compiler %:p " Open corresponding .pdf/.html or preview - map p :!opout % + map p :!opout %:p " Runs a script that cleans out tex build files whenever I close out of a .tex file. autocmd VimLeave *.tex !texclear % From a68f80e4f8e0dc780c7d3c75b7df09ebe4da3ac5 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Mon, 15 Aug 2022 08:14:15 -0400 Subject: [PATCH 032/175] close #1163 --- .config/nvim/init.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 913c4789..73e09fc7 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -102,7 +102,7 @@ set noshowcmd autocmd BufRead,BufNewFile *.tex set filetype=tex " Save file as sudo on files that require root permission - cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' edit! + cabbrev w!! execute 'silent! write !sudo tee % >/dev/null' edit! " Enable Goyo by default for mutt writing autocmd BufRead,BufNewFile /tmp/neomutt* let g:goyo_width=80 From 9e58677093650f9b1c31a4b16f011845c18cd699 Mon Sep 17 00:00:00 2001 From: snailed Date: Mon, 15 Aug 2022 13:45:36 +0000 Subject: [PATCH 033/175] Fix bug with spaces in directory names (#1166) Sorry for making another merge request here, but I realized that the command would fail if the filepath contained spaces. Adding quotation marks fixes this issue --- .config/nvim/init.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 3945dcc1..2bd166e9 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -85,10 +85,10 @@ set noshowcmd nnoremap S :%s//g " Compile document, be it groff/LaTeX/markdown/etc. - map c :w! \| !compiler %:p + map c :w! \| !compiler "%:p" " Open corresponding .pdf/.html or preview - map p :!opout %:p + map p :!opout "%:p" " Runs a script that cleans out tex build files whenever I close out of a .tex file. autocmd VimLeave *.tex !texclear % From 9ff4910d4a422444a2d03886c408fd006406f411 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Mon, 15 Aug 2022 15:25:16 +0000 Subject: [PATCH 034/175] ~/.consaved becomes ~/.config/cronsaved (#1167) --- .local/bin/cron/crontog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/cron/crontog b/.local/bin/cron/crontog index 5aba5e65..c9a640fc 100755 --- a/.local/bin/cron/crontog +++ b/.local/bin/cron/crontog @@ -1,6 +1,6 @@ #!/bin/sh # Toggles all cronjobs off/on. -# Stores disabled crontabs in ~/.consaved until restored. +# Stores disabled crontabs in ~/.config/cronsaved until restored. ([ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved ] && crontab - < "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && rm "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && notify-send "๐Ÿ•“ Cronjobs re-enabled.") || ( crontab -l > "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && crontab -r && notify-send "๐Ÿ•“ Cronjobs saved and disabled.") From e864d6f9f2440735e046bfd7d85bab3f4740dac5 Mon Sep 17 00:00:00 2001 From: snailed Date: Tue, 16 Aug 2022 12:25:21 +0000 Subject: [PATCH 035/175] Texclear fix for directories with spaces (#1169) Add double quotes to prevent splitting directory names with spaces --- .local/bin/texclear | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/texclear b/.local/bin/texclear index f38f7bef..4cdb02e2 100755 --- a/.local/bin/texclear +++ b/.local/bin/texclear @@ -9,7 +9,7 @@ case "$1" in dir=$(dirname "$file") base="${file%.*}" find "$dir" -maxdepth 1 -type f -regextype gnu-awk -regex "^$base\\.(4tc|xref|tmp|pyc|pyg|pyo|fls|vrb|fdb_latexmk|bak|swp|aux|log|synctex\\(busy\\)|lof|lot|maf|idx|mtc|mtc0|nav|out|snm|toc|bcf|run\\.xml|synctex\\.gz|blg|bbl)" -delete - rm -rdf "$dir/_minted-$(basename -- $base)" + rm -rdf "$dir/_minted-$(basename -- "$base")" ;; *) printf "Give .tex file as argument.\\n" ;; esac From b82b091d96447860decae6d8495d036b4abddaa0 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 19 Aug 2022 14:40:25 -0400 Subject: [PATCH 036/175] separate script for use in opout, use just % root= --- .local/bin/compiler | 16 ++++++++-------- .local/bin/getcomproot | 12 ++++++++++++ .local/bin/opout | 2 +- 3 files changed, 21 insertions(+), 9 deletions(-) create mode 100755 .local/bin/getcomproot diff --git a/.local/bin/compiler b/.local/bin/compiler index 85a0c581..6e28cd0d 100755 --- a/.local/bin/compiler +++ b/.local/bin/compiler @@ -17,15 +17,15 @@ ext="${file##*.}" cd "$dir" || exit 1 textype() { \ + textarget="$(getcomproot "$file" || echo "$file")" + echo "$textarget" command="pdflatex" - texroot=$(grep -Poi "^ *% *\! *tex root *= *\w+(?:\.\w*)?" "$file" | cut -d "=" -f 2 | tr -d "[:blank:]") - [ -n "$texroot" ] && base=$texroot && echo "Compiling from TeX root: $texroot" - ( 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" + ( 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%.*}" } case "$ext" in diff --git a/.local/bin/getcomproot b/.local/bin/getcomproot new file mode 100755 index 00000000..d34a2e42 --- /dev/null +++ b/.local/bin/getcomproot @@ -0,0 +1,12 @@ +#!/bin/bash + +# A helper script for LaTeX/groff files used by `compiler` and `opout`. +# The user can add the root file of a larger project as a comment as below: +# % root = mainfile.tex +# And the compiler script will run on that instead of the opened file. + +texroot="$(grep -i "^.\+\s*root\s*=\s*\S\+" "$1")" +texroot="${texroot##*=}" +texroot="${texroot//[\"\' ]}" + +[ -f "$texroot" ] && readlink -f "$texroot" || exit 1 diff --git a/.local/bin/opout b/.local/bin/opout index faf65753..88908614 100755 --- a/.local/bin/opout +++ b/.local/bin/opout @@ -7,7 +7,7 @@ basename="${1%.*}" case "${*}" in - *.tex|*.m[dse]|*.[rR]md|*.mom|*.[0-9]) setsid -f xdg-open "$basename".pdf >/dev/null 2>&1 ;; + *.tex|*.m[dse]|*.[rR]md|*.mom|*.[0-9]) target="$(getcomproot "$1" || echo "$1")" ; setsid -f xdg-open "${target%.*}".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 From 771ed98bf66ac77ec98ac7c0d64e511642d93231 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 19 Aug 2022 15:33:25 -0400 Subject: [PATCH 037/175] to next <++> returns --- .config/nvim/init.vim | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 2bd166e9..d8aaf5e1 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -7,6 +7,9 @@ if ! filereadable(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/autolo autocmd VimEnter * PlugInstall endif +map ,, :keepp /<++>ca< +imap ,, :keepp /<++>ca< + call plug#begin(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/plugged"')) Plug 'tpope/vim-surround' Plug 'preservim/nerdtree' @@ -59,11 +62,11 @@ set noshowcmd endif " vimling: - nm d :call ToggleDeadKeys() - imap d :call ToggleDeadKeys()a - nm i :call ToggleIPA() - imap i :call ToggleIPA()a - nm q :call ToggleProse() + nm d :call ToggleDeadKeys() + imap d :call ToggleDeadKeys()a + nm i :call ToggleIPA() + imap i :call ToggleIPA()a + nm q :call ToggleProse() " Shortcutting split navigation, saving a keypress: map h From ceca1e8ad1fb8248927d8f647a619edeecd4fff3 Mon Sep 17 00:00:00 2001 From: Ian Breckenridge <62034540+i13e@users.noreply.github.com> Date: Sun, 21 Aug 2022 09:44:15 -0400 Subject: [PATCH 038/175] Support lf icons file --- .config/lf/icons | 76 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .config/lf/icons diff --git a/.config/lf/icons b/.config/lf/icons new file mode 100644 index 00000000..ac8f641c --- /dev/null +++ b/.config/lf/icons @@ -0,0 +1,76 @@ +di ๐Ÿ“ +fi ๐Ÿ“ƒ +tw ๐Ÿค +ow ๐Ÿ“‚ +ln โ›“ +or โŒ +ex ๐ŸŽฏ +*.txt โœ +*.mom โœ +*.me โœ +*.ms โœ +*.png ๐Ÿ–ผ +*.webp ๐Ÿ–ผ +*.ico ๐Ÿ–ผ +*.jpg ๐Ÿ“ธ +*.jpe ๐Ÿ“ธ +*.jpeg ๐Ÿ“ธ +*.gif ๐Ÿ–ผ +*.svg ๐Ÿ—บ +*.tif ๐Ÿ–ผ +*.tiff ๐Ÿ–ผ +*.xcf ๐Ÿ–Œ +*.html ๐ŸŒŽ +*.xml ๐Ÿ“ฐ +*.gpg ๐Ÿ”’ +*.css ๐ŸŽจ +*.pdf ๐Ÿ“š +*.djvu ๐Ÿ“š +*.epub ๐Ÿ“š +*.csv ๐Ÿ““ +*.xlsx ๐Ÿ““ +*.tex ๐Ÿ“œ +*.md ๐Ÿ“˜ +*.r ๐Ÿ“Š +*.R ๐Ÿ“Š +*.rmd ๐Ÿ“Š +*.Rmd ๐Ÿ“Š +*.m ๐Ÿ“Š +*.mp3 ๐ŸŽต +*.opus ๐ŸŽต +*.ogg ๐ŸŽต +*.m4a ๐ŸŽต +*.flac ๐ŸŽผ +*.wav ๐ŸŽผ +*.mkv ๐ŸŽฅ +*.mp4 ๐ŸŽฅ +*.webm ๐ŸŽฅ +*.mpeg ๐ŸŽฅ +*.avi ๐ŸŽฅ +*.mov ๐ŸŽฅ +*.mpg ๐ŸŽฅ +*.wmv ๐ŸŽฅ +*.m4b ๐ŸŽฅ +*.flv ๐ŸŽฅ +*.zip ๐Ÿ“ฆ +*.rar ๐Ÿ“ฆ +*.7z ๐Ÿ“ฆ +*.tar ๐Ÿ“ฆ +*.z64 ๐ŸŽฎ +*.v64 ๐ŸŽฎ +*.n64 ๐ŸŽฎ +*.gba ๐ŸŽฎ +*.nes ๐ŸŽฎ +*.gdi ๐ŸŽฎ +*.1 โ„น +*.nfo โ„น +*.info โ„น +*.log ๐Ÿ“™ +*.iso ๐Ÿ“€ +*.img ๐Ÿ“€ +*.bib ๐ŸŽ“ +*.ged ๐Ÿ‘ช +*.part ๐Ÿ’” +*.torrent ๐Ÿ”ฝ +*.jar โ™จ +*.java โ™จ From 5506a4eb89269328dc4256468d3ccdbfcf7af432 Mon Sep 17 00:00:00 2001 From: Ian Breckenridge <62034540+i13e@users.noreply.github.com> Date: Sun, 21 Aug 2022 09:48:30 -0400 Subject: [PATCH 039/175] Remove $LF_ICONS from profile --- .config/shell/profile | 79 ------------------------------------------- 1 file changed, 79 deletions(-) diff --git a/.config/shell/profile b/.config/shell/profile index f2caaaac..1b84213a 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -61,85 +61,6 @@ export MOZ_USE_XINPUT2="1" # Mozilla smooth scrolling/touchpads. export AWT_TOOLKIT="MToolkit wmname LG3D" #May have to install wmname export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm -# This is the list for lf icons: -export LF_ICONS="di=๐Ÿ“:\ -fi=๐Ÿ“ƒ:\ -tw=๐Ÿค:\ -ow=๐Ÿ“‚:\ -ln=โ›“:\ -or=โŒ:\ -ex=๐ŸŽฏ:\ -*.txt=โœ:\ -*.mom=โœ:\ -*.me=โœ:\ -*.ms=โœ:\ -*.png=๐Ÿ–ผ:\ -*.webp=๐Ÿ–ผ:\ -*.ico=๐Ÿ–ผ:\ -*.jpg=๐Ÿ“ธ:\ -*.jpe=๐Ÿ“ธ:\ -*.jpeg=๐Ÿ“ธ:\ -*.gif=๐Ÿ–ผ:\ -*.svg=๐Ÿ—บ:\ -*.tif=๐Ÿ–ผ:\ -*.tiff=๐Ÿ–ผ:\ -*.xcf=๐Ÿ–Œ:\ -*.html=๐ŸŒŽ:\ -*.xml=๐Ÿ“ฐ:\ -*.gpg=๐Ÿ”’:\ -*.css=๐ŸŽจ:\ -*.pdf=๐Ÿ“š:\ -*.djvu=๐Ÿ“š:\ -*.epub=๐Ÿ“š:\ -*.csv=๐Ÿ““:\ -*.xlsx=๐Ÿ““:\ -*.tex=๐Ÿ“œ:\ -*.md=๐Ÿ“˜:\ -*.r=๐Ÿ“Š:\ -*.R=๐Ÿ“Š:\ -*.rmd=๐Ÿ“Š:\ -*.Rmd=๐Ÿ“Š:\ -*.m=๐Ÿ“Š:\ -*.mp3=๐ŸŽต:\ -*.opus=๐ŸŽต:\ -*.ogg=๐ŸŽต:\ -*.m4a=๐ŸŽต:\ -*.flac=๐ŸŽผ:\ -*.wav=๐ŸŽผ:\ -*.mkv=๐ŸŽฅ:\ -*.mp4=๐ŸŽฅ:\ -*.webm=๐ŸŽฅ:\ -*.mpeg=๐ŸŽฅ:\ -*.avi=๐ŸŽฅ:\ -*.mov=๐ŸŽฅ:\ -*.mpg=๐ŸŽฅ:\ -*.wmv=๐ŸŽฅ:\ -*.m4b=๐ŸŽฅ:\ -*.flv=๐ŸŽฅ:\ -*.zip=๐Ÿ“ฆ:\ -*.rar=๐Ÿ“ฆ:\ -*.7z=๐Ÿ“ฆ:\ -*.tar.gz=๐Ÿ“ฆ:\ -*.z64=๐ŸŽฎ:\ -*.v64=๐ŸŽฎ:\ -*.n64=๐ŸŽฎ:\ -*.gba=๐ŸŽฎ:\ -*.nes=๐ŸŽฎ:\ -*.gdi=๐ŸŽฎ:\ -*.1=โ„น:\ -*.nfo=โ„น:\ -*.info=โ„น:\ -*.log=๐Ÿ“™:\ -*.iso=๐Ÿ“€:\ -*.img=๐Ÿ“€:\ -*.bib=๐ŸŽ“:\ -*.ged=๐Ÿ‘ช:\ -*.part=๐Ÿ’”:\ -*.torrent=๐Ÿ”ฝ:\ -*.jar=โ™จ:\ -*.java=โ™จ:\ -" - [ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1 # Start graphical server on user's current tty if not already running. From aeb20f0c34d8c0adb4664b93473164f9922ffa2e Mon Sep 17 00:00:00 2001 From: Ian Breckenridge <62034540+i13e@users.noreply.github.com> Date: Sun, 21 Aug 2022 09:54:38 -0400 Subject: [PATCH 040/175] Change file permissions --- .config/lf/icons | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 .config/lf/icons diff --git a/.config/lf/icons b/.config/lf/icons old mode 100644 new mode 100755 From 10f43723261ceb154556a829cb353e3708582ed6 Mon Sep 17 00:00:00 2001 From: Ian Breckenridge <62034540+i13e@users.noreply.github.com> Date: Sun, 21 Aug 2022 10:09:41 -0400 Subject: [PATCH 041/175] Remove permissions After testing they weren't needed after all --- .config/lf/icons | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 .config/lf/icons diff --git a/.config/lf/icons b/.config/lf/icons old mode 100755 new mode 100644 From cf6e38d393a21d16068f7a77bf1c2583a626a056 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Tue, 23 Aug 2022 16:29:58 -0400 Subject: [PATCH 042/175] peertube and youtube rss --- .config/newsboat/urls | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.config/newsboat/urls b/.config/newsboat/urls index 73a1f3e2..c1de9363 100644 --- a/.config/newsboat/urls +++ b/.config/newsboat/urls @@ -1,7 +1,8 @@ https://lukesmith.xyz/rss.xml +https://videos.lukesmith.xyz/feeds/videos.xml?videoChannelId=2 "~Luke Smith (Videos)" +https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "~Luke Smith (YouTube)" https://lindypress.net/rss https://notrelated.xyz/rss -https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "~Luke Smith (YouTube)" https://landchad.net/rss.xml https://based.cooking/index.xml https://artixlinux.org/feed.php "tech" From 3e8c05fe3d118b8a7c2df25000a8d5d046812a50 Mon Sep 17 00:00:00 2001 From: Tan Long <71320000+tanloong@users.noreply.github.com> Date: Thu, 25 Aug 2022 21:41:28 +0800 Subject: [PATCH 043/175] add support for SILE (#1175) --- .local/bin/opout | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/opout b/.local/bin/opout index 88908614..d2b447a1 100755 --- a/.local/bin/opout +++ b/.local/bin/opout @@ -7,7 +7,7 @@ basename="${1%.*}" case "${*}" in - *.tex|*.m[dse]|*.[rR]md|*.mom|*.[0-9]) target="$(getcomproot "$1" || echo "$1")" ; setsid -f xdg-open "${target%.*}".pdf >/dev/null 2>&1 ;; + *.tex|*.sil|*.m[dse]|*.[rR]md|*.mom|*.[0-9]) target="$(getcomproot "$1" || echo "$1")" ; setsid -f xdg-open "${target%.*}".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 From 5d5e3b655ef01973419ac0def58123946b0d569a Mon Sep 17 00:00:00 2001 From: ryan-c-dev Date: Mon, 12 Sep 2022 16:31:07 -0700 Subject: [PATCH 044/175] remove spacing from saved audio for tsp/newsboat (#1184) The --restrict-filenames parameter will automatically replace spaces with underlines. --- .config/newsboat/config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/newsboat/config b/.config/newsboat/config index b7a78dae..d8dbecd5 100644 --- a/.config/newsboat/config +++ b/.config/newsboat/config @@ -32,7 +32,7 @@ color article white default bold browser linkhandler macro , open-in-browser macro t set browser "qndl" ; open-in-browser ; set browser linkhandler -macro a set browser "tsp yt-dlp --embed-metadata -xic -f bestaudio/best" ; open-in-browser ; set browser linkhandler +macro a set browser "tsp yt-dlp --embed-metadata -xic -f bestaudio/best --restrict-filenames" ; open-in-browser ; set browser linkhandler macro v set browser "setsid -f mpv" ; open-in-browser ; set browser linkhandler macro w set browser "lynx" ; open-in-browser ; set browser linkhandler macro d set browser "dmenuhandler" ; open-in-browser ; set browser linkhandler From ae0ad289a10e0cd911489ce08f8d0fed6332d348 Mon Sep 17 00:00:00 2001 From: ryan-c-dev Date: Mon, 19 Sep 2022 16:50:45 -0700 Subject: [PATCH 045/175] underscore vs spaces, and naming convention (#1189) the title then extension format with the --restrict-filenames again for underscores instead of spaces. Works typically well as music will have Artist name first usually followed by song title so no need to format. haven't looked into the --embed-metadata parameter, only imagine it could be useful if it saves the url suffix for youtube link (which you don't want in your filename hopefully) for my video downloads, i just use this. alias ydl='yt-dlp -o '%(title)s.%(ext)s' -f bv+ba/b --restrict-filenames' alias mp3='yt-dlp -o '%(title)s.%(ext)s' -f bestaudio -x --audio-format mp3 --embed-thumbnail --restrict-filenames' Probably bad practice to have single quotes within more single quotes but ran into issues with yt-dlp over using double quotes. -Ryan --- .local/bin/dmenuhandler | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.local/bin/dmenuhandler b/.local/bin/dmenuhandler index 1c48f3ac..1cd1b297 100755 --- a/.local/bin/dmenuhandler +++ b/.local/bin/dmenuhandler @@ -10,7 +10,8 @@ case "$(printf "Copy URL\\nsxiv\\nsetbg\\nPDF\\nbrowser\\nlynx\\nvim\\nmpv\\nmpv "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 --embed-metadata -icx -f bestaudio/best' >/dev/null 2>&1 ;; + "queue yt-dlp audio") qndl "$feed" 'yt-dlp -o '%(title)s.%(ext)s' -f bestaudio --embed-metadata --restrict-filenames' +' >/dev/null 2>&1 ;; "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 ;; sxiv) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && sxiv -a "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;; From 7871fd80b29afa3fbab9bbecd6092b303b07c29f Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Tue, 20 Sep 2022 11:42:54 +0000 Subject: [PATCH 046/175] Make otp script more secure + other improvements (#1190) Make a temporary directory in $XDG_RUNTIME_DIR instead of $PASSWORD_STORE_DIR. $XDG_RUNTIME_DIR defaults to /run/user/$uid/. This directory has the security advantage of only being readable and writable by the current user and being mounted in RAM, causing the screenshot to be fully wiped on shutdown and not needing shred, which doesn't work reliably on SSD's. Also quoted $dir, for the off chance someone has spaces in their $PASSWORD_STORE_DIR. Removed the check for xclip and the $issuer and $name variables, as they are unused. If you're wondering why echo is piped into dmenu, on my system dmenu hung when called without the pipe, causing the whole script to freeze. --- .local/bin/otp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.local/bin/otp b/.local/bin/otp index 1726b1a6..a40c1984 100755 --- a/.local/bin/otp +++ b/.local/bin/otp @@ -13,27 +13,25 @@ ifinstalled pass pass-otp dir="${PASSWORD_STORE_DIR}" -choice="$({ echo "๐Ÿ†•add" ; echo "๐Ÿ•™sync-time" ; ls ${dir}/*-otp.gpg ;} | sed "s/.*\///;s/-otp.gpg//" | dmenu -p "Pick a 2FA:")" +choice="$({ echo "๐Ÿ†•add" ; echo "๐Ÿ•™sync-time" ; ls "$dir"/*-otp.gpg ;} | sed "s/.*\///;s/-otp.gpg//" | dmenu -p "Pick a 2FA:")" case $choice in ๐Ÿ†•add ) - ifinstalled maim zbar xclip || exit 1 + ifinstalled maim zbar || exit 1 - temp="$dir/temp.png" + temp=$(mktemp -p "$XDG_RUNTIME_DIR" --suffix=.png) otp="otp-test-script" - trap 'shred -fu $temp; pass rm $otp' HUP INT QUIT TERM PWR EXIT + trap 'rm -f $temp; pass rm -f $otp' HUP INT QUIT TERM PWR EXIT notify-send "Scan the image." "Scan the OTP QR code." maim -s "$temp" || exit 1 info="$(zbarimg -q "$temp")" info="${info#QR-Code:}" - issuer="$(echo "$info" | grep -o "issuer=[A-z0-9]\+")" - name="${issuer#issuer=}" if echo "$info" | pass otp insert "$otp"; then while true ; do - export name="$(dmenu -p "Give this One Time Password a one-word name:")" + export name="$(echo | dmenu -p "Give this One Time Password a one-word name:")" echo "$name" | grep -q -- "^[A-z0-9-]\+$" && break done pass mv "$otp" "$name-otp" @@ -41,7 +39,6 @@ case $choice in else notify-send "No OTP data found." "Try to scan the image again more precisely." fi - ;; ๐Ÿ•™sync-time ) ifinstalled ntp || exit 1 From 5ff7f70b64214beafc9146717d6a766d721b9786 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Thu, 22 Sep 2022 12:50:58 +0000 Subject: [PATCH 047/175] otp: exit if pass or pass-otp are not installed (#1191) --- .local/bin/otp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/otp b/.local/bin/otp index a40c1984..7e471db5 100755 --- a/.local/bin/otp +++ b/.local/bin/otp @@ -9,7 +9,7 @@ # computer to have its time properly synced. This can be done with the command # below which requires the package `ntp`. -ifinstalled pass pass-otp +ifinstalled pass pass-otp || exit 1 dir="${PASSWORD_STORE_DIR}" From 41b729acd303ff1180ca2e1a9ab9e0b05a0e4c29 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Thu, 22 Sep 2022 12:52:04 +0000 Subject: [PATCH 048/175] Fix tag script mp3 issue (#1182) * Fix tag script mp3 issue When you don't manually specify $total and $date with an mp3 file the eyeD3 command tries tagging with an empty variable, which causes it to error. This fixes it by only passing the parameter to the command if the variable is set. This pull request also adds support for the $genre and $comment variable. * Remove double backslash --- .local/bin/tag | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.local/bin/tag b/.local/bin/tag index 8462b99a..11a5b8ed 100755 --- a/.local/bin/tag +++ b/.local/bin/tag @@ -54,7 +54,11 @@ Total=$total Date=$date Genre=$genre Comment=$comment" | opustags -i -S "$file" ;; - *.mp3) eyeD3 -Q --remove-all -a "$artist" -A "$album" -t "$title" -n "$track" -N "$total" -Y "$date" "$file" ;; + *.mp3) eyeD3 -Q --remove-all -a "$artist" -t "$title" -A "$album" -n "$track" \ + ${total:+-N "$total"} \ + ${date:+-Y "$date"} \ + ${genre:+-G "$genre"} \ + ${comment:+-c "$comment"} "$file" ;; *.flac) echo "TITLE=$title ARTIST=$artist ALBUM=$album From 21e08299b1709c6051a42560ca89967894d5c962 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Fri, 23 Sep 2022 14:55:42 +0000 Subject: [PATCH 049/175] Use ffmpeg for tag script (#1193) eyeD3 got orphaned in the AUR, so I looked for an alternative. Apparently ffmpeg also supports the ability to tag audio files, so this pull request replaces all the helper applications with ffmpeg --- .local/bin/tag | 56 +++++++++++++++----------------------------------- 1 file changed, 17 insertions(+), 39 deletions(-) diff --git a/.local/bin/tag b/.local/bin/tag index 11a5b8ed..92d6323d 100755 --- a/.local/bin/tag +++ b/.local/bin/tag @@ -13,7 +13,7 @@ Options: -c: comment You will be prompted for title, artist, album and track if not given." && exit 1 ;} -while getopts "a:t:A:n:N:d:g:c:f:" o; do case "${o}" in +while getopts "a:t:A:n:N:d:g:c:" o; do case "${o}" in a) artist="${OPTARG}" ;; t) title="${OPTARG}" ;; A) album="${OPTARG}" ;; @@ -22,7 +22,6 @@ while getopts "a:t:A:n:N:d:g:c:f:" o; do case "${o}" in d) date="${OPTARG}" ;; g) genre="${OPTARG}" ;; c) comment="${OPTARG}" ;; - f) file="${OPTARG}" ;; *) printf "Invalid option: -%s\\n" "$OPTARG" && err ;; esac done @@ -30,42 +29,21 @@ shift $((OPTIND - 1)) file="$1" -[ ! -f "$file" ] && echo "Provide file to tag." && err +temp="$(mktemp -p "$(dirname "$file")")" +trap 'rm -f $temp' HUP INT QUIT TERM PWR EXIT -[ -z "$title" ] && echo "Enter a title." && read -r title -[ -z "$artist" ] && echo "Enter an artist." && read -r artist -[ -z "$album" ] && echo "Enter an album." && read -r album -[ -z "$track" ] && echo "Enter a track number." && read -r track +[ ! -f "$file" ] && echo 'Provide file to tag.' && err -case "$file" in - *.ogg) echo "Title=$title -Artist=$artist -Album=$album -Track=$track -Total=$total -Date=$date -Genre=$genre -Comment=$comment" | vorbiscomment -w "$file" ;; - *.opus) echo "Title=$title -Artist=$artist -Album=$album -Track=$track -Total=$total -Date=$date -Genre=$genre -Comment=$comment" | opustags -i -S "$file" ;; - *.mp3) eyeD3 -Q --remove-all -a "$artist" -t "$title" -A "$album" -n "$track" \ - ${total:+-N "$total"} \ - ${date:+-Y "$date"} \ - ${genre:+-G "$genre"} \ - ${comment:+-c "$comment"} "$file" ;; - *.flac) echo "TITLE=$title -ARTIST=$artist -ALBUM=$album -TRACKNUMBER=$track -TOTALTRACKS=$total -DATE=$date -GENRE=$genre -DESCRIPTION=$comment" | metaflac --remove-all-tags --import-tags-from=- "$file" ;; - *) echo "File type not implemented yet." ;; -esac +[ -z "$title" ] && echo 'Enter a title.' && read -r title +[ -z "$artist" ] && echo 'Enter an artist.' && read -r artist +[ -z "$album" ] && echo 'Enter an album.' && read -r album +[ -z "$track" ] && echo 'Enter a track number.' && read -r track + +cp -f "$file" "$temp" && ffmpeg -i "$temp" -map 0 -y -codec copy \ + -metadata title="$title" \ + -metadata album="$album" \ + -metadata artist="$artist" \ + -metadata track="${track}${total:+/"$total"}" \ + ${date:+-metadata date="$date"} \ + ${genre:+-metadata genre="$genre"} \ + ${comment:+-metadata comment="$comment"} "$file" From 3901bc0f1b780e3bbb8cd8d66d2e19c62c01ce4d Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Tue, 27 Sep 2022 21:32:47 -0400 Subject: [PATCH 050/175] set autoquit --- .config/lf/lfrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 1d529498..0d534568 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -24,6 +24,7 @@ set period 1 set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml" set cleaner '~/.config/lf/cleaner' set previewer '~/.config/lf/scope' +set autoquit on # cmds/functions cmd open ${{ From 2e7fc9cfb7f755a9c0341f9f9ae7263ba93911aa Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Thu, 29 Sep 2022 16:33:21 -0400 Subject: [PATCH 051/175] fix #1196 --- .local/bin/dmenuhandler | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.local/bin/dmenuhandler b/.local/bin/dmenuhandler index 1cd1b297..0b3c7138 100755 --- a/.local/bin/dmenuhandler +++ b/.local/bin/dmenuhandler @@ -4,14 +4,13 @@ # some choice programs to use to open it. feed="${1:-$(printf "%s" | dmenu -p 'Paste URL or file path')}" -case "$(printf "Copy URL\\nsxiv\\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 ;; +case "$(printf "copy url\\nsxiv\\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' -' >/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 ;; sxiv) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && sxiv -a "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;; From be7ed1516b6bb9f11fbdc1a1c82627a82544cff6 Mon Sep 17 00:00:00 2001 From: "M.Zeinali" Date: Fri, 30 Sep 2022 17:52:33 +0330 Subject: [PATCH 052/175] Add `s` to OPTARGS (#1174) --- .local/bin/slider | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/slider b/.local/bin/slider index 674781a4..3460c777 100755 --- a/.local/bin/slider +++ b/.local/bin/slider @@ -9,7 +9,7 @@ # Application cache if not stated elsewhere. cache="${XDG_CACHE_HOME:-$HOME/.cache}/slider" -while getopts "hvrpi:c:a:o:d:f:t:e:x:" o; do case "${o}" in +while getopts "hvrpi:c:a:o:d:f:t:e:x:s:" o; do case "${o}" in c) bgc="$OPTARG" ;; t) fgc="$OPTARG" ;; f) font="$OPTARG" ;; From 1804d4c7f0d098517e741a134f9c0fa8583002fb Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Sun, 2 Oct 2022 19:11:00 +0000 Subject: [PATCH 053/175] Delete prompt (#1200) --- .local/bin/prompt | 8 -------- 1 file changed, 8 deletions(-) delete mode 100755 .local/bin/prompt diff --git a/.local/bin/prompt b/.local/bin/prompt deleted file mode 100755 index 666434fb..00000000 --- a/.local/bin/prompt +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -# A dmenu binary prompt script. -# Gives a dmenu prompt labeled with $1 to perform command $2. -# For example: -# `./prompt "Do you want to shutdown?" "shutdown -h now"` - -[ "$(printf "No\\nYes" | dmenu -i -p "$1" -nb darkred -sb red -sf white -nf gray )" = "Yes" ] && $2 From 92de5e82b365dc027bf10f1f28e77b5e784e9992 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Sun, 2 Oct 2022 19:11:17 +0000 Subject: [PATCH 054/175] weatherreport is stored in cache (#1201) --- .config/shell/aliasrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc index 8273a2f1..0541d0f1 100644 --- a/.config/shell/aliasrc +++ b/.config/shell/aliasrc @@ -51,4 +51,4 @@ alias \ lf="lfub" \ magit="nvim -c MagitOnly" \ ref="shortcuts >/dev/null; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" \ - weath="less -S ${XDG_DATA_HOME:-$HOME/.local/share}/weatherreport" \ + weath="less -S ${XDG_CACHE_HOME:-$HOME/.cache}/weatherreport" \ From 7d7872b602adc8be021bf25b02f2372e87290aa2 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Sun, 2 Oct 2022 19:22:00 +0000 Subject: [PATCH 055/175] Make sb-forecast and sb-moonphase more robust (#1198) * Make sb-forecast more robust * Make sb-moonphase more robust --- .local/bin/statusbar/sb-forecast | 2 +- .local/bin/statusbar/sb-moonphase | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.local/bin/statusbar/sb-forecast b/.local/bin/statusbar/sb-forecast index 45584c52..af77d2c4 100755 --- a/.local/bin/statusbar/sb-forecast +++ b/.local/bin/statusbar/sb-forecast @@ -29,7 +29,7 @@ esac # The test if our forcecast is updated to the day. If it isn't download a new # weather report from wttr.in with the above function. -[ "$(stat -c %y "$weatherreport" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || +[ ! -s "$weatherreport" ] && [ "$(stat -c %y "$weatherreport" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || getforecast showweather diff --git a/.local/bin/statusbar/sb-moonphase b/.local/bin/statusbar/sb-moonphase index fab8b4da..5eb1875c 100755 --- a/.local/bin/statusbar/sb-moonphase +++ b/.local/bin/statusbar/sb-moonphase @@ -4,7 +4,7 @@ moonfile="${XDG_DATA_HOME:-$HOME/.local/share}/moonphase" -[ "$(stat -c %y "$moonfile" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || +[ ! -s "$moonfile" ] && [ "$(stat -c %y "$moonfile" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || { curl -sf "wttr.in/?format=%m" > "$moonfile" || exit 1 ;} icon="$(cat "$moonfile")" From 28a57eb59ec33308ab0e835429e9a0dcb054d07e Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Sun, 2 Oct 2022 15:25:29 -0400 Subject: [PATCH 056/175] volume bar more efficient --- .local/bin/statusbar/sb-volume | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/.local/bin/statusbar/sb-volume b/.local/bin/statusbar/sb-volume index 3cfdc457..d17ce666 100755 --- a/.local/bin/statusbar/sb-volume +++ b/.local/bin/statusbar/sb-volume @@ -13,18 +13,26 @@ case $BLOCK_BUTTON in 6) "$TERMINAL" -e "$EDITOR" "$0" ;; esac -[ $(pamixer --get-mute) = true ] && echo ๐Ÿ”‡ && exit +vol="$(wpctl get-volume @DEFAULT_AUDIO_SINK@)" -vol="$(pamixer --get-volume)" +# If muted, print ๐Ÿ”‡ and exit. +[ "$vol" != "${vol%\[MUTED\]}" ] && echo ๐Ÿ”‡ && exit -if [ "$vol" -gt "70" ]; then - icon="๐Ÿ”Š" -elif [ "$vol" -gt "30" ]; then - icon="๐Ÿ”‰" -elif [ "$vol" -gt "0" ]; then - icon="๐Ÿ”ˆ" -else - echo ๐Ÿ”‡ && exit -fi +vol="${vol#Volume: }" +split() { + # For ommiting the . without calling and external program. + IFS=$2 + set -- $1 + printf '%s' "$@" +} +vol="$(split "$vol" ".")" +vol="${vol##0}" + +case 1 in + $((vol >= 70)) ) icon="๐Ÿ”Š" ;; + $((vol >= 30)) ) icon="๐Ÿ”‰" ;; + $((vol >= 1)) ) icon="๐Ÿ”ˆ" ;; + * ) echo ๐Ÿ”‡ && exit ;; +esac echo "$icon$vol%" From b8234faadbe9df90676da79897bb6093dc690653 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 7 Oct 2022 11:57:01 -0400 Subject: [PATCH 057/175] close #1207 --- .local/bin/getbib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/getbib b/.local/bin/getbib index 8675aae8..1d56dc8d 100755 --- a/.local/bin/getbib +++ b/.local/bin/getbib @@ -4,7 +4,7 @@ if [ -f "$1" ]; then # Try to get DOI from pdfinfo or pdftotext output. doi=$(pdfinfo "$1" | grep -io "doi:.*") || - doi=$(pdftotext "$1" 2>/dev/null - | grep -io "doi:.*" -m 1) || + doi=$(pdftotext "$1" 2>/dev/null - | grep -io "doi:\s*\S*" -m 1) || exit 1 else doi="$1" From 228cc6cfdbdca5a04cc7e98289b447ab100d8133 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 7 Oct 2022 16:38:19 -0400 Subject: [PATCH 058/175] doi must terminate in alphanumeric char --- .local/bin/getbib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/getbib b/.local/bin/getbib index 1d56dc8d..bedc2568 100755 --- a/.local/bin/getbib +++ b/.local/bin/getbib @@ -4,7 +4,7 @@ if [ -f "$1" ]; then # Try to get DOI from pdfinfo or pdftotext output. doi=$(pdfinfo "$1" | grep -io "doi:.*") || - doi=$(pdftotext "$1" 2>/dev/null - | grep -io "doi:\s*\S*" -m 1) || + doi=$(pdftotext "$1" 2>/dev/null - | grep -io "doi:\s*\S\+[[:alnum:]]" -m 1) || exit 1 else doi="$1" From b1377913e65b0052ccd36329cb9b4c9d73f9f3d3 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Sat, 8 Oct 2022 11:18:04 +0000 Subject: [PATCH 059/175] Fix forecast and moonphase (#1211) --- .local/bin/statusbar/sb-forecast | 2 +- .local/bin/statusbar/sb-moonphase | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.local/bin/statusbar/sb-forecast b/.local/bin/statusbar/sb-forecast index af77d2c4..9744ea42 100755 --- a/.local/bin/statusbar/sb-forecast +++ b/.local/bin/statusbar/sb-forecast @@ -29,7 +29,7 @@ esac # The test if our forcecast is updated to the day. If it isn't download a new # weather report from wttr.in with the above function. -[ ! -s "$weatherreport" ] && [ "$(stat -c %y "$weatherreport" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || +[ -s "$weatherreport" ] && [ "$(stat -c %y "$weatherreport" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || getforecast showweather diff --git a/.local/bin/statusbar/sb-moonphase b/.local/bin/statusbar/sb-moonphase index 5eb1875c..99adaee8 100755 --- a/.local/bin/statusbar/sb-moonphase +++ b/.local/bin/statusbar/sb-moonphase @@ -4,7 +4,7 @@ moonfile="${XDG_DATA_HOME:-$HOME/.local/share}/moonphase" -[ ! -s "$moonfile" ] && [ "$(stat -c %y "$moonfile" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || +[ -s "$moonfile" ] && [ "$(stat -c %y "$moonfile" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || { curl -sf "wttr.in/?format=%m" > "$moonfile" || exit 1 ;} icon="$(cat "$moonfile")" From 44d740bd44cff63ab74ca44a4b2fb9453d9adb59 Mon Sep 17 00:00:00 2001 From: Nicholas Gorden Date: Mon, 10 Oct 2022 14:27:40 +0000 Subject: [PATCH 060/175] Fix Sioux Falls (#1213) Sioux Falls is in South Dakota, not Iowa --- .local/bin/statusbar/sb-doppler | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/statusbar/sb-doppler b/.local/bin/statusbar/sb-doppler index b5833a7b..eef464bd 100755 --- a/.local/bin/statusbar/sb-doppler +++ b/.local/bin/statusbar/sb-doppler @@ -55,7 +55,7 @@ US: KUDX: Rapid City, SD US: KRIW: Riverton, WY US: KSGF: Springfield, MO US: KLSX: St. LOUIS, MO -US: KFSD: Sioux Falls, IA +US: KFSD: Sioux Falls, SD US: KTWX: Topeka, KS US: KICT: Wichita, KS US: KVWX: Paducah, KY From cc7ac4619a698459da2af57bea098f646a2f3d62 Mon Sep 17 00:00:00 2001 From: Rokosun <79040025+futureisfoss@users.noreply.github.com> Date: Sat, 15 Oct 2022 01:25:19 +0000 Subject: [PATCH 061/175] Make sd script work with lf file manager too (#1212) Now sd script can open a terminal window in the same directory as the currently active lf file manager window --- .local/bin/sd | 1 + 1 file changed, 1 insertion(+) diff --git a/.local/bin/sd b/.local/bin/sd index 371ec648..7e09bf6e 100755 --- a/.local/bin/sd +++ b/.local/bin/sd @@ -5,6 +5,7 @@ PID=$(xprop -id "$(xprop -root | xprop -root | sed -n "/_NET_ACTIVE_WINDOW/ s/^.*# // p")" | sed -n "/PID/ s/^.*= // p") PID="$(pstree -lpA "$PID")" PID="${PID##*"${SHELL##*/}"(}" +PID="${PID#*lf(}" PID="${PID%%)*}" cd "$(readlink /proc/"$PID"/cwd)" || return 1 "$TERMINAL" From d8b5f16c2008c8dda1c924b4cce9c553c3a4eab9 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Mon, 17 Oct 2022 09:09:59 -0400 Subject: [PATCH 062/175] lf previews with gnome-epub-thumbnailer --- .config/lf/scope | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.config/lf/scope b/.config/lf/scope index 180c2947..f91fd84b 100755 --- a/.config/lf/scope +++ b/.config/lf/scope @@ -38,6 +38,11 @@ case "$(file --dereference --brief --mime-type -- "$1")" in [ ! -f "$CACHE.jpg" ] && pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE" image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1" ;; + */epub+zip|*/mobi*) + CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)" + [ ! -f "$CACHE.jpg" ] && gnome-epub-thumbnailer "$1" "$CACHE.jpg" + image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1" + ;; *opendocument*) odt2txt "$1" ;; application/pgp-encrypted) gpg -d -- "$1" ;; esac From 130e200da13b9322bddd89381a39ed0406a01b4b Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 21 Oct 2022 07:49:40 -0400 Subject: [PATCH 063/175] url update, add cont-us, non-wide char for doppler --- .local/bin/statusbar/sb-doppler | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.local/bin/statusbar/sb-doppler b/.local/bin/statusbar/sb-doppler index eef464bd..7573c98b 100755 --- a/.local/bin/statusbar/sb-doppler +++ b/.local/bin/statusbar/sb-doppler @@ -6,7 +6,8 @@ secs=600 # Download a new doppler radar if one hasn't been downloaded in $secs s radarloc="${XDG_CACHE_HOME:-$HOME/.cache}/radar" doppler="${XDG_CACHE_HOME:-$HOME/.cache}/doppler.gif" -pickloc() { chosen="$(echo "US: Northeast +pickloc() { chosen="$(echo "US: CONUS: Continental United States +US: Northeast US: Southeast US: PacNorthWest US: PacSouthWest @@ -255,7 +256,7 @@ getdoppler() { loc=$(cut -c 4- "$radarloc") notify-send "๐ŸŒฆ๏ธ Doppler RADAR" "Pulling most recent Doppler RADAR for $loc." case "$cont" in - "US") curl -sL "https://radar.weather.gov/ridge/lite/${loc}_loop.gif" > "$doppler" ;; + "US") curl -sL "https://radar.weather.gov/ridge/standard/${loc}_loop.gif" > "$doppler" ;; "EU") curl -sL "https://api.sat24.com/animated/${loc}/rainTMC/2/" > "$doppler" ;; "AF") curl -sL "https://api.sat24.com/animated/${loc}/rain/2/" > "$doppler" ;; "DE") loc="$(echo "$loc" | tr "[:upper:]" "[:lower:]")" @@ -276,4 +277,4 @@ After $secs seconds, new clicks will also automatically update the doppler RADAR 6) "$TERMINAL" -e "$EDITOR" "$0" ;; esac -echo ๐Ÿ—บ๏ธ +echo ๐ŸŒ… From eaf4c12ee2647a2c4cbca5f3aed63a04ddf0e097 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Wed, 26 Oct 2022 16:28:38 -0400 Subject: [PATCH 064/175] fix #1219 --- .local/bin/getbib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/getbib b/.local/bin/getbib index bedc2568..121dd6ee 100755 --- a/.local/bin/getbib +++ b/.local/bin/getbib @@ -4,7 +4,7 @@ if [ -f "$1" ]; then # Try to get DOI from pdfinfo or pdftotext output. doi=$(pdfinfo "$1" | grep -io "doi:.*") || - doi=$(pdftotext "$1" 2>/dev/null - | grep -io "doi:\s*\S\+[[:alnum:]]" -m 1) || + doi=$(pdftotext "$1" 2>/dev/null - | sed -n '/[dD][oO][iI]:/{s/.*[dD][oO][iI]:\s*\(\S\+[[:alnum:]]\).*/\1/p;q}') || exit 1 else doi="$1" From 4eeba15c0b118478a0ceb7c9fba5066d109e318f Mon Sep 17 00:00:00 2001 From: i13e <62034540+i13e@users.noreply.github.com> Date: Mon, 31 Oct 2022 12:11:57 -0400 Subject: [PATCH 065/175] `.profile` cleanup: remove redundant variables and programs (#1221) * Delete redundant text XDG directories are already configured within this file, so having a fallback is unnecessary * `Less` now supports XDG Base Directory spec (v590) https://www.greenwoodsoftware.com/less/news.590.html * `weechat` now supports XDG Base Directory spec https://github.com/weechat/weechat/commit/70cdf21681d75090c3df9858c9e7ce5a85433856 * Formatting * ALSA supports XDG Base Directory https://github.com/alsa-project/alsa-lib/releases/tag/v1.2.3 * Fix spacing --- .config/shell/profile | 47 ++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/.config/shell/profile b/.config/shell/profile index 1b84213a..10763526 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -19,29 +19,26 @@ export BROWSER="librewolf" export XDG_CONFIG_HOME="$HOME/.config" export XDG_DATA_HOME="$HOME/.local/share" export XDG_CACHE_HOME="$HOME/.cache" -export XINITRC="${XDG_CONFIG_HOME:-$HOME/.config}/x11/xinitrc" +export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc" #export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority" # This line will break some DMs. -export NOTMUCH_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/notmuch-config" -export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0" -export LESSHISTFILE="-" -export WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc" -export INPUTRC="${XDG_CONFIG_HOME:-$HOME/.config}/shell/inputrc" -export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh" -#export ALSA_CONFIG_PATH="$XDG_CONFIG_HOME/alsa/asoundrc" -#export GNUPGHOME="${XDG_DATA_HOME:-$HOME/.local/share}/gnupg" -export WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local/share}/wineprefixes/default" -export KODI_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/kodi" -export PASSWORD_STORE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/password-store" +export NOTMUCH_CONFIG="$XDG_CONFIG_HOME/notmuch-config" +export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc-2.0" +export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc" +export INPUTRC="$XDG_CONFIG_HOME/shell/inputrc" +export ZDOTDIR="$XDG_CONFIG_HOME/zsh" +#export GNUPGHOME="$XDG_DATA_HOME/gnupg" +export WINEPREFIX="$XDG_DATA_HOME/wineprefixes/default" +export KODI_DATA="$XDG_DATA_HOME/kodi" +export PASSWORD_STORE_DIR="$XDG_DATA_HOME/password-store" export TMUX_TMPDIR="$XDG_RUNTIME_DIR" -export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android" -export CARGO_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/cargo" -export GOPATH="${XDG_DATA_HOME:-$HOME/.local/share}/go" -export ANSIBLE_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/ansible/ansible.cfg" -export UNISON="${XDG_DATA_HOME:-$HOME/.local/share}/unison" -export HISTFILE="${XDG_DATA_HOME:-$HOME/.local/share}/history" -export WEECHAT_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/weechat" -export MBSYNCRC="${XDG_CONFIG_HOME:-$HOME/.config}/mbsync/config" -export ELECTRUMDIR="${XDG_DATA_HOME:-$HOME/.local/share}/electrum" +export ANDROID_SDK_HOME="$XDG_CONFIG_HOME/android" +export CARGO_HOME="$XDG_DATA_HOME/cargo" +export GOPATH="$XDG_DATA_HOME/go" +export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible/ansible.cfg" +export UNISON="$XDG_DATA_HOME/unison" +export HISTFILE="$XDG_DATA_HOME/history" +export MBSYNCRC="$XDG_CONFIG_HOME/mbsync/config" +export ELECTRUMDIR="$XDG_DATA_HOME/electrum" # Other program settings: export DICS="/usr/share/stardict/dic/" @@ -56,10 +53,10 @@ export LESS_TERMCAP_se="$(printf '%b' '')" export LESS_TERMCAP_us="$(printf '%b' '')" export LESS_TERMCAP_ue="$(printf '%b' '')" export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null" -export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme. -export MOZ_USE_XINPUT2="1" # Mozilla smooth scrolling/touchpads. -export AWT_TOOLKIT="MToolkit wmname LG3D" #May have to install wmname -export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm +export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme. +export MOZ_USE_XINPUT2="1" # Mozilla smooth scrolling/touchpads. +export AWT_TOOLKIT="MToolkit wmname LG3D" # May have to install wmname +export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm [ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1 From 75bc064a2fba1561af61a75f584d3dac84630c4f Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Sun, 6 Nov 2022 19:29:06 +0000 Subject: [PATCH 066/175] Add youtube shorts to linkhandler (#1226) --- .local/bin/linkhandler | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/linkhandler b/.local/bin/linkhandler index cc971fc7..f62b5812 100755 --- a/.local/bin/linkhandler +++ b/.local/bin/linkhandler @@ -13,7 +13,7 @@ else fi case "$url" in - *mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtu.be*|*hooktube.com*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*) + *mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtube.com/shorts*|*youtu.be*|*hooktube.com*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*) setsid -f mpv -quiet "$url" >/dev/null 2>&1 ;; *png|*jpg|*jpe|*jpeg|*gif) curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && sxiv -a "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; From d6616cf08b8b7af26050f993bd2c0b742fbe78fe Mon Sep 17 00:00:00 2001 From: Gioele De Vitti Date: Fri, 11 Nov 2022 18:38:57 +0100 Subject: [PATCH 067/175] Stop trapping SIGINT to allow further use of Ctrl+C once lfcd is closed (#1231) * Avoid expansion of file path containing spaces * Do not trap INT signal on lfcd * Untrap to stop trapping once lfcd quit * Revert "Avoid expansion of file path containing spaces" This reverts commit edcccf8f1bb0eb283aa332dc3a2d2b431eb6d189. * Trap SIGINT again --- .config/zsh/.zshrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index 7e96734e..c46f51d8 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -54,7 +54,7 @@ preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt. # Use lf to switch directories and bind it to ctrl-o lfcd () { tmp="$(mktemp -uq)" - trap 'rm -f $tmp >/dev/null 2>&1' HUP INT QUIT TERM PWR EXIT + trap 'rm -f $tmp >/dev/null 2>&1 && trap - HUP INT QUIT TERM PWR EXIT' HUP INT QUIT TERM PWR EXIT lf -last-dir-path="$tmp" "$@" if [ -f "$tmp" ]; then dir="$(cat "$tmp")" From 0efa08107c72947730e06aaea896c42e174b831e Mon Sep 17 00:00:00 2001 From: Rokosun <79040025+futureisfoss@users.noreply.github.com> Date: Wed, 16 Nov 2022 16:04:26 +0000 Subject: [PATCH 068/175] Improve sd script (#1235) * Improve sd script Now sd will also work on apps like mpv and zathura * Fix sd script not working on firefox --- .local/bin/sd | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.local/bin/sd b/.local/bin/sd index 7e09bf6e..8047d33b 100755 --- a/.local/bin/sd +++ b/.local/bin/sd @@ -2,10 +2,8 @@ # Open a terminal window in the same directory as the currently active window. -PID=$(xprop -id "$(xprop -root | xprop -root | sed -n "/_NET_ACTIVE_WINDOW/ s/^.*# // p")" | sed -n "/PID/ s/^.*= // p") -PID="$(pstree -lpA "$PID")" -PID="${PID##*"${SHELL##*/}"(}" -PID="${PID#*lf(}" -PID="${PID%%)*}" -cd "$(readlink /proc/"$PID"/cwd)" || return 1 +PID=$(xprop -id "$(xprop -root | sed -n "/_NET_ACTIVE_WINDOW/ s/^.*# // p")" | sed -n "/PID/ s/^.*= // p") +PID=$(pstree -lpATna "$PID" | grep -v '\-\(lf,[0-9]\+ -server\|(st-urlhandler,[0-9]\+)\|xclip,[0-9]\+\)' | sed '$s/.*,\([0-9]\+\).*/\1/;t;d') +cwd=$(readlink /proc/"$PID"/cwd) +[ "$PWD" != "$cwd" ] && [ -d "$cwd" ] && { cd "$cwd" || exit 1; } "$TERMINAL" From ffb557119a3426a50dd6905722b6fe89826fbe88 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Wed, 16 Nov 2022 11:07:53 -0500 Subject: [PATCH 069/175] close #1234 --- .config/lf/scope | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/lf/scope b/.config/lf/scope index f91fd84b..654e9682 100755 --- a/.config/lf/scope +++ b/.config/lf/scope @@ -26,7 +26,7 @@ case "$(file --dereference --brief --mime-type -- "$1")" in text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;; text/troff) man ./ "$1" | col -b ;; text/* | */xml | application/json) bat --terminal-width "$(($4-2))" -f "$1" ;; - application/zip) atool --list -- "$1" ;; + application/*zip) atool --list -- "$1" ;; audio/* | application/octet-stream) mediainfo "$1" || exit 1 ;; video/* ) CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)" From 236118759897e6529cc3282caed29b289fab3c7e Mon Sep 17 00:00:00 2001 From: Gioele De Vitti Date: Wed, 16 Nov 2022 17:15:57 +0100 Subject: [PATCH 070/175] Avoid expansion of file path containing spaces (#1230) --- .config/lf/lfrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 0d534568..1f4dfa1e 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -115,8 +115,8 @@ map set hidden! map shell map x $$f map X !$f -map o &mimeopen $f -map O $mimeopen --ask $f +map o &mimeopen "$f" +map O $mimeopen --ask "$f" map A rename # at the very end map c push A # new rename From d266ca3517a4906a51613ce3f4cde7728c286706 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Wed, 16 Nov 2022 11:23:03 -0500 Subject: [PATCH 071/175] fix #1236 --- .config/lf/lfrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 0d534568..035e459b 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -42,8 +42,8 @@ cmd open ${{ done & ;; audio/*) mpv --audio-display=no $f ;; - video/*) setsid -f mpv $f -quiet >/dev/null 2>&1 ;; - application/pdf|application/vnd*|application/epub*) setsid -f zathura $fx >/dev/null 2>&1 ;; + video/*|application/vnd.rn-realmedia) setsid -f mpv $f -quiet >/dev/null 2>&1 ;; + application/pdf|application/vnd.djvu|application/epub*) setsid -f zathura $fx >/dev/null 2>&1 ;; application/pgp-encrypted) $EDITOR $fx ;; application/vnd.openxmlformats-officedocument.wordprocessingml.document|application/vnd.oasis.opendocument.text) setsid -f lowriter $fx >/dev/null 2>&1 ;; application/vnd.openxmlformats-officedocument.spreadsheetml.sheet|application/octet-stream|application/vnd.oasis.opendocument.spreadsheet|application/vnd.oasis.opendocument.spreadsheet-template) setsid -f localc $fx >/dev/null 2>&1 ;; From fa600f8ca722da4dabc705e89b7c17de3035a3ae Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Wed, 16 Nov 2022 11:56:11 -0500 Subject: [PATCH 072/175] fix #1233 and improve and cleanup mount scripts --- .local/bin/dmenumount | 10 ++++----- .local/bin/dmenuumount | 49 +++++++++++------------------------------- 2 files changed, 18 insertions(+), 41 deletions(-) diff --git a/.local/bin/dmenumount b/.local/bin/dmenumount index abeb0ce5..8cf4a6b5 100755 --- a/.local/bin/dmenumount +++ b/.local/bin/dmenumount @@ -27,18 +27,18 @@ mountusb() { \ "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." + esac && notify-send "๐Ÿ’ป USB mounting" "$chosen mounted to $mp." || + notify-send "๐Ÿ’ป Drive failed to mount." "Probably a permissions issue or drive is already mounted." } 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." + simple-mtpfs --device "$chosen" "$mp" && + notify-send "๐Ÿค– Android Mounting" "Android device mounted to $mp." || + notify-send "๐Ÿค– Android failed mounting." "Probably a permissions issue or phone is already mounted." } asktype() { \ diff --git a/.local/bin/dmenuumount b/.local/bin/dmenuumount index 946d12c3..656d1f12 100755 --- a/.local/bin/dmenuumount +++ b/.local/bin/dmenuumount @@ -4,41 +4,18 @@ # 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." - } +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}'; awk '/simple-mtpfs/ { print "๐Ÿ“ฑ", $2; }' /etc/mtab)" -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." - } +chosen="$(echo "$drives" | dmenu -i -p "Unmount which drive?")" || exit 1 -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 +case "$chosen" in + ๐Ÿ“ฑ*) + chosen="${chosen#๐Ÿ“ฑ }" + sudo -A umount -l "$chosen" + ;; + *) + chosen="${chosen% (*}" + sudo -A umount -l "$chosen" + ;; +esac && notify-send "๐Ÿ–ฅ๏ธ Drive unmounted." "$chosen successfully unmounted." || + notify-send "๐Ÿ–ฅ๏ธ Drive failed to unmount." "Possibly a permissions or I/O issue." From 450745a467524a0bacdae2679deb370ac2a2e9d5 Mon Sep 17 00:00:00 2001 From: Adrian Wijaya Date: Sun, 20 Nov 2022 04:46:38 +0700 Subject: [PATCH 073/175] fix epub preview not working (#1238) --- .config/lf/scope | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/lf/scope b/.config/lf/scope index 654e9682..1d835275 100755 --- a/.config/lf/scope +++ b/.config/lf/scope @@ -26,7 +26,6 @@ case "$(file --dereference --brief --mime-type -- "$1")" in text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;; text/troff) man ./ "$1" | col -b ;; text/* | */xml | application/json) bat --terminal-width "$(($4-2))" -f "$1" ;; - application/*zip) atool --list -- "$1" ;; audio/* | application/octet-stream) mediainfo "$1" || exit 1 ;; video/* ) CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)" @@ -43,6 +42,7 @@ case "$(file --dereference --brief --mime-type -- "$1")" in [ ! -f "$CACHE.jpg" ] && gnome-epub-thumbnailer "$1" "$CACHE.jpg" image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1" ;; + application/*zip) atool --list -- "$1" ;; *opendocument*) odt2txt "$1" ;; application/pgp-encrypted) gpg -d -- "$1" ;; esac From 588aeb9a1e52b8c3e1d33c07272be7f97f5f9b71 Mon Sep 17 00:00:00 2001 From: Jameson <108906685+2084x@users.noreply.github.com> Date: Sun, 15 Jan 2023 16:26:57 +1100 Subject: [PATCH 074/175] Use wpctl to change volume (#1248) --- .local/bin/statusbar/sb-volume | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.local/bin/statusbar/sb-volume b/.local/bin/statusbar/sb-volume index d17ce666..52999f41 100755 --- a/.local/bin/statusbar/sb-volume +++ b/.local/bin/statusbar/sb-volume @@ -4,9 +4,9 @@ case $BLOCK_BUTTON in 1) setsid -f "$TERMINAL" -e pulsemixer ;; - 2) pamixer -t ;; - 4) pamixer --allow-boost -i 1 ;; - 5) pamixer --allow-boost -d 1 ;; + 2) wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle ;; + 4) wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+ ;; + 5) wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%- ;; 3) notify-send "๐Ÿ“ข Volume module" "\- Shows volume ๐Ÿ”Š, ๐Ÿ”‡ if muted. - Middle click to mute. - Scroll to change." ;; From 9068ccd66cb8c4a7f4655303cc9eaa26bba78127 Mon Sep 17 00:00:00 2001 From: Jameson <108906685+2084x@users.noreply.github.com> Date: Sun, 15 Jan 2023 16:27:25 +1100 Subject: [PATCH 075/175] Use g instead of gg in zathura (#1246) --- .config/wal/templates/zathurarc | 1 + 1 file changed, 1 insertion(+) diff --git a/.config/wal/templates/zathurarc b/.config/wal/templates/zathurarc index a12bbd3c..8f0b16fa 100644 --- a/.config/wal/templates/zathurarc +++ b/.config/wal/templates/zathurarc @@ -12,6 +12,7 @@ map K zoom in map J zoom out map i recolor map p print +map g goto top set default-bg "{background}" set default-fg "{foreground}" From 5c262da7c39fb0b3cd52acca36f45d4e7c629d37 Mon Sep 17 00:00:00 2001 From: Jameson <108906685+2084x@users.noreply.github.com> Date: Sun, 15 Jan 2023 16:27:46 +1100 Subject: [PATCH 076/175] Fix markdown compiling (#1247) --- .local/bin/compiler | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.local/bin/compiler b/.local/bin/compiler index 6e28cd0d..8420e25f 100755 --- a/.local/bin/compiler +++ b/.local/bin/compiler @@ -39,9 +39,9 @@ case "$ext" in 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 + lowdown --parse-no-intraemph "$file" -Tms | groff -mpdfmark -ms -kept -T pdf > "$base".pdf elif [ -x "$(command -v groffdown)" ]; then - groffdown -i "$file" | groff > "$base.pdf" + groffdown -i "$file" | groff -T pdf > "$base".pdf else pandoc -t ms --highlight-style=kate -s -o "$base".pdf "$file" fi ; ;; @@ -51,7 +51,7 @@ case "$ext" in py) python "$file" ;; [rR]md) Rscript -e "rmarkdown::render('$file', quiet=TRUE)" ;; rs) cargo build ;; - sass) sassc -a "$file" "$base.css" ;; + sass) sassc -a "$file" "$base".css ;; scad) openscad -o "$base".stl "$file" ;; sent) setsid -f sent "$file" 2>/dev/null ;; tex) textype "$file" ;; From 5c52bd63394aafbb93b6713b74c148e5a4ec17c7 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Sun, 15 Jan 2023 08:23:06 -0500 Subject: [PATCH 077/175] tweaks --- .config/lf/lfrc | 4 ++-- .local/bin/statusbar/sb-music | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 0d534568..01d17f8b 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -31,7 +31,7 @@ cmd open ${{ case $(file --mime-type "$(readlink -f $f)" -b) in application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) localc $fx ;; image/vnd.djvu|application/pdf|application/octet-stream|application/postscript) setsid -f zathura $fx >/dev/null 2>&1 ;; - text/*|application/json|inode/x-empty) $EDITOR $fx;; + text/*|application/json|inode/x-empty|application/x-subrip) $EDITOR $fx;; image/x-xcf) setsid -f gimp $f >/dev/null 2>&1 ;; image/svg+xml) display -- $f ;; image/*) rotdir $f | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|tif\|ico\)\(_large\)*$" | @@ -41,7 +41,7 @@ cmd open ${{ lf -remote "send toggle" done & ;; - audio/*) mpv --audio-display=no $f ;; + audio/*|video/x-ms-asf) mpv --audio-display=no $f ;; video/*) setsid -f mpv $f -quiet >/dev/null 2>&1 ;; application/pdf|application/vnd*|application/epub*) setsid -f zathura $fx >/dev/null 2>&1 ;; application/pgp-encrypted) $EDITOR $fx ;; diff --git a/.local/bin/statusbar/sb-music b/.local/bin/statusbar/sb-music index 7ea70320..d164b4be 100755 --- a/.local/bin/statusbar/sb-music +++ b/.local/bin/statusbar/sb-music @@ -1,6 +1,6 @@ #!/bin/sh -filter() { mpc | sed "/^volume:/d;s/\\&/&/g;s/\\[paused\\].*/โธ/g;/\\[playing\\].*/d;/^ERROR/Q" | paste -sd ' ' -;} +filter() { sed "/^volume:/d;s/\\&/&/g;s/\\[paused\\].*/โธ/g;/\\[playing\\].*/d;/^ERROR/Q" | paste -sd ' ' -;} pidof -x sb-mpdup >/dev/null 2>&1 || sb-mpdup >/dev/null 2>&1 & From c8aa0495eb49d78f4f8ed6c3952c9a7d9d76ae12 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Sun, 15 Jan 2023 08:30:21 -0500 Subject: [PATCH 078/175] record script changes --- .local/bin/dmenurecord | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.local/bin/dmenurecord b/.local/bin/dmenurecord index b83a7c52..990b7b3c 100755 --- a/.local/bin/dmenurecord +++ b/.local/bin/dmenurecord @@ -9,6 +9,8 @@ # # If there is already a running instance, user will be prompted to end it. +getdim() { xrandr | sed -n "s/\s*\([0-9]\+x[0-9]\+\).*\*.*/\1/p" ;} + updateicon() { \ echo "$1" > /tmp/recordingicon pkill -RTMIN+9 "${STATUSBAR:-dwmblocks}" @@ -16,26 +18,23 @@ updateicon() { \ killrecording() { recpid="$(cat /tmp/recordingpid)" - # kill with SIGTERM, allowing finishing touches. kill -15 "$recpid" rm -f /tmp/recordingpid updateicon "" pkill -RTMIN+9 "${STATUSBAR:-dwmblocks}" - # even after SIGTERM, ffmpeg may still run, so SIGKILL it. - sleep 3 - kill -9 "$recpid" - exit } screencast() { \ ffmpeg -y \ -f x11grab \ - -framerate 60 \ - -s "$(xdpyinfo | awk '/dimensions/ {print $2;}')" \ + -framerate 30 \ + -s "$(getdim)" \ -i "$DISPLAY" \ - -f alsa -i default \ - -r 30 \ - -c:v h264 -crf 0 -preset ultrafast -c:a aac \ + -r 24 \ + -use_wallclock_as_timestamps 1 \ + -f alsa -thread_queue_size 1024 -i default \ + -c:v h264 \ + -crf 0 -preset ultrafast -c:a aac \ "$HOME/screencast-$(date '+%y%m%d-%H%M-%S').mp4" & echo $! > /tmp/recordingpid updateicon "โบ๏ธ๐ŸŽ™๏ธ" @@ -43,7 +42,8 @@ screencast() { \ video() { ffmpeg \ -f x11grab \ - -s "$(xdpyinfo | awk '/dimensions/ {print $2;}')" \ + -framerate 30 \ + -s "$(getdim)" \ -i "$DISPLAY" \ -c:v libx264 -qp 0 -r 30 \ "$HOME/video-$(date '+%y%m%d-%H%M-%S').mkv" & @@ -104,7 +104,7 @@ videoselected() ffmpeg \ -f x11grab \ - -framerate 60 \ + -framerate 30 \ -video_size "$W"x"$H" \ -i :0.0+"$X,$Y" \ -c:v libx264 -qp 0 -r 30 \ From 56b61ca1d51da9341e9dd882106d111c8cff8b4b Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Tue, 17 Jan 2023 16:20:27 -0500 Subject: [PATCH 079/175] add larbs user.js additions --- .config/firefox/larbs.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .config/firefox/larbs.js diff --git a/.config/firefox/larbs.js b/.config/firefox/larbs.js new file mode 100644 index 00000000..452572f2 --- /dev/null +++ b/.config/firefox/larbs.js @@ -0,0 +1,32 @@ +// These are changes made on top of the Arkenfox JS file to tweak it as +// desired. Any of these settings can be overridden by the user. + +// Disable the Twitter/R*ddit/Faceberg ads in the URL bar: +user_pref("browser.urlbar.quicksuggest.enabled", false); +user_pref("browser.urlbar.suggest.topsites", false); // [FF78+] + +// Do not suggest web history in the URL bar: +user_pref("browser.urlbar.suggest.history", false); + +// Do not prefil forms: +user_pref("signon.prefillForms", false); + +// Do not autocomplete in the URL bar: +user_pref("browser.urlbar.autoFill", false); + +// Enable the addition of search keywords: +user_pref("keyword.enabled", true); + +// Allow access to http (i.e. not https) sites: +user_pref("dom.security.https_only_mode", false); + +// Keep cookies until expiration or user deletion: +user_pref("network.cookie.lifetimePolicy", 0); + +user_pref("dom.webnotifications.serviceworker.enabled", false); + +// Disable push notifications: +user_pref("dom.push.enabled", false); + +// Disable the pocket antifeature: +user_pref("extensions.pocket.enabled", false); From a247e3e851666775d0b29111240c05401a990604 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Thu, 19 Jan 2023 09:11:18 -0500 Subject: [PATCH 080/175] enable custom userChrome.js --- .config/firefox/larbs.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.config/firefox/larbs.js b/.config/firefox/larbs.js index 452572f2..7fc34a3a 100644 --- a/.config/firefox/larbs.js +++ b/.config/firefox/larbs.js @@ -30,3 +30,9 @@ user_pref("dom.push.enabled", false); // Disable the pocket antifeature: user_pref("extensions.pocket.enabled", false); + +// Don't autodelete cookies on shutdown: +user_pref("clearOnShutdown.cookies", false); + +// Enable custom userChrome.js: +user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); From ab8f99cb712895c37c19f907712f2de00f792ab2 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Thu, 19 Jan 2023 12:50:17 -0500 Subject: [PATCH 081/175] lax for logins --- .config/firefox/larbs.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.config/firefox/larbs.js b/.config/firefox/larbs.js index 7fc34a3a..b0c89acb 100644 --- a/.config/firefox/larbs.js +++ b/.config/firefox/larbs.js @@ -36,3 +36,6 @@ user_pref("clearOnShutdown.cookies", false); // Enable custom userChrome.js: user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); + +// This could otherwise cause some issues on bank logins and other annoying sites: +user_pref("network.http.referer.XOriginPolicy", 0); From 1ccf88c09961f2feb752d024afd4f58375cdec98 Mon Sep 17 00:00:00 2001 From: Rokosun <79040025+futureisfoss@users.noreply.github.com> Date: Fri, 20 Jan 2023 19:44:36 +0000 Subject: [PATCH 082/175] Various bug fixes and improvements for sd script * Programs that show ~/ or / instead of the actual working directory are now ignored by the script (except for zsh & lf where its correct). This will fix bugs where sd opens your home folder instead of the current working directory. * This also removes the need for manually excluding all programs that don't show the correct cwd. * git (and its sub-processes) will show the root of a repository instead of the actual cwd, so they're ignored too. --- .local/bin/sd | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.local/bin/sd b/.local/bin/sd index 8047d33b..a0ff84c2 100755 --- a/.local/bin/sd +++ b/.local/bin/sd @@ -2,8 +2,21 @@ # Open a terminal window in the same directory as the currently active window. -PID=$(xprop -id "$(xprop -root | sed -n "/_NET_ACTIVE_WINDOW/ s/^.*# // p")" | sed -n "/PID/ s/^.*= // p") -PID=$(pstree -lpATna "$PID" | grep -v '\-\(lf,[0-9]\+ -server\|(st-urlhandler,[0-9]\+)\|xclip,[0-9]\+\)' | sed '$s/.*,\([0-9]\+\).*/\1/;t;d') -cwd=$(readlink /proc/"$PID"/cwd) +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" From 6e75e3a3bf4205a3f6d9a286f058ad1dd000e7d6 Mon Sep 17 00:00:00 2001 From: Amy <58243358+aymey@users.noreply.github.com> Date: Sat, 21 Jan 2023 08:10:47 +1100 Subject: [PATCH 083/175] add TERMINAL_PROG variable (#1237) used in programs like `xtrace` (line 172 `/usr/bin/xtrace`) --- .config/shell/profile | 1 + 1 file changed, 1 insertion(+) diff --git a/.config/shell/profile b/.config/shell/profile index 10763526..7c7a613d 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -13,6 +13,7 @@ unsetopt PROMPT_SP # Default programs: export EDITOR="nvim" export TERMINAL="st" +export TERMINAL_PROG="st" export BROWSER="librewolf" # ~/ Clean-up: From 9e433aa75398241744b10b8b87fcb09ce3f4989e Mon Sep 17 00:00:00 2001 From: Axel <14095200+codegax@users.noreply.github.com> Date: Mon, 23 Jan 2023 00:18:01 +0000 Subject: [PATCH 084/175] Update README.md (#1254) Update link to dependency csv --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1594423b..135a8e49 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ curl -LO larbs.xyz/larbs.sh ``` or clone the repo files directly to your home directory and install the -[dependencies](https://github.com/LukeSmithxyz/LARBS/blob/master/progs.csv). +[dependencies](https://github.com/LukeSmithxyz/LARBS/blob/master/static/progs.csv). ## Default Desktop Artwork From 2ca01a2886f23a7171ce52f1154f6f105b481720 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 27 Jan 2023 17:32:33 -0500 Subject: [PATCH 085/175] usb/android/luks (un)mount scripts to replace dmenumount and dmenuumount --- .local/bin/mounter | 93 ++++++++++++++++++++++++++++++++++++++++++++ .local/bin/unmounter | 28 +++++++++++++ 2 files changed, 121 insertions(+) create mode 100755 .local/bin/mounter create mode 100755 .local/bin/unmounter diff --git a/.local/bin/mounter b/.local/bin/mounter new file mode 100755 index 00000000..a6636859 --- /dev/null +++ b/.local/bin/mounter @@ -0,0 +1,93 @@ +#!/bin/bash + +# Mounts Android Phones and USB drives (encrypted or not). This script will +# replace the older `dmenumount` which had extra steps and couldn't handle +# encrypted drives. +# TODO: Remove already mounted Android phones from prompt. +# TODO: Try mount first for drives if in fstab to avoid directory prompt? +# TODO: Add some support for connecting iPhones (although they are annoying). + +set -e + +# Check for phones. +phones="$(simple-mtpfs -l 2>/dev/null | sed "s/^/๐Ÿ“ฑ/")" +# Check for drives. +alldrives="$(lsblk -rpo "uuid,name,type,size,label,mountpoint,fstype")" +# Get all LUKS drives +allluks="$(echo "$alldrives" | grep crypto_LUKS)" +# Get a list of the LUKS drive UUIDs already decrypted. +decrypted="$(ls /dev/disk/by-id/dm-uuid-CRYPT-LUKS2-* | sed "s|.*LUKS2-||;s|-.*||")" +# Functioning for formatting drives correctly for dmenu: +filter() { sed "s/ /:/g" | awk -F':' '$7==""{printf "%s%s (%s) %s\n",$1,$3,$5,$6}' ; } + +# Get only LUKS drives that are not decrypted. +IFS=' +' +unopenedluks="$(for drive in $allluks; do + uuid="${drive%% *}" + uuid="${uuid//-}" # This is a bashism. + for open in $decrypted; do + [ "$uuid" = "$open" ] && break 1 + done && continue 1 + echo "๐Ÿ”’ $drive" +done | filter)" + +# Get all normal, non-encrypted or decrypted partitions that are not mounted. +normalparts="$(echo "$alldrives"| grep -v crypto_LUKS | grep 'part\|rom\|crypt' | sed "s/^/๐Ÿ’พ /" | filter )" + +# Add all to one variable. If no mountable drives found, exit. +alldrives="$(echo "$phones +$unopenedluks +$normalparts" | sed "/^$/d;s/ *$//")" +test -n "$alldrives" + +# Feed all found drives to dmenu and get user choice. +chosen="$(echo "$alldrives" | dmenu -p "Mount which drive?" -i)" + +# Function for prompting user for a mountpoint. +getmount(){ + mp="$(find /mnt /media /mount /home -maxdepth 5 -type d 2>/dev/null | dmenu -i -p "Mount this drive where?")" + test -n "$mp" + if [ ! -d "$mp" ]; then + mkdiryn=$(printf "No\\nYes" | dmenu -i -p "$mp does not exist. Create it?") + [ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo -A mkdir -p "$mp") + fi +} + +case "$chosen" in + ๐Ÿ’พ*) + chosen="${chosen%% *}" + chosen="${chosen:1}" # This is a bashism. + getmount + sudo mount "$chosen" "$mp" + notify-send "๐Ÿ’พDrive Mounted." "$chosen mounted to $mp." + ;; + + ๐Ÿ”’*) + chosen="${chosen%% *}" + chosen="${chosen:1}" # This is a bashism. + # Number the drive. + while true; do + [ -f "/dev/mapper/usb$num" ] || break + num="$(printf "%02d" "$((num +1))")" + done + + # Decrypt in a terminal window + ${TERMINAL:-st} -n floatterm -g 60x1 -e sudo cryptsetup open "$chosen" "usb$num" + # Check if now decrypted. + test -b /dev/mapper/usb$num + + getmount + sudo mount "/dev/mapper/usb$num" "$mp" + notify-send "๐Ÿ”“Decrypted drive Mounted." "$chosen decrypted and mounted to $mp." + ;; + + ๐Ÿ“ฑ*) + getmount + echo "OK" | dmenu -i -p "Tap Allow on your phone if it asks for permission and then press enter" + chosen="${chosen%%:*}" + chosen="${chosen:1}" # This is a bashism. + simple-mtpfs --device "$chosen" "$mp" + notify-send "๐Ÿค– Android Mounted." "Android device mounted to $mp." + ;; +esac diff --git a/.local/bin/unmounter b/.local/bin/unmounter new file mode 100755 index 00000000..7f1dbf5d --- /dev/null +++ b/.local/bin/unmounter @@ -0,0 +1,28 @@ +#!/bin/sh + +# Unmount USB drives or Android phones. Replaces the older `dmenuumount`. Fewer +# prompt and also de-decrypts LUKS drives that are unmounted. + +set -e + +mounteddroids="$(grep simple-mtpfs /etc/mtab | awk '{print "๐Ÿ“ฑ" $2}')" +lsblkoutput="$(lsblk -nrpo "name,type,size,mountpoint")" +mounteddrives="$(echo "$lsblkoutput" | awk '($2=="part"||$2="crypt")&&$4!~/\/boot|\/home$|SWAP/&&length($4)>1{printf "๐Ÿ’พ%s (%s)\n",$4,$3}')" + +allunmountable="$(echo "$mounteddroids +$mounteddrives" | sed "/^$/d;s/ *$//")" +test -n "$allunmountable" + +chosen="$(echo "$allunmountable" | dmenu -i -p "Unmount which drive?")" +chosen="${chosen%% *}" +test -n "$chosen" + +sudo -A umount -l "/${chosen#*/}" +notify-send "Device unmounted." "$chosen has been unmounted." + +# Close the chosen drive if decrypted. +cryptid="$(echo "$lsblkoutput" | grep "/${chosen#*/}$")" +cryptid="${cryptid%% *}" +test -b /dev/mapper/"${cryptid##*/}" +sudo -A cryptsetup close "$cryptid" +notify-send "๐Ÿ”’Device dencryption closed." "Drive is now securely locked again." From f5ac77e719ff9696438037fd68d0b7bd584534e3 Mon Sep 17 00:00:00 2001 From: Sergei Kozyrev Date: Sat, 28 Jan 2023 06:06:49 +0600 Subject: [PATCH 086/175] check if kb_choice is empty in sb-kbselect (#1243) --- .local/bin/statusbar/sb-kbselect | 1 + 1 file changed, 1 insertion(+) diff --git a/.local/bin/statusbar/sb-kbselect b/.local/bin/statusbar/sb-kbselect index f0c923f5..ab2140c3 100755 --- a/.local/bin/statusbar/sb-kbselect +++ b/.local/bin/statusbar/sb-kbselect @@ -5,6 +5,7 @@ kb="$(setxkbmap -query | grep -oP 'layout:\s*\K\w+')" || exit 1 case $BLOCK_BUTTON in 1) kb_choice="$(awk '/! layout/{flag=1; next} /! variant/{flag=0} flag {print $2, "- " $1}' /usr/share/X11/xkb/rules/base.lst | dmenu -l 15)" + [ -z "$kb_choice" ] && exit 0 kb="$(echo "$kb_choice" | awk '{print $3}')" setxkbmap "$kb" pkill -RTMIN+30 "${STATUSBAR:-dwmblocks}";; From f30078225e1a19af0d6b2696187a991f332a65bf Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 27 Jan 2023 19:16:27 -0500 Subject: [PATCH 087/175] resolve #1249 --- .config/sxiv/exec/key-handler | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/sxiv/exec/key-handler b/.config/sxiv/exec/key-handler index 4a4f10a1..4c78f18b 100755 --- a/.config/sxiv/exec/key-handler +++ b/.config/sxiv/exec/key-handler @@ -28,6 +28,6 @@ do "d") [ "$(printf "No\\nYes" | dmenu -i -p "Really delete $file?")" = "Yes" ] && rm "$file" && notify-send "$file deleted." ;; "g") ifinstalled gimp && setsid -f gimp "$file" ;; - "i") notify-send "File information" "$(mediainfo "$file")" ;; + "i") notify-send "File information" "$(mediainfo "$file" | sed "s/[ ]\+:/:/g;s/: /: /;s/$/<\/b>/" | grep "")" ;; esac done From 96f65d12deb7afb73a3464628035166edfe0dd1a Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Sat, 28 Jan 2023 15:25:47 +0000 Subject: [PATCH 088/175] Don't stop mounter script on ls error (#1255) * Don't stop mounter script on ls error If no decrypted LUKS drives are found, the script errors with `ls: cannot access '/dev/disk/by-id/dm-uuid-CRYPT-LUKS2-*': No such file or directory` and stops, this makes sure the error doesn't stop the script. * True was on wrong line --- .local/bin/mounter | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/mounter b/.local/bin/mounter index a6636859..4f188f25 100755 --- a/.local/bin/mounter +++ b/.local/bin/mounter @@ -14,7 +14,7 @@ phones="$(simple-mtpfs -l 2>/dev/null | sed "s/^/๐Ÿ“ฑ/")" # Check for drives. alldrives="$(lsblk -rpo "uuid,name,type,size,label,mountpoint,fstype")" # Get all LUKS drives -allluks="$(echo "$alldrives" | grep crypto_LUKS)" +allluks="$(echo "$alldrives" | grep crypto_LUKS)" || true # Get a list of the LUKS drive UUIDs already decrypted. decrypted="$(ls /dev/disk/by-id/dm-uuid-CRYPT-LUKS2-* | sed "s|.*LUKS2-||;s|-.*||")" # Functioning for formatting drives correctly for dmenu: From 191d8617e2d0391283f69ae4d8a8e7ee1a4c718e Mon Sep 17 00:00:00 2001 From: Amy <58243358+aymey@users.noreply.github.com> Date: Sun, 29 Jan 2023 03:21:14 +1100 Subject: [PATCH 089/175] remove adding newline (#1257) eol is set on by default --- .config/nvim/init.vim | 1 - 1 file changed, 1 deletion(-) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index d8aaf5e1..5c397f0e 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -117,7 +117,6 @@ set noshowcmd autocmd BufWritePre * let currPos = getpos(".") autocmd BufWritePre * %s/\s\+$//e autocmd BufWritePre * %s/\n\+\%$//e - autocmd BufWritePre *.[ch] %s/\%$/\r/e autocmd BufWritePre * cal cursor(currPos[1], currPos[2]) " When shortcut files are updated, renew bash and ranger configs with new material: From 9c74ccb955b6a35a8455e2b4f204a4e18a59e16a Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Sat, 28 Jan 2023 12:03:25 -0500 Subject: [PATCH 090/175] reduce find depth for speed. shellcheck. --- .local/bin/mounter | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.local/bin/mounter b/.local/bin/mounter index 4f188f25..38da0df6 100755 --- a/.local/bin/mounter +++ b/.local/bin/mounter @@ -16,7 +16,7 @@ alldrives="$(lsblk -rpo "uuid,name,type,size,label,mountpoint,fstype")" # Get all LUKS drives allluks="$(echo "$alldrives" | grep crypto_LUKS)" || true # Get a list of the LUKS drive UUIDs already decrypted. -decrypted="$(ls /dev/disk/by-id/dm-uuid-CRYPT-LUKS2-* | sed "s|.*LUKS2-||;s|-.*||")" +decrypted="$(find /dev/disk/by-id/dm-uuid-CRYPT-LUKS2-* | sed "s|.*LUKS2-||;s|-.*||")" # Functioning for formatting drives correctly for dmenu: filter() { sed "s/ /:/g" | awk -F':' '$7==""{printf "%s%s (%s) %s\n",$1,$3,$5,$6}' ; } @@ -46,7 +46,7 @@ chosen="$(echo "$alldrives" | dmenu -p "Mount which drive?" -i)" # Function for prompting user for a mountpoint. getmount(){ - mp="$(find /mnt /media /mount /home -maxdepth 5 -type d 2>/dev/null | dmenu -i -p "Mount this drive where?")" + mp="$(find /mnt /media /mount /home -maxdepth 1 -type d 2>/dev/null | dmenu -i -p "Mount this drive where?")" test -n "$mp" if [ ! -d "$mp" ]; then mkdiryn=$(printf "No\\nYes" | dmenu -i -p "$mp does not exist. Create it?") @@ -75,7 +75,7 @@ case "$chosen" in # Decrypt in a terminal window ${TERMINAL:-st} -n floatterm -g 60x1 -e sudo cryptsetup open "$chosen" "usb$num" # Check if now decrypted. - test -b /dev/mapper/usb$num + test -b "/dev/mapper/usb$num" getmount sudo mount "/dev/mapper/usb$num" "$mp" From 6e2de6f4f66ad230fdf05be4308b8e766805fe36 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Wed, 1 Feb 2023 09:29:24 -0500 Subject: [PATCH 091/175] remove firefox sync --- .config/firefox/larbs.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.config/firefox/larbs.js b/.config/firefox/larbs.js index b0c89acb..d24849e8 100644 --- a/.config/firefox/larbs.js +++ b/.config/firefox/larbs.js @@ -39,3 +39,6 @@ user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); // This could otherwise cause some issues on bank logins and other annoying sites: user_pref("network.http.referer.XOriginPolicy", 0); + +// Disable Firefox sync and its menu entries +user_pref("identity.fxaccounts.enabled", false); From 3cee7b8844f8f01b36e2be4a04095e06042c50d2 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Wed, 1 Feb 2023 13:32:50 -0500 Subject: [PATCH 092/175] update for name change --- .config/firefox/larbs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/firefox/larbs.js b/.config/firefox/larbs.js index d24849e8..d0d0d5c1 100644 --- a/.config/firefox/larbs.js +++ b/.config/firefox/larbs.js @@ -32,7 +32,7 @@ user_pref("dom.push.enabled", false); user_pref("extensions.pocket.enabled", false); // Don't autodelete cookies on shutdown: -user_pref("clearOnShutdown.cookies", false); +user_pref("privacy.clearOnShutdown.cookies", false); // Enable custom userChrome.js: user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); From c9234676636b3c48ff5767b245790cd58b17085a Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Thu, 2 Feb 2023 12:05:33 -0500 Subject: [PATCH 093/175] add arkenfox updater wrapper --- .local/bin/arkenfox-auto-update | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 .local/bin/arkenfox-auto-update diff --git a/.local/bin/arkenfox-auto-update b/.local/bin/arkenfox-auto-update new file mode 100755 index 00000000..18029654 --- /dev/null +++ b/.local/bin/arkenfox-auto-update @@ -0,0 +1,20 @@ +#!/bin/sh + +# A wrapper for the arkenfox-updater that runs it on all pre-existing Arkenfox +# user.js files on the machine. + +# On installation of LARBS, this file is copied to /usr/local/lib/ where it is +# run by a pacman hook set up. The user should not have to run this manually. + +# Search for all Firefox and Librewolf profiles using Arkenfox. +profiles="$(grep -H "arkenfox user.js" \ + /home/*/.librewolf/*.default-release/user.js \ + /home/*/.mozilla/firefox/*.default-release/user.js)" + +IFS=' +' + +# Update each found profile. +for profile in $profiles; do + arkenfox-updater -p "${profile%%/user.js*}" -s +done From 070c613050e9149fafc8af3072218199b4588387 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Thu, 2 Feb 2023 14:15:32 -0500 Subject: [PATCH 094/175] silent if file absent --- .local/bin/arkenfox-auto-update | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/arkenfox-auto-update b/.local/bin/arkenfox-auto-update index 18029654..05f4ca7f 100755 --- a/.local/bin/arkenfox-auto-update +++ b/.local/bin/arkenfox-auto-update @@ -7,7 +7,7 @@ # run by a pacman hook set up. The user should not have to run this manually. # Search for all Firefox and Librewolf profiles using Arkenfox. -profiles="$(grep -H "arkenfox user.js" \ +profiles="$(grep -sH "arkenfox user.js" \ /home/*/.librewolf/*.default-release/user.js \ /home/*/.mozilla/firefox/*.default-release/user.js)" From 81456798aea0cde75358b062880d2e38d3265f9e Mon Sep 17 00:00:00 2001 From: PrivateLalle <29478339+LalleSX@users.noreply.github.com> Date: Mon, 6 Feb 2023 19:28:08 +0100 Subject: [PATCH 095/175] Fix mouse issue in firefox, add avif icon and add DK & SE to dopplar (#1259) * Fix mouse issue in firefox, add avif icon and add DK & SE to dopplar * Update sb-doppler * Scandinavian countries listed --------- Co-authored-by: Victor Risgaard --- .config/firefox/larbs.js | 3 +++ .config/lf/icons | 1 + .local/bin/statusbar/sb-doppler | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.config/firefox/larbs.js b/.config/firefox/larbs.js index d0d0d5c1..8328357e 100644 --- a/.config/firefox/larbs.js +++ b/.config/firefox/larbs.js @@ -42,3 +42,6 @@ user_pref("network.http.referer.XOriginPolicy", 0); // Disable Firefox sync and its menu entries user_pref("identity.fxaccounts.enabled", false); + +// Fix the issue where right mouse button instantly clicks +user_pref("ui.context_menus.after_mouseup", true); diff --git a/.config/lf/icons b/.config/lf/icons index ac8f641c..aad068ce 100644 --- a/.config/lf/icons +++ b/.config/lf/icons @@ -9,6 +9,7 @@ ex ๐ŸŽฏ *.mom โœ *.me โœ *.ms โœ +*.avif ๐Ÿ–ผ *.png ๐Ÿ–ผ *.webp ๐Ÿ–ผ *.ico ๐Ÿ–ผ diff --git a/.local/bin/statusbar/sb-doppler b/.local/bin/statusbar/sb-doppler index 7573c98b..f58b744e 100755 --- a/.local/bin/statusbar/sb-doppler +++ b/.local/bin/statusbar/sb-doppler @@ -184,7 +184,7 @@ US: KVNX: Norman, OK US: KVBX: Vandenberg Afb: Orcutt, CA EU: Europe EU: GB: Great Brittain -EU: SCAN: Scandinavia +EU: SCAN: Scandinavia. Norway, Sweden And Denmark EU: ALPS: The Alps EU: NL: The Netherlands EU: DE: Germany From 32a896ffdff7c61da10a81b669e0c1aff9a6ea99 Mon Sep 17 00:00:00 2001 From: snailed Date: Mon, 6 Feb 2023 21:11:01 +0000 Subject: [PATCH 096/175] Make xprofile automatically start remapd --- .config/x11/xprofile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/x11/xprofile b/.config/x11/xprofile index 0e226282..affa8dec 100755 --- a/.config/x11/xprofile +++ b/.config/x11/xprofile @@ -8,7 +8,7 @@ setbg & # set the background with the `setbg` script #xrdb ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources & xrdbpid=$! # Uncomment to use Xresources colors/settings on startup remaps & # run the remaps script, switching caps/esc and more; check it for more info -autostart="mpd xcompmgr dunst unclutter pipewire" +autostart="mpd xcompmgr dunst unclutter pipewire remapd" for program in $autostart; do pidof -s "$program" || "$program" & From 53a66c6254c7a5d6000eee2b3a6b02d340d5511e Mon Sep 17 00:00:00 2001 From: snailed Date: Mon, 6 Feb 2023 21:15:02 +0000 Subject: [PATCH 097/175] Create remapd This script will automatically run remaps when it detects a line in dmesg that contains "input:" --- .local/bin/remapd | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .local/bin/remapd diff --git a/.local/bin/remapd b/.local/bin/remapd new file mode 100644 index 00000000..93a23f64 --- /dev/null +++ b/.local/bin/remapd @@ -0,0 +1,6 @@ +#!/bin/sh +while : ; do + dmesg -W -f kern | grep "input:" -q + sleep 1 + remaps +done From 98ea4e0080fd6f05485baa485cefe2fd7fea9fa2 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Mon, 6 Feb 2023 17:05:16 -0500 Subject: [PATCH 098/175] fix #1260, more principled volume format --- .local/bin/statusbar/sb-volume | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.local/bin/statusbar/sb-volume b/.local/bin/statusbar/sb-volume index 52999f41..acdf7a9e 100755 --- a/.local/bin/statusbar/sb-volume +++ b/.local/bin/statusbar/sb-volume @@ -19,14 +19,15 @@ vol="$(wpctl get-volume @DEFAULT_AUDIO_SINK@)" [ "$vol" != "${vol%\[MUTED\]}" ] && echo ๐Ÿ”‡ && exit vol="${vol#Volume: }" + split() { # For ommiting the . without calling and external program. IFS=$2 set -- $1 printf '%s' "$@" } -vol="$(split "$vol" ".")" -vol="${vol##0}" + +vol="$(printf "%.0f" "$(split "$vol" ".")")" case 1 in $((vol >= 70)) ) icon="๐Ÿ”Š" ;; From 136456e4fab5a7cb428add6e995c941b2c99dcbe Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Mon, 6 Feb 2023 18:19:09 -0500 Subject: [PATCH 099/175] add comment, remove remaps from displayselect --- .local/bin/displayselect | 1 - .local/bin/remapd | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.local/bin/displayselect b/.local/bin/displayselect index f9e80628..0227a32b 100755 --- a/.local/bin/displayselect +++ b/.local/bin/displayselect @@ -58,7 +58,6 @@ onescreen() { # If only one output available or chosen. 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 } diff --git a/.local/bin/remapd b/.local/bin/remapd index 93a23f64..4ce32b3e 100644 --- a/.local/bin/remapd +++ b/.local/bin/remapd @@ -1,4 +1,8 @@ #!/bin/sh + +# Rerun the remaps script whenever a new input device is added. Run by the +# xprofile by default. + while : ; do dmesg -W -f kern | grep "input:" -q sleep 1 From 6d75bbdf8c3adea29468328425798d2fa2ab4928 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Mon, 6 Feb 2023 20:45:11 -0500 Subject: [PATCH 100/175] remaps run by remapd automatically on startup --- .config/x11/xprofile | 1 - .local/bin/remapd | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.config/x11/xprofile b/.config/x11/xprofile index affa8dec..1d63fd2d 100755 --- a/.config/x11/xprofile +++ b/.config/x11/xprofile @@ -6,7 +6,6 @@ xrandr --dpi 96 # Set DPI. User may want to use a larger number for larger screens. setbg & # set the background with the `setbg` script #xrdb ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources & xrdbpid=$! # Uncomment to use Xresources colors/settings on startup -remaps & # run the remaps script, switching caps/esc and more; check it for more info autostart="mpd xcompmgr dunst unclutter pipewire remapd" diff --git a/.local/bin/remapd b/.local/bin/remapd index 4ce32b3e..cf67428a 100644 --- a/.local/bin/remapd +++ b/.local/bin/remapd @@ -1,10 +1,9 @@ #!/bin/sh -# Rerun the remaps script whenever a new input device is added. Run by the -# xprofile by default. +# Rerun the remaps script whenever a new input device is added. while : ; do + remaps dmesg -W -f kern | grep "input:" -q sleep 1 - remaps done From 88748a48006af4e8ec5185336cfeea3aa8f64f63 Mon Sep 17 00:00:00 2001 From: PrivateLalle <29478339+LalleSX@users.noreply.github.com> Date: Tue, 7 Feb 2023 14:51:00 +0100 Subject: [PATCH 101/175] Add support for avif in lf (#1262) Co-authored-by: Victor Risgaard --- .config/lf/lfrc | 2 +- .config/lf/scope | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index c0c4766d..6017255d 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -34,7 +34,7 @@ cmd open ${{ text/*|application/json|inode/x-empty|application/x-subrip) $EDITOR $fx;; image/x-xcf) setsid -f gimp $f >/dev/null 2>&1 ;; image/svg+xml) display -- $f ;; - image/*) rotdir $f | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|tif\|ico\)\(_large\)*$" | + image/*) rotdir $f | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|avif\|tif\|ico\)\(_large\)*$" | setsid -f sxiv -aio 2>/dev/null | while read -r file; do [ -z "$file" ] && continue lf -remote "send select \"$file\"" diff --git a/.config/lf/scope b/.config/lf/scope index 1d835275..87b560a0 100755 --- a/.config/lf/scope +++ b/.config/lf/scope @@ -22,6 +22,9 @@ ifub() { # be regenerated once seen. case "$(file --dereference --brief --mime-type -- "$1")" in + image/avif) CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)" + [ ! -f "$CACHE" ] && convert "$1" "$CACHE.jpg" + image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1" ;; image/*) image "$1" "$2" "$3" "$4" "$5" "$1" ;; text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;; text/troff) man ./ "$1" | col -b ;; From b35102679a980bd081509e20f3f488d4415745da Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Wed, 8 Feb 2023 13:35:57 -0500 Subject: [PATCH 102/175] actually make the script a script --- .local/bin/remapd | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 .local/bin/remapd diff --git a/.local/bin/remapd b/.local/bin/remapd old mode 100644 new mode 100755 From 54c46c523bfedec1faf799e25a945953117a5d6b Mon Sep 17 00:00:00 2001 From: HelionSmoker <82761116+HelionSmoker@users.noreply.github.com> Date: Wed, 8 Feb 2023 22:07:47 +0200 Subject: [PATCH 103/175] Shortcuts: show almost-all files (#1263) --- .local/bin/shortcuts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.local/bin/shortcuts b/.local/bin/shortcuts index 8fecea28..7d7a1904 100755 --- a/.local/bin/shortcuts +++ b/.local/bin/shortcuts @@ -22,9 +22,9 @@ printf "\" vim: filetype=vim\\n" > "$vifm_shortcuts" # Format the `directories` file in the correct syntax and sent it to all three configs. eval "echo \"$(cat "$bmdirs")\"" | \ awk "!/^\s*#/ && !/^\s*\$/ {gsub(\"\\\s*#.*$\",\"\"); - printf(\"%s=\42cd %s && ls -a\42 \\\\\n\",\$1,\$2) >> \"$shell_shortcuts\" ; + printf(\"%s=\42cd %s && ls -A\42 \\\\\n\",\$1,\$2) >> \"$shell_shortcuts\" ; printf(\"hash -d %s=%s \n\",\$1,\$2) >> \"$zsh_named_dirs\" ; - printf(\"abbr %s \42cd %s; and ls -a\42\n\",\$1,\$2) >> \"$fish_shortcuts\" ; + printf(\"abbr %s \42cd %s; and ls -A\42\n\",\$1,\$2) >> \"$fish_shortcuts\" ; printf(\"map g%s :cd %s\nmap t%s :cd %s\nmap M%s :cd %s:mo\nmap Y%s :cd %s:co \n\",\$1,\$2, \$1, \$2, \$1, \$2, \$1, \$2) >> \"$vifm_shortcuts\" ; printf(\"config.bind(';%s', \42set downloads.location.directory %s ;; hint links download\42) \n\",\$1,\$2) >> \"$qute_shortcuts\" ; printf(\"map g%s cd %s\nmap t%s tab_new %s\nmap m%s shell mv -v %%s %s\nmap Y%s shell cp -rv %%s %s \n\",\$1,\$2,\$1,\$2, \$1, \$2, \$1, \$2) >> \"$ranger_shortcuts\" ; From cc53f7be1ccde78cc2d338297a00352b4fe545cf Mon Sep 17 00:00:00 2001 From: snailed Date: Thu, 9 Feb 2023 09:23:22 +0000 Subject: [PATCH 104/175] Clean up remapd I found a much better way of doing this, without a potentially too short sleep. This script waits for an input to be added, and then waits for a usb device to be bound. The remaps script can be run as soon as the USB device is bound. These changes should improve the reliability of the script and maybe even decrease latency. --- .local/bin/remapd | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.local/bin/remapd b/.local/bin/remapd index cf67428a..f2edb4f2 100755 --- a/.local/bin/remapd +++ b/.local/bin/remapd @@ -2,8 +2,10 @@ # Rerun the remaps script whenever a new input device is added. -while : ; do - remaps - dmesg -W -f kern | grep "input:" -q - sleep 1 +trap "rm -f /tmp/udev_pipe" HUP INT QUIT ILL TRAP BUS TERM +mkfifo -m 600 /tmp/udev_pipe +udevadm monitor -u -t seat -s input -s usb >>/tmp/udev_pipe & +while :; do + grep -q "add" /tmp/udev_pipe && grep -q " bind" /tmp/udev_pipe + remaps us:dvorak done From a4784f9faa9a94d7411d14da113f58e54c8f82e2 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Thu, 9 Feb 2023 09:19:49 -0500 Subject: [PATCH 105/175] silent sourcing error if absent --- .config/nvim/init.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 5c397f0e..d9c6fe61 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -154,4 +154,4 @@ nnoremap h :call ToggleHiddenAll() " Here leader is ";". " So ":vs ;cfz" will expand into ":vs /home//.config/zsh/.zshrc" " if typed fast without the timeout. -source ~/.config/nvim/shortcuts.vim +silent! source ~/.config/nvim/shortcuts.vim From ca000f5fe458ec45c38eacfe767e27d2422e9114 Mon Sep 17 00:00:00 2001 From: HelionSmoker <82761116+HelionSmoker@users.noreply.github.com> Date: Thu, 9 Feb 2023 16:37:31 +0200 Subject: [PATCH 106/175] Python ~/ cleanup (#1264) --- .config/python/pythonrc | 2 ++ .config/shell/profile | 1 + 2 files changed, 3 insertions(+) create mode 100644 .config/python/pythonrc diff --git a/.config/python/pythonrc b/.config/python/pythonrc new file mode 100644 index 00000000..b32e6b6f --- /dev/null +++ b/.config/python/pythonrc @@ -0,0 +1,2 @@ +import readline +readline.write_history_file = lambda *args: None diff --git a/.config/shell/profile b/.config/shell/profile index 7c7a613d..c28f5a4b 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -40,6 +40,7 @@ export UNISON="$XDG_DATA_HOME/unison" export HISTFILE="$XDG_DATA_HOME/history" export MBSYNCRC="$XDG_CONFIG_HOME/mbsync/config" export ELECTRUMDIR="$XDG_DATA_HOME/electrum" +export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc" # Other program settings: export DICS="/usr/share/stardict/dic/" From ec1914e0b96c7b85be2197289e45852f08b95579 Mon Sep 17 00:00:00 2001 From: Luca Bilke Date: Thu, 9 Feb 2023 15:39:31 +0100 Subject: [PATCH 107/175] fix broken trap --- .local/bin/remapd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/remapd b/.local/bin/remapd index f2edb4f2..2d87eae1 100755 --- a/.local/bin/remapd +++ b/.local/bin/remapd @@ -2,7 +2,7 @@ # Rerun the remaps script whenever a new input device is added. -trap "rm -f /tmp/udev_pipe" HUP INT QUIT ILL TRAP BUS TERM +trap "rm -f /tmp/udev_pipe; exit" HUP INT QUIT ILL TRAP BUS TERM mkfifo -m 600 /tmp/udev_pipe udevadm monitor -u -t seat -s input -s usb >>/tmp/udev_pipe & while :; do From 457539c043cc8645eb75e92ff6b0f31182b114d7 Mon Sep 17 00:00:00 2001 From: Luca Bilke Date: Thu, 9 Feb 2023 17:11:16 +0100 Subject: [PATCH 108/175] remove complexity --- .local/bin/remapd | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.local/bin/remapd b/.local/bin/remapd index 2d87eae1..14ae239f 100755 --- a/.local/bin/remapd +++ b/.local/bin/remapd @@ -2,10 +2,9 @@ # Rerun the remaps script whenever a new input device is added. -trap "rm -f /tmp/udev_pipe; exit" HUP INT QUIT ILL TRAP BUS TERM -mkfifo -m 600 /tmp/udev_pipe -udevadm monitor -u -t seat -s input -s usb >>/tmp/udev_pipe & while :; do - grep -q "add" /tmp/udev_pipe && grep -q " bind" /tmp/udev_pipe + udevadm monitor -u -t seat -s input -s usb | grep --line-buffer -m1 -P '[^un]bind' + sleep 1 remaps us:dvorak done + From 88477d849770561382157667e8d804e3ed8addfc Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Thu, 9 Feb 2023 11:52:47 -0500 Subject: [PATCH 109/175] use bash procsub --- .local/bin/remapd | 8 +++----- .local/bin/remaps | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.local/bin/remapd b/.local/bin/remapd index 14ae239f..ee4cf396 100755 --- a/.local/bin/remapd +++ b/.local/bin/remapd @@ -1,10 +1,8 @@ -#!/bin/sh +#!/bin/bash # Rerun the remaps script whenever a new input device is added. while :; do - udevadm monitor -u -t seat -s input -s usb | grep --line-buffer -m1 -P '[^un]bind' - sleep 1 - remaps us:dvorak + remaps + grep -qP -m1 '[^un]bind.+\/[^:]+\(usb\)' <(udevadm monitor -u -t seat -s input -s usb) done - diff --git a/.local/bin/remaps b/.local/bin/remaps index c95ac841..6d7d54e9 100755 --- a/.local/bin/remaps +++ b/.local/bin/remaps @@ -8,4 +8,4 @@ setxkbmap -option caps:super,altwin:menu_win # When caps lock is pressed only once, treat it as escape. killall xcape 2>/dev/null ; xcape -e 'Super_L=Escape' # Turn off caps lock if on since there is no longer a key for it. -xset -q | grep "Caps Lock:\s*on" && xdotool key Caps_Lock +xset -q | grep -q "Caps Lock:\s*on" && xdotool key Caps_Lock From fe198c960fb85850acbe819e12ca465cd6091bc3 Mon Sep 17 00:00:00 2001 From: HelionSmoker <82761116+HelionSmoker@users.noreply.github.com> Date: Sun, 12 Feb 2023 12:24:10 +0200 Subject: [PATCH 110/175] Rewrite sb-forecast --- .local/bin/statusbar/sb-forecast | 52 ++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/.local/bin/statusbar/sb-forecast b/.local/bin/statusbar/sb-forecast index 9744ea42..59f04970 100755 --- a/.local/bin/statusbar/sb-forecast +++ b/.local/bin/statusbar/sb-forecast @@ -1,24 +1,41 @@ #!/bin/sh -# Displays todays precipication chance (โ˜”) and daily low (๐Ÿฅถ) and high (๐ŸŒž). +# Displays today's precipication chance (โ˜”), and daily low (๐Ÿฅถ) and high (๐ŸŒž). # Usually intended for the statusbar. -# If we have internet, get a weather report from wttr.in and store it locally. -# You could set up a shell alias to view the full file in a pager in the -# terminal if desired. This function will only be run once a day when needed. -weatherreport="${XDG_CACHE_HOME:-$HOME/.cache}/weatherreport" -getforecast() { curl -sf "wttr.in/$LOCATION" > "$weatherreport" || exit 1 ;} +weather_report="${XDG_CACHE_HOME:-$HOME/.cache}/weatherreport" -# Some very particular and terse stream manipulation. We get the maximum -# precipitation chance and the daily high and low from the downloaded file and -# display them with coresponding emojis. -showweather() { printf "%s" "$(sed '16q;d' "$weatherreport" | - grep -wo "[0-9]*%" | sort -rn | sed "s/^/โ˜”/g;1q" | tr -d '\n')" -sed '13q;d' "$weatherreport" | grep -o "m\\([-+]\\)*[0-9]\\+" | sed 's/+//g' | sort -n -t 'm' -k 2n | sed -e 1b -e '$!d' | tr '\n|m' ' ' | awk '{print " ๐Ÿฅถ" $1 "ยฐ","๐ŸŒž" $2 "ยฐ"}' ;} +# Get a weather report from 'wttr.in' and save it locally. +get_forecast() { curl -sf "wttr.in/$LOCATION" > "$weather_report" || exit 1; } + +# Forecast should be updated only once a day +check_forecast() { + [ -s "$weather_report" ] && [ "$(stat -c %y "$weather_report" 2>/dev/null | + cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] +} + +get_precip_chance() { + sed '16q;d' "$weather_report" | # Extract line 16 from file + grep -wo "[0-9]*%" | # Find a sequence of digits followed by '%' + sort -rn | # Sort in descending order + head -1q # Extract first line +} + +get_daily_high_low() { + sed '13q;d' "$weather_report" | # Extract line 13 from file + grep -o "m\\([-+]\\)*[0-9]\\+" | # Find temperatures in the format "m" + sed 's/[+m]//g' | # Remove '+' and 'm' + sort -n -k 2n | # Sort in ascending order + sed -e 1b -e '$!d' # Extract the first and last lines +} + +show_weather() { + printf "โ˜”%s ๐Ÿฅถ%sยฐ ๐ŸŒž%sยฐ\n" "$(get_precip_chance)" $(get_daily_high_low) +} case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e less -Srf "$weatherreport" ;; - 2) getforecast && showweather ;; + 1) setsid -f "$TERMINAL" -e less -Srf "$weather_report" ;; + 2) get_forecast && show_weather ;; 3) notify-send "๐ŸŒˆ Weather module" "\- Left click for full forecast. - Middle click to update forecast. โ˜”: Chance of rain/snow @@ -27,9 +44,6 @@ case $BLOCK_BUTTON in 6) "$TERMINAL" -e "$EDITOR" "$0" ;; esac -# The test if our forcecast is updated to the day. If it isn't download a new -# weather report from wttr.in with the above function. -[ -s "$weatherreport" ] && [ "$(stat -c %y "$weatherreport" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || - getforecast +check_forecast || get_forecast -showweather +show_weather From d8f386d5123de66db7449bf1152ed86d84caaf3b Mon Sep 17 00:00:00 2001 From: HelionSmoker <82761116+HelionSmoker@users.noreply.github.com> Date: Sun, 12 Feb 2023 13:33:34 +0200 Subject: [PATCH 111/175] Switch to kebab-case for file name --- .local/bin/statusbar/sb-forecast | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/statusbar/sb-forecast b/.local/bin/statusbar/sb-forecast index 59f04970..8aab1441 100755 --- a/.local/bin/statusbar/sb-forecast +++ b/.local/bin/statusbar/sb-forecast @@ -3,7 +3,7 @@ # Displays today's precipication chance (โ˜”), and daily low (๐Ÿฅถ) and high (๐ŸŒž). # Usually intended for the statusbar. -weather_report="${XDG_CACHE_HOME:-$HOME/.cache}/weatherreport" +weather_report="${XDG_CACHE_HOME:-$HOME/.cache}/weather-report" # Get a weather report from 'wttr.in' and save it locally. get_forecast() { curl -sf "wttr.in/$LOCATION" > "$weather_report" || exit 1; } From de4b34cd32bd74c251ef13c28abfca32b959a873 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Sun, 12 Feb 2023 09:00:23 -0500 Subject: [PATCH 112/175] read file only once --- .local/bin/statusbar/sb-forecast | 33 +++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/.local/bin/statusbar/sb-forecast b/.local/bin/statusbar/sb-forecast index 8aab1441..e28f22f8 100755 --- a/.local/bin/statusbar/sb-forecast +++ b/.local/bin/statusbar/sb-forecast @@ -3,39 +3,42 @@ # Displays today's precipication chance (โ˜”), and daily low (๐Ÿฅถ) and high (๐ŸŒž). # Usually intended for the statusbar. -weather_report="${XDG_CACHE_HOME:-$HOME/.cache}/weather-report" +weatherreport="${XDG_CACHE_HOME:-$HOME/.cache}/weatherreport" # Get a weather report from 'wttr.in' and save it locally. -get_forecast() { curl -sf "wttr.in/$LOCATION" > "$weather_report" || exit 1; } +getforecast() { curl -sf "wttr.in/$LOCATION" > "$weatherreport" || exit 1; } -# Forecast should be updated only once a day -check_forecast() { - [ -s "$weather_report" ] && [ "$(stat -c %y "$weather_report" 2>/dev/null | +# Forecast should be updated only once a day. +checkforecast() { + [ -s "$weatherreport" ] && [ "$(stat -c %y "$weatherreport" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] } -get_precip_chance() { - sed '16q;d' "$weather_report" | # Extract line 16 from file +getprecipchance() { + echo "$weatherdata" | sed '16q;d' | # Extract line 16 from file grep -wo "[0-9]*%" | # Find a sequence of digits followed by '%' sort -rn | # Sort in descending order head -1q # Extract first line } -get_daily_high_low() { - sed '13q;d' "$weather_report" | # Extract line 13 from file +getdailyhighlow() { + echo "$weatherdata" | sed '13q;d' | # Extract line 13 from file grep -o "m\\([-+]\\)*[0-9]\\+" | # Find temperatures in the format "m" sed 's/[+m]//g' | # Remove '+' and 'm' sort -n -k 2n | # Sort in ascending order sed -e 1b -e '$!d' # Extract the first and last lines } -show_weather() { - printf "โ˜”%s ๐Ÿฅถ%sยฐ ๐ŸŒž%sยฐ\n" "$(get_precip_chance)" $(get_daily_high_low) +readfile() { weatherdata="$(cat "$weatherreport")" ;} + +showweather() { + readfile + printf "โ˜”%s ๐Ÿฅถ%sยฐ ๐ŸŒž%sยฐ\n" "$(getprecipchance)" $(getdailyhighlow) } case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e less -Srf "$weather_report" ;; - 2) get_forecast && show_weather ;; + 1) setsid -f "$TERMINAL" -e less -Srf "$weatherreport" ;; + 2) getforecast && showweather ;; 3) notify-send "๐ŸŒˆ Weather module" "\- Left click for full forecast. - Middle click to update forecast. โ˜”: Chance of rain/snow @@ -44,6 +47,6 @@ case $BLOCK_BUTTON in 6) "$TERMINAL" -e "$EDITOR" "$0" ;; esac -check_forecast || get_forecast +checkforecast || getforecast -show_weather +showweather From 12167f3dda4a4fc58f7aa441ad93cfa3bb446dbb Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Mon, 13 Feb 2023 08:12:40 -0500 Subject: [PATCH 113/175] fix #1268, use sudo -A, var rename --- .local/bin/mounter | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.local/bin/mounter b/.local/bin/mounter index 38da0df6..edab8af1 100755 --- a/.local/bin/mounter +++ b/.local/bin/mounter @@ -12,11 +12,11 @@ set -e # Check for phones. phones="$(simple-mtpfs -l 2>/dev/null | sed "s/^/๐Ÿ“ฑ/")" # Check for drives. -alldrives="$(lsblk -rpo "uuid,name,type,size,label,mountpoint,fstype")" +lsblkoutput="$(lsblk -rpo "uuid,name,type,size,label,mountpoint,fstype")" # Get all LUKS drives -allluks="$(echo "$alldrives" | grep crypto_LUKS)" || true +allluks="$(echo "$lsblkoutput" | grep crypto_LUKS)" || true # Get a list of the LUKS drive UUIDs already decrypted. -decrypted="$(find /dev/disk/by-id/dm-uuid-CRYPT-LUKS2-* | sed "s|.*LUKS2-||;s|-.*||")" +decrypted="$(find /dev/disk/by-id/dm-uuid-CRYPT-LUKS2-* | sed "s|.*LUKS2-||;s|-.*||")" || true # Functioning for formatting drives correctly for dmenu: filter() { sed "s/ /:/g" | awk -F':' '$7==""{printf "%s%s (%s) %s\n",$1,$3,$5,$6}' ; } @@ -33,7 +33,7 @@ unopenedluks="$(for drive in $allluks; do done | filter)" # Get all normal, non-encrypted or decrypted partitions that are not mounted. -normalparts="$(echo "$alldrives"| grep -v crypto_LUKS | grep 'part\|rom\|crypt' | sed "s/^/๐Ÿ’พ /" | filter )" +normalparts="$(echo "$lsblkoutput"| grep -v crypto_LUKS | grep 'part\|rom\|crypt' | sed "s/^/๐Ÿ’พ /" | filter )" # Add all to one variable. If no mountable drives found, exit. alldrives="$(echo "$phones @@ -59,7 +59,7 @@ case "$chosen" in chosen="${chosen%% *}" chosen="${chosen:1}" # This is a bashism. getmount - sudo mount "$chosen" "$mp" + sudo -A mount "$chosen" "$mp" notify-send "๐Ÿ’พDrive Mounted." "$chosen mounted to $mp." ;; @@ -78,7 +78,7 @@ case "$chosen" in test -b "/dev/mapper/usb$num" getmount - sudo mount "/dev/mapper/usb$num" "$mp" + sudo -A mount "/dev/mapper/usb$num" "$mp" notify-send "๐Ÿ”“Decrypted drive Mounted." "$chosen decrypted and mounted to $mp." ;; From 335c1bc8affbe8cb6afbd1148c73caa1796617b0 Mon Sep 17 00:00:00 2001 From: Stagnant <82290573+iStagnant@users.noreply.github.com> Date: Fri, 17 Feb 2023 14:31:44 +0000 Subject: [PATCH 114/175] Fixed android device not mounting to root owned directories (#1273) --- .local/bin/mounter | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/mounter b/.local/bin/mounter index edab8af1..d7c1b06e 100755 --- a/.local/bin/mounter +++ b/.local/bin/mounter @@ -87,7 +87,7 @@ case "$chosen" in echo "OK" | dmenu -i -p "Tap Allow on your phone if it asks for permission and then press enter" chosen="${chosen%%:*}" chosen="${chosen:1}" # This is a bashism. - simple-mtpfs --device "$chosen" "$mp" + sudo -A simple-mtpfs -o allow_other --device "$chosen" "$mp" notify-send "๐Ÿค– Android Mounted." "Android device mounted to $mp." ;; esac From 185ac25e52069cab8144d0aea820c056544dfec2 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 17 Feb 2023 10:17:35 -0500 Subject: [PATCH 115/175] mount drives with user's ownership --- .local/bin/mounter | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.local/bin/mounter b/.local/bin/mounter index d7c1b06e..059043be 100755 --- a/.local/bin/mounter +++ b/.local/bin/mounter @@ -59,7 +59,7 @@ case "$chosen" in chosen="${chosen%% *}" chosen="${chosen:1}" # This is a bashism. getmount - sudo -A mount "$chosen" "$mp" + sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)" notify-send "๐Ÿ’พDrive Mounted." "$chosen mounted to $mp." ;; @@ -78,7 +78,7 @@ case "$chosen" in test -b "/dev/mapper/usb$num" getmount - sudo -A mount "/dev/mapper/usb$num" "$mp" + sudo -A mount "/dev/mapper/usb$num" "$mp" -o uid="$(id -u)",gid="$(id -g)" notify-send "๐Ÿ”“Decrypted drive Mounted." "$chosen decrypted and mounted to $mp." ;; From a2e767e4f4224cb74b2159833bec598e2e9b72e2 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 17 Feb 2023 10:18:01 -0500 Subject: [PATCH 116/175] other aliases --- .config/shell/aliasrc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc index 0541d0f1..09f9a327 100644 --- a/.config/shell/aliasrc +++ b/.config/shell/aliasrc @@ -6,12 +6,17 @@ # Use $XINITRC variable if file exists. [ -f "$XINITRC" ] && alias startx="startx $XINITRC" +[ -f "$MBSYNCRC" ] && alias mbsync="mbsync -c $MBSYNCRC" + # sudo not required for some system commands for command in mount umount sv pacman updatedb su shutdown poweroff reboot ; do alias $command="sudo $command" done; unset command -se() { cd ~/.local/bin; $EDITOR $(fzf) ;} +se() { + choice="$(find ~/.local/bin -mindepth 1 -printf '%P\n' | fzf)" + [ -f "$HOME/.local/bin/$choice" ] && $EDITOR "$HOME/.local/bin/$choice" + ;} # Verbosity and settings that you pretty much just always are going to want. alias \ @@ -19,9 +24,11 @@ alias \ mv="mv -iv" \ rm="rm -vI" \ bc="bc -ql" \ + rsync="rsync -vrPlu" \ mkd="mkdir -pv" \ yt="yt-dlp --embed-metadata -i" \ yta="yt -x -f bestaudio/best" \ + ytt="yt --skip-download --write-thumbnail" \ ffmpeg="ffmpeg -hide_banner" # Colorize commands when possible. From 8dce96b986f5b4401ed81d9575e9590e8636157d Mon Sep 17 00:00:00 2001 From: sudo-Tiz <72883092+sudo-Tiz@users.noreply.github.com> Date: Fri, 17 Feb 2023 15:32:44 +0000 Subject: [PATCH 117/175] add dwmblock tutorial video to tutorialvids script (#1274) --- .local/bin/tutorialvids | 1 + 1 file changed, 1 insertion(+) diff --git a/.local/bin/tutorialvids b/.local/bin/tutorialvids index 6d4914bd..1ea734f8 100755 --- a/.local/bin/tutorialvids +++ b/.local/bin/tutorialvids @@ -6,6 +6,7 @@ vidlist=" dwm (window manager) https://videos.lukesmith.xyz/videos/watch/f6b78db7-b368-4647-bc64-28c08fff1988 +dwmblocks (status bar) https://videos.lukesmith.xyz/w/mmxHMbqZZEr5FManB57Yy1 pacman (installing/managing programs) https://videos.lukesmith.xyz/videos/watch/8e7cadb9-0fed-47ce-a2a8-6635fa48614b status bar https://videos.lukesmith.xyz/videos/watch/a4d5326b-0aac-496e-bfc3-5acd5cee89f0 sxiv (image viewer) https://videos.lukesmith.xyz/videos/watch/ad4c8d85-90c3-4f3d-a1f3-89129e64a3c2 From b04d4c9ac83ecf8a5f26ec85e368ed234ca52eec Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 17 Feb 2023 11:01:07 -0500 Subject: [PATCH 118/175] mounter improvements, old scripts removed now checks fstab for info, also one less android prompt --- .local/bin/dmenumount | 67 ------------------------------------------ .local/bin/dmenuumount | 21 ------------- .local/bin/mounter | 15 +++++++--- 3 files changed, 11 insertions(+), 92 deletions(-) delete mode 100755 .local/bin/dmenumount delete mode 100755 .local/bin/dmenuumount diff --git a/.local/bin/dmenumount b/.local/bin/dmenumount deleted file mode 100755 index 8cf4a6b5..00000000 --- a/.local/bin/dmenumount +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh - -# Gives a dmenu prompt to mount unmounted drives and Android phones. If -# they're in /etc/fstab, they'll be mounted automatically. Otherwise, you'll -# be prompted to give a mountpoint from already existsing directories. If you -# input a novel directory, it will prompt you to create that directory. - -getmount() { \ - [ -z "$chosen" ] && exit 1 - # shellcheck disable=SC2086 - mp="$(find $1 2>/dev/null | dmenu -i -p "Type in mount point.")" || exit 1 - test -z "$mp" && exit 1 - if [ ! -d "$mp" ]; then - mkdiryn=$(printf "No\\nYes" | dmenu -i -p "$mp does not exist. Create it?") || exit 1 - [ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo -A mkdir -p "$mp") - fi - } - -mountusb() { \ - chosen="$(echo "$usbdrives" | dmenu -i -p "Mount which drive?")" || exit 1 - chosen="$(echo "$chosen" | awk '{print $1}')" - sudo -A mount "$chosen" 2>/dev/null && notify-send "๐Ÿ’ป USB mounting" "$chosen mounted." && exit 0 - alreadymounted=$(lsblk -nrpo "name,type,mountpoint" | awk '$3!~/\/boot|\/home$|SWAP/&&length($3)>1{printf "-not ( -path *%s -prune ) ",$3}') - getmount "/mnt /media /mount /home -maxdepth 5 -type d $alreadymounted" - partitiontype="$(lsblk -no "fstype" "$chosen")" - case "$partitiontype" in - "vfat") sudo -A mount -t vfat "$chosen" "$mp" -o rw,umask=0000;; - "exfat") sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)";; - *) sudo -A mount "$chosen" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; sudo -A chown "$user":"$ug" "$mp";; - esac && notify-send "๐Ÿ’ป USB mounting" "$chosen mounted to $mp." || - notify-send "๐Ÿ’ป Drive failed to mount." "Probably a permissions issue or drive is already mounted." - } - -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" - 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." || - notify-send "๐Ÿค– Android failed mounting." "Probably a permissions issue or phone is already mounted." - } - -asktype() { \ - choice="$(printf "USB\\nAndroid" | dmenu -i -p "Mount a USB drive or Android device?")" || exit 1 - case $choice in - USB) mountusb ;; - Android) mountandroid ;; - esac - } - -anddrives=$(simple-mtpfs -l 2>/dev/null) -usbdrives="$(lsblk -rpo "name,type,size,label,mountpoint,fstype" | grep -v crypto_LUKS | grep 'part\|rom' | sed 's/ /:/g' | awk -F':' '$5==""{printf "%s (%s) %s\n",$1,$3,$4}')" - -if [ -z "$usbdrives" ]; then - [ -z "$anddrives" ] && echo "No USB drive or Android device detected" && exit - echo "Android device(s) detected." - mountandroid -else - if [ -z "$anddrives" ]; then - echo "USB drive(s) detected." - mountusb - else - echo "Mountable USB drive(s) and Android device(s) detected." - asktype - fi -fi diff --git a/.local/bin/dmenuumount b/.local/bin/dmenuumount deleted file mode 100755 index 656d1f12..00000000 --- a/.local/bin/dmenuumount +++ /dev/null @@ -1,21 +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. - -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}'; awk '/simple-mtpfs/ { print "๐Ÿ“ฑ", $2; }' /etc/mtab)" - -chosen="$(echo "$drives" | dmenu -i -p "Unmount which drive?")" || exit 1 - -case "$chosen" in - ๐Ÿ“ฑ*) - chosen="${chosen#๐Ÿ“ฑ }" - sudo -A umount -l "$chosen" - ;; - *) - chosen="${chosen% (*}" - sudo -A umount -l "$chosen" - ;; -esac && notify-send "๐Ÿ–ฅ๏ธ Drive unmounted." "$chosen successfully unmounted." || - notify-send "๐Ÿ–ฅ๏ธ Drive failed to unmount." "Possibly a permissions or I/O issue." diff --git a/.local/bin/mounter b/.local/bin/mounter index 059043be..3b2a314f 100755 --- a/.local/bin/mounter +++ b/.local/bin/mounter @@ -4,7 +4,7 @@ # replace the older `dmenumount` which had extra steps and couldn't handle # encrypted drives. # TODO: Remove already mounted Android phones from prompt. -# TODO: Try mount first for drives if in fstab to avoid directory prompt? +# TODO: Try decrypt for drives in crtypttab # TODO: Add some support for connecting iPhones (although they are annoying). set -e @@ -54,11 +54,18 @@ getmount(){ fi } +attemptmount(){ + # Attempt to mount without a mountpoint, to see if drive is in fstab. + sudo -A mount "$chosen" || return 1 + notify-send "๐Ÿ’พDrive Mounted." "$chosen mounted." + exit +} + case "$chosen" in ๐Ÿ’พ*) chosen="${chosen%% *}" chosen="${chosen:1}" # This is a bashism. - getmount + attemptmount || getmount sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)" notify-send "๐Ÿ’พDrive Mounted." "$chosen mounted to $mp." ;; @@ -77,14 +84,14 @@ case "$chosen" in # Check if now decrypted. test -b "/dev/mapper/usb$num" - getmount + attemptmount || getmount sudo -A mount "/dev/mapper/usb$num" "$mp" -o uid="$(id -u)",gid="$(id -g)" notify-send "๐Ÿ”“Decrypted drive Mounted." "$chosen decrypted and mounted to $mp." ;; ๐Ÿ“ฑ*) + notify-send "โ—Note" "Remember to allow file access on your phone now." getmount - echo "OK" | dmenu -i -p "Tap Allow on your phone if it asks for permission and then press enter" chosen="${chosen%%:*}" chosen="${chosen:1}" # This is a bashism. sudo -A simple-mtpfs -o allow_other --device "$chosen" "$mp" From 762eadd9d19e1433a6552e86ec6a68b9f4413dc2 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 17 Feb 2023 12:12:10 -0500 Subject: [PATCH 119/175] fix #1275 --- .local/bin/statusbar/sb-forecast | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/statusbar/sb-forecast b/.local/bin/statusbar/sb-forecast index e28f22f8..2a6440be 100755 --- a/.local/bin/statusbar/sb-forecast +++ b/.local/bin/statusbar/sb-forecast @@ -25,7 +25,7 @@ getdailyhighlow() { echo "$weatherdata" | sed '13q;d' | # Extract line 13 from file grep -o "m\\([-+]\\)*[0-9]\\+" | # Find temperatures in the format "m" sed 's/[+m]//g' | # Remove '+' and 'm' - sort -n -k 2n | # Sort in ascending order + sort -g | # Sort in ascending order sed -e 1b -e '$!d' # Extract the first and last lines } From 27c00576c283316ffd82e3572fd956c20c494cf1 Mon Sep 17 00:00:00 2001 From: Jameson <108906685+2084x@users.noreply.github.com> Date: Mon, 20 Feb 2023 23:01:52 +1100 Subject: [PATCH 120/175] update tutorialvids (#1276) remove duplicate status bar and align --- .local/bin/tutorialvids | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.local/bin/tutorialvids b/.local/bin/tutorialvids index 1ea734f8..8d1dc471 100755 --- a/.local/bin/tutorialvids +++ b/.local/bin/tutorialvids @@ -6,22 +6,21 @@ vidlist=" dwm (window manager) https://videos.lukesmith.xyz/videos/watch/f6b78db7-b368-4647-bc64-28c08fff1988 -dwmblocks (status bar) https://videos.lukesmith.xyz/w/mmxHMbqZZEr5FManB57Yy1 +dwmblocks (status bar) https://videos.lukesmith.xyz/w/mmxHMbqZZEr5FManB57Yy1 pacman (installing/managing programs) https://videos.lukesmith.xyz/videos/watch/8e7cadb9-0fed-47ce-a2a8-6635fa48614b -status bar https://videos.lukesmith.xyz/videos/watch/a4d5326b-0aac-496e-bfc3-5acd5cee89f0 sxiv (image viewer) https://videos.lukesmith.xyz/videos/watch/ad4c8d85-90c3-4f3d-a1f3-89129e64a3c2 -st (terminal) https://videos.lukesmith.xyz/videos/watch/efddd39d-bac5-4599-b572-177beb4ce6e8 +st (terminal) https://videos.lukesmith.xyz/videos/watch/efddd39d-bac5-4599-b572-177beb4ce6e8 i3 (old window manager) https://videos.lukesmith.xyz/videos/watch/b861525c-7ada-40ee-a2bb-b5e1ffe0f48b neomutt (email) https://videos.lukesmith.xyz/videos/watch/83122e83-52d9-4278-ae1a-7d1beeb50c8e -ncmpcpp (music player) https://videos.lukesmith.xyz/videos/watch/b5ac6f0d-a220-4433-88e3-e98fc791dc0a +ncmpcpp (music player) https://videos.lukesmith.xyz/videos/watch/b5ac6f0d-a220-4433-88e3-e98fc791dc0a newsboat (RSS reader) https://videos.lukesmith.xyz/videos/watch/bd2c3fff-40fa-47ea-aa98-5b1ec0c903b6 lf (file manager) https://videos.lukesmith.xyz/w/rKeHsF5ZHDNDbR1buUKB1c -zathura (pdf viewer) https://videos.lukesmith.xyz/videos/watch/c780f75a-11f6-48a9-a191-d079ebc36ea4 -gpg keys https://videos.lukesmith.xyz/videos/watch/040f5530-4830-4583-9ddc-2080b421531b +zathura (pdf viewer) https://videos.lukesmith.xyz/videos/watch/c780f75a-11f6-48a9-a191-d079ebc36ea4 +gpg keys https://videos.lukesmith.xyz/videos/watch/040f5530-4830-4583-9ddc-2080b421531b calcurse (calendar) https://videos.lukesmith.xyz/videos/watch/4b937e8b-7654-46e3-8d01-79392ec5b3d1 -urlview https://videos.lukesmith.xyz/videos/watch/31a4918f-633b-4bd6-b08e-956ac75d0324 +urlview https://videos.lukesmith.xyz/videos/watch/31a4918f-633b-4bd6-b08e-956ac75d0324 colorschemes with pywal https://videos.lukesmith.xyz/videos/watch/1b476003-61b2-4609-ac4b-820c3d128643 vi mode in shell https://videos.lukesmith.xyz/videos/watch/228aa50c-836f-456f-9f0d-a45157fe4313 -pass (password manager) https://videos.lukesmith.xyz/videos/watch/432fc942-5e28-4682-9beb-f5cb237a1dd6 +pass (password manager) https://videos.lukesmith.xyz/videos/watch/432fc942-5e28-4682-9beb-f5cb237a1dd6 " echo "$vidlist" | grep -P "^$(echo "$vidlist" | grep "https:" | sed 's/\t.*//g' | dmenu -i -p "Learn about what? (ESC to cancel)" -l 20 | awk '{print $1}')\s" | sed 's/.*\t//' | xargs -r mpv From 89f8506d85aa262ca009b2c2761cbffb0e1b6844 Mon Sep 17 00:00:00 2001 From: iStagnant Date: Mon, 20 Feb 2023 23:16:20 +0200 Subject: [PATCH 121/175] Made mounter not show already mounted android devices in the mounting prompt --- .local/bin/mounter | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.local/bin/mounter b/.local/bin/mounter index 3b2a314f..7eec8aa5 100755 --- a/.local/bin/mounter +++ b/.local/bin/mounter @@ -11,6 +11,9 @@ set -e # Check for phones. phones="$(simple-mtpfs -l 2>/dev/null | sed "s/^/๐Ÿ“ฑ/")" +for NUMBER in $(echo "$phones" | sed -rn 's/.([0-9]).*/\1/gp'); do + [[ $(sed -rn 's/simple-mtpfs-([0-9]).*/\1/gp' /etc/mtab) = $NUMBER ]] && phones="$(echo "$phones" | sed "/$NUMBER: .*/d")" +done # Check for drives. lsblkoutput="$(lsblk -rpo "uuid,name,type,size,label,mountpoint,fstype")" # Get all LUKS drives @@ -94,7 +97,7 @@ case "$chosen" in getmount chosen="${chosen%%:*}" chosen="${chosen:1}" # This is a bashism. - sudo -A simple-mtpfs -o allow_other --device "$chosen" "$mp" + sudo -A simple-mtpfs -o allow_other -o fsname="simple-mtpfs-$chosen" --device "$chosen" "$mp" notify-send "๐Ÿค– Android Mounted." "Android device mounted to $mp." ;; esac From d292d927f187f7ea60d9294baab10b0aa9675abc Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Tue, 21 Feb 2023 10:27:08 -0500 Subject: [PATCH 122/175] use android name in fsname --- .local/bin/mounter | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/.local/bin/mounter b/.local/bin/mounter index 7eec8aa5..b532e08f 100755 --- a/.local/bin/mounter +++ b/.local/bin/mounter @@ -3,29 +3,36 @@ # Mounts Android Phones and USB drives (encrypted or not). This script will # replace the older `dmenumount` which had extra steps and couldn't handle # encrypted drives. -# TODO: Remove already mounted Android phones from prompt. # TODO: Try decrypt for drives in crtypttab # TODO: Add some support for connecting iPhones (although they are annoying). -set -e +IFS=' +' +# Function for escaping cell-phone names. +escape(){ echo "$@" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g" ;} # Check for phones. phones="$(simple-mtpfs -l 2>/dev/null | sed "s/^/๐Ÿ“ฑ/")" -for NUMBER in $(echo "$phones" | sed -rn 's/.([0-9]).*/\1/gp'); do - [[ $(sed -rn 's/simple-mtpfs-([0-9]).*/\1/gp' /etc/mtab) = $NUMBER ]] && phones="$(echo "$phones" | sed "/$NUMBER: .*/d")" -done +mountedphones="$(grep "simple-mtpfs" /etc/mtab)" +# If there are already mounted phones, remove them from the list of mountables. +[ -n "$mountedphones" ] && phones="$(for phone in $phones; do + for mounted in $mountedphones; do + escphone="$(escape "$phone")" + [[ "$mounted" =~ "$escphone" ]] && break 1 + done && continue 1 + echo "$phone" +done)" + # Check for drives. lsblkoutput="$(lsblk -rpo "uuid,name,type,size,label,mountpoint,fstype")" # Get all LUKS drives -allluks="$(echo "$lsblkoutput" | grep crypto_LUKS)" || true +allluks="$(echo "$lsblkoutput" | grep crypto_LUKS)" # Get a list of the LUKS drive UUIDs already decrypted. -decrypted="$(find /dev/disk/by-id/dm-uuid-CRYPT-LUKS2-* | sed "s|.*LUKS2-||;s|-.*||")" || true +decrypted="$(find /dev/disk/by-id/dm-uuid-CRYPT-LUKS2-* | sed "s|.*LUKS2-||;s|-.*||")" # Functioning for formatting drives correctly for dmenu: filter() { sed "s/ /:/g" | awk -F':' '$7==""{printf "%s%s (%s) %s\n",$1,$3,$5,$6}' ; } # Get only LUKS drives that are not decrypted. -IFS=' -' unopenedluks="$(for drive in $allluks; do uuid="${drive%% *}" uuid="${uuid//-}" # This is a bashism. @@ -42,6 +49,10 @@ normalparts="$(echo "$lsblkoutput"| grep -v crypto_LUKS | grep 'part\|rom\|crypt alldrives="$(echo "$phones $unopenedluks $normalparts" | sed "/^$/d;s/ *$//")" + +# Quit the script if a sequential command fails. +set -e + test -n "$alldrives" # Feed all found drives to dmenu and get user choice. @@ -95,9 +106,9 @@ case "$chosen" in ๐Ÿ“ฑ*) notify-send "โ—Note" "Remember to allow file access on your phone now." getmount - chosen="${chosen%%:*}" - chosen="${chosen:1}" # This is a bashism. - sudo -A simple-mtpfs -o allow_other -o fsname="simple-mtpfs-$chosen" --device "$chosen" "$mp" + number="${chosen%%:*}" + number="${chosen:1}" # This is a bashism. + sudo -A simple-mtpfs -o allow_other -o fsname="simple-mtpfs-$(escape "$chosen")" --device "$number" "$mp" notify-send "๐Ÿค– Android Mounted." "Android device mounted to $mp." ;; esac From 2e5226545b1a5e84259c3bde34c2410b9b653a54 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Wed, 22 Feb 2023 22:21:55 +0000 Subject: [PATCH 123/175] maimpick: hide cursor when selecting area (#1282) Normally when making a screenshot of an area there's still a bit of the cursor that can be seen, this hides it. --- .local/bin/maimpick | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.local/bin/maimpick b/.local/bin/maimpick index 8ea9f5ec..5de26c17 100755 --- a/.local/bin/maimpick +++ b/.local/bin/maimpick @@ -9,10 +9,10 @@ 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}" ;; + "a selected area") maim -u -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} ;; + "a selected area (copy)") maim -u -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 From 2062e8110cc6b4479417ff5c5f966aebe337a6da Mon Sep 17 00:00:00 2001 From: HelionSmoker <82761116+HelionSmoker@users.noreply.github.com> Date: Thu, 23 Feb 2023 14:33:45 +0200 Subject: [PATCH 124/175] SQLite ~/ cleanup (#1283) --- .config/shell/profile | 1 + 1 file changed, 1 insertion(+) diff --git a/.config/shell/profile b/.config/shell/profile index c28f5a4b..26f82415 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -41,6 +41,7 @@ export HISTFILE="$XDG_DATA_HOME/history" export MBSYNCRC="$XDG_CONFIG_HOME/mbsync/config" export ELECTRUMDIR="$XDG_DATA_HOME/electrum" export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc" +export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history" # Other program settings: export DICS="/usr/share/stardict/dic/" From 37930fdf573c4834e080c4a2ea94706c5465071c Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Wed, 1 Mar 2023 13:38:22 -0500 Subject: [PATCH 125/175] use stig over tremc by default --- .local/bin/torwrap | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.local/bin/torwrap b/.local/bin/torwrap index 8b20ad4f..39f89b0f 100755 --- a/.local/bin/torwrap +++ b/.local/bin/torwrap @@ -1,7 +1,7 @@ #!/bin/sh -ifinstalled tremc transmission-cli || exit +ifinstalled stig transmission-cli || exit 1 ! pidof transmission-daemon >/dev/null && transmission-daemon && notify-send "Starting torrent daemon..." -$TERMINAL -e tremc; pkill -RTMIN+7 "${STATUSBAR:-dwmblocks}" +$TERMINAL -e stig; pkill -RTMIN+7 "${STATUSBAR:-dwmblocks}" From b394c5f772e26fdb22e3a6fdb5424eb7217d1324 Mon Sep 17 00:00:00 2001 From: Axel <14095200+codegax@users.noreply.github.com> Date: Mon, 20 Mar 2023 12:11:07 +0000 Subject: [PATCH 126/175] Added video.desktop file. (#1288) Updated mimeapps.list to include mp4 files. Closes #1271 --- .config/mimeapps.list | 1 + .local/share/applications/video.desktop | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 .local/share/applications/video.desktop diff --git a/.config/mimeapps.list b/.config/mimeapps.list index 30988ccf..9124fcec 100644 --- a/.config/mimeapps.list +++ b/.config/mimeapps.list @@ -15,5 +15,6 @@ image/jpeg=img.desktop; image/gif=img.desktop; application/rss+xml=rss.desktop video/x-matroska=video.desktop +video/mp4=video.desktop x-scheme-handler/lbry=lbry.desktop inode/directory=file.desktop diff --git a/.local/share/applications/video.desktop b/.local/share/applications/video.desktop new file mode 100644 index 00000000..a29a0b12 --- /dev/null +++ b/.local/share/applications/video.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=Video viewer +Exec=/usr/bin/mpv -quiet %f From fd964d54b6bfaab35304543c61cf2209e4fa1430 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Mon, 20 Mar 2023 09:50:18 -0400 Subject: [PATCH 127/175] customizable wttr/rate urls, sb-price improvements --- .config/shell/profile | 4 ++++ .local/bin/statusbar/sb-forecast | 3 ++- .local/bin/statusbar/sb-price | 21 ++++++++++----------- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.config/shell/profile b/.config/shell/profile index 26f82415..e78f21e6 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -16,6 +16,10 @@ export TERMINAL="st" export TERMINAL_PROG="st" export BROWSER="librewolf" +# Change the default crypto/weather monitor sites. +# export CRYPTOURL="rate.sx" +# export WTTRURL="wttr.in" + # ~/ Clean-up: export XDG_CONFIG_HOME="$HOME/.config" export XDG_DATA_HOME="$HOME/.local/share" diff --git a/.local/bin/statusbar/sb-forecast b/.local/bin/statusbar/sb-forecast index 2a6440be..2b41b3d7 100755 --- a/.local/bin/statusbar/sb-forecast +++ b/.local/bin/statusbar/sb-forecast @@ -3,10 +3,11 @@ # Displays today's precipication chance (โ˜”), and daily low (๐Ÿฅถ) and high (๐ŸŒž). # Usually intended for the statusbar. +url="${WTTRURL:-wttr.in}" weatherreport="${XDG_CACHE_HOME:-$HOME/.cache}/weatherreport" # Get a weather report from 'wttr.in' and save it locally. -getforecast() { curl -sf "wttr.in/$LOCATION" > "$weatherreport" || exit 1; } +getforecast() { curl -sf "$url/$LOCATION" > "$weatherreport" || exit 1; } # Forecast should be updated only once a day. checkforecast() { diff --git a/.local/bin/statusbar/sb-price b/.local/bin/statusbar/sb-price index 42c84c11..53c5023f 100755 --- a/.local/bin/statusbar/sb-price +++ b/.local/bin/statusbar/sb-price @@ -8,21 +8,20 @@ [ -z "$3" ] && exit 1 # use $4 as currency, if not passed in use "usd" as default +url="${CRYPTOURL:-rate.sx}" currency="${4:-usd}" interval="@14d" # History contained in chart preceded by '@' (7d = 7 days) -dir="${XDG_DATA_HOME:-$HOME/.local/share}/crypto-prices" +dir="${XDG_CACHE_HOME:-$HOME/.cache}/crypto-prices" pricefile="$dir/$1-$currency" chartfile="$dir/$1-$currency-chart" - -updateprice() { temp="$(mktemp)" - curl -s "$currency.rate.sx/1$1" > "$temp" && - mv -f "$temp" "$pricefile" && - curl -s "$currency.rate.sx/$1$interval" > "$temp" && - mv -f "$temp" "$chartfile" ;} +filestat="$(stat -c %x "$pricefile" 2>/dev/null)" [ -d "$dir" ] || mkdir -p "$dir" -[ "$(stat -c %x "$pricefile" 2>/dev/null | cut -d' ' -f1)" != "$(date '+%Y-%m-%d')" ] && +updateprice() { curl -sf -m 3 $currency.$url/{1$1,$1$interval} --output "$pricefile" --output "$chartfile" || + rm -f "$pricefile" "$chartfile" ;} + +[ "${filestat%% *}" != "$(date '+%Y-%m-%d')" ] && updateprice "$1" case $BLOCK_BUTTON in @@ -30,7 +29,7 @@ case $BLOCK_BUTTON in 2) notify-send -u low "$3 Updating..." "Updating $2 price..." updateprice "$1" && notify-send "$3 Update complete." "$2 price is now \$$(cat "$pricefile")" ;; - 3) uptime="$(date -d "$(stat -c %x "$pricefile")" '+%D at %T' | sed "s|$(date '+%D')|Today|")" + 3) uptime="$(date -d "$filestat" '+%D at %T' | sed "s|$(date '+%D')|Today|")" notify-send "$3 $2 module" "\- Exact price: \$$(cat "$pricefile") - Left click for chart of changes. - Middle click to update. @@ -44,7 +43,7 @@ case "$currency" in usd) symb="$" ;; gbp) symb="ยฃ" ;; eur) symb="โ‚ฌ" ;; - btc) symb="โ‚ฟ" ;; + btc) symb="๏…š" ;; esac -printf "$3$symb%0.2f$after" "$(cat "$pricefile")" +[ -f "$pricefile" ] && printf "$3$symb%0.2f" "$(cat "$pricefile")" From 4537bce2c2429ebfe38f91a2f39609841e08c004 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Thu, 23 Mar 2023 22:06:10 -0400 Subject: [PATCH 128/175] check scripts to avoid rerunning remapd --- .config/x11/xprofile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/x11/xprofile b/.config/x11/xprofile index 1d63fd2d..d6b88c5e 100755 --- a/.config/x11/xprofile +++ b/.config/x11/xprofile @@ -10,7 +10,7 @@ setbg & # set the background with the `setbg` script autostart="mpd xcompmgr dunst unclutter pipewire remapd" for program in $autostart; do - pidof -s "$program" || "$program" & + pidof -sx "$program" || "$program" & done >/dev/null 2>&1 # Ensure that xrdb has finished running before moving on to start the WM/DE. From a558356ecf33f77b8c093ccd5d74d835f44b07c6 Mon Sep 17 00:00:00 2001 From: Lalle <29478339+LalleSX@users.noreply.github.com> Date: Fri, 24 Mar 2023 21:10:26 +0100 Subject: [PATCH 129/175] Added Larbs commits RSS --- .config/newsboat/urls | 1 + 1 file changed, 1 insertion(+) diff --git a/.config/newsboat/urls b/.config/newsboat/urls index c1de9363..1b0402b1 100644 --- a/.config/newsboat/urls +++ b/.config/newsboat/urls @@ -7,3 +7,4 @@ https://landchad.net/rss.xml https://based.cooking/index.xml https://artixlinux.org/feed.php "tech" https://www.archlinux.org/feeds/news/ "tech" +https://github.com/LukeSmithxyz/voidrice/commits/master.atom "~Larbs configs commits" From 07b0fbcce2074ec3301f7dc093136692c8b522bc Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 24 Mar 2023 17:49:38 -0400 Subject: [PATCH 130/175] fix name --- .config/newsboat/urls | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/newsboat/urls b/.config/newsboat/urls index 1b0402b1..497e4946 100644 --- a/.config/newsboat/urls +++ b/.config/newsboat/urls @@ -7,4 +7,4 @@ https://landchad.net/rss.xml https://based.cooking/index.xml https://artixlinux.org/feed.php "tech" https://www.archlinux.org/feeds/news/ "tech" -https://github.com/LukeSmithxyz/voidrice/commits/master.atom "~Larbs configs commits" +https://github.com/LukeSmithxyz/voidrice/commits/master.atom "~LARBS dotfiles" From 5a6c56d565e4e7c20171f5757e12306d9253c52b Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Fri, 31 Mar 2023 09:44:59 -0400 Subject: [PATCH 131/175] efficiency and fail tweaks --- .local/bin/statusbar/sb-price | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.local/bin/statusbar/sb-price b/.local/bin/statusbar/sb-price index 53c5023f..9dc2d527 100755 --- a/.local/bin/statusbar/sb-price +++ b/.local/bin/statusbar/sb-price @@ -18,17 +18,15 @@ filestat="$(stat -c %x "$pricefile" 2>/dev/null)" [ -d "$dir" ] || mkdir -p "$dir" -updateprice() { curl -sf -m 3 $currency.$url/{1$1,$1$interval} --output "$pricefile" --output "$chartfile" || +updateprice() { curl -sf -m 1 --fail-early $currency.$url/{1$1,$1$interval} --output "$pricefile" --output "$chartfile" || rm -f "$pricefile" "$chartfile" ;} [ "${filestat%% *}" != "$(date '+%Y-%m-%d')" ] && - updateprice "$1" + updateme="1" case $BLOCK_BUTTON in 1) setsid "$TERMINAL" -e less -Srf "$chartfile" ;; - 2) notify-send -u low "$3 Updating..." "Updating $2 price..." - updateprice "$1" && notify-send "$3 Update complete." "$2 price is now -\$$(cat "$pricefile")" ;; + 2) notify-send -u low "$3 Updating..." "Updating $2 price..." ; updateme="1" ; showupdate="1" ;; 3) uptime="$(date -d "$filestat" '+%D at %T' | sed "s|$(date '+%D')|Today|")" notify-send "$3 $2 module" "\- Exact price: \$$(cat "$pricefile") - Left click for chart of changes. @@ -39,6 +37,12 @@ case $BLOCK_BUTTON in 6) "$TERMINAL" -e "$EDITOR" "$0" ;; esac +[ -n "$updateme" ] && + updateprice "$1" && + [ -n "$showupdate" ] && + notify-send "$3 Update complete." "$2 price is now +\$$(cat "$pricefile")" + case "$currency" in usd) symb="$" ;; gbp) symb="ยฃ" ;; From a94ee62680c284a5fa86ac1db9660e344f41bd2e Mon Sep 17 00:00:00 2001 From: RealAestan <15686636+RealAestan@users.noreply.github.com> Date: Mon, 3 Apr 2023 16:07:54 +0200 Subject: [PATCH 132/175] dmenuunicode: don't use variables in the printf format string (#1284) It works but the good practice is to use `printf "..%s.." "$foo"` see https://www.shellcheck.net/wiki/SC2059 --- .local/bin/dmenuunicode | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/dmenuunicode b/.local/bin/dmenuunicode index 704c8098..dd12bc3d 100755 --- a/.local/bin/dmenuunicode +++ b/.local/bin/dmenuunicode @@ -13,6 +13,6 @@ chosen=$(cut -d ';' -f1 ~/.local/share/larbs/chars/* | dmenu -i -l 30 | sed "s/ if [ -n "$1" ]; then xdotool type "$chosen" else - printf "$chosen" | xclip -selection clipboard + printf "%s" "$chosen" | xclip -selection clipboard notify-send "'$chosen' copied to clipboard." & fi From 5c92a1770f1a496cfa188632e2bf3d34bd325ad4 Mon Sep 17 00:00:00 2001 From: Mathieu Rollet Date: Wed, 12 Apr 2023 14:10:42 +0200 Subject: [PATCH 133/175] Set GOMODCACHE to comply with XDG (#1299) If GOMODCACHE is not set, it defaults to $GOPATH/pkg/mod cf. https://go.dev/ref/mod#environment-variables --- .config/shell/profile | 1 + 1 file changed, 1 insertion(+) diff --git a/.config/shell/profile b/.config/shell/profile index e78f21e6..55089430 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -39,6 +39,7 @@ export TMUX_TMPDIR="$XDG_RUNTIME_DIR" export ANDROID_SDK_HOME="$XDG_CONFIG_HOME/android" export CARGO_HOME="$XDG_DATA_HOME/cargo" export GOPATH="$XDG_DATA_HOME/go" +export GOMODCACHE="$XDG_CACHE_HOME/go/mod" export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible/ansible.cfg" export UNISON="$XDG_DATA_HOME/unison" export HISTFILE="$XDG_DATA_HOME/history" From d4ff2ebaf3e88efe20cae0d1e592fddfc433c96e Mon Sep 17 00:00:00 2001 From: snailed Date: Wed, 12 Apr 2023 12:11:29 +0000 Subject: [PATCH 134/175] fix shellcheck (#1301) Shellcheck wines when printf doesn't get an argument --- .local/bin/dmenuhandler | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/dmenuhandler b/.local/bin/dmenuhandler index 0b3c7138..acfd71bf 100755 --- a/.local/bin/dmenuhandler +++ b/.local/bin/dmenuhandler @@ -2,7 +2,7 @@ # Feed this script a link and it will give dmenu # some choice programs to use to open it. -feed="${1:-$(printf "%s" | dmenu -p 'Paste URL or file path')}" +feed="${1:-$(true | dmenu -p 'Paste URL or file path')}" case "$(printf "copy url\\nsxiv\\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 ;; From c08949ebd2aeeec220b63da6a32542a0210bac38 Mon Sep 17 00:00:00 2001 From: anggatd <128944502+anggatd@users.noreply.github.com> Date: Thu, 20 Apr 2023 19:32:31 +0700 Subject: [PATCH 135/175] Change LibreOffice binaries to libreoffice (#1294) In the current update, the libreoffice package doesn't have any binary for libreoffice writer, calc, impress, draw, etc. So it's better to open all of the document using the 'libreoffice' binary as it can work in the old version of libreoffice as well as the new one. --- .config/lf/lfrc | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 6017255d..63418f61 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -45,12 +45,7 @@ cmd open ${{ video/*) setsid -f mpv $f -quiet >/dev/null 2>&1 ;; application/pdf|application/vnd.djvu|application/epub*) setsid -f zathura $fx >/dev/null 2>&1 ;; application/pgp-encrypted) $EDITOR $fx ;; - application/vnd.openxmlformats-officedocument.wordprocessingml.document|application/vnd.oasis.opendocument.text) setsid -f lowriter $fx >/dev/null 2>&1 ;; - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet|application/octet-stream|application/vnd.oasis.opendocument.spreadsheet|application/vnd.oasis.opendocument.spreadsheet-template) setsid -f localc $fx >/dev/null 2>&1 ;; - application/vnd.openxmlformats-officedocument.presentationml.presentation|application/vnd.oasis.opendocument.presentation-template|application/vnd.oasis.opendocument.presentation|application/vnd.ms-powerpoint) setsid -f loimpress $fx >/dev/null 2>&1 ;; - application/vnd.oasis.opendocument.graphics|application/vnd.oasis.opendocument.graphics-template) setsid -f lodraw $fx >/dev/null 2>&1 ;; - application/vnd.oasis.opendocument.formula) setsid -f lomath $fx >/dev/null 2>&1 ;; - application/vnd.oasis.opendocument.database) setsid -f lobase $fx >/dev/null 2>&1 ;; + application/vnd.openxmlformats-officedocument.wordprocessingml.document|application/vnd.oasis.opendocument.text|application/vnd.openxmlformats-officedocument.spreadsheetml.sheet|application/octet-stream|application/vnd.oasis.opendocument.spreadsheet|application/vnd.oasis.opendocument.spreadsheet-template|application/vnd.openxmlformats-officedocument.presentationml.presentation|application/vnd.oasis.opendocument.presentation-template|application/vnd.oasis.opendocument.presentation|application/vnd.ms-powerpoint|application/vnd.oasis.opendocument.graphics|application/vnd.oasis.opendocument.graphics-template|application/vnd.oasis.opendocument.formula|application/vnd.oasis.opendocument.database) setsid -f libreoffice $fx >/dev/null 2>&1 ;; *) for f in $fx; do setsid -f $OPENER $f >/dev/null 2>&1; done;; esac }} From b719590427681e977b2a13e8490971e1e1b166b8 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Thu, 20 Apr 2023 08:47:39 -0400 Subject: [PATCH 136/175] use built-ins, close #1297 --- .local/bin/statusbar/sb-iplocate | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.local/bin/statusbar/sb-iplocate b/.local/bin/statusbar/sb-iplocate index 02adab8d..a9043e32 100755 --- a/.local/bin/statusbar/sb-iplocate +++ b/.local/bin/statusbar/sb-iplocate @@ -5,6 +5,11 @@ # # https://www.maketecheasier.com/ip-address-geolocation-lookups-linux/ -ifinstalled "geoip" || exit -addr="$(curl ifconfig.me 2>/dev/null)" || exit -grep "flag: " "${XDG_DATA_HOME:-$HOME/.local/share}/larbs/emoji" | grep "$(geoiplookup "$addr" | sed 's/.*, //')" | sed "s/flag: //;s/;.*//" +set -e + +ifinstalled "geoip" +addr="$(geoiplookup "$(curl -sfm 1 ifconfig.me 2>/dev/null)")" +name="${addr##*, }" +flag="$(grep "flag: $name" "${XDG_DATA_HOME:-$HOME/.local/share}/larbs/emoji")" +flag="${flag%% *}" +printf "%s %s\\n" "$flag" "$name" From 65378ab9443401e0e895d50ad894d66ba4c3ff31 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Thu, 20 Apr 2023 08:48:34 -0400 Subject: [PATCH 137/175] sb-price improvements --- .local/bin/statusbar/sb-price | 43 +++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/.local/bin/statusbar/sb-price b/.local/bin/statusbar/sb-price index 9dc2d527..f95c8152 100755 --- a/.local/bin/statusbar/sb-price +++ b/.local/bin/statusbar/sb-price @@ -1,24 +1,34 @@ #!/bin/sh # Usage: -# price -# price bat "Basic Attention Token" ๐Ÿฆ +# price +# price bat-btc "Basic Attention Token" ๐Ÿฆ 24 +# This will give the price of BAT denominated in BTC and will update on +# signal 24. # When the name of the currency is multi-word, put it in quotes. -[ -z "$3" ] && exit 1 +[ -z "$1" ] && exit 1 -# use $4 as currency, if not passed in use "usd" as default url="${CRYPTOURL:-rate.sx}" -currency="${4:-usd}" +target="${1%%-*}" +denom="${1##*-}" +name="${2:-$1}" +icon="${3:-๐Ÿ’ฐ}" +case "$denom" in + "$target"|usd) denom="usd"; symb="$" ;; + gbp) symb="ยฃ" ;; + eur) symb="โ‚ฌ" ;; + btc) symb="๏…š" ;; +esac interval="@14d" # History contained in chart preceded by '@' (7d = 7 days) dir="${XDG_CACHE_HOME:-$HOME/.cache}/crypto-prices" -pricefile="$dir/$1-$currency" -chartfile="$dir/$1-$currency-chart" +pricefile="$dir/$target-$denom" +chartfile="$dir/$target-$denom-chart" filestat="$(stat -c %x "$pricefile" 2>/dev/null)" [ -d "$dir" ] || mkdir -p "$dir" -updateprice() { curl -sf -m 1 --fail-early $currency.$url/{1$1,$1$interval} --output "$pricefile" --output "$chartfile" || +updateprice() { curl -sf -m 1 --fail-early $denom.$url/{1$target,$target$interval} --output "$pricefile" --output "$chartfile" || rm -f "$pricefile" "$chartfile" ;} [ "${filestat%% *}" != "$(date '+%Y-%m-%d')" ] && @@ -26,9 +36,9 @@ updateprice() { curl -sf -m 1 --fail-early $currency.$url/{1$1,$1$interval} --ou case $BLOCK_BUTTON in 1) setsid "$TERMINAL" -e less -Srf "$chartfile" ;; - 2) notify-send -u low "$3 Updating..." "Updating $2 price..." ; updateme="1" ; showupdate="1" ;; + 2) notify-send -u low "$icon Updating..." "Updating $name price..." ; updateme="1" ; showupdate="1" ;; 3) uptime="$(date -d "$filestat" '+%D at %T' | sed "s|$(date '+%D')|Today|")" - notify-send "$3 $2 module" "\- Exact price: \$$(cat "$pricefile") + notify-send "$icon $name module" "\- Exact price: \$$(cat "$pricefile") - Left click for chart of changes. - Middle click to update. - Shows ๐Ÿ”ƒ if updating prices. @@ -38,16 +48,9 @@ case $BLOCK_BUTTON in esac [ -n "$updateme" ] && - updateprice "$1" && + updateprice "$target" && [ -n "$showupdate" ] && - notify-send "$3 Update complete." "$2 price is now + notify-send "$icon Update complete." "$name price is now \$$(cat "$pricefile")" -case "$currency" in - usd) symb="$" ;; - gbp) symb="ยฃ" ;; - eur) symb="โ‚ฌ" ;; - btc) symb="๏…š" ;; -esac - -[ -f "$pricefile" ] && printf "$3$symb%0.2f" "$(cat "$pricefile")" +[ -f "$pricefile" ] && printf "%s%s%0.2f" "$icon" "$symb" "$(cat "$pricefile")" From e1302c897ea404bfd7275cae38699fb986045c19 Mon Sep 17 00:00:00 2001 From: Austen <30375170+jausten95@users.noreply.github.com> Date: Mon, 1 May 2023 16:15:11 +0000 Subject: [PATCH 138/175] dwmblocks update on song change (#1318) --- .config/ncmpcpp/config | 1 + 1 file changed, 1 insertion(+) diff --git a/.config/ncmpcpp/config b/.config/ncmpcpp/config index 36324960..3111aabb 100644 --- a/.config/ncmpcpp/config +++ b/.config/ncmpcpp/config @@ -30,3 +30,4 @@ progressbar_color = black:b progressbar_elapsed_color = blue:b statusbar_color = red statusbar_time_color = cyan:b +execute_on_song_change="pkill -RTMIN+11 dwmblocks" From b2833f8a67c421d1d5ba3327c8594a445b8aa386 Mon Sep 17 00:00:00 2001 From: pony-montana <96387969+pony-montana@users.noreply.github.com> Date: Tue, 2 May 2023 19:49:56 +0000 Subject: [PATCH 139/175] change requested by lf-git after update. (#1319) --- .config/lf/lfrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 63418f61..e3bace6d 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -24,7 +24,7 @@ set period 1 set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml" set cleaner '~/.config/lf/cleaner' set previewer '~/.config/lf/scope' -set autoquit on +set autoquit true # cmds/functions cmd open ${{ From 991b052a558c11182c279612f3db42d187304132 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Thu, 11 May 2023 14:00:08 +0000 Subject: [PATCH 140/175] Don't wrap horizontally on short terminal (#1325) --- .local/bin/statusbar/sb-forecast | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/statusbar/sb-forecast b/.local/bin/statusbar/sb-forecast index 2b41b3d7..368c17f7 100755 --- a/.local/bin/statusbar/sb-forecast +++ b/.local/bin/statusbar/sb-forecast @@ -38,7 +38,7 @@ showweather() { } case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e less -Srf "$weatherreport" ;; + 1) setsid -f "$TERMINAL" -e less -Sf "$weatherreport" ;; 2) getforecast && showweather ;; 3) notify-send "๐ŸŒˆ Weather module" "\- Left click for full forecast. - Middle click to update forecast. From 0a29cfbf4facff29569535040a4ce90f2f033dd3 Mon Sep 17 00:00:00 2001 From: Mahdi Nayef Date: Wed, 24 May 2023 16:28:56 +0300 Subject: [PATCH 141/175] Fix rename key bindings in lf (#1331) --- .config/lf/lfrc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index e3bace6d..d1c9402b 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -113,11 +113,11 @@ map X !$f map o &mimeopen "$f" map O $mimeopen --ask "$f" -map A rename # at the very end +map A :rename; cmd-end # at the very end map c push A # new rename -map I push A # at the very beginning -map i push A # before extension -map a push A # after extension +map I :rename; cmd-home # at the very beginning +map i :rename # before extension +map a :rename; cmd-right # after extension map B bulkrename map b $setbg $f From ce1f0bfa0597881a640ef32b5334087425d65d16 Mon Sep 17 00:00:00 2001 From: Spenser Truex Date: Thu, 25 May 2023 03:40:55 +0000 Subject: [PATCH 142/175] Re-add whitespace to some buffer types as needed. (#1333) Very arcane. C ANSI standard requires a newline at the end. GCC will complain. Email signatures should have a space after the -- according to the standard. Neomutt does this automatically for you if you have a signature. Co-authored-by: Spenser Truex --- .config/nvim/init.vim | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index d9c6fe61..5b0bd4e7 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -117,6 +117,8 @@ set noshowcmd autocmd BufWritePre * let currPos = getpos(".") autocmd BufWritePre * %s/\s\+$//e autocmd BufWritePre * %s/\n\+\%$//e + autocmd BufWritePre *.[ch] %s/\%$/\r/e " add trailing newline for ANSI C standard + autocmd BufWritePre *neomutt* %s/^--$/-- /e " dash-dash-space signature delimiter in emails autocmd BufWritePre * cal cursor(currPos[1], currPos[2]) " When shortcut files are updated, renew bash and ranger configs with new material: From 1633233c9d8df7d5e4c53c078addcbfced017ae1 Mon Sep 17 00:00:00 2001 From: Mahdi Nayef Date: Sat, 27 May 2023 01:08:43 +0300 Subject: [PATCH 143/175] bulkrename using built-ins instead of using a completely separate program (#1330) * bulkrename using bult-ins instead of using a completely separate program * Make it more efficient --- .config/lf/lfrc | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index d1c9402b..25fb3d1e 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -93,7 +93,27 @@ cmd copyto ${{ }} cmd setbg "$1" -cmd bulkrename $vidir + +cmd bulkrename ${{ + tmpfile_old="$(mktemp)" + tmpfile_new="$(mktemp)" + + [ -n "$fs" ] && fs=$(basename -a $fs) || fs=$(ls) + + echo "$fs" > "$tmpfile_old" + echo "$fs" > "$tmpfile_new" + $EDITOR "$tmpfile_new" + + [ "$(wc -l < "$tmpfile_old")" -eq "$(wc -l < "$tmpfile_new")" ] || { rm -f "$tmpfile_old" "$tmpfile_new"; exit 1; } + + paste "$tmpfile_old" "$tmpfile_new" | while IFS="$(printf '\t')" read -r src dst + do + [ "$src" = "$dst" ] || [ -e "$dst" ] || mv -- "$src" "$dst" + done + + rm -f "$tmpfile_old" "$tmpfile_new" + lf -remote "send $id unselect" +}} # Bindings map $lf -remote "send $id select \"$(fzf)\"" From af2710799b069486d04ba23c5bdab9cf6c4d6b04 Mon Sep 17 00:00:00 2001 From: poeplva <132710624+poeplva@users.noreply.github.com> Date: Sat, 27 May 2023 01:10:29 +0300 Subject: [PATCH 144/175] application/octet-stream is for arbitrary binary files (#1321) application/octet-stream mime-type is used for arbitrary binary files, so the best guess at opening those kind of should be based on the extension. before this all of this kind of files were tried to be opened with zathura, now it is the last resort in case the file extension is unknown. --- .config/lf/lfrc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 25fb3d1e..046a3e4c 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -30,7 +30,7 @@ set autoquit true cmd open ${{ case $(file --mime-type "$(readlink -f $f)" -b) in application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) localc $fx ;; - image/vnd.djvu|application/pdf|application/octet-stream|application/postscript) setsid -f zathura $fx >/dev/null 2>&1 ;; + image/vnd.djvu|application/pdf|application/postscript) setsid -f zathura $fx >/dev/null 2>&1 ;; text/*|application/json|inode/x-empty|application/x-subrip) $EDITOR $fx;; image/x-xcf) setsid -f gimp $f >/dev/null 2>&1 ;; image/svg+xml) display -- $f ;; @@ -45,8 +45,13 @@ cmd open ${{ video/*) setsid -f mpv $f -quiet >/dev/null 2>&1 ;; application/pdf|application/vnd.djvu|application/epub*) setsid -f zathura $fx >/dev/null 2>&1 ;; application/pgp-encrypted) $EDITOR $fx ;; - application/vnd.openxmlformats-officedocument.wordprocessingml.document|application/vnd.oasis.opendocument.text|application/vnd.openxmlformats-officedocument.spreadsheetml.sheet|application/octet-stream|application/vnd.oasis.opendocument.spreadsheet|application/vnd.oasis.opendocument.spreadsheet-template|application/vnd.openxmlformats-officedocument.presentationml.presentation|application/vnd.oasis.opendocument.presentation-template|application/vnd.oasis.opendocument.presentation|application/vnd.ms-powerpoint|application/vnd.oasis.opendocument.graphics|application/vnd.oasis.opendocument.graphics-template|application/vnd.oasis.opendocument.formula|application/vnd.oasis.opendocument.database) setsid -f libreoffice $fx >/dev/null 2>&1 ;; - *) for f in $fx; do setsid -f $OPENER $f >/dev/null 2>&1; done;; + application/vnd.openxmlformats-officedocument.wordprocessingml.document|application/vnd.oasis.opendocument.text|application/vnd.openxmlformats-officedocument.spreadsheetml.sheet|application/vnd.oasis.opendocument.spreadsheet|application/vnd.oasis.opendocument.spreadsheet-template|application/vnd.openxmlformats-officedocument.presentationml.presentation|application/vnd.oasis.opendocument.presentation-template|application/vnd.oasis.opendocument.presentation|application/vnd.ms-powerpoint|application/vnd.oasis.opendocument.graphics|application/vnd.oasis.opendocument.graphics-template|application/vnd.oasis.opendocument.formula|application/vnd.oasis.opendocument.database) setsid -f libreoffice $fx >/dev/null 2>&1 ;; + application/octet-stream) case ${f##*.} in + doc|docx|xls|xlsx|odt|ppt|pptx) setsid -f libreoffice $fx >/dev/null 2>&1 ;; + ghw) setsid -f gtkwave $f >/dev/null 2>&1 ;; + *) setsid -f zathura $fx >/dev/null 2>&1 ;; + esac + *) for f in $fx; do setsid -f $OPENER $f >/dev/null 2>&1; done;; esac }} From 08639706a9bc239dfdeff78f88a9ced7d932cec4 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Fri, 26 May 2023 22:11:06 +0000 Subject: [PATCH 145/175] Make sure sb-volume module is updated when closed after opening (#1316) --- .local/bin/statusbar/sb-volume | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/statusbar/sb-volume b/.local/bin/statusbar/sb-volume index acdf7a9e..fa0abcd5 100755 --- a/.local/bin/statusbar/sb-volume +++ b/.local/bin/statusbar/sb-volume @@ -3,7 +3,7 @@ # Prints the current volume or ๐Ÿ”‡ if muted. case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e pulsemixer ;; + 1) setsid -w -f "$TERMINAL" -e pulsemixer; pkill -RTMIN+10 "${STATUSBAR:-dwmblocks}" ;; 2) wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle ;; 4) wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+ ;; 5) wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%- ;; From 07de33840d9ce0f554c0e5555ac27250be0895c2 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Sat, 27 May 2023 01:46:54 +0000 Subject: [PATCH 146/175] Revert "application/octet-stream is for arbitrary binary files (#1321)" (#1336) This reverts commit af2710799b069486d04ba23c5bdab9cf6c4d6b04. --- .config/lf/lfrc | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 046a3e4c..25fb3d1e 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -30,7 +30,7 @@ set autoquit true cmd open ${{ case $(file --mime-type "$(readlink -f $f)" -b) in application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) localc $fx ;; - image/vnd.djvu|application/pdf|application/postscript) setsid -f zathura $fx >/dev/null 2>&1 ;; + image/vnd.djvu|application/pdf|application/octet-stream|application/postscript) setsid -f zathura $fx >/dev/null 2>&1 ;; text/*|application/json|inode/x-empty|application/x-subrip) $EDITOR $fx;; image/x-xcf) setsid -f gimp $f >/dev/null 2>&1 ;; image/svg+xml) display -- $f ;; @@ -45,13 +45,8 @@ cmd open ${{ video/*) setsid -f mpv $f -quiet >/dev/null 2>&1 ;; application/pdf|application/vnd.djvu|application/epub*) setsid -f zathura $fx >/dev/null 2>&1 ;; application/pgp-encrypted) $EDITOR $fx ;; - application/vnd.openxmlformats-officedocument.wordprocessingml.document|application/vnd.oasis.opendocument.text|application/vnd.openxmlformats-officedocument.spreadsheetml.sheet|application/vnd.oasis.opendocument.spreadsheet|application/vnd.oasis.opendocument.spreadsheet-template|application/vnd.openxmlformats-officedocument.presentationml.presentation|application/vnd.oasis.opendocument.presentation-template|application/vnd.oasis.opendocument.presentation|application/vnd.ms-powerpoint|application/vnd.oasis.opendocument.graphics|application/vnd.oasis.opendocument.graphics-template|application/vnd.oasis.opendocument.formula|application/vnd.oasis.opendocument.database) setsid -f libreoffice $fx >/dev/null 2>&1 ;; - application/octet-stream) case ${f##*.} in - doc|docx|xls|xlsx|odt|ppt|pptx) setsid -f libreoffice $fx >/dev/null 2>&1 ;; - ghw) setsid -f gtkwave $f >/dev/null 2>&1 ;; - *) setsid -f zathura $fx >/dev/null 2>&1 ;; - esac - *) for f in $fx; do setsid -f $OPENER $f >/dev/null 2>&1; done;; + application/vnd.openxmlformats-officedocument.wordprocessingml.document|application/vnd.oasis.opendocument.text|application/vnd.openxmlformats-officedocument.spreadsheetml.sheet|application/octet-stream|application/vnd.oasis.opendocument.spreadsheet|application/vnd.oasis.opendocument.spreadsheet-template|application/vnd.openxmlformats-officedocument.presentationml.presentation|application/vnd.oasis.opendocument.presentation-template|application/vnd.oasis.opendocument.presentation|application/vnd.ms-powerpoint|application/vnd.oasis.opendocument.graphics|application/vnd.oasis.opendocument.graphics-template|application/vnd.oasis.opendocument.formula|application/vnd.oasis.opendocument.database) setsid -f libreoffice $fx >/dev/null 2>&1 ;; + *) for f in $fx; do setsid -f $OPENER $f >/dev/null 2>&1; done;; esac }} From 9a85d328ccf29f4cebb104e4eeeba1b20a896f6b Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Sat, 15 Jul 2023 18:57:12 +0200 Subject: [PATCH 147/175] nsxiv replaces unmaintained sxiv --- .config/lf/lfrc | 2 +- .config/shell/bm-files | 2 +- .local/bin/dmenuhandler | 4 ++-- .local/bin/linkhandler | 4 ++-- .local/bin/rotdir | 4 ++-- .local/bin/tutorialvids | 2 +- .local/share/applications/img.desktop | 2 +- .local/share/larbs/getkeys/{sxiv => nsxiv} | 13 ++++++------- README.md | 2 +- 9 files changed, 17 insertions(+), 18 deletions(-) rename .local/share/larbs/getkeys/{sxiv => nsxiv} (50%) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 25fb3d1e..56a41825 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -35,7 +35,7 @@ cmd open ${{ image/x-xcf) setsid -f gimp $f >/dev/null 2>&1 ;; image/svg+xml) display -- $f ;; image/*) rotdir $f | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|avif\|tif\|ico\)\(_large\)*$" | - setsid -f sxiv -aio 2>/dev/null | while read -r file; do + setsid -f nsxiv -aio 2>/dev/null | while read -r file; do [ -z "$file" ] && continue lf -remote "send select \"$file\"" lf -remote "send toggle" diff --git a/.config/shell/bm-files b/.config/shell/bm-files index 7acbb666..2e8864b1 100644 --- a/.config/shell/bm-files +++ b/.config/shell/bm-files @@ -20,4 +20,4 @@ cfmb ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/bindings # ncmpcpp (music player) cfmc ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/config # ncmpcpp (music player) config cfl ${XDG_CONFIG_HOME:-$HOME/.config}/lf/lfrc # lf (file browser) config cfL ${XDG_CONFIG_HOME:-$HOME/.config}/lf/scope # lf's scope/preview file -cfX ${XDG_CONFIG_HOME:-$HOME/.config}/sxiv/exec/key-handler # sxiv (image viewer) key/script handler +cfX ${XDG_CONFIG_HOME:-$HOME/.config}/nsxiv/exec/key-handler # nsxiv (image viewer) key/script handler diff --git a/.local/bin/dmenuhandler b/.local/bin/dmenuhandler index acfd71bf..e50178ac 100755 --- a/.local/bin/dmenuhandler +++ b/.local/bin/dmenuhandler @@ -4,7 +4,7 @@ # some choice programs to use to open it. feed="${1:-$(true | dmenu -p 'Paste URL or file path')}" -case "$(printf "copy url\\nsxiv\\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 +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 ;; @@ -13,7 +13,7 @@ case "$(printf "copy url\\nsxiv\\nsetbg\\nPDF\\nbrowser\\nlynx\\nvim\\nmpv\\nmpv "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 ;; - sxiv) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && sxiv -a "/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 ;; diff --git a/.local/bin/linkhandler b/.local/bin/linkhandler index f62b5812..84b2e285 100755 --- a/.local/bin/linkhandler +++ b/.local/bin/linkhandler @@ -1,7 +1,7 @@ #!/bin/sh # Feed script a url or file location. -# If an image, it will view in sxiv, +# If an image, it will view in nsxiv, # if a video or gif, it will view in mpv # if a music file or pdf, it will download, # otherwise it opens link in browser. @@ -16,7 +16,7 @@ case "$url" in *mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtube.com/shorts*|*youtu.be*|*hooktube.com*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*) setsid -f mpv -quiet "$url" >/dev/null 2>&1 ;; *png|*jpg|*jpe|*jpeg|*gif) - curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && sxiv -a "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; + curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && nsxiv -a "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; *pdf|*cbz|*cbr) curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && zathura "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; *mp3|*flac|*opus|*mp3?source*) diff --git a/.local/bin/rotdir b/.local/bin/rotdir index 86da6dbe..d171f299 100755 --- a/.local/bin/rotdir +++ b/.local/bin/rotdir @@ -1,11 +1,11 @@ #!/bin/sh -# When I open an image from the file manager in sxiv (the image viewer), I want +# When I open an image from the file manager in nsxiv (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. +# one of the reasons that nsxiv is great for being able to read standard input. [ -z "$1" ] && echo "usage: rotdir regex 2>&1" && exit 1 base="$(basename "$1")" diff --git a/.local/bin/tutorialvids b/.local/bin/tutorialvids index 8d1dc471..1bac3df9 100755 --- a/.local/bin/tutorialvids +++ b/.local/bin/tutorialvids @@ -8,7 +8,7 @@ vidlist=" dwm (window manager) https://videos.lukesmith.xyz/videos/watch/f6b78db7-b368-4647-bc64-28c08fff1988 dwmblocks (status bar) https://videos.lukesmith.xyz/w/mmxHMbqZZEr5FManB57Yy1 pacman (installing/managing programs) https://videos.lukesmith.xyz/videos/watch/8e7cadb9-0fed-47ce-a2a8-6635fa48614b -sxiv (image viewer) https://videos.lukesmith.xyz/videos/watch/ad4c8d85-90c3-4f3d-a1f3-89129e64a3c2 +sxiv/nsxiv (image viewer) https://videos.lukesmith.xyz/videos/watch/ad4c8d85-90c3-4f3d-a1f3-89129e64a3c2 st (terminal) https://videos.lukesmith.xyz/videos/watch/efddd39d-bac5-4599-b572-177beb4ce6e8 i3 (old window manager) https://videos.lukesmith.xyz/videos/watch/b861525c-7ada-40ee-a2bb-b5e1ffe0f48b neomutt (email) https://videos.lukesmith.xyz/videos/watch/83122e83-52d9-4278-ae1a-7d1beeb50c8e diff --git a/.local/share/applications/img.desktop b/.local/share/applications/img.desktop index 42aa81e0..57831070 100644 --- a/.local/share/applications/img.desktop +++ b/.local/share/applications/img.desktop @@ -1,4 +1,4 @@ [Desktop Entry] Type=Application Name=Image viewer -Exec=/usr/bin/sxiv -a %f +Exec=/usr/bin/nsxiv -a %f diff --git a/.local/share/larbs/getkeys/sxiv b/.local/share/larbs/getkeys/nsxiv similarity index 50% rename from .local/share/larbs/getkeys/sxiv rename to .local/share/larbs/getkeys/nsxiv index df5cb1e0..176a65a7 100644 --- a/.local/share/larbs/getkeys/sxiv +++ b/.local/share/larbs/getkeys/nsxiv @@ -1,9 +1,8 @@ - _ - _____ _(_)_ __ -/ __\ \/ / \ \ / / -\__ \> <| |\ V / -|___/_/\_\_| \_/ -sxiv is the image viewer. + _ __ _____ _(_)_ __ +| '_ \/ __\ \/ / \ \ / / +| | | \__ \> <| |\ V / +|_| |_|___/_/\_\_| \_/ +nsxiv is the image viewer. h/j/k/l - Pan image -/+ - Zoom out/in Enter - Toggle thumbnail mode @@ -12,4 +11,4 @@ sxiv is the image viewer. r - Reload image if changed m - Mark/unmark image w - Zoom to fit window - ctrl-x - Run external command (see ~/.config/sxiv/exec/key-handler for options) + ctrl-x - Run external command (see ~/.config/nsxiv/exec/key-handler for options) diff --git a/README.md b/README.md index 135a8e49..1e2f7802 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ These are the dotfiles deployed by [LARBS](https://larbs.xyz) and as seen on - zsh (shell) - lf (file manager) - mpd/ncmpcpp (music) - - sxiv (image/gif viewer) + - nsxiv (image/gif viewer) - mpv (video player) - other stuff like xdg default programs, inputrc and more, etc. - I try to minimize what's directly in `~` so: From 6f6b749d0e4e54d8b0f98cfff39f6847f4c4a0b7 Mon Sep 17 00:00:00 2001 From: "Gunnar K. Halvorsen" Date: Sun, 23 Jul 2023 23:02:14 +0000 Subject: [PATCH 148/175] Fixed formatting bug with notify-send (#1344) * Fixed formatting bug with notify-send * Update sb-clock Fix suggested by 'mhdna' --- .local/bin/statusbar/sb-clock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/statusbar/sb-clock b/.local/bin/statusbar/sb-clock index e1ca8c74..93f8aea9 100755 --- a/.local/bin/statusbar/sb-clock +++ b/.local/bin/statusbar/sb-clock @@ -19,7 +19,7 @@ case "$clock" in esac case $BLOCK_BUTTON in - 1) notify-send "This Month" "$(cal --color=always | sed "s/..7m//;s|..27m||")" && notify-send "Appointments" "$(calcurse -d3)" ;; + 1) notify-send "This Month" "$(cal | sed "s/\<$(date +'%e')\>/&<\/span><\/b>/")" && notify-send "Appointments" "$(calcurse -d3)" ;; 2) setsid -f "$TERMINAL" -e calcurse ;; 3) notify-send "๐Ÿ“… Time/date module" "\- Left click to show upcoming appointments for the next three days via \`calcurse -d3\` and show the month via \`cal\` - Middle click opens calcurse if installed" ;; From 0497dcd51c46403e4e7c5e9cbf66d7afa70d6d2b Mon Sep 17 00:00:00 2001 From: Lalle <29478339+LalleSX@users.noreply.github.com> Date: Mon, 24 Jul 2023 01:02:33 +0200 Subject: [PATCH 149/175] Add jsonl to lf (#1345) --- .config/lf/scope | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/lf/scope b/.config/lf/scope index 87b560a0..12c1792d 100755 --- a/.config/lf/scope +++ b/.config/lf/scope @@ -28,7 +28,7 @@ case "$(file --dereference --brief --mime-type -- "$1")" in image/*) image "$1" "$2" "$3" "$4" "$5" "$1" ;; text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;; text/troff) man ./ "$1" | col -b ;; - text/* | */xml | application/json) bat --terminal-width "$(($4-2))" -f "$1" ;; + text/* | */xml | application/json | application/x-ndjson) bat --terminal-width "$(($4-2))" -f "$1" ;; audio/* | application/octet-stream) mediainfo "$1" || exit 1 ;; video/* ) CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)" From d8a8970715070f73bcb6333e3fe851b6802ac702 Mon Sep 17 00:00:00 2001 From: poeplva <132710624+poeplva@users.noreply.github.com> Date: Mon, 24 Jul 2023 02:06:04 +0300 Subject: [PATCH 150/175] djvu files cannot be previewed (#1335) added support for previewing books in djvu format. --- .config/lf/scope | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.config/lf/scope b/.config/lf/scope index 12c1792d..cc556697 100755 --- a/.config/lf/scope +++ b/.config/lf/scope @@ -25,6 +25,10 @@ case "$(file --dereference --brief --mime-type -- "$1")" in image/avif) CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)" [ ! -f "$CACHE" ] && convert "$1" "$CACHE.jpg" image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1" ;; + image/vnd.djvu) + CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)" + [ ! -f "$CACHE" ] && djvused "$1" -e 'select 1; save-page-with /dev/stdout' | convert -density 200 - "$CACHE.jpg" > /dev/null 2>&1 + image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1" ;; image/*) image "$1" "$2" "$3" "$4" "$5" "$1" ;; text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;; text/troff) man ./ "$1" | col -b ;; From 44cb5f12e6c28aaada521d8b2918be9735c402c0 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Wed, 16 Aug 2023 13:55:59 +0000 Subject: [PATCH 151/175] Give setbg parameter to make notifications silent (#1350) --- .local/bin/setbg | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.local/bin/setbg b/.local/bin/setbg index b72dc7d5..c2888958 100755 --- a/.local/bin/setbg +++ b/.local/bin/setbg @@ -13,11 +13,18 @@ bgloc="${XDG_DATA_HOME:-$HOME/.local/share}/bg" dunstconf="${XDG_CONFIG_HOME:-$HOME/.config}/dunst/dunstrc" zathuraconf="${XDG_CONFIG_HOME:-$HOME/.config}/zathura/zathurarc" +# Give -s as parameter to make notifications silent. +while getopts "s" o; do case "${o}" in + s) silent='1' ;; +esac done + +shift $((OPTIND - 1)) + trueloc="$(readlink -f "$1")" && case "$(file --mime-type -b "$trueloc")" in - image/* ) ln -sf "$(readlink -f "$1")" "$bgloc" && notify-send -i "$bgloc" "Changing wallpaper..." ;; - inode/directory ) ln -sf "$(find "$trueloc" -iregex '.*.\(jpg\|jpeg\|png\|gif\)' -type f | shuf -n 1)" "$bgloc" && notify-send -i "$bgloc" "Random Wallpaper chosen." ;; - *) notify-send "๐Ÿ–ผ๏ธ Error" "Not a valid image or directory." ; exit 1;; + image/* ) ln -sf "$trueloc" "$bgloc" && [ -z "$silent" ] && notify-send -i "$bgloc" "Changing wallpaper..." ;; + inode/directory ) ln -sf "$(find "$trueloc" -iregex '.*.\(jpg\|jpeg\|png\|gif\)' -type f | shuf -n 1)" "$bgloc" && [ -z "$silent" ] && notify-send -i "$bgloc" "Random Wallpaper chosen." ;; + *) [ -z "$silent" ] && notify-send "๐Ÿ–ผ๏ธ Error" "Not a valid image or directory." ; exit 1;; esac # If pywal is installed, use it. From ec8e82745e4a7ee6076e115dc578a370d29914e2 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Wed, 16 Aug 2023 14:38:10 +0000 Subject: [PATCH 152/175] sb-internet: replace grep/sed commands for more efficiency (#1349) --- .local/bin/statusbar/sb-internet | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.local/bin/statusbar/sb-internet b/.local/bin/statusbar/sb-internet index 94b7da27..4c8131ce 100755 --- a/.local/bin/statusbar/sb-internet +++ b/.local/bin/statusbar/sb-internet @@ -17,10 +17,17 @@ case $BLOCK_BUTTON in 6) "$TERMINAL" -e "$EDITOR" "$0" ;; esac -if grep -xq 'up' /sys/class/net/w*/operstate 2>/dev/null ; then +# Wifi +if [ "$(cat /sys/class/net/w*/operstate 2>/dev/null)" = 'up' ] ; then wifiicon="$(awk '/^\s*w/ { print "๐Ÿ“ถ", int($3 * 100 / 70) "% " }' /proc/net/wireless)" -elif grep -xq 'down' /sys/class/net/w*/operstate 2>/dev/null ; then - grep -xq '0x1003' /sys/class/net/w*/flags && wifiicon="๐Ÿ“ก " || wifiicon="โŒ " +elif [ "$(cat /sys/class/net/w*/operstate 2>/dev/null)" = 'down' ] ; then + [ "$(cat /sys/class/net/w*/flags 2>/dev/null)" = '0x1003' ] && wifiicon="๐Ÿ“ก " || wifiicon="โŒ " fi -printf "%s%s%s\n" "$wifiicon" "$(sed "s/down/โŽ/;s/up/๐ŸŒ/" /sys/class/net/e*/operstate 2>/dev/null)" "$(sed "s/.*/๐Ÿ”’/" /sys/class/net/tun*/operstate 2>/dev/null)" +# Ethernet +[ "$(cat /sys/class/net/e*/operstate 2>/dev/null)" = 'up' ] && ethericon="๐ŸŒ " || ethericon="โŽ " + +# TUN +[ -n "$(cat /sys/class/net/tun*/operstate 2>/dev/null)" ] && tunicon="๐Ÿ”’ " + +printf "%s%s%s\n" "$wifiicon" "$ethericon" "$tunicon" From ed9633da3f876b6c9dae13434fb7ea30208a5b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Nikolai=20Var=C3=B8y?= <97204480+SimonVaroy@users.noreply.github.com> Date: Wed, 16 Aug 2023 14:39:40 +0000 Subject: [PATCH 153/175] added webp to image formats in linkhandler (#1347) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Simon Nikolai Varรธy --- .local/bin/linkhandler | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/linkhandler b/.local/bin/linkhandler index 84b2e285..d372d84c 100755 --- a/.local/bin/linkhandler +++ b/.local/bin/linkhandler @@ -15,7 +15,7 @@ fi case "$url" in *mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtube.com/shorts*|*youtu.be*|*hooktube.com*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*) setsid -f mpv -quiet "$url" >/dev/null 2>&1 ;; - *png|*jpg|*jpe|*jpeg|*gif) + *png|*jpg|*jpe|*jpeg|*gif|*webp) curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && nsxiv -a "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; *pdf|*cbz|*cbr) curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && zathura "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; From f26e5678e626e604ed586fc6420b944dc023d3f2 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Fri, 18 Aug 2023 12:20:05 +0000 Subject: [PATCH 154/175] Fix arkenfox pacman hook complaining about root (#1351) The previous pull request on LARBS turned out not to work, so make sure `arkenfox-auto-update` runs `arkenfox-update` as the user of the firefox profile. Otherwise it complains that it's running as root and stops. The way of getting the username is safe, because it gets the username from the owner of the user.js file of that profile. --- .local/bin/arkenfox-auto-update | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.local/bin/arkenfox-auto-update b/.local/bin/arkenfox-auto-update index 05f4ca7f..7664a4fc 100755 --- a/.local/bin/arkenfox-auto-update +++ b/.local/bin/arkenfox-auto-update @@ -16,5 +16,8 @@ IFS=' # Update each found profile. for profile in $profiles; do - arkenfox-updater -p "${profile%%/user.js*}" -s + userjs=${profile%%/user.js*} + user=$(stat -c '%U' "$userjs") || continue + + su -l "$user" -c "arkenfox-updater -c -p $userjs -s" done From 8315e4c885aaf3de5a1f30bc8ed0e1f3c72a24f0 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Wed, 23 Aug 2023 12:28:42 +0200 Subject: [PATCH 155/175] libertinus replaces libertine --- .config/fontconfig/fonts.conf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf index d7efc385..d7048ba2 100755 --- a/.config/fontconfig/fonts.conf +++ b/.config/fontconfig/fonts.conf @@ -4,7 +4,7 @@ serif - Linux Libertine + Libertinus Serif Joy Pixels Noto Color Emoji FontAwesome @@ -13,7 +13,7 @@ sans-serif - Linux Biolinum + Libertinus Sans Joy Pixels Noto Color Emoji FontAwesome @@ -22,7 +22,7 @@ sans - Linux Biolinum + Libertinus Sans Joy Pixels Noto Color Emoji FontAwesome @@ -32,7 +32,7 @@ monospace Noto Sans Mono - Liberation Mono + Liberatinus Mono FontAwesome Braille From 798ba175d0edd50a696edc8467b2eedeaf881a4c Mon Sep 17 00:00:00 2001 From: Alessio Artoni <34690870+aartoni@users.noreply.github.com> Date: Fri, 25 Aug 2023 07:53:59 +0000 Subject: [PATCH 156/175] Fix wrong font name (#1353) --- .config/fontconfig/fonts.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf index d7048ba2..761ae00a 100755 --- a/.config/fontconfig/fonts.conf +++ b/.config/fontconfig/fonts.conf @@ -32,7 +32,7 @@ monospace Noto Sans Mono - Liberatinus Mono + Libertinus Mono FontAwesome Braille From 86f05abcce1fd270032975775adb40040c746cfe Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Fri, 25 Aug 2023 07:56:50 +0000 Subject: [PATCH 157/175] Fix the extra space between sb-internet and the block on the right of sb-internet (#1352) --- .local/bin/statusbar/sb-internet | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.local/bin/statusbar/sb-internet b/.local/bin/statusbar/sb-internet index 4c8131ce..5440a52d 100755 --- a/.local/bin/statusbar/sb-internet +++ b/.local/bin/statusbar/sb-internet @@ -25,9 +25,9 @@ elif [ "$(cat /sys/class/net/w*/operstate 2>/dev/null)" = 'down' ] ; then fi # Ethernet -[ "$(cat /sys/class/net/e*/operstate 2>/dev/null)" = 'up' ] && ethericon="๐ŸŒ " || ethericon="โŽ " +[ "$(cat /sys/class/net/e*/operstate 2>/dev/null)" = 'up' ] && ethericon="๐ŸŒ" || ethericon="โŽ" # TUN -[ -n "$(cat /sys/class/net/tun*/operstate 2>/dev/null)" ] && tunicon="๐Ÿ”’ " +[ -n "$(cat /sys/class/net/tun*/operstate 2>/dev/null)" ] && tunicon=" ๐Ÿ”’" printf "%s%s%s\n" "$wifiicon" "$ethericon" "$tunicon" From c550a7c6e54fba8d4cf6024b2ffcf2a475367bd3 Mon Sep 17 00:00:00 2001 From: Hylke Hellinga Date: Sun, 3 Sep 2023 09:20:13 +0200 Subject: [PATCH 158/175] Fixed Booksplit for termux (#1358) Co-authored-by: Simbaclaws --- .local/bin/booksplit | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.local/bin/booksplit b/.local/bin/booksplit index a6845f73..079d85f2 100755 --- a/.local/bin/booksplit +++ b/.local/bin/booksplit @@ -12,7 +12,7 @@ inputaudio="$1" ext="${1##*.}" # Get a safe file name from the book. -escbook="$(echo "$booktitle" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")" +escbook="$(echo "$booktitle" | iconv -c -f UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")" ! mkdir -p "$escbook" && echo "Do you have write access in this directory?" && @@ -31,7 +31,7 @@ do cmd="$cmd -metadata artist=\"$author\" -metadata title=\"$title\" -metadata album=\"$booktitle\" -metadata year=\"$year\" -metadata track=\"$track\" -metadata total=\"$total\" -ss \"$start\" -to \"$end\" -vn -c:a copy \"$file\" " fi title="$(echo "$x" | cut -d' ' -f2-)" - esctitle="$(echo "$title" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")" + esctitle="$(echo "$title" | iconv -c -f UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")" track="$((track+1))" start="$end" done < "$2" From b8cd0ab4953d053fef09c48ba04f2fbb2df57aa4 Mon Sep 17 00:00:00 2001 From: sban <30375170+mr-sban@users.noreply.github.com> Date: Tue, 5 Sep 2023 07:51:05 +0000 Subject: [PATCH 159/175] Timeout added to forecast module, ncmpcpp now tracks player state (#1359) * Added timeout to getforecast to prevent status bar breakage. A 2 second timeout is used in the case that wttr.in is inaccessible when dwm is started; as otherwise it tries to curl wttr.in indefinitely, not allowing other status bar modules to be loaded. * Update music status bar module on player state change --- .config/ncmpcpp/config | 1 + .local/bin/statusbar/sb-forecast | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.config/ncmpcpp/config b/.config/ncmpcpp/config index 3111aabb..1e2a8b02 100644 --- a/.config/ncmpcpp/config +++ b/.config/ncmpcpp/config @@ -31,3 +31,4 @@ progressbar_elapsed_color = blue:b statusbar_color = red statusbar_time_color = cyan:b execute_on_song_change="pkill -RTMIN+11 dwmblocks" +execute_on_player_state_change="pkill -RTMIN+11 dwmblocks" diff --git a/.local/bin/statusbar/sb-forecast b/.local/bin/statusbar/sb-forecast index 368c17f7..d8a16aad 100755 --- a/.local/bin/statusbar/sb-forecast +++ b/.local/bin/statusbar/sb-forecast @@ -7,7 +7,7 @@ url="${WTTRURL:-wttr.in}" weatherreport="${XDG_CACHE_HOME:-$HOME/.cache}/weatherreport" # Get a weather report from 'wttr.in' and save it locally. -getforecast() { curl -sf "$url/$LOCATION" > "$weatherreport" || exit 1; } +getforecast() { timeout --signal=1 2s curl -sf "$url/$LOCATION" > "$weatherreport" || exit 1; } # Forecast should be updated only once a day. checkforecast() { From 708d6c67317ca90138681d4a7892cc5db2e092cc Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Wed, 4 Oct 2023 20:01:05 +0000 Subject: [PATCH 160/175] Change remaining tremc entry in script to stig (#1364) --- .local/bin/statusbar/sb-torrent | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.local/bin/statusbar/sb-torrent b/.local/bin/statusbar/sb-torrent index 65270050..08c9173c 100755 --- a/.local/bin/statusbar/sb-torrent +++ b/.local/bin/statusbar/sb-torrent @@ -11,9 +11,9 @@ transmission-remote -l | grep % | sort -h | uniq -c | awk '{print $3 $1}' | paste -sd ' ' - case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e tremc ;; + 1) setsid -f "$TERMINAL" -e stig ;; 2) td-toggle ;; - 3) notify-send "๐ŸŒฑ Torrent module" "\- Left click to open tremc. + 3) notify-send "๐ŸŒฑ Torrent module" "\- Left click to open stig. - Middle click to toggle transmission. - Shift click to edit script. Module shows number of torrents: From 42f3efb4b0c57003d8c49e8e946948b458bea873 Mon Sep 17 00:00:00 2001 From: Dawid Potocki Date: Sat, 28 Oct 2023 07:52:44 +1300 Subject: [PATCH 161/175] Add xdg-terminal-exec script to launch "$TERMINAL" for .desktop files (#1302) --- .local/bin/xdg-terminal-exec | 3 +++ 1 file changed, 3 insertions(+) create mode 100755 .local/bin/xdg-terminal-exec diff --git a/.local/bin/xdg-terminal-exec b/.local/bin/xdg-terminal-exec new file mode 100755 index 00000000..12b18ffc --- /dev/null +++ b/.local/bin/xdg-terminal-exec @@ -0,0 +1,3 @@ +#!/bin/sh + +"$TERMINAL" -e "$@" From bca6b403eb61df8f36e543a95ea48a07e546a9d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emre=20AKY=C3=9CZ?= Date: Fri, 27 Oct 2023 21:54:15 +0300 Subject: [PATCH 162/175] Unpack Function for LF Without Aunpack (#1334) We can simply eliminate the usage of an external tool by adding a simple case statement to handle different types of compressed files. --- .config/lf/lfrc | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 56a41825..e104591b 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -58,7 +58,22 @@ cmd extract ${{ printf "%s\n\t" "$fx" printf "extract?[y/N]" read ans - [ $ans = "y" ] && aunpack $fx + [ $ans = "y" ] && { + case $fx in + *.tar.bz2) tar xjf $fx ;; + *.tar.gz) tar xzf $fx ;; + *.bz2) bunzip2 $fx ;; + *.rar) unrar e $fx ;; + *.gz) gunzip $fx ;; + *.tar) tar xf $fx ;; + *.tbz2) tar xjf $fx ;; + *.tgz) tar xzf $fx ;; + *.zip) unzip $fx ;; + *.Z) uncompress $fx ;; + *.7z) 7z x $fx ;; + *.tar.xz) tar xf $fx ;; + esac + } }} cmd delete ${{ From 54c0aa2af8e0b998d1666a13bd86e6abcd08a291 Mon Sep 17 00:00:00 2001 From: poeplva <132710624+poeplva@users.noreply.github.com> Date: Fri, 27 Oct 2023 21:58:05 +0300 Subject: [PATCH 163/175] none of the encrypted devices are listed if no drives are decrypted already (#1338) The part ``` for open in $decrypted; do [ "$uuid" = "$open" ] && break 1 done ``` exits with `0` if the variable `$decrypted` is empty, causing none of the encrypted devices to be put into the `$unopenedluks` variable. This commit fixes this problem. --- .local/bin/mounter | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/mounter b/.local/bin/mounter index b532e08f..756d04db 100755 --- a/.local/bin/mounter +++ b/.local/bin/mounter @@ -36,7 +36,7 @@ filter() { sed "s/ /:/g" | awk -F':' '$7==""{printf "%s%s (%s) %s\n",$1,$3,$5,$6 unopenedluks="$(for drive in $allluks; do uuid="${drive%% *}" uuid="${uuid//-}" # This is a bashism. - for open in $decrypted; do + [ -n "$decrypted" ] && for open in $decrypted; do [ "$uuid" = "$open" ] && break 1 done && continue 1 echo "๐Ÿ”’ $drive" From ca8cb1f6a7513e52b112b99a686844a587cebd89 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Fri, 27 Oct 2023 18:58:40 +0000 Subject: [PATCH 164/175] Update sb-mailbox in statusbar on closing neomutt (#1329) --- .local/bin/statusbar/sb-mailbox | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/statusbar/sb-mailbox b/.local/bin/statusbar/sb-mailbox index 2132184c..88522f25 100755 --- a/.local/bin/statusbar/sb-mailbox +++ b/.local/bin/statusbar/sb-mailbox @@ -4,7 +4,7 @@ # When clicked, brings up `neomutt`. case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e neomutt ;; + 1) setsid -w -f "$TERMINAL" -e neomutt; pkill -RTMIN+12 "${STATUSBAR:-dwmblocks}" ;; 2) setsid -f mw -Y >/dev/null ;; 3) notify-send "๐Ÿ“ฌ Mail module" "\- Shows unread mail - Shows ๐Ÿ”ƒ if syncing mail From 1e3adf9c03b2e563e81a13d6907ffd5ca20b887a Mon Sep 17 00:00:00 2001 From: Lalle <29478339+LalleSX@users.noreply.github.com> Date: Fri, 27 Oct 2023 21:42:32 +0200 Subject: [PATCH 165/175] Launch dwm in a dbus session (#1340) * Launch dwm in a dbus session * Add ssh-agent * Update dbus env * Update xprofile --- .config/x11/xinitrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.config/x11/xinitrc b/.config/x11/xinitrc index 2debc017..e99da8cc 100755 --- a/.config/x11/xinitrc +++ b/.config/x11/xinitrc @@ -13,5 +13,6 @@ if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/x11/xprofile" ]; then else . "$HOME/.xprofile" fi - +# Activate dbus variables +dbus-update-activation-environment --all ssh-agent dwm From 6ba48b27339d47732519476333712bb4b2cde87f Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Sat, 28 Oct 2023 08:41:26 -0400 Subject: [PATCH 166/175] fix #1366 --- .config/{sxiv => nsxiv}/exec/key-handler | 0 .config/sxiv | 1 + 2 files changed, 1 insertion(+) rename .config/{sxiv => nsxiv}/exec/key-handler (100%) create mode 120000 .config/sxiv diff --git a/.config/sxiv/exec/key-handler b/.config/nsxiv/exec/key-handler similarity index 100% rename from .config/sxiv/exec/key-handler rename to .config/nsxiv/exec/key-handler diff --git a/.config/sxiv b/.config/sxiv new file mode 120000 index 00000000..42529649 --- /dev/null +++ b/.config/sxiv @@ -0,0 +1 @@ +nsxiv \ No newline at end of file From ea3e1e14cc49d68c9900fb05d9ee7bb9e719688e Mon Sep 17 00:00:00 2001 From: Joey-Pepperoni <91891926+Joey-Pepperoni@users.noreply.github.com> Date: Sun, 29 Oct 2023 07:21:47 -0500 Subject: [PATCH 167/175] Update sb-music (#1367) The s/\\&/&/g operation only effect is to add "amp;" after any ampersand in the artist or song name. "&" displays just fine anyways, so there's no reason to include an operation to replace it. --- .local/bin/statusbar/sb-music | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/statusbar/sb-music b/.local/bin/statusbar/sb-music index d164b4be..266b9160 100755 --- a/.local/bin/statusbar/sb-music +++ b/.local/bin/statusbar/sb-music @@ -1,6 +1,6 @@ #!/bin/sh -filter() { sed "/^volume:/d;s/\\&/&/g;s/\\[paused\\].*/โธ/g;/\\[playing\\].*/d;/^ERROR/Q" | paste -sd ' ' -;} +filter() { sed "/^volume:/d;s/\\[paused\\].*/โธ/g;/\\[playing\\].*/d;/^ERROR/Q" | paste -sd ' ' -;} pidof -x sb-mpdup >/dev/null 2>&1 || sb-mpdup >/dev/null 2>&1 & From 031938a792ac3107a512e89504929ef9e3e8ed6a Mon Sep 17 00:00:00 2001 From: Dominik Date: Sat, 4 Nov 2023 13:33:18 +0100 Subject: [PATCH 168/175] Update dmenurecord (#1370) --- .local/bin/dmenurecord | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.local/bin/dmenurecord b/.local/bin/dmenurecord index 990b7b3c..ca6b0117 100755 --- a/.local/bin/dmenurecord +++ b/.local/bin/dmenurecord @@ -9,7 +9,7 @@ # # If there is already a running instance, user will be prompted to end it. -getdim() { xrandr | sed -n "s/\s*\([0-9]\+x[0-9]\+\).*\*.*/\1/p" ;} +getdim() { xrandr | grep -oP '(?<=current ).*(?=,)' | tr -d ' ' ;} updateicon() { \ echo "$1" > /tmp/recordingicon From 50e72a1a0306d4343360b31f941ef73b4c2e8ba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emre=20AKY=C3=9CZ?= Date: Mon, 13 Nov 2023 16:30:08 +0300 Subject: [PATCH 169/175] An unnecessary(?), small improvement for lf mkdir command (#1372) The new method is more robust and better handles directory names with spaces and special characters. It's more minimal. --- .config/lf/lfrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index e104591b..e783d728 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -50,7 +50,7 @@ cmd open ${{ esac }} -cmd mkdir $mkdir -p "$(echo $* | tr ' ' '\ ')" +cmd mkdir $mkdir -p "$@" cmd extract ${{ clear; tput cup $(($(tput lines)/3)); tput bold @@ -139,7 +139,7 @@ map D delete map E extract map C copyto map M moveto -map push :mkdir +map push :mkdir"" map reload map set hidden! map shell From 0db54f96180c312bcefb7931632d5f8005e0772b Mon Sep 17 00:00:00 2001 From: thirtysix <109920169+thirtysixpw@users.noreply.github.com> Date: Wed, 15 Nov 2023 04:34:29 +0300 Subject: [PATCH 170/175] Fix pdf and plain text previws in lf (#1369) * Fix pdf and plain text previws in lf Pdf previws don't appear because are generated with wrong filename. Plain text previws with `bat` don't respect terminal theme and have annoying border. * Revert pdf cache filename to work properly --- .config/lf/scope | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.config/lf/scope b/.config/lf/scope index cc556697..16fca21e 100755 --- a/.config/lf/scope +++ b/.config/lf/scope @@ -13,10 +13,6 @@ image() { fi } -ifub() { - [ -n "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ] && command -V ueberzug >/dev/null 2>&1 -} - # Note that the cache file name is a function of file information, meaning if # an image appears in multiple places across the machine, it will not have to # be regenerated once seen. @@ -32,7 +28,7 @@ case "$(file --dereference --brief --mime-type -- "$1")" in image/*) image "$1" "$2" "$3" "$4" "$5" "$1" ;; text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;; text/troff) man ./ "$1" | col -b ;; - text/* | */xml | application/json | application/x-ndjson) bat --terminal-width "$(($4-2))" -f "$1" ;; + text/* | */xml | application/json | application/x-ndjson) bat -p --theme ansi --terminal-width "$(($4-2))" -f "$1" ;; audio/* | application/octet-stream) mediainfo "$1" || exit 1 ;; video/* ) CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)" From 52fab9d50a898cf1818fffdc1eacb46e336c0eac Mon Sep 17 00:00:00 2001 From: thirtysix <109920169+thirtysixpw@users.noreply.github.com> Date: Wed, 15 Nov 2023 04:35:14 +0300 Subject: [PATCH 171/175] Make shell profile POSIX, remove unnecessary variable fallbacks (#1368) --- .config/shell/profile | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/.config/shell/profile b/.config/shell/profile index 55089430..872e312a 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -1,14 +1,12 @@ -#!/bin/zsh +#!/bin/sh +# shellcheck disable=SC2155 -# profile file. Runs on login. Environmental variables are set here. +# Profile file, runs on login. Environmental variables are set here. -# If you don't plan on reverting to bash, you can remove the link in ~/.profile -# to clean up. +# Add all directories in `~/.local/bin` to $PATH +export PATH="$PATH:$(find ~/.local/bin -type d | paste -sd ':' -)" -# Adds `~/.local/bin` to $PATH -export PATH="$PATH:${$(find ~/.local/bin -type d -printf %p:)%%:}" - -unsetopt PROMPT_SP +unsetopt PROMPT_SP 2>/dev/null # Default programs: export EDITOR="nvim" @@ -52,7 +50,7 @@ export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history" export DICS="/usr/share/stardict/dic/" export SUDO_ASKPASS="$HOME/.local/bin/dmenupass" export FZF_DEFAULT_OPTS="--layout=reverse --height 40%" -export LESS=-R +export LESS="R" export LESS_TERMCAP_mb="$(printf '%b' '')" export LESS_TERMCAP_md="$(printf '%b' '')" export LESS_TERMCAP_me="$(printf '%b' '')" @@ -61,15 +59,15 @@ export LESS_TERMCAP_se="$(printf '%b' '')" export LESS_TERMCAP_us="$(printf '%b' '')" export LESS_TERMCAP_ue="$(printf '%b' '')" export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null" -export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme. -export MOZ_USE_XINPUT2="1" # Mozilla smooth scrolling/touchpads. +export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme. +export MOZ_USE_XINPUT2=1 # Mozilla smooth scrolling/touchpads. export AWT_TOOLKIT="MToolkit wmname LG3D" # May have to install wmname -export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm +export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm -[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1 +[ ! -f "$XDG_CONFIG_HOME/shell/shortcutrc" ] && setsid -f shortcuts >/dev/null 2>&1 # Start graphical server on user's current tty if not already running. [ "$(tty)" = "/dev/tty1" ] && ! pidof -s Xorg >/dev/null 2>&1 && exec startx "$XINITRC" # Switch escape and caps if tty and no passwd required: -sudo -n loadkeys ${XDG_DATA_HOME:-$HOME/.local/share}/larbs/ttymaps.kmap 2>/dev/null +sudo -n loadkeys "$XDG_DATA_HOME/larbs/ttymaps.kmap" 2>/dev/null From bbcbac64faac20b2aaa0ac9293af6577b176a6d4 Mon Sep 17 00:00:00 2001 From: appeasementPolitik <108810900+appeasementPolitik@users.noreply.github.com> Date: Wed, 15 Nov 2023 01:35:53 +0000 Subject: [PATCH 172/175] Fix unsupported characters in vim-airline (#1317) --- .config/nvim/init.vim | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 5b0bd4e7..8346777b 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -67,6 +67,14 @@ set noshowcmd nm i :call ToggleIPA() imap i :call ToggleIPA()a nm q :call ToggleProse() + +" vim-airline + if !exists('g:airline_symbols') + let g:airline_symbols = {} + endif + let g:airline_symbols.colnr = ' C:' + let g:airline_symbols.linenr = ' L:' + let g:airline_symbols.maxlinenr = 'โ˜ฐ ' " Shortcutting split navigation, saving a keypress: map h From 07952026753f1bbeaf5b6c4eb5414a9c51536041 Mon Sep 17 00:00:00 2001 From: Luciano Date: Tue, 14 Nov 2023 22:37:39 -0300 Subject: [PATCH 173/175] lf-scope: adds SVG preview creating cache. (#1360) --- .config/lf/scope | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.config/lf/scope b/.config/lf/scope index 16fca21e..8265a879 100755 --- a/.config/lf/scope +++ b/.config/lf/scope @@ -25,6 +25,11 @@ case "$(file --dereference --brief --mime-type -- "$1")" in CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)" [ ! -f "$CACHE" ] && djvused "$1" -e 'select 1; save-page-with /dev/stdout' | convert -density 200 - "$CACHE.jpg" > /dev/null 2>&1 image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1" ;; +image/svg+xml) + CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)" + [ ! -f "$CACHE" ] && inkscape --convert-dpi-method=none -o "$CACHE.png" --export-overwrite -D --export-png-color-mode=RGBA_16 "$1" + image "$CACHE.png" "$2" "$3" "$4" "$5" "$1" + ;; image/*) image "$1" "$2" "$3" "$4" "$5" "$1" ;; text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;; text/troff) man ./ "$1" | col -b ;; From 7a96fb100cf385e05c211937b509d2bf166299e6 Mon Sep 17 00:00:00 2001 From: Jameson <108906685+2084x@users.noreply.github.com> Date: Sun, 31 Dec 2023 04:04:51 +1100 Subject: [PATCH 174/175] script fixes (#1386) * fix typo in lfub * use setsid when editing scripts * fix immediate exit on middle click --------- Co-authored-by: 2084x <2084x@noreply.codeberg.org> --- .local/bin/lfub | 2 +- .local/bin/statusbar/sb-battery | 2 +- .local/bin/statusbar/sb-clock | 2 +- .local/bin/statusbar/sb-cpu | 2 +- .local/bin/statusbar/sb-cpubars | 2 +- .local/bin/statusbar/sb-disk | 2 +- .local/bin/statusbar/sb-doppler | 2 +- .local/bin/statusbar/sb-forecast | 2 +- .local/bin/statusbar/sb-help-icon | 2 +- .local/bin/statusbar/sb-internet | 2 +- .local/bin/statusbar/sb-kbselect | 2 +- .local/bin/statusbar/sb-mailbox | 2 +- .local/bin/statusbar/sb-memory | 2 +- .local/bin/statusbar/sb-moonphase | 2 +- .local/bin/statusbar/sb-music | 2 +- .local/bin/statusbar/sb-nettraf | 2 +- .local/bin/statusbar/sb-news | 4 ++-- .local/bin/statusbar/sb-pacpackages | 2 +- .local/bin/statusbar/sb-price | 2 +- .local/bin/statusbar/sb-tasks | 2 +- .local/bin/statusbar/sb-torrent | 2 +- .local/bin/statusbar/sb-volume | 2 +- 22 files changed, 23 insertions(+), 23 deletions(-) diff --git a/.local/bin/lfub b/.local/bin/lfub index 9012f506..f9bb2df9 100755 --- a/.local/bin/lfub +++ b/.local/bin/lfub @@ -1,6 +1,6 @@ #!/bin/sh -# This is a wrapper script for lb that allows it to create image previews with +# This is a wrapper script for lf that allows it to create image previews with # ueberzug. This works in concert with the lf configuration file and the # lf-cleaner script. diff --git a/.local/bin/statusbar/sb-battery b/.local/bin/statusbar/sb-battery index 93cbe088..79030bcc 100755 --- a/.local/bin/statusbar/sb-battery +++ b/.local/bin/statusbar/sb-battery @@ -13,7 +13,7 @@ case $BLOCK_BUTTON in - Scroll to change adjust xbacklight." ;; 4) xbacklight -inc 10 ;; 5) xbacklight -dec 10 ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac # Loop through all attached batteries and format the info diff --git a/.local/bin/statusbar/sb-clock b/.local/bin/statusbar/sb-clock index 93f8aea9..ac12aac1 100755 --- a/.local/bin/statusbar/sb-clock +++ b/.local/bin/statusbar/sb-clock @@ -23,7 +23,7 @@ case $BLOCK_BUTTON in 2) setsid -f "$TERMINAL" -e calcurse ;; 3) notify-send "๐Ÿ“… Time/date module" "\- Left click to show upcoming appointments for the next three days via \`calcurse -d3\` and show the month via \`cal\` - Middle click opens calcurse if installed" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac date "+%Y %b %d (%a) $icon%I:%M%p" diff --git a/.local/bin/statusbar/sb-cpu b/.local/bin/statusbar/sb-cpu index 1572b527..5b8fb933 100755 --- a/.local/bin/statusbar/sb-cpu +++ b/.local/bin/statusbar/sb-cpu @@ -6,7 +6,7 @@ case $BLOCK_BUTTON in 3) notify-send "๐Ÿ–ฅ CPU module " "\- Shows CPU temperature. - Click to show intensive processes. - Middle click to open htop." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac sensors | awk '/Core 0/ {print "๐ŸŒก" $3}' diff --git a/.local/bin/statusbar/sb-cpubars b/.local/bin/statusbar/sb-cpubars index 297424e7..40158934 100755 --- a/.local/bin/statusbar/sb-cpubars +++ b/.local/bin/statusbar/sb-cpubars @@ -12,7 +12,7 @@ case $BLOCK_BUTTON in 2) setsid -f "$TERMINAL" -e htop ;; 3) notify-send "๐Ÿชจ CPU load module" "Each bar represents one CPU core";; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac # id total idle diff --git a/.local/bin/statusbar/sb-disk b/.local/bin/statusbar/sb-disk index e947509d..7f3ff798 100755 --- a/.local/bin/statusbar/sb-disk +++ b/.local/bin/statusbar/sb-disk @@ -11,7 +11,7 @@ case $BLOCK_BUTTON in 1) notify-send "๐Ÿ’ฝ Disk space" "$(df -h --output=target,used,size)" ;; 3) notify-send "๐Ÿ’ฝ Disk module" "\- Shows used hard drive space. - Click to show all disk info." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac case "$location" in diff --git a/.local/bin/statusbar/sb-doppler b/.local/bin/statusbar/sb-doppler index f58b744e..a687c681 100755 --- a/.local/bin/statusbar/sb-doppler +++ b/.local/bin/statusbar/sb-doppler @@ -274,7 +274,7 @@ case $BLOCK_BUTTON in 3) notify-send "๐Ÿ—บ๏ธ Doppler RADAR module" "\- Left click for local Doppler RADAR. - Middle click to update RADAR location. After $secs seconds, new clicks will also automatically update the doppler RADAR." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac echo ๐ŸŒ… diff --git a/.local/bin/statusbar/sb-forecast b/.local/bin/statusbar/sb-forecast index d8a16aad..52256019 100755 --- a/.local/bin/statusbar/sb-forecast +++ b/.local/bin/statusbar/sb-forecast @@ -45,7 +45,7 @@ case $BLOCK_BUTTON in โ˜”: Chance of rain/snow ๐Ÿฅถ: Daily low ๐ŸŒž: Daily high" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac checkforecast || getforecast diff --git a/.local/bin/statusbar/sb-help-icon b/.local/bin/statusbar/sb-help-icon index 8fa4a52c..8372e6f8 100755 --- a/.local/bin/statusbar/sb-help-icon +++ b/.local/bin/statusbar/sb-help-icon @@ -13,5 +13,5 @@ case $BLOCK_BUTTON in 2) restartwm ;; 3) notify-send "โ“ Help module" "\- Left click to open LARBS guide. - Middle click to refresh window manager." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac; echo "โ“" diff --git a/.local/bin/statusbar/sb-internet b/.local/bin/statusbar/sb-internet index 5440a52d..6d0c5133 100755 --- a/.local/bin/statusbar/sb-internet +++ b/.local/bin/statusbar/sb-internet @@ -14,7 +14,7 @@ case $BLOCK_BUTTON in ๐ŸŒ: ethernet working ๐Ÿ”’: vpn is active " ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac # Wifi diff --git a/.local/bin/statusbar/sb-kbselect b/.local/bin/statusbar/sb-kbselect index ab2140c3..df455c14 100755 --- a/.local/bin/statusbar/sb-kbselect +++ b/.local/bin/statusbar/sb-kbselect @@ -11,7 +11,7 @@ case $BLOCK_BUTTON in pkill -RTMIN+30 "${STATUSBAR:-dwmblocks}";; 3) notify-send "โŒจ Keyboard/language module" "$(printf "%s" "\- Current layout: $(setxkbmap -query | grep -oP 'layout:\s*\K\w+')") - Left click to change keyboard.";; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac echo "$kb" diff --git a/.local/bin/statusbar/sb-mailbox b/.local/bin/statusbar/sb-mailbox index 88522f25..7483aa48 100755 --- a/.local/bin/statusbar/sb-mailbox +++ b/.local/bin/statusbar/sb-mailbox @@ -10,7 +10,7 @@ case $BLOCK_BUTTON in - Shows ๐Ÿ”ƒ if syncing mail - Left click opens neomutt - Middle click syncs mail" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac unread="$(find "${XDG_DATA_HOME:-$HOME/.local/share}"/mail/*/[Ii][Nn][Bb][Oo][Xx]/new/* -type f | wc -l 2>/dev/null)" diff --git a/.local/bin/statusbar/sb-memory b/.local/bin/statusbar/sb-memory index 01d3daf9..8178b10b 100755 --- a/.local/bin/statusbar/sb-memory +++ b/.local/bin/statusbar/sb-memory @@ -6,7 +6,7 @@ case $BLOCK_BUTTON in 3) notify-send "๐Ÿง  Memory module" "\- Shows Memory Used/Total. - Click to show memory hogs. - Middle click to open htop." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac free --mebi | sed -n '2{p;q}' | awk '{printf ("๐Ÿง %2.2fGiB/%2.2fGiB\n", ( $3 / 1024), ($2 / 1024))}' diff --git a/.local/bin/statusbar/sb-moonphase b/.local/bin/statusbar/sb-moonphase index 99adaee8..d496ae22 100755 --- a/.local/bin/statusbar/sb-moonphase +++ b/.local/bin/statusbar/sb-moonphase @@ -33,5 +33,5 @@ case $BLOCK_BUTTON in - ๐ŸŒ–: Waning Gibbous - ๐ŸŒ—: Last Quarter - ๐ŸŒ˜: Waning Crescent" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac diff --git a/.local/bin/statusbar/sb-music b/.local/bin/statusbar/sb-music index 266b9160..6734eeb7 100755 --- a/.local/bin/statusbar/sb-music +++ b/.local/bin/statusbar/sb-music @@ -14,6 +14,6 @@ case $BLOCK_BUTTON in - Scroll changes track.";; # right click, pause/unpause 4) mpc prev | filter ;; # scroll up, previous 5) mpc next | filter ;; # scroll down, next - 6) mpc status | filter ; "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) mpc status | filter ; setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; *) mpc status | filter ;; esac diff --git a/.local/bin/statusbar/sb-nettraf b/.local/bin/statusbar/sb-nettraf index 178f6773..08cb8299 100755 --- a/.local/bin/statusbar/sb-nettraf +++ b/.local/bin/statusbar/sb-nettraf @@ -8,7 +8,7 @@ case $BLOCK_BUTTON in 1) setsid -f "$TERMINAL" -e bmon ;; 3) notify-send "๐ŸŒ Network traffic module" "๐Ÿ”ป: Traffic received ๐Ÿ”บ: Traffic transmitted" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac update() { diff --git a/.local/bin/statusbar/sb-news b/.local/bin/statusbar/sb-news index fe701db6..cc481e1e 100755 --- a/.local/bin/statusbar/sb-news +++ b/.local/bin/statusbar/sb-news @@ -5,13 +5,13 @@ case $BLOCK_BUTTON in 1) setsid "$TERMINAL" -e newsboat ;; - 2) setsid -f newsup >/dev/null exit ;; + 2) setsid -f newsup >/dev/null && exit ;; 3) notify-send "๐Ÿ“ฐ News module" "\- Shows unread news items - Shows ๐Ÿ”ƒ if updating with \`newsup\` - Left click opens newsboat - Middle click syncs RSS feeds Note: Only one instance of newsboat (including updates) may be running at a time." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac cat /tmp/newsupdate 2>/dev/null || echo "$(newsboat -x print-unread | awk '{ if($1>0) print "๐Ÿ“ฐ" $1}')$(cat "${XDG_CONFIG_HOME:-$HOME/.config}"/newsboat/.update 2>/dev/null)" diff --git a/.local/bin/statusbar/sb-pacpackages b/.local/bin/statusbar/sb-pacpackages index 37ebed32..6acdce68 100755 --- a/.local/bin/statusbar/sb-pacpackages +++ b/.local/bin/statusbar/sb-pacpackages @@ -23,7 +23,7 @@ case $BLOCK_BUTTON in 3) notify-send "๐ŸŽ Upgrade module" "๐Ÿ“ฆ: number of upgradable packages - Left click to upgrade packages - Middle click to show upgradable packages" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac pacman -Qu | grep -Fcv "[ignored]" | sed "s/^/๐Ÿ“ฆ/;s/^๐Ÿ“ฆ0$//g" diff --git a/.local/bin/statusbar/sb-price b/.local/bin/statusbar/sb-price index f95c8152..611ec36f 100755 --- a/.local/bin/statusbar/sb-price +++ b/.local/bin/statusbar/sb-price @@ -44,7 +44,7 @@ case $BLOCK_BUTTON in - Shows ๐Ÿ”ƒ if updating prices. - Last updated: $uptime" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac [ -n "$updateme" ] && diff --git a/.local/bin/statusbar/sb-tasks b/.local/bin/statusbar/sb-tasks index 586300ee..4beb2d09 100755 --- a/.local/bin/statusbar/sb-tasks +++ b/.local/bin/statusbar/sb-tasks @@ -13,7 +13,7 @@ case $BLOCK_BUTTON in 1) setsid -f "$TERMINAL" -e tsp -l ;; 3) notify-send "Tasks module" "๐Ÿค–: number of running/queued background tasks - Left click opens tsp" ;; # Right click - 2) $EDITOR "$0" ;; # Middle click + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac [ "$num" != "0(0)" ] && diff --git a/.local/bin/statusbar/sb-torrent b/.local/bin/statusbar/sb-torrent index 08c9173c..493631bc 100755 --- a/.local/bin/statusbar/sb-torrent +++ b/.local/bin/statusbar/sb-torrent @@ -23,5 +23,5 @@ Module shows number of torrents: ๐Ÿ”ฝ: downloading โœ…: done ๐ŸŒฑ: done and seeding" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac diff --git a/.local/bin/statusbar/sb-volume b/.local/bin/statusbar/sb-volume index fa0abcd5..e66dea77 100755 --- a/.local/bin/statusbar/sb-volume +++ b/.local/bin/statusbar/sb-volume @@ -10,7 +10,7 @@ case $BLOCK_BUTTON in 3) notify-send "๐Ÿ“ข Volume module" "\- Shows volume ๐Ÿ”Š, ๐Ÿ”‡ if muted. - Middle click to mute. - Scroll to change." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; + 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac vol="$(wpctl get-volume @DEFAULT_AUDIO_SINK@)" From cf4a12acb3a70951fd59d67e0738bf3ab2d1045c Mon Sep 17 00:00:00 2001 From: ewof Date: Thu, 28 Mar 2024 09:13:34 -0400 Subject: [PATCH 175/175] Update xinitrc (#1402) --- .config/x11/xinitrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/x11/xinitrc b/.config/x11/xinitrc index e99da8cc..b183f251 100755 --- a/.config/x11/xinitrc +++ b/.config/x11/xinitrc @@ -15,4 +15,4 @@ else fi # Activate dbus variables dbus-update-activation-environment --all -ssh-agent dwm +dbus-launch ssh-agent dwm