KDE: Как установить ярлык для Pack Window -> Corner / Center

Вы не можете использовать псевдоним, чтобы сделать именно это, так как псевдоним расширяется до целых слов своего расширения, поэтому конечным результатом net google.comявляется open https://www. google.com(, что объясняет, почему он пытается найти файл с именем google.com.)

Вместо псевдонима используйте функцию, которая по сути работает в том же контексте, что и псевдоним, но более универсальна и позволяет лучше обрабатывать аргументы.

Подойдет что-то подобное:

(Если у вас все еще установлен псевдоним, начните с его удаления:)

$ unalias net

Затем определите функцию для открытия URL:

$ net() { open "https://www.$1"; }

А потом попробуйте с:

$ net google.com

См. также этот ответ о том, когда использовать псевдонимы, функции или скрипты в bash, которые могут показаться вам интересными.

1
13.11.2019, 21:57
1 ответ

Это может быть не более удобно, чем сценарии KWin, которые вы упомянули, но я использую сценарий Bash, который использует xdotoolвместе с конфигурацией xbindkeysдля сопоставления клавиш цифровой клавиатуры.

Скрипт:

#!/bin/bash
#
# Move a window to a certain location.
#
# Examples:
#   move-window.sh 'search --onlyvisible --name SpeedCrunch' top-right
#   move-window.sh getactivewindow bottom-left

set -euo pipefail

what=${1?What window would you like to move?}
where=${2?Where would you like to move your window to?}

# Determine the screen resolution
res=$(cat /sys/class/graphics/fb0/virtual_size)
screen_width=${res%,*} 
screen_height=${res#*,} 

# Determine the window size
window_id=$(xdotool $what)
eval $(xdotool $what getwindowgeometry --shell)

# Calculate the target location
case "$where" in
    top-left)       pos="0 0";;
    top-right)      pos="$(($screen_width-$WIDTH)) 0";;
    bottom-left)    pos="0 $(($screen_height-$HEIGHT))";;
    bottom-right)   pos="$(($screen_width-$WIDTH)) $(($screen_height-$HEIGHT))";;
    center)         pos="$(($screen_width/2-$WIDTH/2)) $(($screen_height/2-$HEIGHT/2))";;
    *)              pos="$where"
esac

# Move the window
xdotool windowmove $window_id $pos

Тогда в ~/.xbindkeysrcу меня есть следующее:

# Win+Num7: Move active window to top left
"move-window.sh getactivewindow top-left"
    Mod4 + KP_Home

# Win+Num9: Move active window to top right
"move-window.sh getactivewindow top-right"
    Mod4 + KP_Prior

# Win+Num1: Move active window to bottom left
"move-window.sh getactivewindow bottom-left"
    Mod4 + KP_End

# Win+Num3: Move active window to bottom right
"move-window.sh getactivewindow bottom-right"
    Mod4 + KP_Next

# Win+Num5: Move active window to center
"move-window.sh getactivewindow center"
    Mod4 + KP_Begin

(Не забудьте (повторно )запустить xbindkeysпосле обновления файла конфигурации.)

У меня не было возможности протестировать это на установке с несколькими -мониторами, и я не ожидаю, что это будет работать на Wayland, но это работает достаточно хорошо на моем текущем одиночном -экране Установка Debian bullseye + KDE.

2
11.10.2020, 12:38

Теги

Похожие вопросы