Gnome 3'te arka plan modunu kullanma


Yanıtlar:


17

Ubuntu kullanıyorum, bu nedenle masaüstü dosyasının konumu farklı olabilir, ancak içeriklerin benzer olması gerektiğini düşünüyorum.

$ cat ~/.local/share/applications/emacsclient.desktop 
#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Name=GNU Emacs 24
GenericName=Text Editor
Comment=View and edit files
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=/usr/bin/emacsclient -c -a "" %F
Icon=/usr/share/icons/hicolor/scalable/apps/emacs-snapshot.svg
Type=Application
Terminal=false
Categories=Utility;Development;TextEditor;
StartupWMClass=Emacs
Name[en_US]=GNU Emacs 24

Önemli olan:

Exec=/usr/bin/emacsclient -c -a "" %F

Bunu açıklığa kavuşturmak için muhtemelen şöyle olmalıdır:

Exec=/usr/bin/emacsclient --create-frame --alternate-editor "" %F

Emacsclient üzerindeki belgelerden bu anahtarlar aşağıdakileri yapar:

-c, --create-frame      Create a new frame instead of trying to
                        use the current Emacs frame
-a EDITOR, --alternate-editor=EDITOR
                        Editor to fallback to if the server is not running
                        If EDITOR is the empty string, start Emacs in daemon
                        mode and try connecting again

Bu yüzden kullanarak yeni bir çerçeve yapar -cve daha sonra emacs zaten arka plana sahip değilse yeni bir emacs arka plan programı ile başlar -a "". Son olarak, %Fbir metin dosyasını simgeye sürükleyebilmeniz için düzeltir ve dosyayı açar.

Bir kenara -F "((fullscreen . maximized))", çerçeveyi lansman sırasında en üst düzeye çıkarmaya zorlamak da dahil olabilir . Ne yazık ki, bunun için hangi emacs sürümünün gerekli olduğunu hatırlayamıyorum.


1
Aksi halde harika çalışır, ancak her zaman yeni bir Emacs penceresi açar. Diğer başlatıcı simgeleri için mevcut bir pencere odaklanır. Aynı davranışı elde etmenin bir yolu var mı?
akaihola

2

Ben sadece sadece akaihola yorum adresleme dgtized cevabını tweaking. Yani istediğimiz şey

  • Emacs'ın daemon işlevselliğinden faydalanmak
  • mevcut bir çerçeveyi çağırın veya gerekirse bir çerçeve oluşturun.

Bunu sihirli bir şekilde çalışmak emacs25.desktopyerine bir dosya oluşturmanın emacsclient.desktop(açıkçası neden bilmiyorum) buluyorum .

Ben de yaptım:

cp /usr/share/applications/emacs25.desktop ~/.local/share/applications

(sisteminize bağlı olarak, olmayabilir emacs25)

Sonra benim ~/.local/share/applications/emacs25.desktopExec satırı olarak değiştirdim:

Exec=/bin/bash --login -c "emacsclient --alternate-editor= --create-frame %F"

Bash giriş kabuğu, daemon'un tam giriş ortamım olmasını sağlar.

Ve TryExecçizgiyi çıkardım .

Sonunda, Namebaşlatıcıda tanıyabilmem için düzenledim , Süper öğesine dokundum ve yeni öğemi favorilere eklemek için sağ tıkladım. Her zaman benim için Emacs'a sahipim, bu yüzden Super + 1 onu çağırıyor.

Name=GNU Emacs client

Ve her şey iyi görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.