diff options
| author | Arpit Chakladar <arpitchakladar@proton.me> | 2026-03-12 18:48:40 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar@proton.me> | 2026-03-12 18:48:40 +0530 |
| commit | 51d537e03ad877566f00af3c6a1c00340512ac65 (patch) | |
| tree | 7f8e1c6fccc68ba2ad7c3a2a02fb6efbc36d37d3 /modules/desktop/sxhkd/scripts/keybindings.sh | |
| parent | d6ccf7e455bd6947664d4a44dfe578813fa2b4eb (diff) | |
| download | home-manager-config-51d537e03ad877566f00af3c6a1c00340512ac65.tar.gz home-manager-config-51d537e03ad877566f00af3c6a1c00340512ac65.zip | |
Using spaces instead of tabs
Diffstat (limited to 'modules/desktop/sxhkd/scripts/keybindings.sh')
| -rwxr-xr-x | modules/desktop/sxhkd/scripts/keybindings.sh | 86 |
1 files changed, 43 insertions, 43 deletions
diff --git a/modules/desktop/sxhkd/scripts/keybindings.sh b/modules/desktop/sxhkd/scripts/keybindings.sh index 1548f1c..e713415 100755 --- a/modules/desktop/sxhkd/scripts/keybindings.sh +++ b/modules/desktop/sxhkd/scripts/keybindings.sh @@ -5,9 +5,9 @@ SXHKD_FILE="$HOME/.config/sxhkd/sxhkdrc" # Function to wrap text to a specified width wrap_text() { - local text="$1" - local width="$2" - echo "$text" | fold -s -w "$width" + local text="$1" + local width="$2" + echo "$text" | fold -s -w "$width" } # Get terminal width @@ -33,44 +33,44 @@ border_line="├$(printf '%.0s─' $(seq 1 $max_keybinding_length))┼$(printf ' # Pipe all output to less { - # Print table header with borders - echo "┌$(printf '%.0s─' $(seq 1 $max_keybinding_length))┬$(printf '%.0s─' $(seq 1 $description_width))┐" - printf "│ %-*s │ %-*s │\n" "$max_keybinding_content_length" "KEYBINDING" "$description_content_width" "DESCRIPTION" - - description="" - - # Load the sxhkd file into an array - mapfile -t lines < "$SXHKD_FILE" - - # Loop through lines for output - for line in "${lines[@]}"; do - # Check if the line is a comment - if [[ $line =~ ^# ]]; then - # Remove the "#" and any leading/trailing whitespace to capture the description - description="${line#\# }" - elif [[ $line =~ ^[^#[:space:]] ]]; then - # If it's a keybinding line, store it - keybinding="$line" - # Move to the next line for the command - command="${lines[((++i))]}" - - # Wrap the description to the calculated width - wrapped_description=$(wrap_text "$description" "$description_width") - - # Print the keybinding with a border line above and below it - echo "$border_line" - printf "│ %-*s │ %-*s │\n" "$max_keybinding_content_length" "$keybinding" "$description_content_width" "$(echo "$wrapped_description" | head -n 1)" - - # Print wrapped description lines with empty keybinding column - echo "$wrapped_description" | sed '1d' | while read -r continuation; do - printf "│ %-*s │ %-*s │\n" "$max_keybinding_content_length" "" "$description_content_width" "$continuation" - done - - # Reset description for the next keybinding - description="" - fi - done - - # Print the final border line - echo "└$(printf '%.0s─' $(seq 1 $max_keybinding_length))┴$(printf '%.0s─' $(seq 1 $description_width))┘" + # Print table header with borders + echo "┌$(printf '%.0s─' $(seq 1 $max_keybinding_length))┬$(printf '%.0s─' $(seq 1 $description_width))┐" + printf "│ %-*s │ %-*s │\n" "$max_keybinding_content_length" "KEYBINDING" "$description_content_width" "DESCRIPTION" + + description="" + + # Load the sxhkd file into an array + mapfile -t lines < "$SXHKD_FILE" + + # Loop through lines for output + for line in "${lines[@]}"; do + # Check if the line is a comment + if [[ $line =~ ^# ]]; then + # Remove the "#" and any leading/trailing whitespace to capture the description + description="${line#\# }" + elif [[ $line =~ ^[^#[:space:]] ]]; then + # If it's a keybinding line, store it + keybinding="$line" + # Move to the next line for the command + command="${lines[((++i))]}" + + # Wrap the description to the calculated width + wrapped_description=$(wrap_text "$description" "$description_width") + + # Print the keybinding with a border line above and below it + echo "$border_line" + printf "│ %-*s │ %-*s │\n" "$max_keybinding_content_length" "$keybinding" "$description_content_width" "$(echo "$wrapped_description" | head -n 1)" + + # Print wrapped description lines with empty keybinding column + echo "$wrapped_description" | sed '1d' | while read -r continuation; do + printf "│ %-*s │ %-*s │\n" "$max_keybinding_content_length" "" "$description_content_width" "$continuation" + done + + # Reset description for the next keybinding + description="" + fi + done + + # Print the final border line + echo "└$(printf '%.0s─' $(seq 1 $max_keybinding_length))┴$(printf '%.0s─' $(seq 1 $description_width))┘" } | less |
