Можно ли отобразить панель в 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/09/2018 : Как уже упоминалось в комментариях, вышеуказанные команды больше не поддерживаются.

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

Значение '0' используется для автоматического скрытия 'never' . Значение «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-panel. Последние 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

-TПереключает истина / ложь значение. Таким образом, вы можете использовать тот же ключ, чтобы скрыть / показать.

Чтобы получить больше вариантов, сделайте:

xfconf-query --help

Я хотел сделать комментарий к ответу от Кевина, так как именно это помогло мне встать на правильный путь. Но я новичок здесь, не хватает репутации ..


Это больше не работает, к сожалению; Свойство autohide, по-видимому, было заменено поведением autohide, которое является целым числом, которое может быть 0, 1 или 2. Но подход с двумя ключами все еще работает. Также я полагаю, что человек мог бы написать небольшой скрипт переключения, чтобы, возможно, сохранить состояние в файле или что-то еще и позволить стратегии с одним ключом работать снова.
Дж. Куигли

@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 не работает с новым: /


Итак, пока я дурачился с этим, я создал небольшой скрипт ruby, чтобы переключать все панели одновременно. Вроде работает.

#!/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

Вероятно, это не самый лучший способ сделать это, и я не очень разбираюсь в рубине, поэтому не стесняйтесь бросить меня в огонь! :П

Если кто-то хочет это использовать:

  1. убедитесь, что у вас установлен ruby.

  2. Скопируйте его в файл, где вы считаете нужным (у меня есть мой как ~/scripts/xfce/toogleautohide.rb).

  3. Сделайте это исполняемым

    chmod +x path/to/your/script
    
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.