Si vous créez un lanceur emacsclient en copiant un fichier .desktop (par exemple, le fichier Emacs), il ne se comporte pas de la manière standard du lanceur Unity. Il ouvre toujours une nouvelle fenêtre; il ne reconnaît pas que les fenêtres Emacsclient existantes existent pour y accéder. Comment puis-je le faire se comporter?
En arrière-plan, il s'agit d'un mode d'utilisation très utile pour Emacs, où vous l'exécutez en tant que démon:, emacs --daemon
puis vous invoquez une fenêtre emacs avec emacsclient
. Une bonne façon de le faire pour les utilisateurs emacs habituels est de les mettre emacs --daemon
dans vos applications de démarrage.
emacsclient.desktop
pour une raison quelconque. J'ai finalement réussi à contourner cela en créant le lanceur dansalacarte
(l'interface graphique "Menu principal") à la place.La solution de james.ferguson fonctionne bien. Ce que je voulais, c'était de lier emacsclient à certains types de fichiers comme "application préférée". Pour cela, j'ai trouvé le script de james avec une nouvelle ligne "Exec"
fonctionne mieux pour moi: il exécute un nouvel emacs si aucun n'est en cours d'exécution, n'ouvre pas une nouvelle fenêtre et ne fait pas se plaindre emacs des clients attendant toujours que des choses se produisent.
Maintenant, je peux cliquer sur les fichiers et ils sont ouverts dans un emacs en cours d'exécution, s'il en existe un, sinon emacs démarre.
la source
Une autre façon consiste à utiliser un script :
Vous invoquez donc toujours la même commande.
la source