Aktualne odpowiedzi ara na temat Gtk2, pytam o Gtk3.
neonboy
Zredagowałem pytanie, aby lepiej odzwierciedlić to, czego szukasz. Przykro mi, ale krótka odpowiedź z moich badań brzmi „ nie” , nie można obejść się bez konieczności poświęcenia wysiłku na stworzenie nowego „hybrydowego” motywu, jak wyjaśnił @Kush :( To już nie jest tak proste jak GTK2.
ish
Odpowiedzi:
32
Możesz użyć zmiennej środowiskowej GTK, GTK_THEME=elementaryaby uruchomić aplikację z podstawowym motywem. Na przykład uruchomienie GTK_THEME=elementary pantheon-filesspowoduje uruchomienie podstawowej aplikacji Pliki przy użyciu podstawowego motywu GTK.
Aby mieć to zastosowanie przy każdym uruchomieniu określonej aplikacji, najlepszą opcją jest prawdopodobnie utworzenie niestandardowego pliku .desktop (programu uruchamiającego).
Utwórz niestandardowy plik .desktop
Otwórz przeglądarkę plików
Nawigować do /usr/share/applications/
Skopiuj program uruchamiający (podświetl i Ctrl + C) dla aplikacji, którą chcesz uruchomić z motywem podstawowym
Przejdź do ~/.local/share/applications/programu uruchamiającego i wklej go (Ctrl + V)
Kliknij prawym przyciskiem myszy i otwórz program uruchamiający za pomocą edytora tekstu
Zmodyfikuj wiersz, zaczynając od, Exec=aby uwzględnić, Exec=env GTK_THEME=elementarya następnie poprzednią istniejącą zawartość linii. (Tak Exec=pantheon-filesby się stało Exec=env GTK_THEME=elementary pantheon-files)
Zapisz i zamknij plik
Następnym razem, gdy uruchomisz aplikację z Unity (lub wybranego uruchamiania aplikacji), użyje ona podstawowego motywu.
Bonus: spraw, aby działał, gdy używasz wiersza poleceń
Możesz także chcieć, aby aplikacja uruchamiała się z podstawowym motywem podczas uruchamiania jej z wiersza poleceń. Aby to zrobić:
Otwórz aplikację Terminal
Wpisz alias pantheon-files="GTK_THEME=elementary pantheon-files"(zamieniając pantheon-filesna żądaną aplikację)
naciśnij enter
Ostrzeżenia:
To nie zmieni motywu menedżera okien na motyw podstawowy.
To (zgodnie z projektem) będzie miało zastosowanie tylko do twojego konta, a nie roota lub kogokolwiek innego na komputerze.
Nazwy motywów to cAsE-sEnsItiVe i powinny być dopasowane do nazwy folderu motywu.
Niezła odpowiedź, ale nie mogę tego zrobić z żadnym motywem. Czy możesz podać przykład przy użyciu terminala find /usr/share/themes -type d -name 'gtk-3.0' | awk -F'/' '{print $5}'i geditdo celów demonstracyjnych? Np GTK_THEME="HighContrast" geditalbo env GTK_THEME="HighContrast" geditalbo GTK_THEME=Adwaita:dark gedit... nic.
Redsandro
Właśnie to zmieniłem /usr/share/applications/<appname>.desktopi zadziałało dla mnie.
Drew Chapin,
Jakiś sposób to zrobić z kodu w aplikacji?
Anony-Mousse,
1
Warto zauważyć, że w nazwach motywów rozróżniana jest wielkość liter.
Cedric Reichenbach,
Działa to w przypadku niektórych aplikacji, ale nie dla wszystkich.
10
Pytanie jest nadal aktualne i znalazłem sposób:
utwórz dowolny folder path/to/MY_FOLDER
utwórz /share/themes/folder w nim (to znaczy path/to/MY_FOLDER/share/themes).
umieść w nim dowolny motyw GTK3
zmień nazwę motywu na nazwę AKTUALNIE AKTYWNEGO TEMATU.
W końcu to polecenie sprawi, że aplikacja będzie używać motywu o zmienionej nazwie zamiast obecnie aktywnego:
GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATON
(Ścieżka później GTK_DATA_PREFIX=musi być ( i tylko taka ) do folderu zawierającego/share/themes/RENAMED_THEME . Dlatego NIE jestpath/to/MY_FOLDER/share/themes/RENAMED_THEME , ale tylko path/to/MY_FOLDER.)
Aby mieć to w programie uruchamiającym, zamień odpowiednio:
Teraz działa to nawet z Eclipse, w przeciwieństwie do innych odpowiedzi, które próbowałem.
Ruslan,
2
którego pliku / folderu dokładnie używamy GTK_DATA_PREFIX?
runDOSrun
1
To było dość mylące, ale wymyśliłem to i zredagowałem odpowiedź.
Innym sposobem jest umieszczenie motywu o zmienionej nazwie specyficznej dla aplikacji ~/.themes(musi być obecny aktywny /usr/share/themes), a następnie użycie ścieżki GTK_DATA_PREFIX=path/to/nowhere do uruchomienia tej aplikacji, która zresetuje motyw aplikacji do bieżącej, tylko że najpierw zajrzy ~/.themesi weźmie ten o tej samej nazwie.
1
@runDOSrun - późniejsza ścieżka GTK_DATA_PREFIX=musi być ( i tylko ta ) do folderu zawierającego/share/themes/RENAMED_THEME . Dlatego NIE jestFOLDER/share/themes/RENAMED_THEME , ale po prostu FOLDER.
8
Z pewnością jest to możliwe, nie mam dużego doświadczenia w tworzeniu motywów, ale kiedy przejdziesz do /usr/share/themes/*Theme Name*/gtk-3.0/apps/katalogu, znajdziesz .csspliki nazwane aplikacjami, których dotyczą motywy, więc tak, możesz tworzyć motywy specyficzne dla aplikacji.
Zwróć uwagę, że sposób, w jaki wspomniałeś motywowanie aplikacji, może wymagać pewnej pracy (na przykład jednoczesnej pracy z Ambiance i Elementary, ponieważ każdy motyw ma plik podstawowy, na którym wykonywana jest stylizacja aplikacji) (plik gtkrcw Gtk 2.0 podczas gdy plik gtk.cssw przypadku Gtk3.0 ).
A ten plik motywu podstawowego zawiera reguły stylizacji, które są konkretnie ukierunkowane na dany motyw, dlatego nie można tworzyć wyglądu podstawowego z pliku motywu podstawowego Ambiance bez wprowadzania poważnych zmian, a nawet jeśli to zrobisz, stracisz wygląd samego Ambiance.
Ponadto w GNOME możliwe jest jednoczesne stosowanie tylko jednego motywu. Na przykład, jeśli używałeś okna Wygląd w Ubuntu 12.04, wiesz, że możesz wybrać dowolny pojedynczy motyw z menu rozwijanego, jeśli go użyłeś gnome-tweak-tool, niż możesz ustawić różne motywy dla Gtk, ramek okien i ikon, ale nadal nie pozwala on kierować określonych aplikacji do motywu, tak jak powiedziałem wcześniej, możesz ustawić zupełnie różne motywy dla różnych aplikacji, jeśli sprytnie pracujesz z podstawowy plik motywu, jak na razie, aplikacje innych firm nie mogą tego zrobić samodzielnie.
Jednym ze sposobów, w jaki możesz to zrobić samemu, jest to, że podstawowy plik motywu ( gtk.css) ma tylko podstawowe zasady, które są neutralne dla każdego motywu, ciemne lub jasne. Miej też faktyczny projekt motywu zapisany w plikach specyficznych dla aplikacji, które znajdują się w wyżej wymienionym katalogu, tj. Do stylizacji Nautilus, możesz zapisać wszystkie wymagane właściwości w nautilus.csspliku. To samo z każdą aplikacją, na którą chcesz kierować reklamy. Oczywiście, zrobienie tego wymaga przyzwoitego doświadczenia w temacie Gtk.
Można odnieść to do tworzenia własnego motywu przy użyciu szablonu, również istnieje spora dokumentacja na GTK + themeing.
Nie chcę tworzyć nowego motywu, chcę przypisać istniejący.
neonboy
@neonboy: Jak powiedziałem, że w GTK3 nie jest to takie proste, motyw jest dystrybuowany do wielu plików, a jeśli zależności nie są spełnione, zepsuty motyw to wszystko, co dostaniesz. Dlatego zamieściłem odpowiedź, która pokazuje możliwe rozwiązanie z GTK3, a nie GTK2 (w którym robienie tego jest znacznie łatwiejsze).
Kushal
5
Tak, prostym sposobem jest skierowanie aplikacji na wymaganą ścieżkę, w której znajduje się plik rc, w poleceniu uruchamiającym aplikację:
Nie podałeś tego w swoim pierwotnym pytaniu. Proszę, nie antagonizujcie poszukiwaczy.
Martin Owens -doctormo-
5
Pierwotnie brzmiał: „Czy mogę używać różnych motywów GTK3 dla poszczególnych aplikacji?” który wciąż miał temat Gtk3 w pytaniu, a następnie wolność foss poprosić mnie o skomentowanie nieważnych odpowiedzi i edytowanie pytania, jeśli to konieczne, nie antagonizuję nikogo.
neonboy
1
Tak, możesz, tak naprawdę googlowałem i otrzymałem kilka odpowiedzi:
Znajdź dokładny plik wykonywalny programu, w którym chcesz zmienić motyw. Na przykład, jeśli chcesz to dla biura, wpisz which oofficeterminal.
Poszukaj folderu bin, w którym wszystkie aplikacje umieszczają swoje binarne pliki wykonywalne. Wpisz echo $PATHterminal, a uzyskasz ścieżkę. Zalecam utworzenie folderu bin w katalogu domowym przez wpisaniemkdir ~/bin
Wpisz, gedit ~/.bashrcaby otworzyć plik bash rc.
Idź na dół tego pliku i dodaj ten wiersz export PATH=~/bin:${PATH}
Teraz stworzymy skrypt, który uruchomi Twój program z niestandardowym motywem:
Z pewnością jest to możliwe dla aplikacji GTK2 korzystających z GTK2_RC_FILES env. zmienna. Jakie motywy mówisz o kompilacji? Pytanie dotyczy systemowych motywów GTK dostępnych w Ubuntu.
ish
1
Wierzę, że metoda, o której wspomniałeś, jest przeznaczona dla Gtk2.0, podczas gdy Ubuntu 12.04 używa Gtk3.0 do kompozycji, więc jeśli nie będzie działać.
Kushal
6
Przepraszam, to rozwiązanie dla Gtk2, pytanie dotyczy Gtk3.
Odpowiedzi:
Możesz użyć zmiennej środowiskowej GTK,
GTK_THEME=elementary
aby uruchomić aplikację z podstawowym motywem. Na przykład uruchomienieGTK_THEME=elementary pantheon-files
spowoduje uruchomienie podstawowej aplikacji Pliki przy użyciu podstawowego motywu GTK.Aby mieć to zastosowanie przy każdym uruchomieniu określonej aplikacji, najlepszą opcją jest prawdopodobnie utworzenie niestandardowego pliku .desktop (programu uruchamiającego).
Utwórz niestandardowy plik .desktop
/usr/share/applications/
~/.local/share/applications/
programu uruchamiającego i wklej go (Ctrl + V)Exec=
aby uwzględnić,Exec=env GTK_THEME=elementary
a następnie poprzednią istniejącą zawartość linii. (TakExec=pantheon-files
by się stałoExec=env GTK_THEME=elementary pantheon-files
)Następnym razem, gdy uruchomisz aplikację z Unity (lub wybranego uruchamiania aplikacji), użyje ona podstawowego motywu.
Bonus: spraw, aby działał, gdy używasz wiersza poleceń
Możesz także chcieć, aby aplikacja uruchamiała się z podstawowym motywem podczas uruchamiania jej z wiersza poleceń. Aby to zrobić:
alias pantheon-files="GTK_THEME=elementary pantheon-files"
(zamieniającpantheon-files
na żądaną aplikację)Ostrzeżenia:
Źródła:
źródło
find /usr/share/themes -type d -name 'gtk-3.0' | awk -F'/' '{print $5}'
igedit
do celów demonstracyjnych? NpGTK_THEME="HighContrast" gedit
alboenv GTK_THEME="HighContrast" gedit
alboGTK_THEME=Adwaita:dark gedit
... nic./usr/share/applications/<appname>.desktop
i zadziałało dla mnie.Pytanie jest nadal aktualne i znalazłem sposób:
path/to/MY_FOLDER
/share/themes/
folder w nim (to znaczypath/to/MY_FOLDER/share/themes
).zmień nazwę motywu na nazwę AKTUALNIE AKTYWNEGO TEMATU.
W końcu to polecenie sprawi, że aplikacja będzie używać motywu o zmienionej nazwie zamiast obecnie aktywnego:
GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATON
(Ścieżka później
GTK_DATA_PREFIX=
musi być ( i tylko taka ) do folderu zawierającego/share/themes/RENAMED_THEME
. Dlatego NIE jestpath/to/MY_FOLDER/share/themes/RENAMED_THEME
, ale tylkopath/to/MY_FOLDER
.)Aby mieć to w programie uruchamiającym, zamień odpowiednio:
źródło
GTK_DATA_PREFIX
?~/.themes
(musi być obecny aktywny/usr/share/themes
), a następnie użycie ścieżkiGTK_DATA_PREFIX=path/to/nowhere
do uruchomienia tej aplikacji, która zresetuje motyw aplikacji do bieżącej, tylko że najpierw zajrzy~/.themes
i weźmie ten o tej samej nazwie.GTK_DATA_PREFIX=
musi być ( i tylko ta ) do folderu zawierającego/share/themes/RENAMED_THEME
. Dlatego NIE jestFOLDER/share/themes/RENAMED_THEME
, ale po prostuFOLDER
.Z pewnością jest to możliwe, nie mam dużego doświadczenia w tworzeniu motywów, ale kiedy przejdziesz do
/usr/share/themes/*Theme Name*/gtk-3.0/apps/
katalogu, znajdziesz.css
pliki nazwane aplikacjami, których dotyczą motywy, więc tak, możesz tworzyć motywy specyficzne dla aplikacji.Zwróć uwagę, że sposób, w jaki wspomniałeś motywowanie aplikacji, może wymagać pewnej pracy (na przykład jednoczesnej pracy z Ambiance i Elementary, ponieważ każdy motyw ma plik podstawowy, na którym wykonywana jest stylizacja aplikacji) (plik
gtkrc
w Gtk 2.0 podczas gdy plikgtk.css
w przypadku Gtk3.0 ).A ten plik motywu podstawowego zawiera reguły stylizacji, które są konkretnie ukierunkowane na dany motyw, dlatego nie można tworzyć wyglądu podstawowego z pliku motywu podstawowego Ambiance bez wprowadzania poważnych zmian, a nawet jeśli to zrobisz, stracisz wygląd samego Ambiance.
Ponadto w GNOME możliwe jest jednoczesne stosowanie tylko jednego motywu. Na przykład, jeśli używałeś okna Wygląd w Ubuntu 12.04, wiesz, że możesz wybrać dowolny pojedynczy motyw z menu rozwijanego, jeśli go użyłeś
gnome-tweak-tool
, niż możesz ustawić różne motywy dla Gtk, ramek okien i ikon, ale nadal nie pozwala on kierować określonych aplikacji do motywu, tak jak powiedziałem wcześniej, możesz ustawić zupełnie różne motywy dla różnych aplikacji, jeśli sprytnie pracujesz z podstawowy plik motywu, jak na razie, aplikacje innych firm nie mogą tego zrobić samodzielnie.Jednym ze sposobów, w jaki możesz to zrobić samemu, jest to, że podstawowy plik motywu (
gtk.css
) ma tylko podstawowe zasady, które są neutralne dla każdego motywu, ciemne lub jasne. Miej też faktyczny projekt motywu zapisany w plikach specyficznych dla aplikacji, które znajdują się w wyżej wymienionym katalogu, tj. Do stylizacji Nautilus, możesz zapisać wszystkie wymagane właściwości wnautilus.css
pliku. To samo z każdą aplikacją, na którą chcesz kierować reklamy. Oczywiście, zrobienie tego wymaga przyzwoitego doświadczenia w temacie Gtk.Można odnieść to do tworzenia własnego motywu przy użyciu szablonu, również istnieje spora dokumentacja na GTK + themeing.
źródło
Tak, prostym sposobem jest skierowanie aplikacji na wymaganą ścieżkę, w której znajduje się plik rc, w poleceniu uruchamiającym aplikację:
To w dniu 12.04 dla inkscape (który wciąż jest Gnome2 btw) wytwarza to:
Zobacz więcej informacji o działającym motywie Gtk2 tutaj .
źródło
Tak, możesz, tak naprawdę googlowałem i otrzymałem kilka odpowiedzi:
which ooffice
terminal.echo $PATH
terminal, a uzyskasz ścieżkę. Zalecam utworzenie folderu bin w katalogu domowym przez wpisaniemkdir ~/bin
gedit ~/.bashrc
aby otworzyć plik bash rc.export PATH=~/bin:${PATH}
Teraz stworzymy skrypt, który uruchomi Twój program z niestandardowym motywem:
gedit ~/bin/ooffice
Wpisz następujące wiersze w otwartym pliku:
Zmień tryb pliku wykonywalnego do typowania przez:
chmod +x ~/bin/ooffice
.Mam nadzieję, że to pomaga, musisz pamiętać tylko jedną rzecz, format skryptu, jak pokazano poniżej:
źródło