Jeśli utworzysz program uruchamiający emacsclient, kopiując plik .desktop (np. Emacs), nie będzie on działał w standardowy sposób uruchamiający Unity. Zawsze otwiera nowe okno; nie rozpoznaje istniejących okien Emacsclient, aby do nich przejść. Jak mogę sprawić, żeby się zachowywał?
Jako tło jest to bardzo przydatny tryb użycia dla Emacsa, w którym uruchamiasz go jako demon: emacs --daemon
a następnie przywołujesz okno emacsa emacsclient
. Dobrym sposobem na zrobienie tego dla zwykłych użytkowników emacsa jest emacs --daemon
zainstalowanie aplikacji startowych.
emacsclient.desktop
z jakiegoś powodu całkowicie mnie zignorowało . W końcu udało mi się to obejść, tworzącalacarte
zamiast tego program uruchamiający w (GUI „Menu główne”).Rozwiązanie james.ferguson działa dobrze. Chciałem połączyć emacsclient z niektórymi typami plików jako „preferowaną aplikacją”. W tym celu znalazłem skrypt Jamesa z nową linią „Exec”
działa dla mnie lepiej: uruchamia nowy emacs, jeśli żaden nie jest uruchomiony, nie otwiera nowego okna i nie powoduje, że emacs narzeka na klientów wciąż czekających na coś, co się wydarzy.
Teraz mogę klikać pliki, które są otwierane w uruchomionym emacsie, jeśli taki istnieje, inaczej emacs się uruchomi.
źródło
Innym sposobem jest użycie skryptu :
Więc zawsze wywołujesz to samo polecenie.
źródło