Як встановити ярлик для вікна "Завжди вгорі"?


27

У 12.04 (Unity) я хотів би призначити ярлик вікну "завжди в верхньому варіанті". Можливо, щось на кшталт Ctrl+ Shift+, Homeщоб увімкнути і Ctrl+ Shift+ Endвимкнути, або що завгодно. Чи є можливість зробити це десь у диспетчері налаштувань Compiz?

Ця (стара) публікація стверджувала це

Для compiz увімкніть додаткові дії WM. Перевірте властивості та вставте ALT+ Aдо поля Key для переключення дії "Завжди вгору".

Але я не міг цього знайти.


1
Хтось тут встиг зробити цю роботу в Ubuntu 12.10, не використовуючи ccsm? спасибі
Suhaib

Відповіді:


32

Він повинен працювати в будь-якій ОС Ubuntu з версії 9.04, не встановлюючи нічого, змінюючи створення будь-яких ярликів.

Спробуйте Alt+ Space, T

  • Alt+ Space як перший ярлик відкриває меню миші правою кнопкою миші

  • T вибирає функцію "Завжди вгорі".


1
Це абсолютно найкраща відповідь на сторінці.
dotancohen

Підтверджено роботу над Unity 14.04. Те, що alt + простір активує спадне меню, допомагає особливо для нечасто використовуваних функцій.
Френк М

Це має бути обрана відповідь. Дякую!
Нам Г ВУ

1
Це було опубліковано через 2 роки після запитання, але зараз є найкращою відповіддю, тому я змінюю прийняту відповідь.
Ян Хінкс

2
не працює 18.04, T більше не вибирає функцію "Завжди вгорі".
rvbarreto

14

Оскільки про це ніхто ще не згадував, я просто залишу рішення, яке працювало для мене на Ubuntu 12.04.

Ви можете встановити звичайну комбінацію клавіш і використовувати wmctrl для перемикання параметра "Завжди вгорі".

Перейдіть у Налаштування системи> Клавіатура> Ярлики> Спеціальні ярлики . Натисніть + та дайте ім’я ярлика. Потім введіть наступну команду.

wmctrl -r :ACTIVE: -b toggle,above

Якщо у вас його ще немає, ви можете встановити wmctrl з репосту за допомогою

sudo apt-get install wmctrl

У вас повинно бути щось подібне до цього.

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

Натисніть, застосуйте, і вам слід добре піти!

Це рішення вийшло з обговорення на форумах Ubuntu .


@Suhaib Ця частина вже є у відповіді. :)
Касісну

хаха, вибач. Не знаєте, як я пропустив це xD
Suhaib

7

Якщо не встановити CCSM та додаткові плагіни compiz через:

sudo apt-get install compizconfig-settings-manager compiz-plugins-extra

Будьте в курсі, будь ласка. CCSM може вбити Unity3D в деяких системах.

Якщо у вас ще не було встановлено compiz-plugins-extra, вам потрібно перезапустити Compiz, щоб завантажити його (навіть якщо вони відображаються в CCSM безпосередньо перед перезавантаженням) з Alt+ F2і

compiz - замінити

Ви можете побачити додаткові дії WM у розділі Управління Windows на CCSM, як це пояснено у публікації, яку ви знайшли. Ви можете легко встановити потрібну дію там.


Насправді, перезапуск compiz потрібен лише для того, щоб він знав про нові плагіни. Після цього ви можете змінити ярлики на ходу (тобто вам не потрібно перезапускати Compiz після кожної зміни ярлика)
пп

Дякую за інформацію @sup. Я просто пояснив це, використовуючи даний пост. Насправді я сам цього не пробував.
heartmagic

Ну, я переформулював це, щоб зробити його ще зрозумілішим :-).
sup

2

Ще одне, краще я думаю, рішення - додати Alt+ Aяк ярлик для перемикання властивості вікна "Завжди вгорі". Це можна зробити через gconf-редактор . Просто дотримуйтесь простих інструкцій, наведених у цьому відео .

EDIT: Скопійовано з відео

  1. якщо ви використовуєте 12.04 && 12.10, вам доведеться встановити gconf-редактор

    sudo apt-get install gconf-editor

  2. Введіть gconf-editorтермінал.

  3. Клацніть на програми

  4. Перейти до метациту

  5. window_keybindings

  6. клацніть правою кнопкою всередині правого поля та натисніть на new key

  7. Виберіть stringзі спадного списку.

  8. Додайте слово toggle_above

  9. Напишіть будь-яку команду, яку хочете. тобто: A і натисніть OK

Готово :-)


це не спрацювало :-(
Suhaib

Так, це теж не працює за 12.10.
sup

Він повинен бути редактором dconf 14.04 ... але він також не працює.
Ед Віллегас

1

Я намагався використовувати wmctrlперемикач команд, але це не спрацювало на моїй настройці Ubuntu. Перемикач увімкнеться, але не вимкнеться. (Я думаю, це може бути тому, що я використовую середовище робочого столу gnome, на якому wmctrlтрохи зламаний AFAIK).

У будь-якому випадку, після численних досліджень та розробок, як записати правильний код у bash, я створив єдину команду, яка використовує wmctrlкоманди в межах логічного шару для ефективного перемикання стану "завжди вгорі" на поточному робочому столі GNOME. Я опублікував цю відповідь на Ask Unix / Linux, але подумав, що я також опублікую її тут, якщо у когось є однакові проблеми.

Ось команда:

bash -c 'wmctrl -r :ACTIVE: -b $([[ $(xprop -id $(xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}") _NET_WM_STATE) =~ "ABOVE" ]] && echo "remove" || echo "add"),above'

Він перевіряє властивість стану активного вікна "_NET_WM_STATE", використовуючи xprops, і якщо він містить текст "ВІДОМ", це означає, що опція "завжди вгорі" активна. Тоді він просто запускає wmctrlкоманду з параметром addабо removeяк годиться.


Розбивка команд (кожна команда вставляється в наступну, замінюючи заповнювач):

  • Отримати активний ідентифікатор вікна:

    xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}"
    
  • Отримайте стан вікна xpropза допомогою ідентифікатора:

    xprop -id $(■) _NET_WM_STATE
    
  • Перевірте, чи містить стан "НАД", вказуючи, що у вікні встановлено значення "завжди вгорі":

    [[ $(■) =~ "ABOVE" ]]
    
  • Поверніть "видалити", якщо це правда, інакше поверніть "додати":

    ■ && echo "remove" || echo "add"
    
  • запустити wmctrlкоманду, використовуючи повернене значення як параметр:

    wmctrl -r :ACTIVE: -b $(■),above
    
  • Надішліть все це bashтак, щоб ви могли використовувати підстановку команд ${ ... }, bash булеву оцінку [[ ... ]]та оператор відповідності регулярних виразів =~:

    bash -c '■'
    

    Зокрема, цей останній крок знадобився мені дуже довго. Поки я не зрозумів, що комбінації клавіатур за замовчуванням не працюють у bash, я не знав, чому команди працюють у консолі, коли я їх тестую, але мовчки не виходить із ладу під час запуску безпосередньо як ярлик клавіатури. Це віками мене підводило до стіни!

Примітка: оскільки вам потрібні лапки навколо команди, яку ви надсилаєте в bash, я повинен був бути обережним при написанні команди, щоб я ніколи не ходив більше ніж на один рівень глибше (використовуючи подвійні лапки). Будь-яке подальше введення рядків у лапки вимагало б багатьох заплутаних зворотних косих ринків, щоб уникнути цитат.


0

Це може бути пізно, але якщо хтось шукає його знову і приходить сюди, є, як на мене, більш просте рішення:

У ubuntu та багатьох інших дистрибутивах, що використовують GTK (вони в основному поділяють панель налаштувань), ви можете перейти до пункту Налаштування -> клавіатура> ярлик. У "списку" ярлика ви знайдете запис, не призначений для збереження вікна на вершині. Не впевнений у назві англійською мовою, але французькою мовою це "Activer / Désactiver la mise au premier plan de la fenêtre".

Встановіть це і все :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.