linux-scripts/options/view-gnome-keybinds.sh
billypom on debian 30f9fed77a update
2025-06-28 13:08:06 -04:00

39 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# Get the list of custom keybindings
keybindings=$(gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings)
# Clean up the keybindings list: remove square brackets, and strip quotes and spaces
keybindings=$(echo "$keybindings" | sed 's/^\[\(.*\)\]$/\1/' | tr -d '[:space:]')
# Loop through each custom keybinding path and print the details
IFS=',' read -r -a keybinding_paths <<< "$keybindings"
for path in "${keybinding_paths[@]}"; do
# Remove both leading/trailing single and double quotes, and any spaces
path=$(echo "$path" | sed 's/^"\(.*\)"$/\1/' | sed "s/^'\(.*\)'$/\1/" | sed 's/^[[:space:]]*//g' | sed 's/[[:space:]]*$//g')
# Debugging: Print the path to check for hidden characters
echo "DEBUG: Raw Keybinding Path: '$path'"
# Make sure the path starts with a slash and is not empty
if [[ "$path" != /* ]] || [[ -z "$path" ]]; then
echo "Error: Path does not begin with a slash (/): '$path'"
continue
fi
# Print the cleaned keybinding path
echo "Keybinding Path: $path"
# Query the details for the keybinding
name=$(gsettings get org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$path name)
command=$(gsettings get org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$path command)
binding=$(gsettings get org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$path binding)
# Print the details if they're available
echo " Name: $name"
echo " Command: $command"
echo " Binding: $binding"
echo "--------------------------"
done