diff options
| -rw-r--r-- | ar/.config/fontconfig/fonts.conf | 42 | ||||
| -rw-r--r-- | ar/.config/glove80/04d0bf0b-a700-4292-98bd-bfce72b88109_v25.01_Glorious Engrammer v41.uf2 | bin | 0 -> 1046528 bytes | |||
| -rw-r--r-- | ar/.config/glove80/32067f44-9158-4501-8cb4-fc3830e660f5_community.pr36.per-key-rgb+20250106120812_Glorious Engrammer v41.uf2 | bin | 1146368 -> 0 bytes | |||
| -rw-r--r-- | ar/.config/glove80/9a7b1fa3-1a4f-4b8a-80bc-e1fde55550e4_v25.01_Glorious Engrammer v41.uf2 | bin | 0 -> 1046528 bytes | |||
| -rw-r--r-- | ar/.config/lf/lfrc | 23 | ||||
| -rw-r--r-- | ar/.config/mpv/input.conf | 6 | ||||
| -rwxr-xr-x | ar/.local/bin/mounter | 4 | ||||
| -rwxr-xr-x | ar/.local/bin/mpvplay | 26 | ||||
| -rwxr-xr-x | ar/.local/bin/sd | 2 | ||||
| -rwxr-xr-x | ar/.local/bin/setfirmware | 7 | ||||
| -rwxr-xr-x | ar/.local/bin/statusbar/sb-music | 47 | ||||
| -rwxr-xr-x | ar/.local/bin/statusbar/sb-repos | 4 | ||||
| -rwxr-xr-x | ar/.local/bin/statusbar/sb-volume | 4 |
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 Binary files differnew file mode 100644 index 0000000..10d06e3 --- /dev/null +++ b/ar/.config/glove80/04d0bf0b-a700-4292-98bd-bfce72b88109_v25.01_Glorious Engrammer v41.uf2 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 Binary files differdeleted 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 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 Binary files differnew file mode 100644 index 0000000..a1b1c44 --- /dev/null +++ b/ar/.config/glove80/9a7b1fa3-1a4f-4b8a-80bc-e1fde55550e4_v25.01_Glorious Engrammer v41.uf2 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 |
