Zastąp okno dialogowe pliku GTK + alternatywą

26

Czy jest jakiś sposób na skonfigurowanie programów GTK +, aby używały innego okna dialogowego pliku?

Czytanie starożytnych artykułów w domyślnym oknie dialogowym i nie zauważanie różnicy w stosunku do bieżącej wersji nie wróży dobrze jego poprawie w najbliższej przyszłości.

Przeczytałem to pytanie , ale wydaje mi się, że jestem jednym z nielicznych, którzy zrobili to od prawie roku. Jak wspomniałem w komentarzu do tego pytania:

Dla archlinux istnieje łatana wersja FF dla KDE. Działa dobrze, jeśli jesteś w KDE i lubisz uproszczoną wersję delfina / cokolwiek to jest, ale niestety nie wydaje się zmieniać selektora plików, jeśli nie używasz KDE

Ponieważ jestem obecnie w niestandardowej konfiguracji openbox, Firefox powraca do nielubianego okna dialogowego GTK +. Ale to rozwiązanie działa tylko w przeglądarce Firefox, więc wolałbym sposób na usunięcie go z mojego systemu na całym świecie.

gandalf3
źródło
1
Jeśli dobrze rozumiem, okno dialogowe GTK, które masz w Openbox, nie pozwala na wpisanie nazwy pliku lub edytowanie paska lokalizacji? Dlaczego? Myślę, że lepiej jest opublikować zrzut ekranu okna dialogowego GTK w twoim systemie, aby inni mogli na niego spojrzeć.
clearkimura
@clearkimura Ma przynajmniej pasek lokalizacji, przynajmniej przez większość czasu (nie byłem w stanie ustalić, co powoduje, że tak często go pomija ...). Moim prawdziwym problemem jest bardzo długi czas ładowania, który czasem wymaga podczas otwierania dużego katalogu (kilkaset plików obrazów)
gandalf3
1
@clearkimura Dla mnie przejście do katalogu zawierającego ~ 1000 plików graficznych średnio o wartości 100 kB w oknie dialogowym przedstawionym np. przez gimp (GTK 2) powoduje zawieszenie się na> 20 sekund. Natychmiastowe przejście do tego samego katalogu w ładunkach delfinów.
gandalf3

Odpowiedzi:

8

Ta odpowiedź została poprawiona w stosunku do oryginalnego postu, na który po raz pierwszy udzielono odpowiedzi pod koniec 2015 r. Treści zostały teraz zmienione, niektóre zbędne teksty zostały usunięte i dodano odpowiedni tekst.

Kilka wyjaśnień

Okno dialogowe [...] przedstawione np. przez GIMP (GTK + 2) powoduje zawieszenie się na ponad 20 sekund. Natychmiastowe przejście do tego samego katalogu w Dolphin.

Nieco dziwne jest porównywanie selektora plików GTK + edytora obrazów z menedżerem plików Qt (zamiast selektora plików Qt). Ponadto aplikacje te nie używają tego samego zestawu narzędzi; Oczywiste jest, że sprawy są traktowane w różny sposób.

Ma przynajmniej pasek lokalizacji, przynajmniej przez większość czasu (nie byłem w stanie określić, co powoduje, że tak często go pomija ...)

W oknie dialogowym GTK + pasek lokalizacji nie pojawi się podczas przeglądania „Ostatnio używane” w oknie wyboru plików. W tym widoku nawet klawisze skrótu Ctrl+ nieL będą działać. Jest to prawdopodobnie powód, dla którego OP twierdził, że wybieracz plików czasami pomija pasek lokalizacji.

Bezpośrednia odpowiedź

KGtk to hackerski sposób korzystania z okien dialogowych KDE w aplikacjach GTK +. Został wydany po raz pierwszy w połowie 2006 roku i udostępniony na KDE-Apps.org jako upstream, a także poprzez pakiet AUR .

Choć brzmi to obiecująco, należy pamiętać, że celem tej pracy jest jednolity wygląd aplikacji Qt i GTK + . Najprawdopodobniej nie rozwiązuje on powolnych problemów dyskutowanych przez użytkowników.

Rozszerzona odpowiedź (23.11.2015)

Ta rozszerzona odpowiedź dotyczy dwóch zagadnień poruszonych w pytaniu: nielubiane okno GTK + (problem z użytecznością) i okno dialogowe zawiesza się na pewien czas (problem z odpowiedzią).

Poniżej znajdują się raporty o błędach, które wspominają o istotnych problemach związanych z GTK +.

Następne są raporty o błędach, które wspominają o istotnych problemach (w szczególności o czasie reakcji), które są istotne dla KDE.

Niezależnie od okna dialogowego GTK + lub okna dialogowego KDE, problem z reakcją nie jest rzadki i staje się widoczny, gdy zostaną spełnione określone warunki (takie jak ikony niebuforowane itp.).

Rozszerzona odpowiedź (2017-02-12)

Jeśli chodzi o kwestię użyteczności, zarówno okna dialogowe GTK +, jak i KDE zostały zmienione w ciągu ostatnich lat w odpowiednich środowiskach pulpitu.

W oknach dialogowych GTK + pasek narzędzi lokalizacji jest domyślnie wyświetlany. Jednak jest teraz domyślnie ukryty w nowszych wersjach zestawu narzędzi.

  • GTK + 2.X pozwala edytować lokalizację za pomocą Ctrl+ Lklawiszy skrótu lub przycisku interfejsu użytkownika „Edytuj lokalizację”.

  • GTK + 3.X pozwala edytować lokalizację za pomocą Ctrl+ Lklawiszy skrótu (przycisk interfejsu użytkownika „Edytuj lokalizację” może nie być w ogóle wyświetlany).

W oknach dialogowych KDE unikalne funkcje to pole tekstowe „Nazwa pliku:”, które jest zawsze widoczne w dolnej części interfejsu użytkownika i pasek ścieżki lokalizacji, który podczas edycji zamienia się w pasek narzędzi lokalizacji.

  • KDE 3.X pozwala edytować lokalizację, używając Ctrlklawiszy + Llub /skrótów, lub pola tekstowego „Nazwa pliku:” (pasek lokalizacji nie może być bezpośrednio edytowany w niektórych programach).

  • KDE 4.X umożliwia edycję lokalizacji, przy użyciu Ctrl+ Lklawisze skrótów, lub „Nazwa pliku:” pole tekstowe, lub za pomocą kursora myszy na pasku ścieżki lokalizacja.

  • KDE 5.X pozwala edytować lokalizację podobną do KDE 4.X

W przeciwieństwie do tego okno dialogowe Qt jest zwykle konfigurowalne i może używać stylu okna dialogowego GTK + lub KDE. Styl okna dialogowego można zmienić za pomocą jednej z następujących metod.

  • konfiguracja ręczna, specyficzna dla programu (przez odtwarzacz multimedialny VLC itp.)

  • konfiguracja ręczna, ogólnosystemowa (według ustawień Qt, dotychczas dotyczy tylko programów zależnych od Qt 4 w starszych wersjach Ubuntu, tj. 14.04)

  • automatyczna konfiguracja, obejmująca cały system (poprzez zainstalowanie określonego pakietu narzędzi, który jest wykrywany automatycznie w nowszych wersjach Ubuntu, tj. 16.04)

Pomimo różnych zestawów narzędzi, które różnią się doświadczeniem i stylem dialogów, wszystkie wspomniane zestawy narzędzi (GTK +, KDE i Qt) pozwalają użytkownikom edytować lokalizację w oknie dialogowym wyboru plików.

TL; DR Do tej pory wydaje się, że KGtk jest jedynym sposobem na zastąpienie okna dialogowego GTK + i należy go stosować dla poszczególnych aplikacji. Nie ma znanej alternatywy dla faktycznego zastąpienia okien dialogowych w przypadku całego systemu. W przeciwnym razie poszukaj obejść, aby przyspieszyć ładowanie selektora plików GTK + (byłoby to inne pytanie).


Notatka odpowiadającego: Ta odpowiedź została napisana po raz pierwszy w celu rozwiązania problemów związanych z użytecznością i responsywnością okien dialogowych plików w GTK +, KDE i Qt. Od tego czasu wszystko mogło się zmienić i ta odpowiedź może być nieaktualna. Dlatego ta odpowiedź jest teraz wiki społeczności, dzięki czemu każdy z minimalną reputacją może poprawić ten post lub przynajmniej teraz bardziej otwarty na zmiany w społeczności.

clearkimura
źródło
Dziękuję za odpowiedź! Nie wiem dlaczego, ale w moim systemie okno dialogowe kde / qt jest znacznie szybsze / responsywne niż okno GTK. Jeśli chodzi o użyteczność, okno dialogowe GTK ma wiele niekonwencjonalnych zachowań, do których nie jestem przyzwyczajony / nie lubię (np. Konieczność naciśnięcia klawisza Enter po zakończeniu tabulacji, co powoduje 2-3-sekundowe opóźnienie przed ponownym wpisaniem). Spojrzę na KGtk.
gandalf3
Twoja odpowiedź nie ma sensu. „Powolny” nie ma znaczenia dla interfejsu użytkownika. To nie jest symulacja cząstek. A KDE pozwala na edycję ścieżki, to GTK nie pozwala na to łatwo.
LtWorf
Wreszcie udało mi się poświęcić trochę czasu na poprawę ogólnej odpowiedzi. Potwierdziłem, że okno dialogowe KDE ma więcej opcji edycji lokalizacji w selektorze plików, dlatego może być łatwiejsze niż GTK +.
clearkimura
6

Od około 2016 roku odpowiedź brzmi tak ! Przynajmniej do korzystania z selektora plików KDE z aplikacjami GTK3.

Programiści Gtk + nazywają ten „ rodzimym wyborem plików ” dla „aplikacji w piaskownicy”, podczas gdy głównym celem tego działania był Flatpak, który umożliwił także korzystanie z nich w systemie Windows. Możesz jednak użyć tego również w przypadku aplikacji innych niż piaskownica / flatpak, używając sztuczki:

  1. Zainstaluj xdg-desktop-portal-kdepakiet: Arch Linux , Debian , Fedora , KDE Neon , Ubuntu ( link do instalacji bezpośredniej )
  2. Jeżeli nie jesteś rzeczywiście przy KDE, edytować /usr/share/xdg-desktop-portal/portals/kde.portali dodawać wartość $XDG_CURRENT_DESKTOP, oddzielone średnikiem do UseIn=KDElinii (tj UseIn=KDE;xfce)
  3. Dodaj wiersz, GTK_USE_PORTAL=1aby ~/.pam_environmentGTK zawsze zachowywał się tak, jakby był w środowisku piaskownicy
  4. Wyloguj się i zaloguj ponownie, aby zastosować te zmiany
ntninja
źródło
Powinienem dodać, że nie będzie to działać w przypadku aplikacji korzystających z klasycznych GtkFileChooserDialoglub GtkFileChooserWidgetinterfejsów API: udostępniają one GtkWidgets leżące u podstaw aplikacji, która nie byłaby dostępna podczas renderowania selektora plików przy użyciu czegokolwiek innego niż GTK. Dlatego tylko GtkFileChooserNativei GtkFileChooserButtonbędzie działać, a jeśli po wykonaniu powyższych kroków aplikacja GTK nadal korzysta z selektora plików GTK, możesz wysłać im poprawkę. ;-)
ntninja