Mam Emacsa uruchomionego na tagu worker
z server-start
uruchomionym. Mam menedżera plików otwartego gdzie indziej (na przykład inny monitor), a kiedy otwieram z emacsclient
nim plik tekstowy, z powodzeniem otwiera się w emacsie, ale nie przełącza się na niego i nie podnosi go.
To, czego szukam, to sygnał specyficzny dla klienta w sieci rc.lua
. Coś jak:
client.add_signal("focus", function(c) c:raise() end)
Chcę, żeby było to specyficzne tylko dla Emacsa. I jednocześnie przełącz się na worker
tag. Alternatywnie czy mogę to zrobić z wywołania zwrotnego reguły Emacsa?
Jakieś pomysły? :)
emacs
awesome-wm
lua
platforma
źródło
źródło
Odpowiedzi:
Chciałem tego samego, a twój pomysł na wywołanie zwrotne emacsa w końcu zadziałał. Nie testowałem tego na niesamowitym, ale używam dwm i przypuszczam, że są wystarczająco podobne, aby to zadziałało.
Jest to funkcja zwrotna w emacsie:
Istnieje kilka sposobów wywołania oddzwonienia. Dla uproszczenia i elastyczności wybrałem alias powłoki, który wywołuje funkcję zwrotną, a następnie zwykły emacsclient:
Mam nadzieję, że nadal się przyda;)
Aby uzyskać dodatkowe informacje na temat typu komunikatu i wartości, zobacz Wskazówki dotyczące Menedżera okien .
Jeśli chodzi o obsługę tej wiadomości przez niesamowite, wygląda na to, że to zdarzenie jest obsługiwane. Kod źródłowy jest tutaj .
źródło