summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ar/.config/fontconfig/fonts.conf42
-rw-r--r--ar/.config/glove80/04d0bf0b-a700-4292-98bd-bfce72b88109_v25.01_Glorious Engrammer v41.uf2bin0 -> 1046528 bytes
-rw-r--r--ar/.config/glove80/32067f44-9158-4501-8cb4-fc3830e660f5_community.pr36.per-key-rgb+20250106120812_Glorious Engrammer v41.uf2bin1146368 -> 0 bytes
-rw-r--r--ar/.config/glove80/9a7b1fa3-1a4f-4b8a-80bc-e1fde55550e4_v25.01_Glorious Engrammer v41.uf2bin0 -> 1046528 bytes
-rw-r--r--ar/.config/lf/lfrc23
-rw-r--r--ar/.config/mpv/input.conf6
-rwxr-xr-xar/.local/bin/mounter4
-rwxr-xr-xar/.local/bin/mpvplay26
-rwxr-xr-xar/.local/bin/sd2
-rwxr-xr-xar/.local/bin/setfirmware7
-rwxr-xr-xar/.local/bin/statusbar/sb-music47
-rwxr-xr-xar/.local/bin/statusbar/sb-repos4
-rwxr-xr-xar/.local/bin/statusbar/sb-volume4
13 files changed, 88 insertions, 77 deletions
diff --git a/ar/.config/fontconfig/fonts.conf b/ar/.config/fontconfig/fonts.conf
index 46cb9c6..935549d 100644
--- a/ar/.config/fontconfig/fonts.conf
+++ b/ar/.config/fontconfig/fonts.conf
@@ -41,30 +41,30 @@
<family>monospace</family>
<prefer>
<family>Noto Sans Mono</family>
- <family>Noto Sans Mono CJK KR</family>
+ <family>Noto Sans Mono CJK KR</family>
<family>Libertinus Mono</family>
<family>FontAwesome</family>
<family>Braille</family>
</prefer>
</alias>
- <alias>
- <family>nerdmono</family>
- <prefer>
- <family>D2CodingLigature Nerd Font Mono</family>
- <family>Hack Nerd Font Mono</family>
- <family>Libertinus Mono</family>
- <family>FontAwesome</family>
- <family>Braille</family>
- </prefer>
- </alias>
- <alias>
- <family>ko</family>
- <prefer>
- <family>Noto Sans CJK KR</family>
- <family>D2CodingLigature Nerd Font</family>
- <family>Libertinus</family>
- <family>FontAwesome</family>
- <family>Braille</family>
- </prefer>
- </alias>
+ <alias>
+ <family>nerdmono</family>
+ <prefer>
+ <family>D2CodingLigature Nerd Font Mono</family>
+ <family>Hack Nerd Font Mono</family>
+ <family>Libertinus Mono</family>
+ <family>FontAwesome</family>
+ <family>Braille</family>
+ </prefer>
+ </alias>
+ <alias>
+ <family>ko</family>
+ <prefer>
+ <family>Noto Sans CJK KR</family>
+ <family>D2CodingLigature Nerd Font</family>
+ <family>Libertinus</family>
+ <family>FontAwesome</family>
+ <family>Braille</family>
+ </prefer>
+ </alias>
</fontconfig>
diff --git a/ar/.config/glove80/04d0bf0b-a700-4292-98bd-bfce72b88109_v25.01_Glorious Engrammer v41.uf2 b/ar/.config/glove80/04d0bf0b-a700-4292-98bd-bfce72b88109_v25.01_Glorious Engrammer v41.uf2
new file mode 100644
index 0000000..10d06e3
--- /dev/null
+++ b/ar/.config/glove80/04d0bf0b-a700-4292-98bd-bfce72b88109_v25.01_Glorious Engrammer v41.uf2
Binary files differ
diff --git a/ar/.config/glove80/32067f44-9158-4501-8cb4-fc3830e660f5_community.pr36.per-key-rgb+20250106120812_Glorious Engrammer v41.uf2 b/ar/.config/glove80/32067f44-9158-4501-8cb4-fc3830e660f5_community.pr36.per-key-rgb+20250106120812_Glorious Engrammer v41.uf2
deleted file mode 100644
index 92ff729..0000000
--- a/ar/.config/glove80/32067f44-9158-4501-8cb4-fc3830e660f5_community.pr36.per-key-rgb+20250106120812_Glorious Engrammer v41.uf2
+++ /dev/null
Binary files differ
diff --git a/ar/.config/glove80/9a7b1fa3-1a4f-4b8a-80bc-e1fde55550e4_v25.01_Glorious Engrammer v41.uf2 b/ar/.config/glove80/9a7b1fa3-1a4f-4b8a-80bc-e1fde55550e4_v25.01_Glorious Engrammer v41.uf2
new file mode 100644
index 0000000..a1b1c44
--- /dev/null
+++ b/ar/.config/glove80/9a7b1fa3-1a4f-4b8a-80bc-e1fde55550e4_v25.01_Glorious Engrammer v41.uf2
Binary files differ
diff --git a/ar/.config/lf/lfrc b/ar/.config/lf/lfrc
index 9d56fb4..207da85 100644
--- a/ar/.config/lf/lfrc
+++ b/ar/.config/lf/lfrc
@@ -261,6 +261,8 @@ cmd mpvdir ${{
done
[ -n "$1" ] && setsid -f mpv --really-quiet -- "$@"
fi
+
+ lf -remote "send $id unselect"
}}
# Open
@@ -292,7 +294,7 @@ cmd open ${{
text/html|text/xml) lynx $fx;;
text/troff) groff -mom $fx -Tpdf | zathura - ;;
text/*|application/json|inode/x-empty|application/x-subrip) $EDITOR $fx;;
- video/*) setsid -f mpv $f -quiet >/dev/null 2>&1 ;;
+ video/*) setsid -f mpv -quiet $f >/dev/null 2>&1 ;;
*) for f in $fx; do setsid -f $OPENER $f >/dev/null 2>&1; done;;
esac
}}
@@ -400,7 +402,8 @@ cmd alt-paste &{{
read root
[ $root = "y" ] && sudo lf -remote "send $id paste"
}
- lf -remote "send $id :clear; reload"
+
+ lf -remote "send $id :clear"
}}
# Traversal
@@ -476,17 +479,17 @@ source ~/.config/lf/shortcutrc
map zx chmods
# Clear && Unselect
-map <c-l> :clear; unselect
+map <c-l> :clear; unselect; save-select
# Compress
map C compress
# Copy
# map yy %cp -ri -- $fs .; clear
-map Y $printf "%s" "$fx" | xclip -selection clipboard; clear
+map Y $printf "%s" "$fx" | xclip -selection clipboard; clear; save-select
map yb yank-basename
map yd yank-dirname
-map ye copyto; clear
+map ye copyto; clear; save-select
map yl $printf "%s" "$fx" | sed -E 's/^.+\[/https:\/\/piped.video\/watch?v=/' | sed -E 's/\]\..+//' | xclip -selection clipboard
map yn yank-basename-without-extension
map yp yank-path
@@ -503,8 +506,8 @@ map dd cut-add
map dr cut-remove
# Delete
-map D trash; clear
-map <delete> delete; clear
+map D trash; clear; save-select
+map <delete> delete; clear; save-select
# Editor
map <enter> $$EDITOR "$f"
@@ -514,16 +517,16 @@ map vll lastnvim
map vln $$EDITOR "$(nvim -u NONE --headless +'lua io.write(vim.v.oldfiles[1] .. "\n")' +qa)"
# Extract
-map E extract; clear
+map E extract; clear; save-select
# iPython
map Mi create-ipynb
# Move
-map Mt moveto; clear
+map Mt moveto; clear; save-select
# MPV
-map Mpv mpvdir; unselect
+map Mpv mpvdir
# Nsxiv
map th $nsxiv -apt "$(pwd)"
diff --git a/ar/.config/mpv/input.conf b/ar/.config/mpv/input.conf
index 13725fd..a2cb715 100644
--- a/ar/.config/mpv/input.conf
+++ b/ar/.config/mpv/input.conf
@@ -19,13 +19,13 @@ ctrl+a no-osd seek -180 exact; script-message-to misc show-position
shift+a no-osd seek -30 exact; script-message-to misc show-position # Seek exactly 30 second backward
v script-binding showplaylist # Playlist in current path
shift+v script-binding navigator # Playlist in all path
-alt+v vf toggle vflip # Flip vertically
+alt+v vf toggle vflip # Flip vertically
c no-osd seek 15 exact; script-message-to misc show-position # Seek exactly 5 seconds forward
-ctrl+c no-osd seek -300 exact; script-message-to misc show-position # Seek exactly 180 second backward
+ctrl+c no-osd seek 300 exact; script-message-to misc show-position # Seek exactly 300 second backward
shift+c no-osd seek 60 exact; script-message-to misc show-position # Seek exactly 5 seconds forward
alt+c add video-zoom 0.1 # Zoom in
z no-osd seek -15 exact; script-message-to misc show-position # Seek exactly 5 seconds backward
-ctrl+z no-osd seek 300 exact; script-message-to misc show-position # Seek exactly 180 second backward
+ctrl+z no-osd seek -300 exact; script-message-to misc show-position # Seek exactly 300 second backward
shift+z no-osd seek -60 exact; script-message-to misc show-position # Seek exactly 5 seconds backward
alt+z add video-zoom -0.1 # Zoom out
q no-osd sub-seek -1 # Seek to the previous subtitle
diff --git a/ar/.local/bin/mounter b/ar/.local/bin/mounter
index b69dac8..46fd071 100755
--- a/ar/.local/bin/mounter
+++ b/ar/.local/bin/mounter
@@ -99,11 +99,11 @@ EOF
mac=$(
smbclient -L "$smbip" -U% -A /dev/stdin <<EOF 2>/dev/null | awk '/Disk/ {print $1}' | grep -vEi '(ADMIN|\w)\$|Macintosh'
username=$(whoami)
-password=$(pass show default/default)
+password=$(pass show default/mac)
EOF
)
smb=$(
- smbclient -L "$smbip" -U% -A /dev/stdin <<EOF 2>/dev/null | awk '/Disk/ {print $1}' | grep -vEi '(ADMIN|\w)\$'
+ smbclient -L "$smbip" -U% -A /dev/stdin <<EOF 2>/dev/null | awk '/Disk/ {print $1}' | grep -vEi '(ADMIN|\w)\$|Macintosh'
username=$(whoami)
password=$(pass show default/default)
EOF
diff --git a/ar/.local/bin/mpvplay b/ar/.local/bin/mpvplay
index 32d229f..2742099 100755
--- a/ar/.local/bin/mpvplay
+++ b/ar/.local/bin/mpvplay
@@ -7,18 +7,26 @@ check_mount() { findmnt "$HOME/Private" >/dev/null || $MOUNT_SCRIPT; }
check_unmount() { findmnt "$HOME/Private" >/dev/null && $MOUNT_SCRIPT; }
+loginurl() {
+ notify-send "🔑 Authentication required"
+ username="$(echo | dmenu -i -p "Enter a username:")"
+ password="$(echo | dmenu -i -P -p "Enter a password:")"
+ if [ -n "$username" ] && [ -n "$password" ]; then
+ mpv --ytdl-raw-options=username="$username",password="$password" "$url"
+ else
+ notify-send "❌ Failed to play $url" "❗ Check your username or password"
+ exit 1
+ fi
+}
+
play_url() {
url=$(xclip -selection clipboard -o)
[ -n "$url" ] && echo "$url" | grep -E '^https?://' >/dev/null || return 1
- notify-send "📽️ Playing video from URL:" "$url"
- if ! mpv "$url"; then
- notify-send "🔑 Authentication required"
- username="$(echo | dmenu -i -p "Enter a username:")"
- [ -z "$username" ] && exit 1
- password="$(echo | dmenu -i -P -p "Enter a password:")"
- [ -z "$password" ] && exit 1
- [ -n "$username" ] && [ -n "$password" ] && mpv --ytdl-raw-options=username="$username",password="$password" "$url" ||
- notify-send "❌ Failed to play $url" "❗ Check your username or password"
+ if yt-dlp --simulate --dump-json "$url" >/dev/null 2>&1; then
+ mpv "$url"
+ notify-send "📽️ Playing video from URL:" "$url"
+ else
+ loginurl
fi
}
diff --git a/ar/.local/bin/sd b/ar/.local/bin/sd
index 67b0d5a..8c6f6a4 100755
--- a/ar/.local/bin/sd
+++ b/ar/.local/bin/sd
@@ -6,7 +6,7 @@ windowPID=$(xprop -id "$(xprop -root | sed -n "/_NET_ACTIVE_WINDOW/ 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 ' ')")
+ process_group_leader=$(ps -o comm= -p "$(ps -o pgid= -p "$PID" | tr -d ' ')" 2>/dev/null)
cwd=$(readlink /proc/"$PID"/cwd)
# zsh and lf won't be ignored even if it shows ~ or /
case "$cmdline" in
diff --git a/ar/.local/bin/setfirmware b/ar/.local/bin/setfirmware
index 3914712..326d14b 100755
--- a/ar/.local/bin/setfirmware
+++ b/ar/.local/bin/setfirmware
@@ -7,15 +7,16 @@ echo "$drives"
drive="/dev/$drive"
printf "\n%s\n" "Target drive: $drive"
firmwarepath="${XDG_DOTFILES_DIR:-${HOME}/.dotfiles}/$(whereami)/.config/glove80"
-firmware="$(find "$firmwarepath" "${XDG_DOWNLOAD_DIR:-${HOME}/Downloads}" -type f -iname '*.uf2' | sort | fzf --prompt "Choose a firmware: ")"
+firmware="$(find "$firmwarepath" "${XDG_DOWNLOAD_DIR:-${HOME}/Downloads}" -type f -iname '*.uf2' -printf '%T@ %p\n' | sort -n | cut -d' ' -f2- | fzf --prompt "Choose a firmware: ")"
[ -f "$firmware" ] || exit
[ -f "$firmwarepath/$(basename "$firmware")" ] || mv "$firmware" "$firmwarepath/"
mp="/media/$USER/firmware"
[ -d "$mp" ] || mkdir -p "$mp"
sudo -A mount "$drive" "$mp"
-sudo -A cp "$firmware" "$mp/"
-[ -f "$firmware" ] || exit 1
+sudo -A cp "$firmwarepath/$(basename "$firmware")" "$mp/"
+[ -f "$firmwarepath/$(basename "$firmware")" ] || exit 1
ls -la "$mp"
+[ -f "$mp/$(basename "$firmware")" ] || exit 1
sudo -A umount "$mp"
[ -e "$mp" ] && [ ! -s "$mp" ] && sudo -A rm -rf "$mp" || exit 1
echo "Done!"
diff --git a/ar/.local/bin/statusbar/sb-music b/ar/.local/bin/statusbar/sb-music
index b0a911a..1134d12 100755
--- a/ar/.local/bin/statusbar/sb-music
+++ b/ar/.local/bin/statusbar/sb-music
@@ -1,8 +1,8 @@
#!/bin/bash
truncate_string() {
- local input="$1"
- local max_length="$2"
+ input="$1"
+ max_length="$2"
if [ "${#input}" -gt "$max_length" ]; then
echo "${input:0:$((max_length - 2))}.."
else
@@ -10,19 +10,24 @@ truncate_string() {
fi
}
-filter() {
+signal="$(awk -F', *' -v name="${0##*/}" '$2 ~ name {print $3+0}' "${XDG_SOURCES_HOME:-${HOME}/.local/src}/suckless/dwmblocks/config.def.h")"
+
+[ "$signal" -eq 0 ] && {
+ pidof -x sb-mpdup >/dev/null 2>&1 || sb-mpdup >/dev/null 2>&1 &
+}
+
+status() {
if ps -C mpd >/dev/null 2>&1; then
screen_width=$(xrandr | awk '/\*/ {split($1, res, "x"); print res[1]; exit}')
artist=$(mpc current -f %artist%)
title=$(mpc current -f %title%)
if [ "$screen_width" -le 2048 ]; then
- max_length=$((screen_width / 100))
+ length="$(grep 'MAX_BLOCK_OUTPUT_LENGTH' ~/.local/src/suckless/dwmblocks/config.def.h | awk '{print $3}')"
+ max_length="${length:+$((length / 3))}"
+ max_length="${max_length:-15}"
artist=$(truncate_string "$artist" "$max_length")
title=$(truncate_string "$title" "$max_length")
- else
- artist="$(mpc current -f %artist%)"
- title="$(mpc current -f %title%)"
fi
case "$(mpc status %state%)" in
@@ -36,8 +41,10 @@ filter() {
[ "$(mpc status %random%)" = "on" ] && indicators="${indicators}🔂"
[ "$(mpc status %repeat%)" = "on" ] && indicators="${indicators}🔁"
- case "$(awk -F',' -v name="${0##*/}" '$0 ~ name {gsub(/[[:space:]]/, "", $3); print $3}' "${XDG_SOURCES_HOME:-${HOME}/.local/src}/suckless/dwmblocks/config.def.h")" in
- 0) echo "$prefix$artist - $title${indicators:+$indicators}" ;;
+ case "$signal" in
+ 0)
+ echo "$prefix$artist - $title${indicators:+$indicators}"
+ ;;
[1-9]*)
current_time=$(mpc status %currenttime%)
total_time=$(mpc status %totaltime%)
@@ -45,22 +52,16 @@ filter() {
;;
*) return ;;
esac
-
fi
}
-[ "$(awk -F',' -v name="${0##*/}" '$0 ~ name {print $3; exit}' "${XDG_SOURCES_HOME:-${HOME}/.local/src}/suckless/dwmblocks/config.def.h")" -eq 0 ] && {
- pidof -x sb-mpdup >/dev/null 2>&1 || sb-mpdup >/dev/null 2>&1 &
-}
+mpc status %state% | grep -q "stopped" || status
-# Handling interaction based on button press
case $BLOCK_BUTTON in
-1) # left click, opens ncmpcpp
- mpc status | filter
- setsid -f "$TERMINAL" -e ncmpcpp
- ;;
-2) mpc toggle | filter ;; # middle click, pause/unpause
-3) # right click
+1) setsid -f "$TERMINAL" -e ncmpcpp ;; # left click, opens ncmpcpp
+2) mpc toggle ;; # middle click, pause/unpause
+3) # right click
+ { [ -n "$(mpc current)" ] && [ -n "$(mpc queued)" ]; } && notify-send "🎵 $(mpc current)" "⏭️ $(mpc queued)"
notify-send "🎵 Music module" "\- Shows mpd song playing and status
- 🎵 if playing
- ⏸ if paused
@@ -70,10 +71,8 @@ case $BLOCK_BUTTON in
- Left click opens ncmpcpp
- Middle click pauses/unpause
- Scroll changes track"
- { [ -n "$(mpc current)" ] && [ -n "$(mpc queued)" ]; } && notify-send "🎵 $(mpc current)" "⏭️ $(mpc queued)"
;;
-4) mpc prev | filter ;; # scroll up, previous
-5) mpc next | filter ;; # scroll down, next
+4) mpc prev ;; # scroll up, previous
+5) mpc next ;; # scroll down, next
6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;;
-*) mpc status | filter ;; # default, show current status
esac
diff --git a/ar/.local/bin/statusbar/sb-repos b/ar/.local/bin/statusbar/sb-repos
index 1dad9f1..2b936c7 100755
--- a/ar/.local/bin/statusbar/sb-repos
+++ b/ar/.local/bin/statusbar/sb-repos
@@ -1,6 +1,6 @@
#!/bin/bash
-pidof transmission-daemon >/dev/null && exit 1
+pidof transmission-daemon >/dev/null && exit
# Directories containing Git repositories
DOTFILES_REPOS="$HOME/.dotfiles"
@@ -35,7 +35,7 @@ get_git_status_symbols() {
get_unpushed_commits() { git cherry -v 2>/dev/null | wc -l; }
# Function to check for unpulled commits
-get_unpulled_commits() { git rev-list --count HEAD..@{upstream} 2>/dev/null; }
+get_unpulled_commits() { git rev-list --count HEAD..@{upstream}; }
# Function to check Git repository status for multiple repos
check_multi_repo_status() {
diff --git a/ar/.local/bin/statusbar/sb-volume b/ar/.local/bin/statusbar/sb-volume
index 800f19e..7881bfd 100755
--- a/ar/.local/bin/statusbar/sb-volume
+++ b/ar/.local/bin/statusbar/sb-volume
@@ -8,11 +8,11 @@ case $BLOCK_BUTTON in
pkill -RTMIN+5 "${STATUSBAR:-dwmblocks}"
;;
2) wpctl set-mute @DEFAULT_SINK@ toggle ;;
-4) wpctl set-volume @DEFAULT_SINK@ 1%+ ;;
-5) wpctl set-volume @DEFAULT_SINK@ 1%- ;;
3) notify-send "📢 Volume module" "\- Shows volume 🔊, 🔇 if muted
- Middle click to mute
- Scroll to change" ;;
+4) wpctl set-volume @DEFAULT_SINK@ 1%+ ;;
+5) wpctl set-volume @DEFAULT_SINK@ 1%- ;;
6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;;
esac