Jak zrobić i3wm powiązać gest wielodotykowy, aby zmienić pulpit?

16

Jedną z funkcji, których tak naprawdę brakuje w OSX, są gesty wielodotykowe do zmiany komputerów. Przesunięcie trzema palcami w dowolnym kierunku pozwala przejść do następnej / poprzedniej aplikacji na pełnym ekranie lub pulpitu. Bardzo chciałbym mieć tę samą funkcję w systemie Linux z menedżerem okien kafelkowych. Obecnie używam i3wm, ale chcę się zmienić, jeśli ktoś może podać ważny powód.

W moim .config/i3/configpliku mam następujące linie :

# multitouch gestures
bindsym --whole-window $mod+button10 workspace prev_on_output
bindsym --whole-window $mod+button11 workspace next_on_output

Według xevmam przycisk 10 / przycisk 11 poprawnie skonfigurowany z moim touchpadem. --whole-windowFlag ( według docs ) io ile mogę powiedzieć, powinien pozwolić mi skorzystać z tej wiążącej w dowolnym miejscu na ekranie. Ale wiązanie działa tylko wtedy, gdy moja mysz unosi się nad paskami tytułowymi okien.

Czy zrobiłem coś złego w mojej konfiguracji? Czy jest inny sposób na uzyskanie tej funkcji?

Edycja: Używam wersji 4.10.3

$ i3 -v
> i3 version 4.10.3 (2015-07-30, branch "4.10.3") © 2009-2014 Michael Stapelberg and contributors
Sethish
źródło
Ciekawa koncepcja, ponieważ często używałem i3wm na sprzęcie Mac i tęsknię za trzema palcami. Nie sądzę jednak, że potrzebujesz parametru „całe okno” - bindsym powinien działać niezależnie. W tej chwili nie mogę tego przetestować, ale czy próbowałeś focus_follows_mouse nosprawdzić, czy ma to wpływ?
Eric Duncan
1
Wciąż szukam rozwiązania tego problemu w 2019 r.
Gabriel Ziegler,
@GabrielZiegler sprawdź moją odpowiedź.
Enetheru

Odpowiedzi:

2

i3-wm domyślnie nie obsługuje gestów wielodotykowych, dlatego potrzebne jest zewnętrzne narzędzie, które może je wykryć, a następnie uruchomić polecenia.

Szybko przeczytałem archwiki dla libinput: https://wiki.archlinux.org/index.php/Libinput

  1. Zainstaluj gesty libinput z aur
  2. Dodaj siebie jako członka grupy wprowadzania, aby mieć uprawnienia do odczytu urządzenia touchpad: sudo gpasswd -a $USER input
  3. Dodaj te dwa wiersze lub ich odmianę do ~/.config/libinput-gestures.confpliku:
gesture swipe up 3 i3-msg workspace prev
gesture swipe down 3 i3-msg workspace next
  1. Wyloguj się całkowicie z sesji lub po prostu uruchom ponownie .
  2. Uruchom demona libinput:
libinput-gestures-setup autostart
libinput-gestures-setup start
Enetheru
źródło
Nie udało mi się do końca sprawić, by działało. Zgadnij, że sterowniki i konfiguracja Xorg mogą być nieco wyłączone w porównaniu z twoimi. Czy istnieje sposób przetestowania gestów, aby sprawdzić, czy gesty libinput je rozpoznają?
Gabriel Ziegler
@GabrielZiegler prześlij zgłoszenie błędu w repozytorium github, sprawdź, czy sam programista nie jest w stanie pomóc github.com/bulletmark/libinput-gestures
Enetheru
Mam to działa! Po instalacji musisz uruchomić kilka kroków konfiguracji! Dziękuję Ci!
Gabriel Ziegler
1
jakie kroki jeśli pamiętasz, umieść je tutaj w komentarzach, ktoś może edytować moją odpowiedź, aby je dodać.
Enetheru