Jak można gedit
zmusić 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.txt
jednak 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.txt
zostanie 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”.)
Odpowiedzi:
Powodem, dla którego modyfikacja
Exec
klucza 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ącDBusActivatable
klucz nafalse
.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.desktop
do~/.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-window
lub-s
. Oba spowodują, że pliki zostaną otwarte w nowym oknie, ale-s
każde okno będzie również należeć do własnego procesu. Podczas korzystania ze--new-window
wszystkich 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
Exec
klucza. 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%u
teraz, 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 .źródło
Na podstawie odpowiedzi Sebastianów wykonaj następujące czynności:
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
W pliku ~ / .local / share / applications / geditNewWin.desktop: Idź do wszystkich
EXEC=
linii (jest ich kilka) i ustaw je naExec=gedit -s %U
. Dalsza zmianaName=Text Editor
naName=Text Editor (new window)
.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ą:
źródło