diff options
60 files changed, 659 insertions, 361 deletions
diff --git a/ar/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua b/ar/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua index 52ceb01..ee97612 100644 --- a/ar/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua +++ b/ar/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua @@ -260,6 +260,75 @@ return { }, }, { + "greggh/claude-code.nvim", + dependencies = { + "nvim-lua/plenary.nvim", -- Required for git operations + }, + config = function() + require("claude-code").setup({ + -- Terminal window settings + window = { + split_ratio = 0.3, -- Percentage of screen for the terminal window (height for horizontal, width for vertical splits) + position = "vertical", -- Position of the window: "botright", "topleft", "vertical", "float", etc. + enter_insert = true, -- Whether to enter insert mode when opening Claude Code + hide_numbers = true, -- Hide line numbers in the terminal window + hide_signcolumn = true, -- Hide the sign column in the terminal window + + -- Floating window configuration (only applies when position = "float") + float = { + width = "80%", -- Width: number of columns or percentage string + height = "80%", -- Height: number of rows or percentage string + row = "center", -- Row position: number, "center", or percentage string + col = "center", -- Column position: number, "center", or percentage string + relative = "editor", -- Relative to: "editor" or "cursor" + border = "rounded", -- Border style: "none", "single", "double", "rounded", "solid", "shadow" + }, + }, + -- File refresh settings + refresh = { + enable = true, -- Enable file change detection + updatetime = 100, -- updatetime when Claude Code is active (milliseconds) + timer_interval = 1000, -- How often to check for file changes (milliseconds) + show_notifications = true, -- Show notification when files are reloaded + }, + -- Git project settings + git = { + use_git_root = true, -- Set CWD to git root when opening Claude Code (if in git project) + }, + -- Shell-specific settings + shell = { + separator = "&&", -- Command separator used in shell commands + pushd_cmd = "pushd", -- Command to push directory onto stack (e.g., 'pushd' for bash/zsh, 'enter' for nushell) + popd_cmd = "popd", -- Command to pop directory from stack (e.g., 'popd' for bash/zsh, 'exit' for nushell) + }, + -- Command settings + command = "claude", -- Command used to launch Claude Code + -- Command variants + command_variants = { + -- Conversation management + continue = "--continue", -- Resume the most recent conversation + resume = "--resume", -- Display an interactive conversation picker + + -- Output options + verbose = "--verbose", -- Enable verbose logging with full turn-by-turn output + }, + -- Keymaps + keymaps = { + toggle = { + normal = "<C-,>", -- Normal mode keymap for toggling Claude Code, false to disable + terminal = "<C-,>", -- Terminal mode keymap for toggling Claude Code, false to disable + variants = { + continue = "<leader>cC", -- Normal mode keymap for Claude Code with continue flag + verbose = "<leader>cV", -- Normal mode keymap for Claude Code with verbose flag + }, + }, + window_navigation = true, -- Enable window navigation keymaps (<C-h/j/k/l>) + scrolling = true, -- Enable scrolling keymaps (<C-f/b>) for page up/down + }, + }) + end, + }, + { "NickvanDyke/opencode.nvim", dependencies = { -- Recommended for `ask()` and `select()`. @@ -277,7 +346,7 @@ return { vim.o.autoread = true -- Recommended/example keymaps. - vim.keymap.set({ "n", "x" }, "<C-a>", function() + vim.keymap.set({ "n", "x" }, "<C-q>", function() require("opencode").ask("@this: ", { submit = true }) end, { desc = "Ask opencode" }) vim.keymap.set({ "n", "x" }, "<C-x>", function() @@ -387,7 +456,7 @@ return { instructions_file = "avante.md", ---@alias Provider "claude" | "openai" | "azure" | "gemini" | "cohere" | "copilot" | string ---@type Provider - provider = "openai", -- The provider used in Aider mode or in the planning phase of Cursor Planning Mode + provider = "claude", -- The provider used in Aider mode or in the planning phase of Cursor Planning Mode ---@alias Mode "agentic" | "legacy" ---@type Mode mode = "agentic", -- The default mode for interaction. "agentic" uses tools to automatically generate code, "legacy" uses the old planning method to generate code. @@ -398,6 +467,7 @@ return { providers = { claude = { endpoint = "https://api.anthropic.com", + auth_type = "max", -- Set to "max" to sign in with Claude Pro/Max subscription model = "claude-sonnet-4-20250514", timeout = 30000, -- Timeout in milliseconds extra_request_body = { diff --git a/ar/.config/fontconfig/fonts.conf b/ar/.config/fontconfig/fonts.conf index 935549d..c5ac402 100644 --- a/ar/.config/fontconfig/fonts.conf +++ b/ar/.config/fontconfig/fonts.conf @@ -7,7 +7,6 @@ <family>Source Han Serif KR</family> <family>DejaVu Serif</family> <family>Droid Serif</family> - <family>Libertinus Serif</family> <family>Joy Pixels</family> <family>Noto Color Emoji</family> <family>FontAwesome</family> @@ -19,7 +18,6 @@ <family>Source Han Serif KR</family> <family>DejaVu Serif</family> <family>Droid Serif</family> - <family>Libertinus Serif</family> <family>Joy Pixels</family> <family>Noto Color Emoji</family> <family>FontAwesome</family> @@ -31,7 +29,6 @@ <family>Source Han Sans KR</family> <family>DejaVu Sans</family> <family>Droid Sans</family> - <family>Libertinus Sans</family> <family>Joy Pixels</family> <family>Noto Color Emoji</family> <family>FontAwesome</family> @@ -42,7 +39,6 @@ <prefer> <family>Noto Sans Mono</family> <family>Noto Sans Mono CJK KR</family> - <family>Libertinus Mono</family> <family>FontAwesome</family> <family>Braille</family> </prefer> @@ -52,7 +48,6 @@ <prefer> <family>D2CodingLigature Nerd Font Mono</family> <family>Hack Nerd Font Mono</family> - <family>Libertinus Mono</family> <family>FontAwesome</family> <family>Braille</family> </prefer> @@ -62,7 +57,6 @@ <prefer> <family>Noto Sans CJK KR</family> <family>D2CodingLigature Nerd Font</family> - <family>Libertinus</family> <family>FontAwesome</family> <family>Braille</family> </prefer> diff --git a/ar/.config/git/config b/ar/.config/git/config index 7dc029b..3d9b746 100644 --- a/ar/.config/git/config +++ b/ar/.config/git/config @@ -83,6 +83,12 @@ [user] name = TheSiahxyz email = 164138827+TheSiahxyz@users.noreply.github.com - signingkey = 67BE7AD056C803BA + signingkey = 6E0F6060D236F2AB [commit] gpgsign = true +[credential "https://github.com"] + helper = + helper = !/usr/bin/gh auth git-credential +[credential "https://gist.github.com"] + helper = + helper = !/usr/bin/gh auth git-credential diff --git a/ar/.config/htop/htoprc b/ar/.config/htop/htoprc index 8666417..6df10ed 100644 --- a/ar/.config/htop/htoprc +++ b/ar/.config/htop/htoprc @@ -1,53 +1,72 @@ # Beware! This file is rewritten by htop when settings are changed in the interface. # The parser is also very primitive, and not human-friendly. -.all_branches_collapsed=0 -.sort_direction=-1 -.sort_key=PERCENT_CPU -.tree_sort_direction=1 -.tree_sort_key=PID -.tree_view=0 -.tree_view_always_by_pid=0 -account_guest_in_cpu_meter=0 -all_branches_collapsed=0 -color_scheme=5 -column_meter_modes_0=1 1 1 2 2 2 1 -column_meter_modes_1= -column_meters_0=LeftCPUs Memory Swap Uptime LoadAverage Tasks RightCPUs -column_meters_1= +htop_version=3.4.1-ee21c79 config_reader_min_version=3 -cpu_count_from_one=0 -delay=15 -detailed_cpu_time=0 -enable_mouse=1 -fields=0 48 17 18 38 39 2 46 46 47 49 1 -find_comm_in_cmdline=1 -header_layout=two_50_50 -header_margin=1 -hide_function_bar=0 +fields=0 48 17 18 38 39 40 2 46 47 49 1 hide_kernel_threads=1 -hide_running_in_container=0 hide_userland_threads=0 +hide_running_in_container=0 +shadow_other_users=1 +show_thread_names=0 +show_program_path=1 highlight_base_name=1 -highlight_changes=1 -highlight_changes_delay_secs=1 highlight_deleted_exe=1 +shadow_distribution_path_prefix=0 highlight_megabytes=1 highlight_threads=1 -htop_version=3.3.0-dev -screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT STATE PERCENT_CPU PERCENT_MEM TIME Command +highlight_changes=1 +highlight_changes_delay_secs=1 +find_comm_in_cmdline=1 +strip_exe_from_cmdline=1 +show_merged_command=0 +header_margin=1 screen_tabs=1 -shadow_distribution_path_prefix=0 -shadow_other_users=1 -show_cpu_frequency=1 +detailed_cpu_time=0 +cpu_count_from_one=0 show_cpu_usage=1 -show_merged_command=0 -show_program_path=1 -show_thread_names=0 -sort_direction=-1 +show_cpu_frequency=1 +show_cpu_temperature=0 +degree_fahrenheit=0 +show_cached_memory=1 +update_process_names=0 +account_guest_in_cpu_meter=0 +color_scheme=6 +enable_mouse=1 +delay=15 +hide_function_bar=0 +header_layout=two_50_50 +column_meters_0=LeftCPUs2 Memory Swap +column_meter_modes_0=1 1 1 +column_meters_1=RightCPUs2 Tasks LoadAverage Uptime +column_meter_modes_1=1 2 2 2 +tree_view=0 sort_key=46 -strip_exe_from_cmdline=1 -tree_sort_direction=1 tree_sort_key=0 -tree_view=0 +sort_direction=-1 +tree_sort_direction=1 tree_view_always_by_pid=0 -update_process_names=0 +all_branches_collapsed=0 +screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU PERCENT_MEM TIME Command +.sort_key=PERCENT_CPU +.tree_sort_key=PID +.tree_view_always_by_pid=0 +.tree_view=0 +.sort_direction=-1 +.tree_sort_direction=1 +.all_branches_collapsed=0 +screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE PERCENT_SWAP_DELAY PERCENT_IO_DELAY Command +.sort_key=IO_RATE +.tree_sort_key=PID +.tree_view_always_by_pid=0 +.tree_view=0 +.sort_direction=-1 +.tree_sort_direction=1 +.all_branches_collapsed=0 +screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT STATE PERCENT_CPU PERCENT_MEM TIME Command +.sort_key=PID +.tree_sort_key=PID +.tree_view_always_by_pid=0 +.tree_view=0 +.sort_direction=1 +.tree_sort_direction=1 +.all_branches_collapsed=0 diff --git a/ar/.config/lf/lfrc b/ar/.config/lf/lfrc index 64416d3..becd52c 100644 --- a/ar/.config/lf/lfrc +++ b/ar/.config/lf/lfrc @@ -101,16 +101,24 @@ cmd yank-basename $basename -a -- $fx | head -c-1 | xclip -i -selection clipboar cmd yank-basename-without-extension &basename -a -- $fx | cut -d. -f1 | head -c-1 | xclip -i -selection clipboard # Create -cmd mkdir ${{ clear; tput cup $(($(tput lines)/3)); tput bold - printf "Directory Name: " - read ans - mkdir -p $ans -}} -cmd mkfile ${{ - clear; tput cup $(($(tput lines)/3)); tput bold - printf "File Name: " - read ans - $EDITOR $ans +cmd mkdir %{{ + IFS=" " + file="$*" + mkdir -p -- "$file" + lf -remote "send $id cd \"$(printf '%s' "$file" | sed 's/\\/\\\\/g;s/"/\\"/g')\"" +}} +cmd touch %{{ + IFS=" " + file="$*" + case "$file" in + /*) ;; + *) file="$PWD/$file" ;; + esac + dir="${file%/*}" + [ "$dir" != "$file" ] && mkdir -p -- "$dir" + touch -- "$file" + file="$(printf '%s' "$file" | sed 's/\\/\\\\/g;s/"/\\"/g')" + lf -remote "send $id :select \"$file\"; \$\$EDITOR \"$file\"" }} cmd link %{{ set -- $(cat ~/.local/share/lf/files) @@ -500,8 +508,8 @@ map yt $printf "%s" "$fx" | sed -E 's/^.+\[/https:\/\/www.youtube.com\/watch?v=/ map yy copy # Create -map Md mkdir -map Mf mkfile +map Md push :mkdir<space> +map Mf push :touch<space> map Ml link # Cut diff --git a/ar/.config/shell/aliasrc b/ar/.config/shell/aliasrc index 2f143ad..1cf6045 100644 --- a/ar/.config/shell/aliasrc +++ b/ar/.config/shell/aliasrc @@ -12,7 +12,7 @@ [ -f "$MBSYNCRC" ] && alias mbsync='mbsync -c $MBSYNCRC' # sudo not required for some system commands -for command in blkid lsblk mount umount pacman poweroff reboot shutdown su sv updatedb; do +for command in arp-scan blkid docker ecrypt lazydocker lsblk mount umount pacman poweroff reboot shutdown su sv updatedb; do alias $command="sudo $command" done unset command @@ -379,7 +379,7 @@ alias skype='skypeforlinux' # ssh alias gts="ssh $THESIAH_SERVER" -alias wwr="ssh recordings" +alias wwr="ssh diary" # sudo alias su='sudo su -l root' @@ -487,7 +487,8 @@ alias sps="source ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/profile" alias szs="source ${XDG_CONFIG_HOME:-${HOME}/.config}/zsh/.zshrc" alias ylogh='ylog -s hidden -c us | grep $(LC_TIME=C date +%d/%b) | grep -E "[0-9]{2}:[0-9]{2}:[0-9]{2} "' -alias ylogi='ylog -s hidden -c us | grep $(LC_TIME=C date -v-1d +%d/%b) | grep -E "[0-9]{2}:[0-9]{2}:[0-9]{2} "' +alias ylogi='ylog -s hidden -c us | grep $(LC_TIME=C date -d "1 days ago" +%d/%b) | grep -E "[0-9]{2}:[0-9]{2}:[0-9]{2} "' alias ylogt='ylog -s diary -c us | grep $(LC_TIME=C date +%d/%b) | grep -E "[0-9]{2}:[0-9]{2}:[0-9]{2} "' -alias ylogy='ylog -s diary -c us | grep $(LC_TIME=C date -v-1d +%d/%b) | grep -E "[0-9]{2}:[0-9]{2}:[0-9]{2} "' +alias ylogy='ylog -s diary -c us | grep $(LC_TIME=C date -d "1 days ago" +%d/%b) | grep -E "[0-9]{2}:[0-9]{2}:[0-9]{2} "' +alias ylogr='ylog -s diary -c us | grep $(LC_TIME=C date -d "2 days ago" +%d/%b) | grep -E "[0-9]{2}:[0-9]{2}:[0-9]{2} "' alias ylogu='ylog -s diary -c us' diff --git a/ar/.config/shell/bm-dirs b/ar/.config/shell/bm-dirs index 5d7eb89..6a9db9d 100644 --- a/ar/.config/shell/bm-dirs +++ b/ar/.config/shell/bm-dirs @@ -51,10 +51,12 @@ gdn ${XDG_DOWNLOAD_DIR:-${HOME}/Downloads} gdo ${XDG_DOTFILES_DIR:-${HOME}/.dotfiles} gfx $HOME/.mozilla/firefox/$USER.default gmu ${XDG_MUSIC_DIR:-${HOME}/Music} +gnu $HOME/.gnupg gpb ${XDG_PUBLICSHARE_DIR:-${HOME}/Public} gpp ${XDG_PICTURES_DIR:-${HOME}/Pictures} gpv $HOME/Private grr ${XDG_PICTURES_DIR:-${HOME}/Pictures}/resources +gsh $HOME/.ssh gss ${XDG_PICTURES_DIR:-${HOME}/Pictures}/screenshots gtc $HOME/Torrents/complete gti $HOME/Torrents/incomplete diff --git a/ar/.config/shell/bm-files b/ar/.config/shell/bm-files index fc8bce1..709c064 100644 --- a/ar/.config/shell/bm-files +++ b/ar/.config/shell/bm-files @@ -13,6 +13,8 @@ vff ${XDG_CONFIG_HOME:-${HOME}/.config}/fastfetch/config.jsonc vga ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/git-aliasrc # Git aliases vgc ${XDG_CONFIG_HOME:-${HOME}/.config}/git/config # Git config vgi ${XDG_CONFIG_HOME:-${HOME}/.config}/git/ignore # Git ignore +vgn $HOME/.gnupg/gpg-agent.conf # GNUPG config +vgs $HOME/.gnupg/sshcontrol # GNUPG SSH control config vlf ${XDG_CONFIG_HOME:-${HOME}/.config}/lf/lfrc # LF (file browser) config vlg ${XDG_CONFIG_HOME:-${HOME}/.config}/lazygit/config.yml # Lazygit config vls ${XDG_CONFIG_HOME:-${HOME}/.config}/lf/scope # LF's scope/preview file @@ -29,6 +31,7 @@ Vsm /etc/samba/smb.conf vsa ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/aliasrc # Aliases used by shell (and potentially other shells) vse ${XDG_CONFIG_HOME:-${HOME}/.config}/sesh/sesh.toml # Sesh config vsf ${XDG_SOURCES_HOME:-${HOME}/.local/src}/suckless/surf/config.def.h # Surf: a simple browser +vsh $HOME/.ssh/config # SSH config vsl ${XDG_SOURCES_HOME:-${HOME}/.local/src}/suckless/slock/config.def.h # Slock: lock screen vsn ${XDG_DATA_HOME:-${HOME}/.local/share}/thesiah/snippets # Snippets vsp ${XDG_CONFIG_HOME:-${HOME}/.config}/shell/profile # Shell profile used for system diff --git a/ar/.config/zsh/scripts.zsh b/ar/.config/zsh/scripts.zsh index 5a47ffa..d70522d 100644 --- a/ar/.config/zsh/scripts.zsh +++ b/ar/.config/zsh/scripts.zsh @@ -390,9 +390,13 @@ EOF ) [[ -z "${SELECTED_DIRS// }" ]] && return if [[ "$(echo "$SELECTED_DIRS" | wc -l)" -eq 1 ]]; then - cd "$SELECTED_DIRS" - if [[ -n "$(git -C "$SELECTED_DIRS" status --porcelain)" ]]; then - git status --porcelain 2>/dev/null + if [[ -n "$TMUX" ]]; then + opensessions "$SELECTED_DIRS" + else + cd "$SELECTED_DIRS" || return + if [[ -n "$(git -C "$SELECTED_DIRS" status --porcelain 2>/dev/null)" ]]; then + git status --porcelain + fi fi else opensessions "$SELECTED_DIRS" diff --git a/ar/.local/bin/cron/checkup b/ar/.local/bin/cron/checkup index 801d406..2ea6772 100755 --- a/ar/.local/bin/cron/checkup +++ b/ar/.local/bin/cron/checkup @@ -7,7 +7,7 @@ notify-send "๐ฆ Repository Sync" "Checking for package updates..." sudo pacman -Syyuw --noconfirm || notify-send "โ Error downloading updates. Check your internet connection, if pacman is already running, or run update manually to see errors." -pkill -RTMIN+16 "${STATUSBAR:-dwmblocks}" +pkill -RTMIN+14 "${STATUSBAR:-dwmblocks}" if pacman -Qu | grep -v "\[ignored\]"; then notify-send "๐ Repository Sync" "Updates available. Click statusbar icon (๐ฆ) or run sb-popupgrade in terminal for update." diff --git a/ar/.local/bin/cron/crontog b/ar/.local/bin/cron/crontog index 70e7cf1..ccabe61 100755 --- a/ar/.local/bin/cron/crontog +++ b/ar/.local/bin/cron/crontog @@ -23,4 +23,4 @@ else fi # Notify status bar to update -pkill -RTMIN+3 "${STATUSBAR:-dwmblocks}" +pkill -RTMIN+2 "${STATUSBAR:-dwmblocks}" diff --git a/ar/.local/bin/cron/newsup b/ar/.local/bin/cron/newsup index 346ec75..f8b40b7 100755 --- a/ar/.local/bin/cron/newsup +++ b/ar/.local/bin/cron/newsup @@ -8,8 +8,8 @@ pgrep -f newsboat$ && /usr/bin/xdotool key --window "$(/usr/bin/xdotool search --name "^newsboat$")" R && exit echo ๐ >/tmp/newsupdate -pkill -RTMIN+19 "${STATUSBAR:-dwmblocks}" +pkill -RTMIN+17 "${STATUSBAR:-dwmblocks}" /usr/bin/newsboat -x reload rm -f /tmp/newsupdate -pkill -RTMIN+19 "${STATUSBAR:-dwmblocks}" +pkill -RTMIN+17 "${STATUSBAR:-dwmblocks}" /usr/bin/notify-send "๐ฐ RSS feed update complete." diff --git a/ar/.local/bin/dmenurecord b/ar/.local/bin/dmenurecord index 621133d..a497aa4 100755 --- a/ar/.local/bin/dmenurecord +++ b/ar/.local/bin/dmenurecord @@ -17,7 +17,7 @@ getdim() { xrandr | grep -oP '(?<=current ).*(?=,)' | tr -d ' '; } updateicon() { echo "$1" >/tmp/recordingicon - pkill -RTMIN+24 "${STATUSBAR:-dwmblocks}" + pkill -RTMIN+22 "${STATUSBAR:-dwmblocks}" } killrecording() { @@ -25,7 +25,7 @@ killrecording() { kill -15 "$recpid" rm -f /tmp/recordingpid updateicon "" - pkill -RTMIN+24 "${STATUSBAR:-dwmblocks}" + pkill -RTMIN+22 "${STATUSBAR:-dwmblocks}" } getmonitor() { diff --git a/ar/.local/bin/dmenuupgrade b/ar/.local/bin/dmenuupgrade index b43ff4c..b23e80a 100755 --- a/ar/.local/bin/dmenuupgrade +++ b/ar/.local/bin/dmenuupgrade @@ -16,7 +16,7 @@ case "$selection" in if [ "$(printf "No\nYes" | dmenu -i -p 'Proceed with upgrade for all packages?')" = "Yes" ]; then notify-send "๐ฆ Upgrading all packages..." yay -Syu --noconfirm - pkill -RTMIN+16 "${STATUSBAR:-dwmblocks}" + pkill -RTMIN+14 "${STATUSBAR:-dwmblocks}" notify-send "โ
Upgrade of all packages completed." else notify-send "โ Upgrade cancelled." @@ -31,7 +31,7 @@ case "$selection" in if [ "$(printf "No\nYes" | dmenu -i -p 'Proceed with pacman upgrade?')" = "Yes" ]; then notify-send "๐ฆ Upgrading pacman packages..." printf "%s" "$pacman_updates" | awk '{print $1}' | xargs sudo pacman -S --noconfirm - pkill -RTMIN+16 "${STATUSBAR:-dwmblocks}" + pkill -RTMIN+14 "${STATUSBAR:-dwmblocks}" notify-send "โ
Pacman packages upgrade completed." else notify-send "โ Upgrade cancelled." @@ -46,7 +46,7 @@ case "$selection" in if [ "$(printf "No\nYes" | dmenu -i -p 'Proceed with upgrade for this package?')" = "Yes" ]; then notify-send "๐ฆ Upgrading package: $selection..." sudo pacman -S --noconfirm "$(printf "%s" "$selection" | awk '{print $1}')" - pkill -RTMIN+16 "${STATUSBAR:-dwmblocks}" + pkill -RTMIN+14 "${STATUSBAR:-dwmblocks}" notify-send "โ
Upgrade completed for package: $selection." else notify-send "โ Upgrade cancelled." @@ -73,7 +73,7 @@ case "$selection" in if [ "$(printf "No\nYes" | dmenu -i -p 'Proceed with AUR upgrade?')" = "Yes" ]; then notify-send "๐ฆ Upgrading AUR packages..." yay -Syu --aur --noconfirm - pkill -RTMIN+16 "${STATUSBAR:-dwmblocks}" + pkill -RTMIN+14 "${STATUSBAR:-dwmblocks}" notify-send "โ
AUR packages upgrade completed." else notify-send "โ Upgrade cancelled." @@ -88,7 +88,7 @@ case "$selection" in if [ "$(printf "No\nYes" | dmenu -i -p 'Proceed with upgrade for this package?')" = "Yes" ]; then notify-send "๐ฆ Upgrading AUR package: $selection..." yay -S --noconfirm "$(printf "%s" "$selection" | awk '{print $2}')" - pkill -RTMIN+16 "${STATUSBAR:-dwmblocks}" + pkill -RTMIN+14 "${STATUSBAR:-dwmblocks}" notify-send "โ
Upgrade completed for AUR package: $selection." else notify-send "โ Upgrade cancelled." diff --git a/ar/.local/bin/ecrypt b/ar/.local/bin/ecrypt index e13c033..4240c71 100755 --- a/ar/.local/bin/ecrypt +++ b/ar/.local/bin/ecrypt @@ -27,6 +27,9 @@ attempt_mount() { targets="$HOME/.secret" mounts="$HOME/Private" pw="default" +[ -d "$targets" ] || mkdir -p "$targets" +[ -d "$mounts" ] || mkdir -p "$mounts" + set -- $mounts # Set positional parameters to mounts i=1 for target in $targets; do diff --git a/ar/.local/bin/ethwifi b/ar/.local/bin/ethwifi index 26366e9..c4fa0c6 100755 --- a/ar/.local/bin/ethwifi +++ b/ar/.local/bin/ethwifi @@ -28,4 +28,4 @@ else fi # Refresh status bar -pkill -RTMIN+7 "${STATUSBAR:-dwmblocks}" +pkill -RTMIN+6 "${STATUSBAR:-dwmblocks}" diff --git a/ar/.local/bin/extractkeys b/ar/.local/bin/extractkeys index b45358d..4e4e5b4 100755 --- a/ar/.local/bin/extractkeys +++ b/ar/.local/bin/extractkeys @@ -125,6 +125,7 @@ for file_path in "${config_files[@]}"; do s/&layouts\[12\]/"|M|"/g; s/&layouts\[13\]/">M>"/g; s/^\s*//g; + s/pkexec //g; /^\s*0\s*$/d ') diff --git a/ar/.local/bin/gitupdate b/ar/.local/bin/gitupdate index 6ee163a..3dabf34 100755 --- a/ar/.local/bin/gitupdate +++ b/ar/.local/bin/gitupdate @@ -2,8 +2,6 @@ set -eu -pidof transmission-daemon >/dev/null && echo "Turn off transmission-daemon first!" && exit 1 - # Check if inside a Git repository ! git rev-parse --is-inside-work-tree >/dev/null 2>&1 && echo "Not a git repository." && exit 1 @@ -87,4 +85,4 @@ printf "\n[repo] %s(%s): %s\n" "$(basename "$repo_root")" "$branch" "$message" # Return to the original directory cd - >/dev/null -command -v dwmblocks >/dev/null 2>&1 && pkill -RTMIN+18 "${STATUSBAR:-dwmblocks}" +command -v dwmblocks >/dev/null 2>&1 && pkill -RTMIN+16 "${STATUSBAR:-dwmblocks}" diff --git a/ar/.local/bin/hugow b/ar/.local/bin/hugow index 0460174..13cdf51 100755 --- a/ar/.local/bin/hugow +++ b/ar/.local/bin/hugow @@ -2,11 +2,11 @@ set -eu repodir="$HOME/Private/repos/THESIAH" -out="$repodir/public/recordings/index.html" +out="$repodir/public/diary/index.html" server="${THESIAH_SERVER:-root@thesiah.xyz}" -dest="/var/www/thesiah/recordings/" +dest="/var/www/thesiah/diary/" defaults="sy after foramonth" -src="$repodir/public/recordings/" +src="$repodir/public/diary/" cd "$repodir" hugo --cleanDestinationDir @@ -16,35 +16,35 @@ if [ ! -f "$out" ]; then exit 1 fi -tmp="$(mktemp "$out.XXXXXXXX.tmp")" - -awk -v defaults="$defaults" ' -BEGIN { - n = split(defaults, a, /[[:space:]]+/) - insert = "" - for (i = 1; i <= n; i++) { - if (a[i] == "") continue - name = a[i] ".mp4" - insert = insert \ -" <li>\n" \ -" <a href=\"/recordings/" name "\" data-name=\"" name "\" class=\"vid\">" name "</a>\n" \ -" </li>\n" - } - injected = 0 -} -{ - print - if (!injected && $0 ~ /<ul[^>]*id=["'\''"]list["'\''"][^>]*>/) { - printf("%s", insert) - injected = 1 - } -} -END { if (!injected) exit 2 } -' "$out" >"$tmp" - -mv "$tmp" "$out" -echo "Injected defaults into: $out" +# tmp="$(mktemp "$out.XXXXXXXX.tmp")" +# awk -v defaults="$defaults" ' +# BEGIN { +# n = split(defaults, a, /[[:space:]]+/) +# insert = "" +# for (i = 1; i <= n; i++) { +# if (a[i] == "") continue +# name = a[i] ".mp4" +# insert = insert \ +# " <li>\n" \ +# " <a href=\"/diary/" name "\" data-name=\"" name "\" class=\"vid\">" name "</a>\n" \ +# " </li>\n" +# } +# injected = 0 +# } +# { +# print +# if (!injected && $0 ~ /<ul[^>]*id=["'\''"]list["'\''"][^>]*>/) { +# printf("%s", insert) +# injected = 1 +# } +# } +# END { if (!injected) exit 2 } +# ' "$out" >"$tmp" +# +# mv "$tmp" "$out" +# echo "Injected defaults into: $out" +# ssh "$server" "mkdir -p '$dest'" if [ -n "${THESIAH_SSH_OPTS:-}" ]; then @@ -57,7 +57,7 @@ else fi if [ -n "${1-}" ]; then - new="$repodir/content/recordings/$1" + new="$repodir/content/diary/$1" if [ -f "$new" ]; then rsync -az --update "$new" "$server:$dest" elif [ -d "$new" ]; then diff --git a/ar/.local/bin/monitorbright b/ar/.local/bin/monitorbright index 2de2e5d..db2bcf3 100755 --- a/ar/.local/bin/monitorbright +++ b/ar/.local/bin/monitorbright @@ -15,10 +15,6 @@ case "$monitor" in esac new_brightness=$(echo "if ($new_brightness > 1) 1 else if ($new_brightness < 0) 0 else $new_brightness" | bc -l) xrandr --output "$monitor" --brightness "$new_brightness" - current_brightness=$(echo "$new_brightness * 100" | bc -l) - else - current_brightness=$(echo "$current_brightness * 100" | bc -l) fi - printf "๐ช%.0f%%\n" "$current_brightness" ;; esac diff --git a/ar/.local/bin/mounter b/ar/.local/bin/mounter index a9d7a61..c8eabbf 100755 --- a/ar/.local/bin/mounter +++ b/ar/.local/bin/mounter @@ -81,7 +81,7 @@ unopenedluks="$(for drive in $allluks; do done | filter)" # Get all normal, non-encrypted or decrypted partitions that are not mounted. -normalparts="$(echo "$lsblkoutput" | grep -v crypto_LUKS | grep -v 'part 1M' | grep 'part\|rom\|crypt' | sed "s/^/๐พ /" | filter)" +normalparts="$(echo "$lsblkoutput" | grep -v crypto_LUKS | grep -v 'LVM2_member' | grep -v 'part 1M' | grep 'part\|rom\|crypt' | sed "s/^/๐พ /" | filter)" # Get all available IP addresses with open Samba shares in the wlan0 subnet, excluding eth0 IP smbips="$(sudo arp-scan --interface=eth0 --interface=wlan0 --localnet | grep -vEi '(EFM Networks|DUP:)' | awk '/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/{print $1}')" diff --git a/ar/.local/bin/opensessions b/ar/.local/bin/opensessions index 6f9f236..d16f42f 100755 --- a/ar/.local/bin/opensessions +++ b/ar/.local/bin/opensessions @@ -18,7 +18,10 @@ set -- $dirs for dir in $dirs; do if [ -d "$dir" ]; then session_name=$(get_session_name "$dir") - if ! tmux has-session -t "$session_name" 2>/dev/null; then + if tmux has-session -t "$session_name" 2>/dev/null; then + session_path=$(tmux display-message -t "$session_name" -p '#{session_path}') + tmux send-keys -t "$session_name" "cd \"$session_path\"" C-m + else tmux new-session -d -s "$session_name" -c "$dir" if git -C "$dir" rev-parse --is-inside-work-tree >/dev/null 2>&1 && [ -n "$(git -C "$dir" status --porcelain)" ]; then tmux send-keys -t "$session_name" "git status --porcelain" C-m diff --git a/ar/.local/bin/ovpn b/ar/.local/bin/ovpn index a89c357..10ecc01 100755 --- a/ar/.local/bin/ovpn +++ b/ar/.local/bin/ovpn @@ -7,7 +7,6 @@ turnonoffvpn() { ;; *off*) nmcli connection down "$THESIAH_VPN" 2>/dev/null && notify-send "โ๏ธ THESIAH_VPN: OFF" || notify-send "โ๏ธ Error to disconnect" - ;; esac } diff --git a/ar/.local/bin/qndl b/ar/.local/bin/qndl index 46b4aa8..2757eb8 100755 --- a/ar/.local/bin/qndl +++ b/ar/.local/bin/qndl @@ -47,7 +47,7 @@ case $type in video_id=$(echo "$line" | awk '{print $2}') ytdl_cmd="$ytdl_cmd_base --output \"$ytdl_output_format\" \"https://www.youtube.com/watch?v=$video_id\"" idnum=$(tsp bash -c "$ytdl_cmd") - pkill -RTMIN+21 "${STATUSBAR:-dwmblocks}" + pkill -RTMIN+19 "${STATUSBAR:-dwmblocks}" done <"$archive_file" exit 0 ;; @@ -120,7 +120,7 @@ filename=$($simulation_cmd 2>/dev/null) [ -f /tmp/qplaylist ] && rm -rf /tmp/qplaylist notify-send "โณ Downloading $download_type:" "$filename" idnum=$(tsp bash -c "$ytdl_cmd") -pkill -RTMIN+21 "${STATUSBAR:-dwmblocks}" +pkill -RTMIN+19 "${STATUSBAR:-dwmblocks}" # Notify upon completion tsp -D "$idnum" notify-send "โ
$download_type download complete:" "$url" || diff --git a/ar/.local/bin/remaps b/ar/.local/bin/remaps index 93832ea..580076d 100755 --- a/ar/.local/bin/remaps +++ b/ar/.local/bin/remaps @@ -10,6 +10,10 @@ xinput list | grep 'id=' | while read -r line; do mouse=$(echo "$line" | grep -i '.*id.*pointer' | sed 's/.*id=\([0-9]\+\).*/\1/') [ -z "$keyboard" ] || { case "$(echo "$line" | grep -oE '.*id=' | sed 's/ id=.*//')" in + *"Lenovo TrackPoint Keyboard II"*) + setxkbmap -device "$keyboard" -option + setxkbmap -device "$keyboard" -option caps:ctrl_modifier,altwin:menu_win,altwin:swap_lalt_lwin + ;; *"Lite-On Tech Lenovo USB Travel Keyboard with Ultra Nav"*) setxkbmap -device "$keyboard" -option setxkbmap -device "$keyboard" -option caps:ctrl_modifier,ctrl:swap_lwin_lctl @@ -43,6 +47,9 @@ xinput list | grep 'id=' | while read -r line; do *"SynPS/2 Synaptics TouchPad"*) xinput set-prop "$mouse" "libinput Tapping Enabled" 0 ;; + *"Lenovo TrackPoint Keyboard II"*) + [ -z "$1" ] && xinput set-prop "$mouse" "Coordinate Transformation Matrix" 5, 0, 0, 0, 5, 0, 0, 0, 1 || xinput set-prop "$mouse" "Coordinate Transformation Matrix" $1, 0, 0, 0, $1, 0, 0, 0, 1 + ;; *"Lite-On Tech Lenovo USB Travel Keyboard with Ultra Nav Mouse"*) [ -z "$1" ] && xinput set-prop "$mouse" "Coordinate Transformation Matrix" 5, 0, 0, 0, 5, 0, 0, 0, 1 || xinput set-prop "$mouse" "Coordinate Transformation Matrix" $1, 0, 0, 0, $1, 0, 0, 0, 1 xinput set-prop "$mouse" "libinput Scroll Method Enabled" 0, 0, 1 diff --git a/ar/.local/bin/statusbar/sb-battery b/ar/.local/bin/statusbar/sb-battery index faf3d04..fc02f61 100755 --- a/ar/.local/bin/statusbar/sb-battery +++ b/ar/.local/bin/statusbar/sb-battery @@ -10,7 +10,7 @@ get_status_icon() { Discharging) echo "๐" ;; Charging) echo "๐" ;; "Not charging") echo "๐" ;; - Unknown) echo "โป๏ธ" ;; + Unknown) echo "โป" ;; *) echo "" ;; esac } @@ -57,7 +57,7 @@ case "$BLOCK_BUTTON" in 2) bluetooth && devices "hid*" ;; # Middle click for Bluetooth battery levels 3) notify-send "๐ Battery module" "\- ๐: discharging - ๐: not charging -- โป๏ธ: stagnant charge +- โป: stagnant charge - ๐: charging - โก: fully charged - โ: battery very low! diff --git a/ar/.local/bin/statusbar/sb-bghitness b/ar/.local/bin/statusbar/sb-bghitness index 0aabfb6..83dc809 100755 --- a/ar/.local/bin/statusbar/sb-bghitness +++ b/ar/.local/bin/statusbar/sb-bghitness @@ -10,7 +10,7 @@ max_brightness=$(cat /sys/class/backlight/*/max_brightness) brightness_per=$((100 * curr_brightness / max_brightness)) case $BLOCK_BUTTON in -3) notify-send "๐ก Brightness module" "\- Shows current brightness level โ๏ธ." ;; +3) notify-send "๐ก Brightness module" "\- Shows current brightness level โ ." ;; 4) pkexec brillo -A 5 -q ;; 5) pkexec brillo -U 5 -q ;; 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; diff --git a/ar/.local/bin/statusbar/sb-brightness b/ar/.local/bin/statusbar/sb-brightness index 909e676..e18fa2c 100755 --- a/ar/.local/bin/statusbar/sb-brightness +++ b/ar/.local/bin/statusbar/sb-brightness @@ -1,11 +1,31 @@ #!/bin/sh +monitor=$(xrandr --query | grep -i '\sconnected' | grep '[0-9]x[0-9]' | grep -i 'primary' | cut -d ' ' -f1) +[ -z "$monitor" ] && monitor=$(xrandr --query | grep -i '\sconnected' | grep '[0-9]x[0-9]' | cut -d ' ' -f1) +case "$monitor" in +*DP* | *HDMI*) + current_brightness=$(xrandr --verbose | grep -i "^$monitor connected" -A5 | grep -i "Brightness:" | cut -d ' ' -f2) + current_brightness=$(printf "%.0f\n" "$(echo "$current_brightness * 100" | bc -l)") + ;; +esac + case $BLOCK_BUTTON in 3) notify-send "๐ Backlight module -- Scroll up & down changes backlight" ;; -4) monbright -inc 5 ;; -5) monbright -dec 5 ;; +- Scroll up & down changes screen brightness +- Shift + Scroll up & down changes monitor backlight" ;; +4) pkexec brillo -A 5 -q ;; +5) pkexec brillo -U 5 -q ;; 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; +7) monbright -inc 5 ;; +8) monbright -dec 5 ;; +9) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac -monitorbright +if [ -r /sys/class/backlight/*/brightness ]; then + curr_brightness=$(cat /sys/class/backlight/*/brightness) + max_brightness=$(cat /sys/class/backlight/*/max_brightness) + brightness_per=$((100 * curr_brightness / max_brightness)) + printf "%s %s\n" "๐ก${brightness_per}%" "๐ช$current_brightness" +else + printf "%s\n" "๐ช$current_brightness" +fi diff --git a/ar/.local/bin/statusbar/sb-clock b/ar/.local/bin/statusbar/sb-clock index a5992a5..d909326 100755 --- a/ar/.local/bin/statusbar/sb-clock +++ b/ar/.local/bin/statusbar/sb-clock @@ -1,7 +1,7 @@ #!/bin/sh # Get current hour and minute -calendar="๐๏ธ" +calendar="๐" hour=$(date '+%I') minute=$(date '+%M') diff --git a/ar/.local/bin/statusbar/sb-cpu b/ar/.local/bin/statusbar/sb-cpu index 565ca26..0cb6f4f 100755 --- a/ar/.local/bin/statusbar/sb-cpu +++ b/ar/.local/bin/statusbar/sb-cpu @@ -9,4 +9,4 @@ case $BLOCK_BUTTON in 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac -sensors | awk '/Core 0/ {printf "๐ง%dยฐ\n", $3}' +sensors | awk '/Tctl:/ {gsub(/[+ยฐC]/,"",$2); printf "๐ง%sยฐ", $2}' diff --git a/ar/.local/bin/statusbar/sb-forecast b/ar/.local/bin/statusbar/sb-forecast index d9dded0..063c8e5 100755 --- a/ar/.local/bin/statusbar/sb-forecast +++ b/ar/.local/bin/statusbar/sb-forecast @@ -59,7 +59,7 @@ gethightemp() { jq -r '.weather[0].hourly[].tempC' "$weatherreportjson" | sort - gethumidity() { humidity=$(get_nearest_hourly | jq -r '.humidity') case "$humidity" in - [0-9] | [1-2][0-9]) echo "๐๏ธ: $humidity%" ;; + [0-9] | [1-2][0-9]) echo "๐: $humidity%" ;; [3-4][0-9]) echo "๐ฒ: $humidity%" ;; [5-6][0-9]) echo "๐ง: $humidity%" ;; [7-8][0-9]) echo "๐ฆ: $humidity%" ;; @@ -351,7 +351,7 @@ case $BLOCK_BUTTON in ๐ฅถ: Daily lowest temperature ๐ฅต: Daily highest temperature" notify-send "$(todayweather)" - notify-send "๐บ๏ธ Doppler RADAR module" "\- Middle click for local Doppler RADAR + notify-send "๐บ Doppler RADAR module" "\- Middle click for local Doppler RADAR - Shift + middle click to update RADAR location After $secs seconds, new clicks will also automatically update the doppler RADAR" ;; @@ -360,6 +360,6 @@ After $secs seconds, new clicks will also automatically update the doppler RADAR 8) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac -checkforecast "$weatherreport" "3600" || { getweatherreport && pkill -RTMIN+15 "${STATUSBAR:-dwmblocks}" && sleep 3; } -checkforecast "$weatherreportjson" "86400" || { getweatherreportjson && pkill -RTMIN+15 "${STATUSBAR:-dwmblocks}" && sleep 3; } +checkforecast "$weatherreport" "3600" || { getweatherreport && pkill -RTMIN+13 "${STATUSBAR:-dwmblocks}" && sleep 3; } +checkforecast "$weatherreportjson" "86400" || { getweatherreportjson && pkill -RTMIN+13 "${STATUSBAR:-dwmblocks}" && sleep 3; } showweather diff --git a/ar/.local/bin/statusbar/sb-internet b/ar/.local/bin/statusbar/sb-internet index df43676..4dfb605 100755 --- a/ar/.local/bin/statusbar/sb-internet +++ b/ar/.local/bin/statusbar/sb-internet @@ -2,12 +2,48 @@ # Show wifi ๐ and percent strength or ๐ก if none. # Show ๐ if connected to ethernet or โ if none. -# Show ๐ฐ๏ธ if a vpn connection is active +# Show ๐ฐ if a vpn connection is active + +eth_con="$(nmcli -t -f NAME,TYPE,DEVICE connection show | + awk -F: '$2=="ethernet" && $3!="" { print $1; exit }')" + +wifi_con="$(nmcli -t -f NAME,TYPE connection show | + awk -F: '$2=="wifi" { print $1; exit }')" + +if [ -n "$eth_con" ]; then + nmcli connection modify "$eth_con" ipv4.method auto + nmcli connection modify "$eth_con" ipv4.never-default no + nmcli connection modify "$eth_con" ipv4.dns-priority -42 + nmcli connection modify "$eth_con" ipv4.route-metric 100 + nmcli connection modify "$eth_con" connection.autoconnect yes +fi + +if [ -n "$wifi_con" ]; then + nmcli connection modify "$wifi_con" ipv4.dns-priority 100 + nmcli connection modify "$wifi_con" ipv4.route-metric 600 +fi case $BLOCK_BUTTON in 1) "$TERMINAL" -e nmtui - pkill -RTMIN+7 dwmblocks + pkill -RTMIN+6 dwmblocks + ;; +2) + wifi_dev="$(nmcli -t -f DEVICE,TYPE device | + awk -F: '$2=="wifi" { print $1; exit }')" + + wifi_state="$(nmcli -t -f DEVICE,STATE device | + awk -F: -v dev="$wifi_dev" '$1==dev { print $2 }')" + + if [ "$wifi_state" = "connected" ]; then + nmcli radio wifi off + notify-send "Wi-Fi" "Wi-Fi disconnected" + else + nmcli radio wifi on + notify-send "Wi-Fi" "Wi-Fi connected" + fi + + pkill -RTMIN+6 dwmblocks ;; 3) notify-send "๐ Internet module" "\- Left click to connect โ: wifi disabled @@ -15,23 +51,27 @@ case $BLOCK_BUTTON in ๐: wifi connection with quality โ: no ethernet ๐: ethernet working -๐ฐ๏ธ: vpn is active +๐ฐ: vpn is active " ;; 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; esac # Wifi -if grep -q 'up' /sys/class/net/w*/operstate; then - wifiicon="$(awk '/^\s*w/ { print "๐" int($3 * 100 / 70) "%" }' /proc/net/wireless)" -elif grep -q 'down' /sys/class/net/w*/operstate; then - grep -q '0x1003' /sys/class/net/w*/flags && wifiicon="๐ก" || wifiicon="โ" +if grep -q 'up' /sys/class/net/w*/operstate 2>/dev/null; then + if grep -q '^\s*w' /proc/net/wireless; then + wifiicon="$(awk '/^\s*w/ { print "๐" int($3 * 100 / 70) "%" }' /proc/net/wireless)" + else + wifiicon="๐ก" + fi +elif grep -q 'down' /sys/class/net/w*/operstate 2>/dev/null; then + wifiicon="โ" fi # Ethernet grep -q 'up' /sys/class/net/e*/operstate && 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="๐ฐ" icons="" [ -n "$wifiicon" ] && icons="${icons}$wifiicon " diff --git a/ar/.local/bin/statusbar/sb-iplocate b/ar/.local/bin/statusbar/sb-iplocate index d84445e..d7a9349 100755 --- a/ar/.local/bin/statusbar/sb-iplocate +++ b/ar/.local/bin/statusbar/sb-iplocate @@ -10,6 +10,6 @@ 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="$(grep "flag: $name" "${XDG_DATA_HOME:-${HOME}/.local/share}/thesiah/chars/emoji")" flag="${flag%% *}" printf "%s %s\\n" "$flag" "$name" diff --git a/ar/.local/bin/statusbar/sb-keyboard b/ar/.local/bin/statusbar/sb-keyboard index 34fa2bc..2257b1b 100755 --- a/ar/.local/bin/statusbar/sb-keyboard +++ b/ar/.local/bin/statusbar/sb-keyboard @@ -3,9 +3,9 @@ # works on any init system # requirements: dmenu, xorg-setxkbmap case $BLOCK_BUTTON in -1) fcitx5-remote -t && kill -44 "$(pidof "${STATUSBAR:-dwmblocks}")" ;; +1) fcitx5-remote -t && kill -43 "$(pidof "${STATUSBAR:-dwmblocks}")" ;; 2) remaps ;; -3) notify-send "โจ๏ธ Input Method module" "\- Shows current input method (defalt US) +3) notify-send "โจ Input Method module" "\- Shows current input method (defalt US) - Left click to switch language (EN/KO) - Middle click to change keyboard" ;; 6) setsid -f "$TERMINAL" -e "$EDITOR" "$0" ;; @@ -14,7 +14,7 @@ case $BLOCK_BUTTON in [ -z "$kb_choice" ] && exit 0 kb="$(echo "$kb_choice" | awk '{print $3}')" setxkbmap "$kb" - pkill -RTMIN+10 "${STATUSBAR:-dwmblocks}" + pkill -RTMIN+9 "${STATUSBAR:-dwmblocks}" ;; esac @@ -28,4 +28,4 @@ hangul) lang="KO" ;; *) lang="??" ;; esac -echo "โจ๏ธ$lang" +echo "โจ$lang" diff --git a/ar/.local/bin/statusbar/sb-mailbox b/ar/.local/bin/statusbar/sb-mailbox index c772a0d..6926b6e 100755 --- a/ar/.local/bin/statusbar/sb-mailbox +++ b/ar/.local/bin/statusbar/sb-mailbox @@ -6,7 +6,7 @@ case $BLOCK_BUTTON in 1) setsid -w -f "$TERMINAL" -e neomutt - pkill -RTMIN+20 "${STATUSBAR:-dwmblocks}" + pkill -RTMIN+18 "${STATUSBAR:-dwmblocks}" ;; 2) setsid -f mw -Y >/dev/null ;; 3) notify-send "๐ฌ Mail module" "\- Shows unread mail diff --git a/ar/.local/bin/statusbar/sb-memory b/ar/.local/bin/statusbar/sb-memory index 5b06d29..3c9dd03 100755 --- a/ar/.local/bin/statusbar/sb-memory +++ b/ar/.local/bin/statusbar/sb-memory @@ -10,9 +10,15 @@ case $BLOCK_BUTTON in esac width=$(xrandr | grep "\*" | awk '{print $1}' | sed 's/x[0-9]*//g' | head -n1) +nvme_temp=$(sensors 2>/dev/null | + awk '/Composite:/ {gsub(/[+ยฐC]/,"",$2); print $2; exit}') if [ -n "$width" ] && [ "$width" -eq "$width" ] 2>/dev/null; then - [ "$width" -lt 1920 ] && - free --mebi | sed -n '2{p;q}' | awk '{printf ("๐%d%%\n", ($3/$2)*100+0.5 )}' || - free --mebi | sed -n '2{p;q}' | awk '{printf ("๐%dGB/%dGB", $3/1000+0.5,$2/1000+0.5)}' + if [ "$width" -lt 1920 ]; then + free --mebi | sed -n '2{p;q}' | + awk -v t="$nvme_temp" '{printf "๐ก%sยฐ ๐%d%%\n", t, ($3/$2)*100+0.5}' + else + free --mebi | sed -n '2{p;q}' | + awk -v t="$nvme_temp" '{printf "๐ก%sยฐ ๐%dGB/%dGB", t, $3/1000+0.5, $2/1000+0.5}' + fi fi diff --git a/ar/.local/bin/statusbar/sb-mpdup b/ar/.local/bin/statusbar/sb-mpdup index 90e9c7e..fa9b61b 100755 --- a/ar/.local/bin/statusbar/sb-mpdup +++ b/ar/.local/bin/statusbar/sb-mpdup @@ -4,5 +4,5 @@ # music player's status. mpd must be running on X's start for this to work. while :; do - mpc idle >/dev/null && kill -57 "$(pidof "${STATUSBAR:-dwmblocks}")" || break + mpc idle >/dev/null && kill -55 "$(pidof "${STATUSBAR:-dwmblocks}")" || break done diff --git a/ar/.local/bin/statusbar/sb-music b/ar/.local/bin/statusbar/sb-music index a71969f..d730116 100755 --- a/ar/.local/bin/statusbar/sb-music +++ b/ar/.local/bin/statusbar/sb-music @@ -61,7 +61,7 @@ case $BLOCK_BUTTON in 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)" + { [ -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 diff --git a/ar/.local/bin/statusbar/sb-packages b/ar/.local/bin/statusbar/sb-packages index 5955c75..467bfb3 100755 --- a/ar/.local/bin/statusbar/sb-packages +++ b/ar/.local/bin/statusbar/sb-packages @@ -15,7 +15,7 @@ # [Action] # Description = Updating statusbar... # When = PostTransaction -# Exec = /usr/bin/pkill -RTMIN+16 dwmblocks # Or i3blocks if using i3. +# Exec = /usr/bin/pkill -RTMIN+14 dwmblocks # Or i3blocks if using i3. case $BLOCK_BUTTON in 1) setsid -f "$TERMINAL" -e sb-popupgrade && remaps ;; diff --git a/ar/.local/bin/statusbar/sb-popupgrade b/ar/.local/bin/statusbar/sb-popupgrade index 14036eb..221c7db 100755 --- a/ar/.local/bin/statusbar/sb-popupgrade +++ b/ar/.local/bin/statusbar/sb-popupgrade @@ -3,7 +3,7 @@ printf "Beginning upgrade\\n" yay -Syu -pkill -RTMIN+16 "${STATUSBAR:-dwmblocks}" +pkill -RTMIN+14 "${STATUSBAR:-dwmblocks}" printf "\\nUpgrade complete.\\nPress <Enter> to exit window.\\n\\n" read -r _ diff --git a/ar/.local/bin/statusbar/sb-queues b/ar/.local/bin/statusbar/sb-queues index 40445f8..477fa7f 100755 --- a/ar/.local/bin/statusbar/sb-queues +++ b/ar/.local/bin/statusbar/sb-queues @@ -18,7 +18,7 @@ EOF if [ -z "$url" ]; then notify-send "๐ค No active yt-dlp downloads" fi - pkill -RTMIN+21 "${STATUSBAR:-dwmblocks}" + pkill -RTMIN+19 "${STATUSBAR:-dwmblocks}" } # This block displays the number of running and queued background tasks. Requires tsp. diff --git a/ar/.local/bin/statusbar/sb-repos b/ar/.local/bin/statusbar/sb-repos index 2c259ba..d5acfac 100755 --- a/ar/.local/bin/statusbar/sb-repos +++ b/ar/.local/bin/statusbar/sb-repos @@ -9,7 +9,7 @@ private_repos="$HOME/Private/repos" public_repos="${XDG_PUBLICSHARE_DIR:-${HOME}/Public}/repos" # Icon indicators -dotfiles_icon="โ๏ธ" +dotfiles_icon="โ" suckless_icon="๐ " private_icon="๐ " public_icon="๐ข" diff --git a/ar/.local/bin/statusbar/sb-tasks b/ar/.local/bin/statusbar/sb-tasks index 66be81b..5fc61df 100755 --- a/ar/.local/bin/statusbar/sb-tasks +++ b/ar/.local/bin/statusbar/sb-tasks @@ -67,7 +67,7 @@ $(printf "%b" "$overdue_list")" ;; 2) check_task_sync ;; 3) - notify-send "๐๏ธ Task Module" "Shows task counts. + notify-send "๐ Task Module" "Shows task counts. - Left click: Show tasks due soon. - Middle click: Show follow-up tasks." ;; diff --git a/ar/.local/bin/statusbar/sb-torrent b/ar/.local/bin/statusbar/sb-torrent index ec104b4..3e4b729 100755 --- a/ar/.local/bin/statusbar/sb-torrent +++ b/ar/.local/bin/statusbar/sb-torrent @@ -5,7 +5,7 @@ status=$(transmission-remote -l | grep % | s/.*Stopped.*/A ๐/; s/.*Seeding.*/Z ๐ฑ/; s/.*100%.*/N โ
/; - s/.*Idle.*/B ๐ฐ๏ธ/; + s/.*Idle.*/B ๐ฐ/; s/.*Uploading.*/L ๐ผ/; s/.*Downloading.*/M ๐ฝ/; s/.*%.*/Q โ/" | diff --git a/ar/.local/bin/statusbar/sb-volume b/ar/.local/bin/statusbar/sb-volume index 7881bfd..291e78d 100755 --- a/ar/.local/bin/statusbar/sb-volume +++ b/ar/.local/bin/statusbar/sb-volume @@ -5,7 +5,7 @@ case $BLOCK_BUTTON in 1) setsid -w -f "$TERMINAL" -e pulsemixer - pkill -RTMIN+5 "${STATUSBAR:-dwmblocks}" + pkill -RTMIN+4 "${STATUSBAR:-dwmblocks}" ;; 2) wpctl set-mute @DEFAULT_SINK@ toggle ;; 3) notify-send "๐ข Volume module" "\- Shows volume ๐, ๐ if muted diff --git a/ar/.local/bin/synctime b/ar/.local/bin/synctime index 47f4310..664639f 100755 --- a/ar/.local/bin/synctime +++ b/ar/.local/bin/synctime @@ -19,4 +19,4 @@ sudo hwclock --systohc echo "Current timezone: $current_zone" date -pkill -RTMIN+3 ${STATUSBAR:-dwmblocks} +pkill -RTMIN+2 ${STATUSBAR:-dwmblocks} diff --git a/ar/.local/bin/sysact b/ar/.local/bin/sysact index d4f3653..64ef127 100755 --- a/ar/.local/bin/sysact +++ b/ar/.local/bin/sysact @@ -11,10 +11,10 @@ lock() { mpc pause pauseallmpv wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle - kill -39 "$(pidof dwmblocks)" + kill -38 "$(pidof dwmblocks)" slock wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle - kill -39 "$(pidof dwmblocks)" + kill -38 "$(pidof dwmblocks)" } wmpid() { # This function is needed if there are multiple instances of the window manager. diff --git a/ar/.local/bin/td-toggle b/ar/.local/bin/td-toggle index 4bbe75c..c71d53f 100755 --- a/ar/.local/bin/td-toggle +++ b/ar/.local/bin/td-toggle @@ -8,4 +8,4 @@ else ifinstalled transmission-cli || exit [ "$(printf "No\\nYes" | dmenu -i -p "Turn on transmission daemon?")" = "Yes" ] && transmission-daemon && notify-send "๐ transmission-daemon enabled." fi -sleep 3 && pkill -RTMIN+22 "${STATUSBAR:-dwmblocks}" +sleep 3 && pkill -RTMIN+20 "${STATUSBAR:-dwmblocks}" diff --git a/ar/.local/bin/tordone b/ar/.local/bin/tordone index 4e097a0..016568f 100755 --- a/ar/.local/bin/tordone +++ b/ar/.local/bin/tordone @@ -5,6 +5,6 @@ if [ -n "$completed_torrents" ]; then for torrent_id in $completed_torrents; do transmission-remote -n "$USER" -t "$torrent_id" -r done - pkill -RTMIN+22 "${STATUSBAR:-dwmblocks}" && notify-send "โ
Transmission-daemon" "Torrent(s) $TR_TORRENT_NAME has completed downloading. Deleting torrent files." + pkill -RTMIN+20 "${STATUSBAR:-dwmblocks}" && notify-send "โ
Transmission-daemon" "Torrent(s) $TR_TORRENT_NAME has completed downloading. Deleting torrent files." [ -z "$(transmission-remote -n "$USER" -l | grep -v "Sum:")" ] && killall transmission-daemon && notify-send "โ Transmission-daemon disabled." fi diff --git a/ar/.local/bin/torwrap b/ar/.local/bin/torwrap index 54f5c0e..624778a 100755 --- a/ar/.local/bin/torwrap +++ b/ar/.local/bin/torwrap @@ -5,4 +5,4 @@ ifinstalled stig transmission-cli || exit 1 ! pidof transmission-daemon >/dev/null && transmission-daemon && notify-send "Starting torrent daemon..." "${TERMINAL:-st}" -n stig -e stig -pkill -RTMIN+22 "${STATUSBAR:-dwmblocks}" +pkill -RTMIN+20 "${STATUSBAR:-dwmblocks}" diff --git a/ar/.local/bin/transadd b/ar/.local/bin/transadd index ffd8ded..567b1bc 100755 --- a/ar/.local/bin/transadd +++ b/ar/.local/bin/transadd @@ -4,7 +4,7 @@ # transmission-daemon sometimes fails to take remote requests in its first moments, hence the sleep. -pidof transmission-daemon >/dev/null || (transmission-daemon && notify-send "๐ก Starting transmission daemon..." && sleep 3 && pkill -RTMIN+22 "${STATUSBAR:-dwmblocks}") +pidof transmission-daemon >/dev/null || (transmission-daemon && notify-send "๐ก Starting transmission daemon..." && sleep 3 && pkill -RTMIN+20 "${STATUSBAR:-dwmblocks}") directory="$HOME/Torrents" diff --git a/ar/.local/bin/ylog b/ar/.local/bin/ylog index 254803b..c56df36 100755 --- a/ar/.local/bin/ylog +++ b/ar/.local/bin/ylog @@ -5,7 +5,7 @@ LOG_DIR="/var/log/nginx" TARGET="all" # "all" means no target filter (show all lines) COUNTRY="all" # all|kr|us -SCOPE="all" # all|access|recordings +SCOPE="all" # all|access|recordings|hidden|diary|peertube EXCL_FIREFOX=0 # 1 = exclude Firefox lines by default EXCLUDES="59.19.56.8" # default exclude pattern ADD_EXCLUDES="" @@ -24,13 +24,16 @@ Options: -c COUNTRY Select country logs (default: all) all : all logs - kr : recordings.kr.log + recordings.access.log - us : recordings.us.log + recordings.access.log + kr : recordings.kr.log + recordings.access.log (and diary.kr.log when -s diary) + us : recordings.us.log + recordings.access.log (and diary.us.log when -s diary) -s SCOPE Select log scope (default: all) - all : recordings + access + all : recordings + access + hidden + diary + peertube recordings : recordings.* logs only access : access.* logs only + hidden : hidden.access.* logs only + diary : diary.* logs only + peertube : peertube.* logs only -n Disable Firefox exclusion (by default, Firefox lines are excluded) @@ -51,7 +54,10 @@ Options: Examples: ylog # All logs, last 10 lines each ylog -s recordings # Recordings logs only, last 10 lines each + ylog -s diary # Diary logs only, last 10 lines each + ylog -s peertube # Peertube logs only, last 10 lines each ylog -c kr -t 1.2.3.4 # Search specific IP in Korean logs + ylog -c kr -s diary # Korean diary logs only ylog -t all -l 50 # All logs, last 50 lines each ylog -d 1 # Logs from 1 day ago only ylog -d ~2 # Logs from 2 days ago to today @@ -119,6 +125,32 @@ pick_files() { [ -e "$q" ] && printf "%s\n" "$q" done fi + # diary logs: similar structure to recordings + if [ "$SCOPE" = "diary" ] || [ "$SCOPE" = "all" ]; then + if [ "$COUNTRY" = "all" ]; then + for q in "$LOG_DIR/diary.access.log" "$LOG_DIR/diary.access.log".*; do + [ -e "$q" ] && printf "%s\n" "$q" + done + fi + case "$COUNTRY" in + kr) for q in "$LOG_DIR/diary.kr.log" "$LOG_DIR/diary.kr.log".*; do [ -e "$q" ] && printf "%s\n" "$q"; done ;; + us) for q in "$LOG_DIR/diary.us.log" "$LOG_DIR/diary.us.log".*; do [ -e "$q" ] && printf "%s\n" "$q"; done ;; + all) + for p in diary.kr.log diary.us.log; do + for q in "$LOG_DIR/$p" "$LOG_DIR/$p".*; do [ -e "$q" ] && printf "%s\n" "$q"; done + done + ;; + esac + fi + # peertube logs + if [ "$SCOPE" = "peertube" ] || [ "$SCOPE" = "all" ]; then + for q in "$LOG_DIR/peertube.access.log" "$LOG_DIR/peertube.access.log".*; do + [ -e "$q" ] && printf "%s\n" "$q" + done + for q in "$LOG_DIR/peertube.error.log" "$LOG_DIR/peertube.error.log".*; do + [ -e "$q" ] && printf "%s\n" "$q" + done + fi } # build exclude regex diff --git a/global/.gnupg/sshcontrol b/global/.gnupg/sshcontrol index 24243e0..e64aa3c 100644 --- a/global/.gnupg/sshcontrol +++ b/global/.gnupg/sshcontrol @@ -21,4 +21,7 @@ CEA80B05ABA46C5DE584655EFD7D26E81A2DFF65 # Ed25519 key added on: 2025-12-26 23:24:56 # Fingerprints: MD5:4d:4a:d4:bf:7f:05:d5:5c:b1:e6:15:dc:6f:f8:fb:d8 # SHA256:T8WNYKy8dz+VIYeVm3k3bqpcZiViQChxrNc3BIVgykk -B62CB11C68C40B7C5E743B2DD09D0D8CED85EB92 0 +# Ed25519 key added on: 2026-01-09 00:07:16 +# Fingerprints: MD5:94:45:bc:ff:b2:5e:9f:56:04:a1:b5:e4:6d:c0:1f:c1 +# SHA256:VL5p1d+iHFL8EJZ/y/tgrUXhpxads6ik1SoZim+U/fk +5A04F5DC42D5A09E50DFEB163B5F3E5A89FC04FE 0 diff --git a/global/.local/share/thesiah/chars/emoji b/global/.local/share/thesiah/chars/emoji index 485b03c..093c6c3 100644 --- a/global/.local/share/thesiah/chars/emoji +++ b/global/.local/share/thesiah/chars/emoji @@ -17,7 +17,7 @@ ๐คฉ star-struck ๐ face blowing a kiss ๐ kissing face -โบ๏ธ smiling face +โบ smiling face ๐ kissing face with closed eyes ๐ kissing face with smiling eyes ๐ฅฒ smiling face with tear @@ -73,7 +73,7 @@ ๐ซค face with diagonal mouth ๐ worried face ๐ slightly frowning face -โน๏ธ frowning face +โน frowning face ๐ฎ face with open mouth ๐ฏ hushed face ๐ฒ astonished face @@ -102,7 +102,7 @@ ๐ smiling face with horns ๐ฟ angry face with horns ๐ skull -โ ๏ธ skull and crossbones +โ skull and crossbones ๐ฉ pile of poo ๐คก clown face ๐น ogre @@ -132,9 +132,9 @@ ๐ revolving hearts ๐ two hearts ๐ heart decoration -โฃ๏ธ heart exclamation +โฃ heart exclamation ๐ broken heart -โค๏ธ red heart +โค red heart ๐ฉท pink heart ๐งก orange heart ๐ yellow heart @@ -153,15 +153,15 @@ ๐ซ dizzy ๐ฆ sweat droplets ๐จ dashing away -๐ณ๏ธ hole +๐ณ hole ๐ฌ speech balloon -๐จ๏ธ left speech bubble -๐ฏ๏ธ right anger bubble +๐จ left speech bubble +๐ฏ right anger bubble ๐ญ thought balloon ๐ค ZZZ ๐ waving hand ๐ค raised back of hand -๐๏ธ hand with fingers splayed +๐ hand with fingers splayed โ raised hand ๐ vulcan salute ๐ซฑ rightwards hand @@ -243,7 +243,7 @@ ๐คฆ person facepalming ๐คท person shrugging ๐ฎ police officer -๐ต๏ธ detective +๐ต detective ๐ guard ๐ฅท ninja ๐ท construction worker @@ -280,20 +280,21 @@ ๐ person running ๐ woman dancing ๐บ man dancing -๐ด๏ธ person in suit levitating +๐ด person in suit levitating ๐ฏ people with bunny ears ๐ง person in steamy room ๐ง person climbing ๐คบ person fencing ๐ horse racing -โท๏ธ skier +โท skier ๐ snowboarder -๐๏ธ person golfing +๐ person golfing ๐ person surfing +๐ derelict house ๐ฃ person rowing boat ๐ person swimming -โน๏ธ person bouncing ball -๐๏ธ person lifting weights +โน person bouncing ball +๐ person lifting weights ๐ด person biking ๐ต person mountain biking ๐คธ person cartwheeling @@ -612,26 +613,26 @@ ๐ globe showing Americas ๐ globe showing Asia-Australia ๐ globe with meridians -๐บ๏ธ world map +๐บ world map ๐พ map of Japan ๐งญ compass -๐๏ธ snow-capped mountain -โฐ๏ธ mountain +๐ snow-capped mountain +โฐ mountain ๐ volcano ๐ป mount fuji -๐๏ธ camping -๐๏ธ beach with umbrella -๐๏ธ desert -๐๏ธ desert island -๐๏ธ national park -๐๏ธ stadium -๐๏ธ classical building -๐๏ธ building construction +๐ camping +๐ beach with umbrella +๐ desert +๐ desert island +๐ national park +๐ stadium +๐ classical building +๐ building construction ๐งฑ brick ๐ชจ rock ๐ชต wood ๐ hut -๐๏ธ houses +๐ houses ๐๏ธ derelict house ๐ house ๐ก house with garden @@ -655,7 +656,8 @@ ๐ mosque ๐ hindu temple ๐ synagogue -โฉ๏ธ shinto shrine +โฉ shinto shrine +๐ cityscape ๐ kaaba โฒ fountain โบ tent @@ -667,7 +669,7 @@ ๐ cityscape at dusk ๐ sunset ๐ bridge at night -โจ๏ธ hot springs +โจ hot springs ๐ carousel horse ๐ playground slide ๐ก ferris wheel @@ -703,8 +705,8 @@ ๐ delivery truck ๐ articulated lorry ๐ tractor -๐๏ธ racing car -๐๏ธ motorcycle +๐ racing car +๐ motorcycle ๐ต motor scooter ๐ฆฝ manual wheelchair ๐ฆผ motorized wheelchair @@ -714,9 +716,9 @@ ๐น skateboard ๐ผ roller skate ๐ bus stop -๐ฃ๏ธ motorway -๐ค๏ธ railway track -๐ข๏ธ oil drum +๐ฃ motorway +๐ค railway track +๐ข oil drum โฝ fuel pump ๐ wheel ๐จ police car light @@ -729,12 +731,12 @@ โต sailboat ๐ถ canoe ๐ค speedboat -๐ณ๏ธ passenger ship -โด๏ธ ferry -๐ฅ๏ธ motor boat +๐ณ passenger ship +โด ferry +๐ฅ motor boat ๐ข ship -โ๏ธ airplane -๐ฉ๏ธ small airplane +โ airplane +๐ฉ small airplane ๐ซ airplane departure ๐ฌ airplane arrival ๐ช parachute @@ -743,18 +745,18 @@ ๐ suspension railway ๐ mountain cableway ๐ก aerial tramway -๐ฐ๏ธ satellite +๐ฐ satellite ๐ rocket ๐ธ flying saucer -๐๏ธ bellhop bell +๐ bellhop bell ๐งณ luggage โ hourglass done โณ hourglass not done โ watch โฐ alarm clock -โฑ๏ธ stopwatch -โฒ๏ธ timer clock -๐ฐ๏ธ mantelpiece clock +โฑ stopwatch +โฒ timer clock +๐ฐ mantelpiece clock ๐ twelve oโclock ๐ง twelve-thirty ๐ one oโclock @@ -791,8 +793,8 @@ ๐ new moon face ๐ first quarter moon face ๐ last quarter moon face -๐ก๏ธ thermometer -โ๏ธ sun +๐ก thermometer +โ sun ๐ full moon face ๐ sun with face ๐ช ringed planet @@ -800,29 +802,29 @@ ๐ glowing star ๐ shooting star ๐ milky way -โ๏ธ cloud +โ 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 +โ 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 โ umbrella with rain drops -โฑ๏ธ umbrella on ground +โฑ umbrella on ground โก high voltage -โ๏ธ snowflake -โ๏ธ snowman +โ snowflake +โ snowman โ snowman without snow -โ๏ธ comet +โ comet ๐ฅ fire ๐ง droplet ๐ water wave @@ -844,10 +846,10 @@ ๐งง red envelope ๐ ribbon ๐ wrapped gift -๐๏ธ reminder ribbon -๐๏ธ admission tickets +๐ reminder ribbon +๐ admission tickets ๐ซ ticket -๐๏ธ military medal +๐ military medal ๐ trophy ๐
sports medal ๐ฅ 1st place medal @@ -873,7 +875,7 @@ ๐ฅ martial arts uniform ๐ฅ
goal net โณ flag in hole -โธ๏ธ ice skate +โธ ice skate ๐ฃ fishing pole ๐คฟ diving mask ๐ฝ running shirt @@ -888,7 +890,7 @@ ๐ฎ crystal ball ๐ช magic wand ๐ฎ video game -๐น๏ธ joystick +๐น joystick ๐ฐ slot machine ๐ฒ game die ๐งฉ puzzle piece @@ -896,16 +898,16 @@ ๐ช
piรฑata ๐ชฉ mirror ball ๐ช nesting dolls -โ ๏ธ spade suit -โฅ๏ธ heart suit -โฆ๏ธ diamond suit -โฃ๏ธ club suit -โ๏ธ chess pawn +โ spade suit +โฅ heart suit +โฆ diamond suit +โฃ club suit +โ chess pawn ๐ joker ๐ mahjong red dragon ๐ด flower playing cards ๐ญ performing arts -๐ผ๏ธ framed picture +๐ผ framed picture ๐จ artist palette ๐งต thread ๐ชก sewing needle @@ -935,7 +937,7 @@ ๐ purse ๐ handbag ๐ clutch bag -๐๏ธ shopping bags +๐ shopping bags ๐ backpack ๐ฉด thong sandal ๐ manโs shoe @@ -953,7 +955,7 @@ ๐ graduation cap ๐งข billed cap ๐ช military helmet -โ๏ธ rescue workerโs helmet +โ rescue workerโs helmet ๐ฟ prayer beads ๐ lipstick ๐ ring @@ -970,9 +972,9 @@ ๐ผ musical score ๐ต musical note ๐ถ musical notes -๐๏ธ studio microphone -๐๏ธ level slider -๐๏ธ control knobs +๐ studio microphone +๐ level slider +๐ control knobs ๐ค microphone ๐ง headphone ๐ป radio @@ -990,7 +992,7 @@ ๐ช harp ๐ฑ mobile phone ๐ฒ mobile phone with arrow -โ๏ธ telephone +โ telephone ๐ telephone receiver ๐ pager ๐ fax machine @@ -998,19 +1000,19 @@ ๐ชซ low battery ๐ electric plug ๐ป laptop -๐ฅ๏ธ desktop computer -๐จ๏ธ printer -โจ๏ธ keyboard -๐ฑ๏ธ computer mouse -๐ฒ๏ธ trackball +๐ฅ desktop computer +๐จ printer +โจ keyboard +๐ฑ computer mouse +๐ฒ trackball ๐ฝ computer disk ๐พ floppy disk ๐ฟ optical disk ๐ dvd ๐งฎ abacus ๐ฅ movie camera -๐๏ธ film frames -๐ฝ๏ธ film projector +๐ film frames +๐ฝ film projector ๐ฌ clapper board ๐บ television ๐ท camera @@ -1019,7 +1021,7 @@ ๐ผ videocassette ๐ magnifying glass tilted left ๐ magnifying glass tilted right -๐ฏ๏ธ candle +๐ฏ candle ๐ก light bulb ๐ฆ flashlight ๐ฎ red paper lantern @@ -1040,7 +1042,7 @@ ๐๏ธ rolled-up newspaper ๐ bookmark tabs ๐ bookmark -๐ท๏ธ label +๐ท label ๐ฐ money bag ๐ช coin ๐ด yen banknote @@ -1051,7 +1053,7 @@ ๐ณ credit card ๐งพ receipt ๐น chart increasing with yen -โ๏ธ envelope +โ envelope ๐ง e-mail ๐จ incoming envelope ๐ฉ envelope with arrow @@ -1063,22 +1065,22 @@ ๐ฌ open mailbox with raised flag ๐ญ open mailbox with lowered flag ๐ฎ postbox -๐ณ๏ธ ballot box with ballot -โ๏ธ pencil -โ๏ธ black nib -๐๏ธ fountain pen -๐๏ธ pen -๐๏ธ paintbrush -๐๏ธ crayon +๐ณ ballot box with ballot +โ pencil +โ black nib +๐ fountain pen +๐ pen +๐ paintbrush +๐ crayon ๐ memo ๐ผ briefcase ๐ file folder ๐ open file folder -๐๏ธ card index dividers +๐ card index dividers ๐
calendar ๐ tear-off calendar -๐๏ธ spiral notepad -๐๏ธ spiral calendar +๐ spiral notepad +๐ spiral calendar ๐ card index ๐ chart increasing ๐ chart decreasing @@ -1087,26 +1089,26 @@ ๐ pushpin ๐ round pushpin ๐ paperclip -๐๏ธ linked paperclips +๐ linked paperclips ๐ straight ruler ๐ triangular ruler -โ๏ธ scissors -๐๏ธ card file box -๐๏ธ file cabinet -๐๏ธ wastebasket +โ scissors +๐ card file box +๐ file cabinet +๐ wastebasket ๐ locked ๐ unlocked ๐ locked with pen ๐ locked with key ๐ key -๐๏ธ old key +๐ old key ๐จ hammer ๐ช axe -โ๏ธ pick -โ๏ธ hammer and pick -๐ ๏ธ hammer and wrench -๐ก๏ธ dagger -โ๏ธ crossed swords +โ pick +โ hammer and pick +๐ hammer and wrench +๐ก dagger +โ crossed swords ๐ฃ bomb ๐ช boomerang ๐น bow and arrow @@ -1115,18 +1117,18 @@ ๐ง wrench ๐ช screwdriver ๐ฉ nut and bolt -โ๏ธ gear -๐๏ธ clamp -โ๏ธ balance scale +โ gear +๐ clamp +โ balance scale ๐ฆฏ white cane ๐ link -โ๏ธ chains +โ chains ๐ช hook ๐งฐ toolbox ๐งฒ magnet ๐ช ladder ๐ช shovel -โ๏ธ alembic +โ alembic ๐งช test tube ๐งซ petri dish ๐งฌ dna @@ -1166,9 +1168,9 @@ ๐งฏ fire extinguisher ๐ shopping cart ๐ฌ cigarette -โฐ๏ธ coffin +โฐ coffin ๐ชฆ headstone -โฑ๏ธ funeral urn +โฑ funeral urn ๐งฟ nazar amulet ๐ชฌ hamsa ๐ฟ moai @@ -1198,22 +1200,22 @@ ๐ท 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 +โข 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 @@ -1250,21 +1252,21 @@ ๐ shuffle tracks button ๐ repeat button ๐ repeat single button -โถ๏ธ play button +โถ play button โฉ fast-forward button -โญ๏ธ next track button -โฏ๏ธ play or pause button -โ๏ธ reverse button +โญ next track button +โฏ play or pause button +โ reverse button โช fast reverse button -โฎ๏ธ last track button +โฎ last track button ๐ผ upwards button โซ fast up button ๐ฝ downwards button โฌ fast down button -โธ๏ธ pause button -โน๏ธ stop button -โบ๏ธ record button -โ๏ธ eject button +โธ pause button +โน stop button +โบ record button +โ eject button ๐ฆ cinema ๐
dim button ๐ bright button @@ -1272,45 +1274,45 @@ ๐ wireless ๐ณ vibration mode ๐ด mobile phone off -โ๏ธ female sign -โ๏ธ male sign -โง๏ธ transgender symbol -โ๏ธ multiply +โ female sign +โ male sign +โง transgender symbol +โ multiply โ plus โ minus โ divide ๐ฐ heavy equals sign -โพ๏ธ infinity -โผ๏ธ double exclamation mark -โ๏ธ exclamation question mark +โพ infinity +โผ double exclamation mark +โ exclamation question mark โ red question mark โ white question mark โ white exclamation mark โ red exclamation mark -ใฐ๏ธ wavy dash +ใฐ wavy dash ๐ฑ currency exchange ๐ฒ heavy dollar sign -โ๏ธ medical symbol -โป๏ธ recycling symbol -โ๏ธ fleur-de-lis +โ 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 +โ 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 +ใฝ part alternation mark +โณ eight-spoked asterisk +โด eight-pointed star +โ sparkle +ยฉ copyright +ยฎ registered +โข trade mark ๐ซ splatter #๏ธโฃ keycap: # *๏ธโฃ keycap: * @@ -1330,26 +1332,26 @@ ๐ข input numbers ๐ฃ input symbols ๐ค input latin letters -๐
ฐ๏ธ A button (blood type) +๐
ฐ A button (blood type) ๐ AB button (blood type) -๐
ฑ๏ธ B button (blood type) +๐
ฑ B button (blood type) ๐ CL button ๐ COOL button ๐ FREE button -โน๏ธ information +โน information ๐ ID button -โ๏ธ circled M +โ circled M ๐ NEW button ๐ NG button -๐
พ๏ธ O button (blood type) +๐
พ O button (blood type) ๐ OK button -๐
ฟ๏ธ P button +๐
ฟ P button ๐ SOS button ๐ UP! button ๐ VS button ๐ Japanese โhereโ button -๐๏ธ Japanese โservice chargeโ button -๐ท๏ธ Japanese โmonthly amountโ button +๐ Japanese โservice chargeโ button +๐ท Japanese โmonthly amountโ button ๐ถ Japanese โnot free of chargeโ button ๐ฏ Japanese โreservedโ button ๐ Japanese โbargainโ button @@ -1360,8 +1362,8 @@ ๐ธ Japanese โapplicationโ button ๐ด Japanese โpassing gradeโ button ๐ณ Japanese โvacancyโ button -ใ๏ธ Japanese โcongratulationsโ button -ใ๏ธ Japanese โsecretโ button +ใ Japanese โcongratulationsโ button +ใ Japanese โsecretโ button ๐บ Japanese โopen for businessโ button ๐ต Japanese โno vacancyโ button ๐ด red circle @@ -1382,12 +1384,12 @@ ๐ซ brown square โฌ black large square โฌ white large square -โผ๏ธ black medium square -โป๏ธ white medium square +โผ black medium square +โป white medium square โพ black medium-small square โฝ white medium-small square -โช๏ธ black small square -โซ๏ธ white small square +โช black small square +โซ white small square ๐ถ large orange diamond ๐ท large blue diamond ๐ธ small orange diamond @@ -1402,7 +1404,7 @@ ๐ฉ triangular flag ๐ crossed flags ๐ด black flag -๐ณ๏ธ white flag +๐ณ white flag ๐ฆ๐จ flag: Ascension Island ๐ฆ๐ฉ flag: Andorra ๐ฆ๐ช flag: United Arab Emirates diff --git a/global/.ssh/config b/global/.ssh/config index 95182bb..bbeb10f 100644 --- a/global/.ssh/config +++ b/global/.ssh/config @@ -1,14 +1,16 @@ Match host * exec "gpg-connect-agent UPDATESTARTUPTTY /bye" -Host recordings +Host diary HostName thesiah.xyz User root RequestTTY yes - RemoteCommand cd /var/www/thesiah/recordings && exec $SHELL -l + RemoteCommand cd /var/www/thesiah/diary && exec $SHELL -l -Host github.com +Host github + HostName github.com User git IdentityAgent ~/.gnupg/S.gpg-agent.ssh + IdentitiesOnly yes Host evcp HostName 3.36.92.165 diff --git a/global/Music/.music.txt b/global/Music/.music.txt index a64bfc5..723a23d 100644 --- a/global/Music/.music.txt +++ b/global/Music/.music.txt @@ -914,3 +914,5 @@ youtube edJ1dXbaqak youtube Qe8fa4b5xNU youtube RgKAFK5djSk youtube 6wmuFMBouyQ +youtube t8p8FF16zJs +youtube Ejc__vhP2U8 diff --git a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua index 52ceb01..ee97612 100644 --- a/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua +++ b/mac/.config/TheSiahxyz/lua/TheSiahxyz/plugins/ai.lua @@ -260,6 +260,75 @@ return { }, }, { + "greggh/claude-code.nvim", + dependencies = { + "nvim-lua/plenary.nvim", -- Required for git operations + }, + config = function() + require("claude-code").setup({ + -- Terminal window settings + window = { + split_ratio = 0.3, -- Percentage of screen for the terminal window (height for horizontal, width for vertical splits) + position = "vertical", -- Position of the window: "botright", "topleft", "vertical", "float", etc. + enter_insert = true, -- Whether to enter insert mode when opening Claude Code + hide_numbers = true, -- Hide line numbers in the terminal window + hide_signcolumn = true, -- Hide the sign column in the terminal window + + -- Floating window configuration (only applies when position = "float") + float = { + width = "80%", -- Width: number of columns or percentage string + height = "80%", -- Height: number of rows or percentage string + row = "center", -- Row position: number, "center", or percentage string + col = "center", -- Column position: number, "center", or percentage string + relative = "editor", -- Relative to: "editor" or "cursor" + border = "rounded", -- Border style: "none", "single", "double", "rounded", "solid", "shadow" + }, + }, + -- File refresh settings + refresh = { + enable = true, -- Enable file change detection + updatetime = 100, -- updatetime when Claude Code is active (milliseconds) + timer_interval = 1000, -- How often to check for file changes (milliseconds) + show_notifications = true, -- Show notification when files are reloaded + }, + -- Git project settings + git = { + use_git_root = true, -- Set CWD to git root when opening Claude Code (if in git project) + }, + -- Shell-specific settings + shell = { + separator = "&&", -- Command separator used in shell commands + pushd_cmd = "pushd", -- Command to push directory onto stack (e.g., 'pushd' for bash/zsh, 'enter' for nushell) + popd_cmd = "popd", -- Command to pop directory from stack (e.g., 'popd' for bash/zsh, 'exit' for nushell) + }, + -- Command settings + command = "claude", -- Command used to launch Claude Code + -- Command variants + command_variants = { + -- Conversation management + continue = "--continue", -- Resume the most recent conversation + resume = "--resume", -- Display an interactive conversation picker + + -- Output options + verbose = "--verbose", -- Enable verbose logging with full turn-by-turn output + }, + -- Keymaps + keymaps = { + toggle = { + normal = "<C-,>", -- Normal mode keymap for toggling Claude Code, false to disable + terminal = "<C-,>", -- Terminal mode keymap for toggling Claude Code, false to disable + variants = { + continue = "<leader>cC", -- Normal mode keymap for Claude Code with continue flag + verbose = "<leader>cV", -- Normal mode keymap for Claude Code with verbose flag + }, + }, + window_navigation = true, -- Enable window navigation keymaps (<C-h/j/k/l>) + scrolling = true, -- Enable scrolling keymaps (<C-f/b>) for page up/down + }, + }) + end, + }, + { "NickvanDyke/opencode.nvim", dependencies = { -- Recommended for `ask()` and `select()`. @@ -277,7 +346,7 @@ return { vim.o.autoread = true -- Recommended/example keymaps. - vim.keymap.set({ "n", "x" }, "<C-a>", function() + vim.keymap.set({ "n", "x" }, "<C-q>", function() require("opencode").ask("@this: ", { submit = true }) end, { desc = "Ask opencode" }) vim.keymap.set({ "n", "x" }, "<C-x>", function() @@ -387,7 +456,7 @@ return { instructions_file = "avante.md", ---@alias Provider "claude" | "openai" | "azure" | "gemini" | "cohere" | "copilot" | string ---@type Provider - provider = "openai", -- The provider used in Aider mode or in the planning phase of Cursor Planning Mode + provider = "claude", -- The provider used in Aider mode or in the planning phase of Cursor Planning Mode ---@alias Mode "agentic" | "legacy" ---@type Mode mode = "agentic", -- The default mode for interaction. "agentic" uses tools to automatically generate code, "legacy" uses the old planning method to generate code. @@ -398,6 +467,7 @@ return { providers = { claude = { endpoint = "https://api.anthropic.com", + auth_type = "max", -- Set to "max" to sign in with Claude Pro/Max subscription model = "claude-sonnet-4-20250514", timeout = 30000, -- Timeout in milliseconds extra_request_body = { diff --git a/mac/.config/shell/aliasrc b/mac/.config/shell/aliasrc index f263206..64783f8 100644 --- a/mac/.config/shell/aliasrc +++ b/mac/.config/shell/aliasrc @@ -383,7 +383,7 @@ alias skype='skypeforlinux' # ssh alias gts="ssh $THESIAH_SERVER" -alias wwr="ssh recordings" +alias wwr="ssh diary" # sudo alias su='sudo su -l root' diff --git a/mac/.config/zsh/scripts.zsh b/mac/.config/zsh/scripts.zsh index f92a6c4..ac59ca6 100644 --- a/mac/.config/zsh/scripts.zsh +++ b/mac/.config/zsh/scripts.zsh @@ -388,9 +388,13 @@ EOF ) [[ -z "${SELECTED_DIRS// }" ]] && return if [[ "$(echo "$SELECTED_DIRS" | wc -l)" -eq 1 ]]; then - cd "$SELECTED_DIRS" - if [[ -n "$(git -C "$SELECTED_DIRS" status --porcelain)" ]]; then - git status --porcelain 2>/dev/null + if [[ -n "$TMUX" ]]; then + opensessions "$SELECTED_DIRS" + else + cd "$SELECTED_DIRS" || return + if [[ -n "$(git -C "$SELECTED_DIRS" status --porcelain 2>/dev/null)" ]]; then + git status --porcelain + fi fi else opensessions "$SELECTED_DIRS" diff --git a/mac/.local/bin/opensessions b/mac/.local/bin/opensessions index 6f9f236..d16f42f 100755 --- a/mac/.local/bin/opensessions +++ b/mac/.local/bin/opensessions @@ -18,7 +18,10 @@ set -- $dirs for dir in $dirs; do if [ -d "$dir" ]; then session_name=$(get_session_name "$dir") - if ! tmux has-session -t "$session_name" 2>/dev/null; then + if tmux has-session -t "$session_name" 2>/dev/null; then + session_path=$(tmux display-message -t "$session_name" -p '#{session_path}') + tmux send-keys -t "$session_name" "cd \"$session_path\"" C-m + else tmux new-session -d -s "$session_name" -c "$dir" if git -C "$dir" rev-parse --is-inside-work-tree >/dev/null 2>&1 && [ -n "$(git -C "$dir" status --porcelain)" ]; then tmux send-keys -t "$session_name" "git status --porcelain" C-m |
