Czy mogę odsłonić panel w Xfce za pomocą naciśnięcia klawisza, zamiast pokazywać kursorem myszy kursor myszy?


17

Chciałbym móc odkryć panel Xfce, naciskając klawisz zamiast umieszczać kursor myszy na krawędzi ekranu.

Używam Xubuntu 12.04, ale zaktualizowałem do Xfce 4.10


hmmm .. Myślę, że mógłbym wymyślić coś, co poruszyłoby twoją mysz w tym miejscu po naciśnięciu klawisza. Czy zrobiłbyś to, czego chcesz?
Seth

@iSeth - jeśli nic lepszego nie jest możliwe, to tak. Ale optymalnie chciałbym móc nacisnąć klawisz i zobaczyć panel bez względu na to, gdzie znajduje się kursor ...
Borsook

Odpowiedzi:


10

Wykonaj następujące polecenia i przypisz je do oddzielnych kombinacji Super-kluczy:

Polecenia dla Xfce 4.12 do Xfce 4.14:

Do ustawienia właściwości automatycznego ukrywania używane są teraz następujące polecenia:

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

Polecenia dla 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

Aktualizacja: 12/09/2018 : Jak wspomniano w komentarzach, powyższe polecenia nie są już obsługiwane.

Wartości poleceń:

Wartość „0” jest używana do automatycznego ukrywania „nigdy” . Wartość „1” służy do „inteligentnego” automatycznego ukrywania panelu, a „2” służy do ustawienia wartości „zawsze” automatycznego ukrywania.

Ustawianie przypisań klawiszy:

Można to zrobić, wybierając kolejno: Menu aplikacji → Ustawienia → Klawiatura → Skróty aplikacji lub uruchamiając xfce4-keyboard-settingsz wiersza poleceń ( Ctrl+ Alt+ t).

Pierwsze polecenie związałem z Super+ u(aby „odkryć” panel). W przypadku drugiego polecenia wiążę Super+ h(aby „ukryć” panel).

Jak widać w powyższych poleceniach, zachowanie zmienia się tylko na jednym panelu (w tym przypadku panel-0 jest modyfikowany).

Możesz zauważyć niewielkie opóźnienie, gdy panel zmienia stan.

Więcej szczegółów na temat xfconf-querypolecenia można znaleźć w dokumentacji Xfce lub z tego wątku na forum Xfce .


Hmmm, próbowałem i dostałem xconf command not foundbłąd. Jakiej wersji Xfce używasz?
Seth

1
@iSeth Polecenie brzmi xfconf: nie xconf. ;-) Polecenie jest dostępne od xfce 4.6. Używam xfce 4.10 z tego PPA ppa.launchpad.net/xubuntu-dev/xfce-4.10/ubuntu
Kevin Bowen

Ach, masz rację. Działa teraz +1
Seth

4
Możesz także skorzystać z toggleopcji w Xfce 4.10 i po prostu przypisać jedno polecenie do jednego klawisza: iexfconf-query -c xfce4-panel -p /panels/panel-0/autohide -T

3
Aby zaktualizować późniejszą wersję panelu xfce4. Najnowszy panel xfce4 nie ma właściwości „autohide”. Zamiast tego istnieje „autohide-zachowanie” i nie jest to już wartość logiczna, ale wartość liczbowa 0, 1 lub 2. 0: nigdy nie chowaj, 1: inteligentne chowanie, 2: zawsze chowaj. Aby osiągnąć ten sam wynik, możesz użyć xfconf-query -c xfce4-panel -p /panels/panel-0/autohide-behavior -s 0i xfconf-query -c xfce4-panel -p /panels/panel-0/autohide-behavior -s 2.
Richard Wong,

4

Wypróbuj to obejście:

Zainstaluj xtei za xdotoolpomocąsudo apt-get install xdotool xautomation

Możesz użyć xdotooldo znalezienia współrzędnych x, y myszy. Otwórz typ terminala, xdotool getmouselocationa następnie przesuń mysz w miejsce, w którym uaktywni panel i naciśnij Enter. Otrzymasz dane wyjściowe, takie jak:

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

Ważne jest tutaj x:1282 y:1079:, która daje nam współrzędne x, y myszy.

Teraz wpisz xte 'mousemove 1282 1079'(zamieniając 1282 1079współrzędne, które otrzymałeś wcześniej). To powinno przesunąć mysz w dowolne miejsce.

Możesz użyć, xbindkeysaby powiązać to polecenie z klawiszem na klawiaturze. Mogę dodać instrukcje na żądanie lub możesz ustawić je w ustawieniach klawiatury Xubuntu.


2

Edytować:

@JQuigley zwrócił uwagę „To już nie działa ...” patrz komentarze.


Jak powiedział Kevin, możesz użyć xfconf, ale zrobiłbym to w ten sposób:

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

-TPrzełącza wartość true / false. W ten sposób możesz użyć tego samego klucza, aby ukryć / odkryć.

Aby uzyskać więcej opcji:

xfconf-query --help

Chciałem skomentować odpowiedź Kevina, ponieważ dzięki temu znalazłem się na dobrej drodze. Ale jestem tu nowy, za mało reputacji ...


To już nie działa; wydaje się, że właściwość autohide została zastąpiona zachowaniem autohide, które jest liczbą całkowitą, która może wynosić 0, 1 lub 2. Ale podejście oparte na dwóch kluczach nadal działa. Wyobrażam sobie również, że ktoś mógłby napisać jakiś skrypt przełączający, aby zapisać stan w pliku lub czymś innym i pozwolić, aby strategia z jednym kluczem znów działała.
J Quigley

@JQuigley, dziękuję za zwrócenie na to uwagi. Nie jestem już na xfce ... W takim przypadku skorzystam ze skryptu, aby odczytać bieżącą wartość i odpowiednio ją zmienić (plik zewnętrzny jest podatny na błędy).
Fede s.

2

Powyższy skrypt topisani nadal działa dobrze w Xfce 4.12. Możesz zmienić panel docelowy, zmieniając panel-0w skrypcie na panel-1lub panel-2itd. Nie zapominaj, że są dwie linie do zmiany.


1

Wiem, że jestem kilka lat spóźniony na imprezę, ale tylko dla każdego, kto może to zobaczyć w przyszłości: Oto skrypt bash, który przełącza automatyczne ukrywanie w nowym systemie, po prostu zapisz go gdzieś w pliku tekstowym, uruchom chmod +x file/that/i/savedi ustaw skrypt na klawisz w Ustawienia -> Klawiatura -> Skróty.

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

EDYTOWAĆ:

W komentarzu zaznaczono, że właściwość autohide została zmieniona na coś innego, a -T nie działa z nową: /


Więc, gdy wygłupiałem się z tym, stworzyłem mały rubinowy skrypt, aby przełączać wszystkie panele jednocześnie. Wydaje się, że działa.

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

Prawdopodobnie nie jest to najlepszy sposób, aby to zrobić, a tak naprawdę niewiele wiem o rubinie, więc możesz rzucić mnie w ogień! : P

Jeśli ktoś chce go użyć:

  1. upewnij się, że masz zainstalowany rubin.

  2. skopiuj go do pliku, gdziekolwiek uznasz za stosowne (mam mój as ~/scripts/xfce/toogleautohide.rb).

  3. Zrób to

    chmod +x path/to/your/script
    
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.