Jak zmusić gedit do otwarcia nowego okna niezależnie od istniejących okien gedit za każdym razem, gdy plik tekstowy zostanie dwukrotnie kliknięty na pulpicie Gnome w Debianie 8?

9

Jak można geditzmusić do otwarcia nowego okna niezależnie od istniejących okien gedit za każdym razem, gdy plik tekstowy (.txt) zostanie dwukrotnie kliknięty na pulpicie Gnome w Debianie 8, Jessie?

Załóżmy, że a.txt jest już otwarty w oknie gedit i że b.txt jest dwukrotnie kliknięty na pulpicie Gnome w Debian 8 Jessie. Następnie, niestety, zgodnie z domyślnymi ustawieniami fabrycznymi, b.txt zostanie otwarty w zakładce w tym samym oknie, co a.txt.

Chcę b.txtjednak otworzyć się w nowym oknie gedit, aby były dwa okna - istniejące okno dla a.txt i nowe okno dla b.txt.

Jeśli Gnome wywołał gedit z opcją „-s” jak w

gedit -s b.txt

następnie b.txtzostanie otwarty w nowym oknie, a a.txt pozostanie w swoim istniejącym oknie.

Jednak domyślnie Gnome wydaje się wywoływać gedit bez opcji „-s”.

Plik konfiguracyjny

/usr/share/applications/org.gnome.gedit.desktop

zawiera dyrektywę wykonawczą

Exec=gedit %U

Więc zmieniłem to na

Exec=gedit -s %U

za pomocą następujących poleceń i ponownie uruchomił komputer.

cd /usr/share/applications
su # similar to sudo
mv org.gnome.gedit.desktop org.gnome.gedit.desktop.bak
perl -pe 's/Exec=gedit %U/Exec=gedit -s %U/' org.gnome.gedit.desktop.bak > org.gnome.gedit.desktop
diff org.gnome.gedit.desktop org.gnome.gedit.desktop.bak

Jednak ta metoda zawiodła. Plik b.txt nadal otwiera się na karcie w tym samym oknie, co plik a.txt. Utknąłem. Potrzebuję twojej pomocy.

Domyślny tryb gedit to „pojedyncze okno, wiele kart”. Chcę tryb „wielu okien”.

Nawiasem mówiąc, następująca bezużyteczna metoda zamienia gedit w tryb „pojedynczego okna, bez karty”, co nie jest tym, czego chcę.

gsettings set org.gnome.gedit.preferences.ui show-tabs-mode 'never'

Dzięki tej metodzie „gsettings” gedit automatycznie zamyka a.txt i ponownie wykorzystuje istniejące okno a.txt, aby otworzyć w nim b.txt za każdym razem, gdy b.txt zostanie dwukrotnie kliknięty na pulpicie. Zatem jest to tryb „pojedynczego okna, bez zakładki” (w przeciwieństwie do „wielu okien”).

(Nawiasem mówiąc, domyślną wartością dla „show-tabs-mode” jest „auto”.)

i7pj3qnuz
źródło
@don Nie jestem zbyt zaznajomiony z programem uruchamiającym. Jakie są polecenia, aby wywołać osobny program uruchamiający?
i7pj3qnuz

Odpowiedzi:

5

Powodem, dla którego modyfikacja Execklucza w pliku .desktop nie zadziałała, jest to, że gedit jest aktywowany DBus. Oznacza to, że jest uruchamiany za pośrednictwem demona DBus sesji, a następnie zapewnia wspólny interfejs DBus dla takich programów, które można aktywować, w celu określenia plików do otwarcia. Można temu zapobiec, zmieniając DBusActivatableklucz na false.

Ponadto znacznie lepiej jest utworzyć kopię pliku .desktop, który chcesz zmodyfikować, w katalogu domowym i użyć go do zastąpienia całego systemu niż do bezpośredniej modyfikacji całego systemu. W ten sposób systemowy system nie zostanie zastąpiony aktualizacjami pakietu dystrybucyjnego. Aby to zrobić, po prostu skopiuj /usr/share/applications/org.gnome.gedit.desktopdo ~/.local/share/applications/org.gnome.gedit.desktop. Pliki w tej ścieżce zastąpią pliki o tej samej nazwie z katalogu ogólnosystemowego.

Istnieje również ważna różnica między dwiema możliwymi flagami użytymi do otwarcia nowego okna: --new-windowlub -s. Oba spowodują, że pliki zostaną otwarte w nowym oknie, ale -skażde okno będzie również należeć do własnego procesu. Podczas korzystania ze --new-windowwszystkich okien korzystaj z tego samego procesu gedit.

I wreszcie, aby upewnić się, że działa to również, jeśli wybierzesz wiele plików w menedżerze plików i otworzysz je, potrzebujesz kolejnej modyfikacji Execklucza. Te %Uśrodki, które wielu adresy URL są akceptowane jako argumenty dla tej komendy, co oznacza, że menedżer plików zaczną to tak: gedit --new-window file1.txt file2.txt. Powoduje to powstanie jednego nowego okna z dwiema zakładkami. Jeśli zmienisz to na %uteraz, to powie menadżerowi plików, że aplikacja akceptuje tylko jeden adres URL jako argument, a zatem powoduje, że uruchamia polecenie wiele razy, za każdym razem z innym plikiem jako argumentem. Aby uzyskać więcej informacji na ten temat, zobacz specyfikację wpisu na pulpicie freedesktop .

Sebastian
źródło
0

Na podstawie odpowiedzi Sebastianów wykonaj następujące czynności:

  1. Utwórz lokalną kopię konfiguracji gedit. Wprowadzone zmiany dotyczą tylko bieżącego użytkownika.

    cp /usr/share/applications/org.gnome.gedit.desktop ~ / .local / share / applications / geditNewWin.desktop

  2. W pliku ~ / .local / share / applications / geditNewWin.desktop: Idź do wszystkich EXEC=linii (jest ich kilka) i ustaw je na Exec=gedit -s %U. Dalsza zmiana Name=Text Editorna Name=Text Editor (new window).

  3. W swoim menedżerze plików Nautilus (standardowy menedżer plików w Gnome, często nazywany po prostu „Files” lub Gnome Files ) powiąż typy plików (.txt, .csv, ...) z nowo utworzoną aplikacją:

    • kliknij prawym przyciskiem myszy plik .txt (lub dowolny inny typ pliku)
    • kliknij „Właściwości”
    • wybierz zakładkę „Otwórz za pomocą”
    • wybierz z listy „Edytor tekstu (nowe okno)”
    • kliknij „Ustaw jako domyślne”
Markus Dutschke
źródło