Перетаскивание через (полноэкранные) приложения, переключение через Alt-Tab

пример

Перетащите медиа-файл в плейлист Totem, чтобы поставить в очередь

Ошибка в Compiz

Особенно для Unity (ранее Netbook Edition, предназначенной для небольших экранов) это довольно важная функция, поскольку приложения чаще всего запускаются в полноэкранном режиме, а перетаскивание с помощью сенсорной панели может быть громоздким.

https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/624810

Любой намек на то, где начать исправление ошибки? Какой файл / строка в исходном коде compiz?

Юзабилити фон

Согласно Фиттсу, Акко и Чжаю, время, необходимое для быстрого перемещения к целевой области, является функцией расстояния до и размера цели (см. Закон Фитта и закон управления).

Drag'n'Drop без Alt-Tab через полноэкранные окна требует

  1. начать перетаскивать объект
  2. перейти к панели запуска / панели задач
  3. Управляй значком приложения - маленькая и удаленная цель!
  4. дождитесь, пока приложение станет сфокусированным
  5. держись на окно - (огромная цель)
    опционально: ориентироваться на предполагаемую область окна, например, список воспроизведения (довольно большая цель)
  6. уронить объект

Drag'n'Drop с Alt-Tab с другой стороны требует только

  1. начать перетаскивать объект
  2. Alt-Tab в другое приложение
    опционально: ориентироваться на предполагаемую область окна, например, список воспроизведения (довольно большая цель)
  3. уронить объект

Таким образом, для Drag'n'Drop не требуется ни маленькая, ни удаленная цель, в то время как Alt-tabbing

обходные

Интересные и, вероятно, для многих пользователей полезные альтернативные подходы представлены в ответах ниже. Большое спасибо сообществу!

Правильный ответ

... кажется, доступен только тогда, когда ошибка исправлена.

Несколько более свежих действий, возможно, относящихся к данной проблеме: https://bugs.launchpad.net/ayatana-design/+bug/727903

5 ответов

То, как я нашел это работает:

  1. Начать перетаскивание,
  2. Удерживая кнопку мыши нажатой, нажмите Super + (0-9) переключить приложение,
  3. Продолжайте перетаскивать.

Примечание. На шаге 2 вы можете Super На мгновение нажмите кнопку запуска и покажет вам, какой номер (0-9) назначен какому приложению.

Я не нашел надежного способа перетаскивания файлов файлового менеджера (например) в Totem, пока принимающее приложение работает в полноэкранном режиме - однако, если вы не выводите принимающее приложение в полноэкранном режиме, у меня работает следующее.

Запустите CCSM и отредактируйте аддон Scale.

Нажмите "Инициировать окно выбора" (инициировать край, то есть тот, у которого значок монитора) и назначьте ему BottomRight.

Затем запустите получающее приложение (не во весь экран).

Инициируйте перетаскивание из файлового менеджера для нужных вам файлов - перетащите мышку в нижнее правое положение экрана - SpreadMode появится для всех окон. Перетащите мышку на приемное приложение. Спред-режим закроется с принимающим приложением в качестве активного окна. Бросьте предмет (ы), которые вы перетаскивали.

Я попробовал это на примере Totem в полноэкранном режиме. Иногда работает, но не надежно. Я думаю, что это глобальное меню, которое захватывает различные события.

NB. Чтобы тот пример Totem мог принять один или несколько файлов по капле, понадобится небольшая модификация его запуска на рабочем столе, как описано в этом вопросе AU.

Не связано с тотемом, но я нашел способ использовать Alt-Tab при перетаскивании файлов (перетащите файл pycharm в Chrome). Проверено на Ubuntu 20. Основная деталь - не двигать мышью, пока вы не закончите использовать Alt-Tab.

  1. Щелкните файл и удерживайте кнопку мыши нажатой.
    НЕ ПЕРЕМЕЩАЙТЕ КУРСОР. Курсор должен оставаться на месте.
    Нажмите и удерживайте. (Будет ваш обычный значок курсора, без значка перетаскивания)
  2. Alt-tab
  3. Начните перемещать курсор и отпустите файл, куда хотите (теперь у вас будет значок перетаскивания)

Предполагая, что у вас открыто приложение, на которое вы хотите перетащить: начните перетаскивать файл, перейдите к панели запуска (которая должна появиться вскоре после начала перетаскивания) и наведите курсор на приложение, в которое вы хотите перетащить, это должно показать откройте окна этого приложения, затем, продолжая перетаскивать файл, наведите курсор на окно, в которое вы хотите перетащить окно, и подождите, пока это окно станет активным (по умолчанию 500 мс, но это можно изменить в ccsm), затем вы можете отбросить файл куда угодно тебе нравится.

Это может показаться многословным, но это не займет много времени, особенно если вы выключите "Таймаут перетаскивания при перетаскивании" на вкладке "Поведение" плагина Scale в ccsm (доступно в Центре программного обеспечения), у меня есть мой на 200 мс и это нормально.

Еще один обходной путь для перетаскивания между двумя приложениями:

  1. Нажмите и начните перетаскивать элемент в окне Приложения № 1
  2. Нажмите ALT+F1, чтобы активировать режим выбора элемента Launcher
  3. Это может быть немного неудобно: нажмите клавишу со стрелкой вниз (или вверх) на клавиатуре, чтобы переместить курсор запуска в Приложение № 2
  4. Нажмите клавишу Enter, чтобы активировать выбранное приложение № 2
  5. Поместите перетаскиваемый элемент в всплывающее окно.

Примечание: это не работает (по крайней мере, так) с двумя окнами одного и того же приложения.

Он работает под Unity 2D, потому что Unity 2D полагается не на Compiz, а на Metacity/Mutter:

Другие вопросы по тегам