Чи можу я виявити панель у Xfce за допомогою натискання клавіші, а не за допомогою наведення курсору миші, щоб розкрити її?


17

Я хотів би мати можливість відкрити панель Xfce натисканням клавіші замість того, щоб розміщувати курсор миші на краю екрана.

Я використовую Xubuntu 12.04, але оновлений до Xfce 4.10


хммм .. я думаю, я міг би придумати щось, що перемістить вашу курсор миші там, натиснувши клавішу. Чи буде це робити те, що ти хочеш?
Сет

@iSeth - якщо нічого кращого неможливо, то так. Але оптимально, я б хотів натиснути клавішу і побачити панель незалежно від того, де знаходиться курсор ...
Borsook

Відповіді:


10

Візьміть наступні команди і зв’яжіть їх для розділення комбінацій супер-клавіш:

Команди для Xfce 4.12 до Xfce 4.14:

Наступні команди використовуються для встановлення властивостей автоматичного приховування:

xfconf-query -c xfce4-panel -p /panels/panel-0/autohide-behavior -s 0
xfconf-query -c xfce4-panel -p /panels/panel-0/autohide-behavior -s 1 
xfconf-query -c xfce4-panel -p /panels/panel-0/autohide-behavior -s 2

Команди для Xfce 4.10:

xfconf-query -c xfce4-panel -p /panels/panel-0/autohide -s false
xfconf-query -c xfce4-panel -p /panels/panel-0/autohide -s true

Оновлення: 12.12.2018 : Як зазначено в коментарях, вищезазначені команди більше не підтримуються.

Значення команд:

Значення "0" використовується для автоматичного приховування "ніколи" . Значення "1" призначене для "інтелектуального" автоматичного приховування панелі, а "2" використовується для встановлення значення "завжди" автоматичного приховування.

Налаштування прив'язки клавіш:

Це можна зробити, вибравши Меню програм → Установки → Клавіатура → Швидкі клавіші програм або запустивши xfce4-keyboard-settingsз командного рядка ( Ctrl+ Alt+t ).

Я прив’язав першу команду до Super+ u(щоб "приховати" панель). Для другої команди я прив’язую Super+h (щоб 'приховати' панель).

Як видно з команд вище, поведінка змінюється лише на одній панелі (У цьому випадку панель-0 змінюється).

Ви можете помітити невелику затримку, коли панель змінить стан.

Більш детальну інформацію про xfconf-queryкоманду можна знайти в документації Xfce або з цієї теми на форумі Xfce .


Гмммм, я спробував це і xconf command not foundпомилився. Яку версію Xfce ви використовуєте?
Сет

1
@iSeth Команда є xfconf, ні xconf. ;-) Команда доступна з xfce 4.6. Я запускаю xfce 4.10 з цього PPA ppa.launchpad.net/xubuntu-dev/xfce-4.10/ubuntu
Кевін Боуен

Ах, ваше право. Працює зараз. +1
Сет

4
Ви також можете використовувати цю toggleопцію в Xfce 4.10 і просто прив'язати одну команду до однієї клавіші: тобтоxfconf-query -c xfce4-panel -p /panels/panel-0/autohide -T

3
Просто для оновлення на пізнішій версії xfce4-панелі. Останні панелі xfce4 не мають властивості "autohide". Натомість є "autohide-поведінка" і вже не булева, а числове значення 0, 1 або 2. 0: ніколи не ховайся, 1: розумне ховання, 2: завжди ховай. Для досягнення того ж результату можна використовувати xfconf-query -c xfce4-panel -p /panels/panel-0/autohide-behavior -s 0і xfconf-query -c xfce4-panel -p /panels/panel-0/autohide-behavior -s 2.
Річард Вонг

4

Спробуйте це вирішити:

Встановити xteта xdotoolзsudo apt-get install xdotool xautomation

Ви можете використовувати xdotoolдля пошуку координат миші x, y. Відкрийте тип терміналу, xdotool getmouselocationпотім перемістіть мишу кудись, де вона активує панель і натисніть клавішу Enter. Ви отримаєте певний результат, наприклад:

findclient: 62914741
findclient: 6291474  
x:1282 y:1079 screen:0 window:62914741  

Тут важливо: x:1282 y:1079 що дає нам координати миші x, y.

Тепер введіть xte 'mousemove 1282 1079'(замінюючи 1282 1079отримані раніше координати). Це повинно перемістити мишу, куди ви хочете.

Ви можете скористатися xbindkeysцією командою для клавіші на клавіатурі. Я можу додати інструкції за запитом або ви можете встановити їх у налаштуваннях клавіатури Xubuntu.


2

Редагувати:

@JQuigley зазначив "Це більше не працює ..." див. Коментарі.


Як сказав Кевін, ви можете використовувати xfconf, але я зробив би це так:

xfconf-query -c xfce4-panel -p /panels/panel-0/autohide -T

The -TПеремикає істина / неправда значення. Таким чином, ви можете використовувати той самий ключ, щоб сховати / приховати.

Щоб отримати більше варіантів, виконайте:

xfconf-query --help

Я хотів зробити коментар до відповіді від Кевіна, оскільки саме це мене привело в правильний шлях. Але я тут новий, недостатньо репутації ..


На жаль, це більше не працює; властивість autohide, здається, було замінено на поведінку autohide, що є цілим числом, яке може бути 0, 1 або 2. Але підхід з двома ключами все ще працює. Також я гадаю, що людина може написати якийсь невеликий сценарій перемикання, який, можливо, зберігає стан у файлі чи щось таке, і дозволить стратегії з одним ключем знову працювати.
J Quigley

@JQuigley о, дякую, що вказав на це. Я більше не на xfce ... Якщо це так, я б пішов із сценарієм, щоб прочитати поточне значення і змінити його відповідно (зовнішній файл схильний до помилок).
федерація.

2

Вище написаний сценарій topisani все ще працює в xfce 4.12. Ви можете змінити цільову панель, змінивши panel-0сценарій на panel-1або panel-2тощо. Не забувайте, що потрібно змінити два рядки.


1

Я знаю, що я запізнююсь на пару років на вечірку, але просто для тих, хто може побачити це в майбутньому: Ось сценарій bash, який перемикає авто-ходи в новій системі, просто збережіть це в текстовому файлі десь, запустіть chmod +x file/that/i/savedі встановіть скрипт на клавішу в Налаштуваннях -> Клавіатура -> Ярлики.

#!/bin/bash

cur=$(xfconf-query -c xfce4-panel -p /panels/panel-0/autohide-behavior)
if [[ cur -eq 0 ]]; then
  nxt=1
else
  nxt=0
fi
xfconf-query -c xfce4-panel -p /panels/panel-0/autohide-behavior -s $nxt

0

Редагувати:

У коментарі було зазначено, що властивість autohide було змінено на щось інше, і -T не працює з новим: /


Тож, поки я з цим дуріла, я зробив невеликий сценарій для рубіну, щоб перемикати всі панелі одночасно. Здається, працює.

#!/usr/bin/env ruby

#Toggle all panels' autohide property in xfce4
# fede s.
out = `xfconf-query -c xfce4-panel -l`.split
out.inject(Array.new) {|res, val|
    m= /panel-([0-9]+)/.match(val);                 #get the panel numbers
    if m then res.push(m[1]) end;                   #add only if it matches
    res}.sort.uniq.each do                          #filter duplicates
        | num |
            `xfconf-query -c xfce4-panel -p /panels/panel-#{num}/autohide -T` #here is the command that will repeat for every panel found
    end

Це, мабуть, не найкращий спосіб зробити це, і я насправді мало знаю про рубін, тому сміливо кидайте мене у вогонь! : P

Якщо хтось хоче скористатися цим:

  1. переконайтеся, що у вас встановлений рубін.

  2. скопіюйте його у файл, де ви вважаєте за потрібне (у мене є як ~/scripts/xfce/toogleautohide.rb).

  3. Зробіть його виконуваним

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