XFCE – Отправить окно на другой монитор по нажатию клавиши

Я запускаю Xubuntu 11.10 с двойной настройкой монитора. Я хочу создать комбинацию клавиш (возможно, CTRL + ALT + SPACE, которая позволит мне отправить выбранное окно на следующий монитор.

В GNOME есть пакет под названием swapmonitor который способен отправить окно на другой монитор. Вызов этой программы нажатием клавиши дает такой же эффект.

  • Восстановление использования ключей управления громкостью после удаления pulseaudio
  • Отключение затенения окна мыши в XFce?
  • GTK Frontend для поиска
  • Xorg: выход источника поставщика в xorg.conf
  • Пусковая установка Slingscold ничего не находит
  • Chrome беспокоит меня за пароль для ключей при запуске
  • Как это делается в XFCE / Xubuntu?

  • Перенос Ctrl-l в bash
  • Перенос настроек XFCE из одной системы в другую?
  • Выполнять «правильные» вызовы xrandr при подключении / отключении мониторов
  • Пользовательские столбцы в Thunar
  • Могу ли я использовать Shift-Space в tmux keybinding?
  • Три монитора на двух видеокартах (NVIDIA и RADEON)
  • 3 Solutions collect form web for “XFCE – Отправить окно на другой монитор по нажатию клавиши”

    Это было опубликовано некоторое время назад, и я уверен, что вы уже получили свой ответ, но для тех, кто этого не сделал.

    Запуск этих команд

     sudo apt-get install xdotool sudo apt-get install wmctrl 

    Затем загрузите скрипт bash из следующей ссылки (кредит на jc00ke) https://github.com/jc00ke/move-to-next-monitor

    Лично у меня есть каталог в моем корне, где я храню все мои личные скрипты. Однако, когда вы загружаете, это действительно зависит от вас. Измените его, чтобы иметь разрешения, чтобы вы могли выполнить. Например, сохраните сценарии как move-to-next-monitor.sh, а затем выполните следующие

     chmod 755 move-to-next-monitor.sh 
    1. менеджер настроек -> клавиатура -> ярлыки приложений
    2. Нажмите Добавить
    3. Нажмите «Открыть» и нарисуйте его на свой скрипт.
    4. Назначьте ему сочетание клавиш и wallah!

    Теперь у вас есть комбинация клавиш для переключения окна с экрана 1 на другой. Я не уверен, как это работает с более чем 2 экранами.

    Я внес некоторые изменения в упомянутый выше сценарий, первоначально созданный jc00ke.
    – Шахта настроена для трех мониторов.
    – Он поддерживает, было ли окно максимизировано или нет.
    – Он используется для перемещения окна влево или вправо с использованием имени script-name -l и имени script-name -r соответственно.
    – Я добавил исправление, когда приложения Chromium при минимизации очень малы и не будут снова увеличиваться на новом мониторе.
    Я переписывался с jc00ke. Хотя это отлично работает на Xfce, он сказал, что у него проблемы со своим сценарием в Unity. Конечно, для других настольных сред, таких как Unity, этот скрипт не нужен, потому что такие параметры встроены в оконный менеджер.
    Чтобы использовать скрипт, выполните его исполняемый файл chmod +x script-name и установите следующие две программы: sudo apt-get install xdotool wmctrl .

     #!/bin/bash # # Move the current window to the next monitor. # # Also works only on one X screen (which is the most common case). # # Props to # http://icyrock.com/blog/2012/05/xubuntu-moving-windows-between-monitors/ # # Unfortunately, both "xdotool getwindowgeometry --shell $window_id" and # checking "-geometry" of "xwininfo -id $window_id" are not sufficient, as # the first command does not respect panel/decoration offsets and the second # will sometimes give a "-0-0" geometry. This is why we resort to "xwininfo". screen_width=$(xdpyinfo | awk -F" |x" '/dimensions:/ { print $7 }') screen_height=$(xdpyinfo | awk -F" |x" '/dimensions:/ { print $8 }') window_id=$(xdotool getactivewindow) case $1 in -l ) display_width=$((screen_width / 3 * 2)) ;; -r ) display_width=$((screen_width / 3)) ;; esac # Remember if it was maximized. window_state=$(xprop -id $window_id _NET_WM_STATE | awk '{ print $3 }') # Un-maximize current window so that we can move it wmctrl -ir $window_id -b remove,maximized_vert,maximized_horz # Read window position x=$(xwininfo -id $window_id | awk '/Absolute upper-left X:/ { print $4 }') y=$(xwininfo -id $window_id | awk '/Absolute upper-left Y:/ { print $4 }') # Subtract any offsets caused by window decorations and panels x_offset=$(xwininfo -id $window_id | awk '/Relative upper-left X:/ { print $4 }') y_offset=$(xwininfo -id $window_id | awk '/Relative upper-left Y:/ { print $4 }') x=$((x - x_offset)) y=$((y - y_offset)) # Fix Chromium app view issue of small un-maximized size width=$(xdotool getwindowgeometry $window_id | awk -F" |x" '/Geometry:/ { print $4 }') if [ "$width" -lt "150" ]; then display_width=$((display_width + 150)) fi # Compute new X position new_x=$((x + display_width)) # Compute new Y position new_y=$((y + screen_height)) # If we would move off the right-most monitor, we set it to the left one. # We also respect the window's width here: moving a window off more than half its width won't happen. if [ $((new_x + width / 2)) -gt $screen_width ]; then new_x=$((new_x - screen_width)) fi height=$(xdotool getwindowgeometry $window_id | awk -F" |x" '/Geometry:/ { print $5 }') if [ $((new_y + height / 2)) -gt $screen_height ]; then new_y=$((new_y - screen_height)) fi # Don't move off the left side. if [ $new_x -lt 0 ]; then new_x=0 fi # Don't move off the bottom if [ $new_y -lt 0 ]; then new_y=0 fi # Move the window xdotool windowmove $window_id $new_x $new_y # Maintain if window was maximized or not if [ "${window_state}" = "_NET_WM_STATE_MAXIMIZED_HORZ," ]; then wmctrl -ir $window_id -b add,maximized_vert,maximized_horz fi 

    Я также создал свой собственный скрипт python для перемещения окон через мониторы.

    https://github.com/calandoa/movescreen

    Применение:

    movescreen.py <up|down|left|right>

    Интересные особенности:

    • обрабатывать 4 направления
    • обрабатывать некоторые специальные случаи, такие как окна, перекрывающиеся на нескольких мониторах
    • восстанавливать независимо в полноэкранном режиме , максимально горизонтально и вертикально
    • отладка или добавление новых функций с помощью python.
    Linux и Unix - лучшая ОС в мире.