Na początek wspomnę o tym, że plik theme gtk2 jest zazwyczaj jednolitym plikiem, bez rozbijania go na mniejsze rzeczy lub cząstki.
Plik oprócz tego, że mieści się w katalogu gtk-2.0, to nosi nazwę gtkrc.
O różnicach między gtk3 napiszę, kiedy znajdę chęci na rozpoczęcie opisywania gtk3 ;)
Dlatego najpierw poznajmy gtk2, bo później będzie nam z gtk3 i to o wiele :)
Struktura
Plik gtkrc który określa wygląd aplikacji napisanych w gtk2 dzielimy na 4 części:
1. Określenie kolorów
2. Określenie wyglądu (wielkość, długość, szerokość) prawie wszystkich rzeczy które można edytować po przez wygląd.
3. Określenie silnika theme: clearlooks, murrine i ich rodzajów + ustawienia
4. Określenie koloru każdego z elementów + dokładniejsze określenie wybranych opcji.
To co mamy w pliku "na samym dole" to określenie fraz, do jakich ma odnosić się dane ustawienie :)
Na początek może omówię w kolejnych wpisach: nadawanie kolorów, co później będzie o tyle ważne że będziemy się nimi w pewien sposób bawić ;)
Kolejną rzeczą będą opcje określające dane elementy i jak sobie radzić w razie nie wiedzy. A możecie mi wierzyć, wiele twórców theme o wielu opcjach albo nie wie, albo ich nie ustawia.
Kolejną sprawą będzie silnik theme.
A na samym końcu opisanie jak modyfikować menu, toolbar, pasek postępu, paski przesuwania, zaokrąglone krawędzie w programach, a nawet pobawimy się w zmianę panelu jaki oglądacie w gnome2, czy lxde :)
Przy okazji podpowiem, że wielokrotnie będziemy uruchamiać firefox (lepiej go sobie zainstalować).
O systemie linux, jego meandrach, czeluściach, zakamarkach, i pulpitach (KDE Plasma 5, Unity8, Xfce, Lxde, Lxqt, Cinnamon), itd. itp.
wtorek, 17 stycznia 2012
poniedziałek, 16 stycznia 2012
ustawiamy sobie wszystko
Theme gtk2 ma to do siebie, że możemy w nim: wyłączyć znaczniki na pasku przesuwania, chodzi o te "dzyndzle" na górze i dole na tym pasku co przesuwanie pliki np. w nautilus. Możemy nakazać theme, aby zaokrąglał nam pewne krawędzie, aby zakładki na programach gtk2 np. pidgin były zaokrąglone, że pasek postępu ma być mniejszy, jaki mały, może też ustawić margines wobec innych elementów wobec siebie itd.
Nie jest to może coś, co będzie interesujące ale mogę wam gwarantować, że wiele rzeczy da się w theme gtk2 zmienić, a wy nie mieliście o tym pojęcia :)
PRZYKŁADOWE USTAWIENIA gtkrc:
GtkButton:: - przyciski
GtkScrollbar:: - pasek przesuwania okna
GtkMenuBar:: - menu, które widzimy pod belkom
GtkNotebook:: - odległość zakładek od siebie
GtkToolbar:: - pasek z ikonkami w programach (pod panelem menu)
GtkMenu:: - menu które mamy pod PPM czy po naciśnięciu na menu pod blekom
GtkEntry:: - pole wpisywania nazw (firefox i pole wpisywania adresu strony, czy pole wyszukiwania w programach)
GtkProgressBar:: - pasek postępu
Ale mamy też ustawienia: elementów, którym regulujemy suwaki np. głośności, czy w vlc za to, za co łapiemy kiedy chcemy przewinąć film.
Tak sekcja pliku gtkrc to nic innego jak określenie: marginesów, oraz jaką wielkość ma mieć dany element. I może was zdziwię, ale nie będę tutaj rozwodził się nad każdym z elementów i opisywał go :) A to dlatego, że o każdej opcji z theme gtk2 możecie poczytać na stronie gnome, gdzie wszystko jest fajnie opisane :) np. GtkScrollbar - http://developer.gnome.org/gtk/2.24/GtkScrollbar.html Każda opcja posiada krótki opis - jakie ma opcje do wyboru (cyferkowa czy słowne) itd. Na początku będziecie się czuć zagubieni, ale możecie mi wierzyć: im więcej będziecie sobie SAMI szukać w google i na stronie twórców gnome, tym zaczniecie to szybciej przyswajać :)
Ja tutaj podam kilka fajnych rzeczy, które będę się starał w miarę zrozumiale wytłumaczyć ;)
!!WAŻNE!! # - to określenie, oznaczenie że dana linia (cała linia) jest komentarzem, a nie działającym kodem.
Jest to o tyle ważne, że w ten sposób możecie wyłączyć daną opcję, albo ją włączyć. Jeśli przejrzycie theme gtk2 pobierane z internetu, to zauważycie że twórcy czasami "chaszują" niektóre opcje, które powodowały błędy, ale nie były takie jakie oni by chcieli aby one były. I jak się przekonacie w przykładach poniżej, jest to naturalny proces zmieniania theme, lub jego budowy.
WAŻNE jest też "pamiętanie" czy dana opcja to tylko 0 lub 1, czy wartość: od 0 do np. 55.
Pierwsze uruchamia coś lub wyłącza, zaś drugie określa wielkość.
Warto na to zwracać uwagę.
Jest to kod na mniejszy pasek postępu :) Podpowiedzią powinny dla was być słowa: Prograssbar, oraz horizontal i vertical - tak chodzi o pasek poziomy i jeśli się takowy trafi pionowy. Jak się możecie domyślać, to co w poziomie jest długością, w pionie będzie szerokością.
Dlatego pasek postępu odnośnie poziomowego określenia jego szerokości wynosi 120 - jest to optymalna szerokość, im mniejsza wartość tym pasek będzie: krótszy. Określenie wysokości 8 to zmniejszenie go prawie o 2/3, co dużo lepiej się komponuje niż gruby pasek, który zajmuje nam tylko miejsce ;)
Tutaj mamy sytuację odwrotną, czyli wartości są przedstawiane na pasek ułożony z góry na dół. I tak jak to było powyżej, określamy jego szerokość i w tym przypadku wysokość. Ale że takie paski się nie trafiają, wiec określenie ich niskimi wartościami jest po prostu formalnością :)
Określenie wielkości czcionki w pasek postępu.
Określenie typu, albo raczej jego brak odnośnie paska postępu. Nadaje się tą funkcję, ponieważ nie wszystkie silniki theme potrafią interpretować tą opcję właściwie. Dlatego nakazuje się: że pasek postępu nie ma mieć cienia.
I tu mamy właśnie opisany kod, który został określony jako komentarz, po to aby nie był on uwzględniany :) W tym przypadku zostało wyłączone nadawanie cienia, ponieważ opcja = GTK_SHADOW_NONE - go nie określa, a więc ta opcja w pewnym sensie staje się zbędna i zalega nam podczas każdorazowego odwoływania się danego programu do pliku wyglądu.
I zastępując oryginalne ustawienia w gtkrc na poczet tych powyższych, otrzymacie cieńszy pasek postępu, co w moim odczucia prezentuje się dużo lepiej :)
W tym miejscu możemy sobie ustalić: ile będą od siebie odległe dane karty np. lxterminal, pcmanfm, pidgin - programy opierające się na wyglądzie gtk2.
Ważna rzecz, o czym wspomniałem na samym początku: jedne wartości gdzie występują 0 mogą odpowiadać tylko dwóm wartościom: 0 lub 1.
0 - wyłączona
1 - włączone
To wyłączenie aktywacji znacznika przewijania w momencie: najechania na niego myszką i naciśnięcia na niego myszkom. W tym miejscu też działa powyższe opcja: 0 i 1 - żadna inna.
To określenie szerokości i wysokości - dzyndzla, którym przesuwamy strony.
To określenie minimalnej wielkości znacznika, nie ważne jakie będzie okna - jeśli ustawimy sobie 30, to taki on być minimalnie. Po co to jest? Aby np. jeśli mamy dość dużą stronę lub w gedit czytamy coś to pasek do przewijania tej zawartości będzie dość: cienki. Aby tego uniknąć określa się jego minimalną wartość, aby było nam łatwiej złapać pasek i nim operować :)
To określenie stoperów, a więc znaczników: góra na górze i dół na dole. Ale to nie wszystko :) Ponieważ możemy sobie ustawić znaczniki tak jak to miało Kde3, czyli na górze - góra, a na dole: góra i dół. Te właśnie opcje to określają, czy chcemy mieć np. na górze znaczniki: góra i dół, podobnie też na dole, czy może ich wcale nie mieć.
Powyższe opcje wyłączają całkiem te znaczniki z paska przewijania :)
Jeśli chcecie się pobawić to podpowiedzią powinno być: backward, forward i secondary - pobawcie się i dajcie sobie 1 gdzieś i zobaczcie co się stanie :)
Nadmienię, że lxapparance pokazuje wygląd theme, jeszcze przed jego załadowaniem - a więc możecie tam sobie sprawdzać, bez uruchamiania: jak wszystko wygląda :)
Ale jak wspomniałem: google nie gryzie, opis każdej z opcji od twórców gnome daje pewne założenia: o co w tym chodzi. Polecam starszą wersję objaśnień, gdzie twórcy dali obrazek ukazujący poszczególne opcje.
...::space-size = 0
To wolna przestrzeń między danym elementem a krawędziom czy innym elementem.
Więc jak widać, mamy w tym pliku określenie: przestrzeni między danymi elementami, przestrzeni po za tymi elementami, określenie ich wielkości i szerokości, długości i wysokości.
A jak przekonacie się w kolejnym postach - niektóre opcje nie działają, kiedy inne funkcje stanowią całkiem inne rzeczy.
Nie jest to może coś, co będzie interesujące ale mogę wam gwarantować, że wiele rzeczy da się w theme gtk2 zmienić, a wy nie mieliście o tym pojęcia :)
PRZYKŁADOWE USTAWIENIA gtkrc:
GtkButton ::child-displacement-x = 0
GtkButton ::child-displacement-y = 0
GtkButton ::default-border = {0, 0, 0, 0}
GtkButton ::image-spacing = 4
GtkToolButton ::icon-spacing = 4
GtkCheckButton ::indicator-size = 14
GtkEntry ::honors-transparent-bg-hint = 1
GtkEntry ::invisible-char $
GtkEntry ::progress-border $
GtkEntry ::state-hint = 0
GtkProgressBar ::min-vertical-bar-width = 13
GtkProgressBar ::min-horizontal-bar-height = 13
GtkExpander ::expander-size $
GtkMenuBar ::internal-padding = 0
GtkMenuBar ::window-dragging = 1
GtkMenuBar ::internal-padding $
#GtkMenuBar ::shadow-type $
GtkMenuBar ::window-dragging $
GtkMenu ::horizontal-padding = 0
GtkMenu::vertical-padding $
GtkSeparatorMenuItem ::horizontal-padding = 7
GtkNotebook ::tab-overlap = 7
GtkNotebook ::tab-curvature = 14
GtkPaned ::handle-size = 6
... Mamy tu wycinek części tylko ustawień odnośnie różnych elementów wyglądu programów :) A tutaj cała sekwencja, która odnosi się do większości rzeczy: GtkButton::child-displacement-x = 0
GtkButton::child-displacement-y = 0
GtkButton::default-border = {0, 0, 0, 0}
GtkButton::default-outside-border = {0, 0, 0, 0}
GtkButton::displace-focus = TRUE
GtkCheckButton::indicator-size = 10
GtkCheckButton::indicator-spacing = 0
GtkCheckButton::shadow = {0, 0, 0, 0}
GtkPaned::handle-size = 2
GtkRange::trough-border = 0
GtkRange::slider-width = 11
GtkRange::stepper-size = 0
GtkRange::stepper_spacing = 0
GtkRange::trough-under-steppers = 0
GtkRange::shadow = {0, 0, 0, 0}
GtkScale::trough-border = 0
GtkScale::slider-width = 20
GtkScale::slider-length = 10
GtkScale::trough-side-details = 0
GtkScale::shadow = {0, 0, 0, 0}
GtkScrolledWindow::scrollbar-spacing = 0
GtkScrolledWindow::scrollbars-within-bevel = 0
GtkScrolledWindow::shadow = {0, 0, 0, 0}
GtkScrollbar::activate-slider = 0
GtkScrollbar::trough-border = 0
GtkScrollbar::slider-width = 15
GtkScrollbar::slider-hight = 15
GtkScrollbar::min-slider-length = 24
GtkScrollbar::has-backward-stepper = 0
GtkScrollbar::has-secondary-backward-stepper = 0
GtkScrollbar::has-forward-stepper = 0
GtkScrollbar::has-secondary-forward-stepper = 0
GtkScrollbar::default-border = {0, 0, 0, 0}
GtkScrollbar::default-outside-border = {0, 0, 0, 0}
GtkNotebook::tab-overlap = -3
GtkToolbar::internal-padding = 0
GtkToolbar::shadow-type = 0
GtkToolbar::space-size = 0
#GtkToolbar::shadow = {0, 0, 0, 0}
GtkToolbar ::shadow-type = GTK_SHADOW_NONE
GtkExpander::expander-size = 5
GtkExpander::shadow = {0, 0, 0, 0}
GtkTreeView::expander-size = 0
GtkTreeView::vertical-separator = 0
GtkTreeview::shadow-type = GTK_SHADOW_NONE
GtkMenu::horizontal-padding = 0
GtkMenu::internal-padding = 0
GtkMenu::double-arrows = FALSE
GtkMenu::vertical-padding = 0
GtkMenu::shadow = {0, 0, 0, 0}
WnckTasklist::fade-overlay-rect = 1
WnckTasklist::shadow-type = GTK_SHADOW_NONE
GtkEntry::honors-transparent-fg-hint = 0
GtkEntry::honors-transparent-bg-hint = 1
GtkEntry::state-hint = 0
GtkEntry::has-frame = TRUE
GtkEntry::progress-border = {2, 2, 2, 2}
GtkProgressBar::min-horizontal-bar-height = 8
GtkProgressBar::min-horizontal-bar-width = 120
GtkProgressBar::min-vertical-bar-height = 5
GtkProgressBar::min-vertical-bar-width = 10
GtkProgressBar::gtk_progress_bar_set_text = 8
#GtkProgressBar::shadow = {0, 0, 0, 0}
GtkProgressBar::shadow-type = GTK_SHADOW_NONE
GtkMenuBar::shadow = {0, 0, 0, 0}
GtkMenuBar::vertical-padding = 0
GtkMenuBar::internal-padding = 0
GtkMenuBar::horizontal-padding = 0
GtkMenuBar::shadow-type = GTK_SHADOW_NONE
GtkMenuBar::window-dragging = 1
GtkMenuBar::trough-border = 0
GtkWidget::focus-line-width = 0
GtkWidget::focus-line-hight = 0
GtkWidget::shadow = {0, 0, 0, 0}
GtkFrame::label-xalign = 0
GtkFrame::label-yalign = 0
GtkFrame::shadow = {0, 0, 0, 0}
GtkComboBox::has-entry = FALSE
GtkComboBox::popup-shown = TRUE
GtkComboBox::arrow-size = 0
GtkComboBox::shadow = {0, 0, 0, 0}
GtkWindow::resize-grip-height = 0
GtkWindow::resize-grip-width = 0 GtkButton:: - przyciski
GtkScrollbar:: - pasek przesuwania okna
GtkMenuBar:: - menu, które widzimy pod belkom
GtkNotebook:: - odległość zakładek od siebie
GtkToolbar:: - pasek z ikonkami w programach (pod panelem menu)
GtkMenu:: - menu które mamy pod PPM czy po naciśnięciu na menu pod blekom
GtkEntry:: - pole wpisywania nazw (firefox i pole wpisywania adresu strony, czy pole wyszukiwania w programach)
GtkProgressBar:: - pasek postępu
Ale mamy też ustawienia: elementów, którym regulujemy suwaki np. głośności, czy w vlc za to, za co łapiemy kiedy chcemy przewinąć film.
Tak sekcja pliku gtkrc to nic innego jak określenie: marginesów, oraz jaką wielkość ma mieć dany element. I może was zdziwię, ale nie będę tutaj rozwodził się nad każdym z elementów i opisywał go :) A to dlatego, że o każdej opcji z theme gtk2 możecie poczytać na stronie gnome, gdzie wszystko jest fajnie opisane :) np. GtkScrollbar - http://developer.gnome.org/gtk/2.24/GtkScrollbar.html Każda opcja posiada krótki opis - jakie ma opcje do wyboru (cyferkowa czy słowne) itd. Na początku będziecie się czuć zagubieni, ale możecie mi wierzyć: im więcej będziecie sobie SAMI szukać w google i na stronie twórców gnome, tym zaczniecie to szybciej przyswajać :)
Ja tutaj podam kilka fajnych rzeczy, które będę się starał w miarę zrozumiale wytłumaczyć ;)
!!WAŻNE!! # - to określenie, oznaczenie że dana linia (cała linia) jest komentarzem, a nie działającym kodem.
Jest to o tyle ważne, że w ten sposób możecie wyłączyć daną opcję, albo ją włączyć. Jeśli przejrzycie theme gtk2 pobierane z internetu, to zauważycie że twórcy czasami "chaszują" niektóre opcje, które powodowały błędy, ale nie były takie jakie oni by chcieli aby one były. I jak się przekonacie w przykładach poniżej, jest to naturalny proces zmieniania theme, lub jego budowy.
WAŻNE jest też "pamiętanie" czy dana opcja to tylko 0 lub 1, czy wartość: od 0 do np. 55.
Pierwsze uruchamia coś lub wyłącza, zaś drugie określa wielkość.
Warto na to zwracać uwagę.
Pasek postępu - dlaczego on taki duży:
GtkProgressBar::min-horizontal-bar-height = 8
GtkProgressBar::min-horizontal-bar-width = 120
GtkProgressBar::min-vertical-bar-height = 5
GtkProgressBar::min-vertical-bar-width = 10
GtkProgressBar::gtk_progress_bar_set_text = 8
#GtkProgressBar::shadow = {0, 0, 0, 0}
GtkProgressBar::shadow-type = GTK_SHADOW_NONEJest to kod na mniejszy pasek postępu :) Podpowiedzią powinny dla was być słowa: Prograssbar, oraz horizontal i vertical - tak chodzi o pasek poziomy i jeśli się takowy trafi pionowy. Jak się możecie domyślać, to co w poziomie jest długością, w pionie będzie szerokością.
GtkProgressBar::min-horizontal-bar-height = 8
GtkProgressBar::min-horizontal-bar-width = 120 Dlatego pasek postępu odnośnie poziomowego określenia jego szerokości wynosi 120 - jest to optymalna szerokość, im mniejsza wartość tym pasek będzie: krótszy. Określenie wysokości 8 to zmniejszenie go prawie o 2/3, co dużo lepiej się komponuje niż gruby pasek, który zajmuje nam tylko miejsce ;)
GtkProgressBar::min-vertical-bar-height = 5
GtkProgressBar::min-vertical-bar-width = 10Tutaj mamy sytuację odwrotną, czyli wartości są przedstawiane na pasek ułożony z góry na dół. I tak jak to było powyżej, określamy jego szerokość i w tym przypadku wysokość. Ale że takie paski się nie trafiają, wiec określenie ich niskimi wartościami jest po prostu formalnością :)
GtkProgressBar::gtk_progress_bar_set_text = 8Określenie wielkości czcionki w pasek postępu.
GtkProgressBar::shadow-type = GTK_SHADOW_NONEOkreślenie typu, albo raczej jego brak odnośnie paska postępu. Nadaje się tą funkcję, ponieważ nie wszystkie silniki theme potrafią interpretować tą opcję właściwie. Dlatego nakazuje się: że pasek postępu nie ma mieć cienia.
#GtkProgressBar::shadow = {0, 0, 0, 0}I tu mamy właśnie opisany kod, który został określony jako komentarz, po to aby nie był on uwzględniany :) W tym przypadku zostało wyłączone nadawanie cienia, ponieważ opcja = GTK_SHADOW_NONE - go nie określa, a więc ta opcja w pewnym sensie staje się zbędna i zalega nam podczas każdorazowego odwoływania się danego programu do pliku wyglądu.
I zastępując oryginalne ustawienia w gtkrc na poczet tych powyższych, otrzymacie cieńszy pasek postępu, co w moim odczucia prezentuje się dużo lepiej :)
Bo te karty nachodzą na siebie...
GtkNotebook::tab-overlap = -3W tym miejscu możemy sobie ustalić: ile będą od siebie odległe dane karty np. lxterminal, pcmanfm, pidgin - programy opierające się na wyglądzie gtk2.
Pasek przewijania bez znaczników: góra w dół
(nie działa to w chrome)GtkScrollbar::activate-slider = 0
GtkScrollbar::trough-border = 0
GtkScrollbar::slider-width = 15
GtkScrollbar::slider-hight = 15
GtkScrollbar::min-slider-length = 24
GtkScrollbar::has-backward-stepper = 0
GtkScrollbar::has-secondary-backward-stepper = 0
GtkScrollbar::has-forward-stepper = 0
GtkScrollbar::has-secondary-forward-stepper = 0Ważna rzecz, o czym wspomniałem na samym początku: jedne wartości gdzie występują 0 mogą odpowiadać tylko dwóm wartościom: 0 lub 1.
0 - wyłączona
1 - włączone
GtkScrollbar::activate-slider = 0
GtkScrollbar::trough-border = 0To wyłączenie aktywacji znacznika przewijania w momencie: najechania na niego myszką i naciśnięcia na niego myszkom. W tym miejscu też działa powyższe opcja: 0 i 1 - żadna inna.
GtkScrollbar::slider-width = 15
GtkScrollbar::slider-hight = 15To określenie szerokości i wysokości - dzyndzla, którym przesuwamy strony.
GtkScrollbar::min-slider-length = 24To określenie minimalnej wielkości znacznika, nie ważne jakie będzie okna - jeśli ustawimy sobie 30, to taki on być minimalnie. Po co to jest? Aby np. jeśli mamy dość dużą stronę lub w gedit czytamy coś to pasek do przewijania tej zawartości będzie dość: cienki. Aby tego uniknąć określa się jego minimalną wartość, aby było nam łatwiej złapać pasek i nim operować :)
GtkScrollbar::has-backward-stepper = 0
GtkScrollbar::has-secondary-backward-stepper = 0
GtkScrollbar::has-forward-stepper = 0
GtkScrollbar::has-secondary-forward-stepper = 0To określenie stoperów, a więc znaczników: góra na górze i dół na dole. Ale to nie wszystko :) Ponieważ możemy sobie ustawić znaczniki tak jak to miało Kde3, czyli na górze - góra, a na dole: góra i dół. Te właśnie opcje to określają, czy chcemy mieć np. na górze znaczniki: góra i dół, podobnie też na dole, czy może ich wcale nie mieć.
Powyższe opcje wyłączają całkiem te znaczniki z paska przewijania :)
Jeśli chcecie się pobawić to podpowiedzią powinno być: backward, forward i secondary - pobawcie się i dajcie sobie 1 gdzieś i zobaczcie co się stanie :)
Nadmienię, że lxapparance pokazuje wygląd theme, jeszcze przed jego załadowaniem - a więc możecie tam sobie sprawdzać, bez uruchamiania: jak wszystko wygląda :)
Ale jak wspomniałem: google nie gryzie, opis każdej z opcji od twórców gnome daje pewne założenia: o co w tym chodzi. Polecam starszą wersję objaśnień, gdzie twórcy dali obrazek ukazujący poszczególne opcje.
...::space-size = 0
To wolna przestrzeń między danym elementem a krawędziom czy innym elementem.
Więc jak widać, mamy w tym pliku określenie: przestrzeni między danymi elementami, przestrzeni po za tymi elementami, określenie ich wielkości i szerokości, długości i wysokości.
A jak przekonacie się w kolejnym postach - niektóre opcje nie działają, kiedy inne funkcje stanowią całkiem inne rzeczy.
niedziela, 15 stycznia 2012
silnik generujący theme vs statyczna grafika
Theme gtk2 ma to do siebie, że jest proste i klarowne do zrozumienia, nawet dla laika. Takie jest moje zdanie na ten temat.
Ale i tak potrafi ono przysporzyć problemów z ogarnięciem wyglądu początkującym, którzy chcieli by: zmodyfikować obecne theme, które im się znudziło, trochę je zmienić, trochę je upiększyć.
Warto pamiętać, że wiele theme gtk2 bazuje nie na silnikach generujących theme, ale na grafikach. Inaczej mówiąc, to co widzimy to nie jest rysowane przez silnik gtk2, ale jest to graficzny plik, który ładuj się nam w odpowiednim miejscu imitując lub zastępując oryginalne przyciski, panel z ikonkami, panel w mate lub lxde/xfce, suwak, pasek postępu itd.
W gtkrc lub odpowiednich odnośnikach do odpowiednich elementów rozbitych na cząstkowe elementy theme np. panel, menu, przyciski, pasek postępu itd. mamy linijki, które odpowiadają przypisanym do tego grafikom, a nie kod theme, który określa krzywą, cień itd dla danego elementu.
Dlaczego autorzy theme decydują się na to, dlaczego robi się takie rzeczy?
Ponieważ gtk2 nie jest już nowością i to co się dało z niego wycisnąć - już zostało wyciśnięte. Od kilku lat nikt nie modernizuje silników generujących grafikę gtk2, ponieważ gtk2 na to nie pozwala lub ma ku temu ograniczenia.
I na dobrą sprawę, bez możliwości zastąpienia pewnych elementów lub wszystkich elementów theme graficznymi odpowiednikami zamiast kodu theme staje się nie opcją ale obowiązkiem. Ponieważ silnik gtk2 nie jest wstanie stworzyć, obrysować, wygenerować dane coś co chcieli by lub widzieli by to twórcy lub twórca danego theme.
Dobrym przykładem jest tutaj theme do lubuntu (ozone3) w nadchodzącym wydaniu 12.04, gdzie prawie całe theme opiera się na grafikach, a nie na silniku gtk2, który otrzymuje informacje nie: co ma wygenerować i dla jakiego elementu ale... Jaką grafikę ma w danym miejscu umiejscowić.
Gdzie w tym tkwi haczyk?
Każdy z was może podmienić grafiki jakie posiada takowe (nie musi to być theme lubuntu, może to być każde inne theme gtk2, które jest oparte na grafikach/plikach graficznych png) theme na inne, albo co lepsze że każdy z was może podmienić pliki graficzne danego theme, między sobą.
Co to daje? A no to, że theme nabiera całkiem innego wyglądu, całkiem innych walorów wizualnych, nawet jeśli wykonamy podmianę np. elementy, które są podpisane dla panelu zostaną użyte do określenia przycisków, a te do przycisków aby określały wygląd panelu. W takim momencie zmienia się cały wygląd theme i jego odbiór, a przecież wykonaliśmy tą jedną (no może dwie) czynność/ci.
Co wystarczyło zrobić?
Podmienić nazwy, tak tylko nazwy, które określają dany element - do czego on ma być. I mamy nowe theme. Nie, nie pomyliłem się. Wszystko przez to, że theme gtk2 oparte o grafiki to grafiki. Jeśli je podmienimy na swoje, albo zrobimy miszmasz miksując, tak jak to opisałem powyżej, grafiki dla panelu damy jako przyciski, przyciski jaki panel, pasek postępu jako menu, a menu jako pasek postępu - otrzymujemy całkiem inne theme gtk2.
A wszystko przez to, że całe theme nie opiera się na silniku gtk2, silniku który to organizuje, kreśli i narzuca dane ograniczenia, parametry i wyznacza, jak dany element będzie wyglądał.
Taka uwaga, nie opisuje tutaj kodu odnośnie grafik, ponieważ za jego pomocą silnik gtk2 zastępuje dany element danym plikiem .png.
Podpowiedź: zazwyczaj stosuje się różne określenie danej grafiki (w gtkrc), kiedy ona ma być pokazywana np. przycisk: widoczny normalnie, po najechaniu, po naciśnięciu, nieaktywny. I do tego jeszcze dochodzi cień, ale nie zawsze.
Tym samym, nie musimy się silić nad znajomością kodu gtk2, ale tylko wiedzieć: jaki element do czego ma być - tyle. A więc, edycja theme odbywa się tylko na plikach, a nie na kodzie theme. Co mówi samo przez siebie, że w takim wypadku nie potrzebna jest nam znajomości kodu gtk2, ale tylko obeznanie z tym: co gdzie ma być, pokazać się lub coś emitować. Ponieważ kod gtk2 odnośnie grafiki png, nie określa żadnych parametrów sprawdzających: czy dany plik jest tym który ma być, czy nie. A więc, jeśli dana grafika jest mniejsza lub większa niż oryginał - wtedy zostanie albo rozciągnięta, albo zbita.
Jak napisałem, silniki gtk2 mają swoje ograniczenia, które muszą być maskowane właśnie przez zastępowanie ich graficznymi plikami, które nadają inny ton theme.
Problem w tym, że silniki gtk2 mają własne ograniczenia jeśli idzie o pokazywanie elementów theme. Oznacza to, że modyfikując theme oparte na clearlooks, nie otrzymamy tego samego co ma murrine. Co więcej, clearlooks posiada kilka odmian, które sprawiają że theme wygląda inaczej, ma inne paski postępu i inaczej rysują przyciski.
W theme gtk2 wyróżnia się jednak właśnie te dwa silniki: clearlooks i murrine, na których to podstawie buduje się całe theme gtk2.
Oba silniki różnią się strukturą i budową, jedne określenia nie działają w drugim, ten sam efekt uzyskuje się przez inne polecenie, które ma narzucić np. zaokrąglenie przycisków, określenie cienia pod przyciskiem, czy określenia cienia wewnątrz przycisku.
I myślę sobie, że w następnym wpisie opiszemy sobie powyższe silniki (engine theme gtk2), które jak napisałem: mają odmienną strukturę i theme w przypadku jednego i drugiego prezentuje się inaczej i bazuje na innych określeniach wyświetlania danego elementu.
Ale i tak potrafi ono przysporzyć problemów z ogarnięciem wyglądu początkującym, którzy chcieli by: zmodyfikować obecne theme, które im się znudziło, trochę je zmienić, trochę je upiększyć.
Warto pamiętać, że wiele theme gtk2 bazuje nie na silnikach generujących theme, ale na grafikach. Inaczej mówiąc, to co widzimy to nie jest rysowane przez silnik gtk2, ale jest to graficzny plik, który ładuj się nam w odpowiednim miejscu imitując lub zastępując oryginalne przyciski, panel z ikonkami, panel w mate lub lxde/xfce, suwak, pasek postępu itd.
W gtkrc lub odpowiednich odnośnikach do odpowiednich elementów rozbitych na cząstkowe elementy theme np. panel, menu, przyciski, pasek postępu itd. mamy linijki, które odpowiadają przypisanym do tego grafikom, a nie kod theme, który określa krzywą, cień itd dla danego elementu.
Dlaczego autorzy theme decydują się na to, dlaczego robi się takie rzeczy?
Ponieważ gtk2 nie jest już nowością i to co się dało z niego wycisnąć - już zostało wyciśnięte. Od kilku lat nikt nie modernizuje silników generujących grafikę gtk2, ponieważ gtk2 na to nie pozwala lub ma ku temu ograniczenia.
I na dobrą sprawę, bez możliwości zastąpienia pewnych elementów lub wszystkich elementów theme graficznymi odpowiednikami zamiast kodu theme staje się nie opcją ale obowiązkiem. Ponieważ silnik gtk2 nie jest wstanie stworzyć, obrysować, wygenerować dane coś co chcieli by lub widzieli by to twórcy lub twórca danego theme.
Dobrym przykładem jest tutaj theme do lubuntu (ozone3) w nadchodzącym wydaniu 12.04, gdzie prawie całe theme opiera się na grafikach, a nie na silniku gtk2, który otrzymuje informacje nie: co ma wygenerować i dla jakiego elementu ale... Jaką grafikę ma w danym miejscu umiejscowić.
Gdzie w tym tkwi haczyk?
Każdy z was może podmienić grafiki jakie posiada takowe (nie musi to być theme lubuntu, może to być każde inne theme gtk2, które jest oparte na grafikach/plikach graficznych png) theme na inne, albo co lepsze że każdy z was może podmienić pliki graficzne danego theme, między sobą.
Co to daje? A no to, że theme nabiera całkiem innego wyglądu, całkiem innych walorów wizualnych, nawet jeśli wykonamy podmianę np. elementy, które są podpisane dla panelu zostaną użyte do określenia przycisków, a te do przycisków aby określały wygląd panelu. W takim momencie zmienia się cały wygląd theme i jego odbiór, a przecież wykonaliśmy tą jedną (no może dwie) czynność/ci.
Co wystarczyło zrobić?
Podmienić nazwy, tak tylko nazwy, które określają dany element - do czego on ma być. I mamy nowe theme. Nie, nie pomyliłem się. Wszystko przez to, że theme gtk2 oparte o grafiki to grafiki. Jeśli je podmienimy na swoje, albo zrobimy miszmasz miksując, tak jak to opisałem powyżej, grafiki dla panelu damy jako przyciski, przyciski jaki panel, pasek postępu jako menu, a menu jako pasek postępu - otrzymujemy całkiem inne theme gtk2.
A wszystko przez to, że całe theme nie opiera się na silniku gtk2, silniku który to organizuje, kreśli i narzuca dane ograniczenia, parametry i wyznacza, jak dany element będzie wyglądał.
Taka uwaga, nie opisuje tutaj kodu odnośnie grafik, ponieważ za jego pomocą silnik gtk2 zastępuje dany element danym plikiem .png.
Podpowiedź: zazwyczaj stosuje się różne określenie danej grafiki (w gtkrc), kiedy ona ma być pokazywana np. przycisk: widoczny normalnie, po najechaniu, po naciśnięciu, nieaktywny. I do tego jeszcze dochodzi cień, ale nie zawsze.
Tym samym, nie musimy się silić nad znajomością kodu gtk2, ale tylko wiedzieć: jaki element do czego ma być - tyle. A więc, edycja theme odbywa się tylko na plikach, a nie na kodzie theme. Co mówi samo przez siebie, że w takim wypadku nie potrzebna jest nam znajomości kodu gtk2, ale tylko obeznanie z tym: co gdzie ma być, pokazać się lub coś emitować. Ponieważ kod gtk2 odnośnie grafiki png, nie określa żadnych parametrów sprawdzających: czy dany plik jest tym który ma być, czy nie. A więc, jeśli dana grafika jest mniejsza lub większa niż oryginał - wtedy zostanie albo rozciągnięta, albo zbita.
Jak napisałem, silniki gtk2 mają swoje ograniczenia, które muszą być maskowane właśnie przez zastępowanie ich graficznymi plikami, które nadają inny ton theme.
Problem w tym, że silniki gtk2 mają własne ograniczenia jeśli idzie o pokazywanie elementów theme. Oznacza to, że modyfikując theme oparte na clearlooks, nie otrzymamy tego samego co ma murrine. Co więcej, clearlooks posiada kilka odmian, które sprawiają że theme wygląda inaczej, ma inne paski postępu i inaczej rysują przyciski.
W theme gtk2 wyróżnia się jednak właśnie te dwa silniki: clearlooks i murrine, na których to podstawie buduje się całe theme gtk2.
Oba silniki różnią się strukturą i budową, jedne określenia nie działają w drugim, ten sam efekt uzyskuje się przez inne polecenie, które ma narzucić np. zaokrąglenie przycisków, określenie cienia pod przyciskiem, czy określenia cienia wewnątrz przycisku.
I myślę sobie, że w następnym wpisie opiszemy sobie powyższe silniki (engine theme gtk2), które jak napisałem: mają odmienną strukturę i theme w przypadku jednego i drugiego prezentuje się inaczej i bazuje na innych określeniach wyświetlania danego elementu.
sobota, 14 stycznia 2012
clearlooks murrine - engine theme gtk2
W tym tekście opiszę silniki theme gkt2, które najczęściej możecie spotkać jeśli idzie o gtk2.
To clearlooks i murrine.
Dwa odmienne podejścia do "rysowania" theme gtk2.
Clearlooks to silnik theme gtk2, który rysował wszystko za czasów początków gnome2. Jest to silnik, który upodabniał wygląd gnome2 do popularnego wtedy Windows 95, 98, a później do XP.
Charakteryzuje się on kanciastymi elementami, szarością, brakiem graficznego przepychu wizualnego, a do tego niewielkimi możliwościami ustawienia pewnych elementów.
Murrine to engine theme gtk2, który prezentuje dużo szersze spektrum dostosowania różnych elementów wyglądu, przy okazji oddając w ręce osoby, która tworzy theme na podstawie murrine dokładniejsze uzyskanie tego co się chce.
Ten silnik ma lub jest następcą clearlooks, ponieważ murrine posiada opcję przezroczystości (umownej) dla gtk2.
Ale najlepszym porównaniem będzie pokazanie wam struktury określenia silnika.
O co w tym chodzi?
W poprzednich wpisach opisałem wam początek struktury pliku gtkrc w katalogu gtk-2.0, który znajduje się w katalogu z nazwą theme. Pominąłem element odpowiedzialny za określenie kolorów w theme, ponieważ w późniejszych etapach wyjaśniania budowy i struktury theme gtk2 po prostu będę nawiązywał do tego miejsca i wtedy wyjaśnię to i owo, bo tam za wiele do omówienia nie ma.
Pod określeniami kolorystyki theme (czcionki, napisów i ich tła) trafiamy na takie coś:
lub
Właśnie tą frazą rozpoczyna się ustawienia silnika theme.
Pod spodem znajdują się opcje, które określają: co, jak i w jaki sposób ma być wyświetlane dla: CAŁEGO theme. Jest to ustawienie silnika i określenie go.
Dlatego jeśli w systemie nie macie zainstalowanej paczki gtk-engine-murrine - wtedy theme oparte na takowym silniku nie będzie posiadać nakładki organizującej wszystko. Czyli, otrzymamy kanciaste wszystko tak jakby na dany program lub pulpit nie zostało narzucone żadne theme.
Co do clearlooks - jest ono standardowo instalowane, jako chyba zamiennik w przypadku braku odpowiednich innych silników theme dla gtk2.
Struktura ustawień silnika cleralooks wygląda tak:
Jest ona kończona nawiasem. Ponieważ jak widać po "clearlooks" widać otwarty nawias, więc musi on zostać zamknięty, ale pod nim jest jeszcze jeden nawias. Dlaczego?
Ponieważ określenie silnika kończy sekwencję ustawień dla stylu, który mamy na samej górze: style "default" { który otwiera nam i określa to wszystko co opisałem wcześniej + kolorystyka czcionki i jej tlo + właśnie silnik jaki ma być użyty w danym theme i jakie ma on mieć parametry.
Dlatego pod ustawieniami engine "" ... mamy drugi nawias (nie kwadratowy), ani pół okrągły czy jak kto woli normalany.
Jak widać, struktura silnika (engine) clearlooks jest prosta i posiada małą ilość opcji, które możemy sobie ustawić.
Tu mamy także ustawienia clearlooks, ale z opisem opcji, i co dane zmiana cyfry przy każdej z nich. Ponieważ nie zawsze dana opcja posiada inną wartość niż 0 (wyłączone) czy 1 (włączone).
Jak widzicie, opcje powielają się do tego co mieliśmy wcześniej - ale są one opisane (dla kogoś kto zna choć trochę angielski).
Różnica w tych kodach to... Style.
Ponieważ clearlooks posiada różne style generowania theme. Każdy styl ma własne suwaki, własne paski postępu, własne określenia dla przycisków itd. Każdy styl inaczej też pokazuje obramowanie jeśli je zaokrąglimy.
Zmieniając w danym theme napis za style sprawiamy, że theme zmieni swoje oblicze w niektórych elementach.
Co jest jednak smutne, nie znalazłem żadnej notki odnośnie ilości stylów i o tym, jakie są ich nazwy.
A więc nie podam wam nazw stylów, abyście mogli sobie je sprawdzić.
Wiem że są: INVERTED, GUMMY, CLASSIC (chyba). Reszty niestety nie znam...
Co określa nam engine "clearlooks"?
colorize_scrollbar = TRUE
czy suwaki w programach i oknach mają być kolorowane podczas ich używania (zmieniają lekko kolor).
reliefstyle = 1
nawet nie wiem do czego to jest, ale można określić od 0 do 4 wygląd tego elementu (czyli 0 to coś innego, 1 to coś innego, 2 to coś innego itd.)
menubarstyle = 2
Określenie stylu menu (od 0 do 3)
toolbarstyle = 1
Określenie paska z ikonkami pod menu (od 0 do 2)
animation = FALSE
Czy pasek postępu ma być animowany i poruszać się. Wartości: FALSE (musi być z dużych liter) - brak animacji, fałsz, zakaz ukazywania animacji i TRUE - czyli prawda dla danej opcji, a więc animacja ma być.
radius = 3.0
Zaokrąglenie ogólne: 0.0 - brak zaokrąglenia, 2.0 minimalne zaokrąglenie, 5.0 - średnie i widoczne zaokrąglenie kantów w theme, rysowane kanty w oknach, 12.00 - mocne zaokrąglenie linii rysujących obramowanie danego elementu w danym oknie np. w oknie rozmowy pidgin, mamy obramowanie oddzielające zakładki z rozmowami, od okna rozmowy i menu, te czarne linie o których piszę, to obramowanie tegoż okna rozmowy (czarna linia) która uwydatnia miejsce rozmowy od zakładek z rozmową, a menu.
Najlepiej jest ustawić sobie w theme 3.0, a później zmienić tą wartość na 12 i uruchomić ponownie pidgin, otwierając okno rozmowy, powinniście zobaczyć o co mi chodzi :)
style = GUMMY
Styl, o którym pisałem powyżej.
To tyle jeśli chodzi o clearlooks, ponieważ wiadome jest że tych opcji może lub jest więcej ale mało kto je obecnie już stosuje lub korzysta z silnika gtk2 clearlooks.
Obecnie prawie wszystkie theme gtk2 bazują i są budowane w oparciu o murrine. I zaraz wam pokaże dlaczego...
contrast = 1.0
chyba wiadomo ;)
default_button_color = shade (0.95, "#80B8EA")
Też można się domyśleć (przyjmuję, że znacie choć trochę angielski, jeśli nie to: "standardowy kolor przycisku".
gradient_shades = {1.00, 0.91, 0.92, 0.81}
Określenie gradientu.
menubaritemstyle = 0
menubarstyle = 1
menuitemstyle = 1
menustyle = 3
Określenie menu, paska menu, okna combo (czyli to okienko kiedy to skaczemy po "plik, edycja, Widok itd.", określenie widoku menu.
Inaczej mówiąc: opcje odnośnie paska menu oraz jego wyglądu kiedy coś chcemy wybrać.
progressbarstyle = 1
Określenie paska postępu. W clearlooks pasek postępu jest taki jaki styl wybierzemy, w tym przypadku czyli w murrine, nie ma stylów i to my decydujemy: jaki pasek postępu chcemy, w jaką stronę ma się on chylić (pochylone linie na takowym pasku) i w którą stronę ma on się przewijać podczas pokazywania łasowania czegoś np. synaptic i określenie postępu pobierania lub instalowania pakietów. Każda wartość to inny układ...
rgba = FALSE
Przezroczystość w theme, która zazwyczaj nie jest uruchamiana. Podejrzewam, że jest to spowodowane tym iż aby przezroczystość zaskoczyła musi działać menadżer efektów compiz lub inny element, który będzie posiadać takowe zdolności. Zazwyczaj ta opcja jest wyłączana, ponieważ może powodować błędy.
scrollbarstyle = 0
W murrine możemy określić, jak będzie wyglądał suwak przesuwania w oknie czy przeglądarce firefox lub innej, która interpretuje theme gtk2.
roundness = 3
Zaokrąglenie krawędzi w theme (działanie takie samo jak w przypadku clearlooks i radius. Różnica jest taka, że tutaj określamy wartość, bez kropki i pobieżnych zaokrągleń rozbitych na 3.x - wartości dziesiętne.
separatorstyle = 0
Styl separatorów.
shadow_shades = {2.0, 1.0}
Określenie cienia dla cienia - masło maślane, ale na to pozwala murrine, że cień także może mieć własny cień.
toolbarstyle = 1
To chyba wiadome...
stepperstyle = 1
Określenie stoperów w oknach.
To czego nie opisałem musicie sobie sprawdzić sami :) Ale jak widzicie, murrine daje nam większą władzę nad theme i nad tym: jak ma ono wyglądać. Większa ilość możliwości np. odnośnie suwaków, pasków postępu, czy określenia menu sprawiają że na obecną chwilę trudno jest znaleźć theme gtk2, które nie bazuje na murrine + własne grafiki, które zastępują prawie każdy element wyglądu theme.
W murrine nie ma stylu, który określał by wygląd danego theme, w tym miejscu to my decydujemy o stylu, który możemy edytować, zmienić lub pozmieniać wszystko tak aby było inne. Nic niczego nam nie narzuca i nie decyduje za nas.
Tym różnią się te dwa silniki, silniki które nie są jedynymi na tym polu. Są też inne silniki do generowania wyglądu programów i pulpitu w gtk2. Ale nie dość że mało kto z nich korzysta, to jeszcze ja sam mało co o nich wiem.
Pokazałem wam i przekazałem wam to co ja wiem i to z czym ja się spotkałem.
W kolejnych wpisach zajmiemy się elementami jakie można ustawić, jak i też wyjaśnię różnice miedzy silnikami theme, ponieważ każdy silnik inaczej podchodzi do określeń danego elementu okna jeśli idzie o ustawienia. Wiąże się to oczywiście z opcjami, które są odmienne dla każdego z silników, a tym samym: inaczej określamy coś odnośnie np. przycisków w przypadku clearlooks, a inaczej w przypadku murrine.
Tylko elementy, w których dokonujemy określeń ich wyglądu są prawie nie zmienne :)
To clearlooks i murrine.
Dwa odmienne podejścia do "rysowania" theme gtk2.
Clearlooks to silnik theme gtk2, który rysował wszystko za czasów początków gnome2. Jest to silnik, który upodabniał wygląd gnome2 do popularnego wtedy Windows 95, 98, a później do XP.
Charakteryzuje się on kanciastymi elementami, szarością, brakiem graficznego przepychu wizualnego, a do tego niewielkimi możliwościami ustawienia pewnych elementów.
Murrine to engine theme gtk2, który prezentuje dużo szersze spektrum dostosowania różnych elementów wyglądu, przy okazji oddając w ręce osoby, która tworzy theme na podstawie murrine dokładniejsze uzyskanie tego co się chce.
Ten silnik ma lub jest następcą clearlooks, ponieważ murrine posiada opcję przezroczystości (umownej) dla gtk2.
Ale najlepszym porównaniem będzie pokazanie wam struktury określenia silnika.
O co w tym chodzi?
W poprzednich wpisach opisałem wam początek struktury pliku gtkrc w katalogu gtk-2.0, który znajduje się w katalogu z nazwą theme. Pominąłem element odpowiedzialny za określenie kolorów w theme, ponieważ w późniejszych etapach wyjaśniania budowy i struktury theme gtk2 po prostu będę nawiązywał do tego miejsca i wtedy wyjaśnię to i owo, bo tam za wiele do omówienia nie ma.
Pod określeniami kolorystyki theme (czcionki, napisów i ich tła) trafiamy na takie coś:
engine "clearlooks" {lub
engine "murrine" {Właśnie tą frazą rozpoczyna się ustawienia silnika theme.
Pod spodem znajdują się opcje, które określają: co, jak i w jaki sposób ma być wyświetlane dla: CAŁEGO theme. Jest to ustawienie silnika i określenie go.
Dlatego jeśli w systemie nie macie zainstalowanej paczki gtk-engine-murrine - wtedy theme oparte na takowym silniku nie będzie posiadać nakładki organizującej wszystko. Czyli, otrzymamy kanciaste wszystko tak jakby na dany program lub pulpit nie zostało narzucone żadne theme.
Co do clearlooks - jest ono standardowo instalowane, jako chyba zamiennik w przypadku braku odpowiednich innych silników theme dla gtk2.
Struktura ustawień silnika cleralooks wygląda tak:
engine "clearlooks" {
colorize_scrollbar = TRUE
reliefstyle = 1
menubarstyle = 2
toolbarstyle = 1
animation = FALSE
radius = 3.0
style = GUMMY
# Set a hint to disable backward compatibility fallbacks.
hint = "use-hints"
}
}
Jest ona kończona nawiasem. Ponieważ jak widać po "clearlooks" widać otwarty nawias, więc musi on zostać zamknięty, ale pod nim jest jeszcze jeden nawias. Dlaczego?
Ponieważ określenie silnika kończy sekwencję ustawień dla stylu, który mamy na samej górze: style "default" { który otwiera nam i określa to wszystko co opisałem wcześniej + kolorystyka czcionki i jej tlo + właśnie silnik jaki ma być użyty w danym theme i jakie ma on mieć parametry.
Dlatego pod ustawieniami engine "" ... mamy drugi nawias (nie kwadratowy), ani pół okrągły czy jak kto woli normalany.
Jak widać, struktura silnika (engine) clearlooks jest prosta i posiada małą ilość opcji, które możemy sobie ustawić.
Tu mamy także ustawienia clearlooks, ale z opisem opcji, i co dane zmiana cyfry przy każdej z nich. Ponieważ nie zawsze dana opcja posiada inną wartość niż 0 (wyłączone) czy 1 (włączone).
engine "clearlooks" {
colorize_scrollbar = TRUE
reliefstyle = 1 # 0 = flat, 1 = inset, 2 = shadow, 3 = shadow with gradient, 4 = stronger shadow with gradient menubarstyle = 3 # 0 = flat, 1 = glassy, 2 = gradient, 3 = striped toolbarstyle = 2 # 0 = flat, 1 = glassy, 2 = gradient animation = TRUE # 0 = nothing, 1 = circles, 2 = handles, 3 = diagonal stripes, 4 = diagonal stripes and handles, 5 = horizontal stripes, 6 = horizontal stripes and handles radius = 12.24
style = INVERTED
hint = "use-hints"
}
}
Jak widzicie, opcje powielają się do tego co mieliśmy wcześniej - ale są one opisane (dla kogoś kto zna choć trochę angielski).
Różnica w tych kodach to... Style.
Ponieważ clearlooks posiada różne style generowania theme. Każdy styl ma własne suwaki, własne paski postępu, własne określenia dla przycisków itd. Każdy styl inaczej też pokazuje obramowanie jeśli je zaokrąglimy.
Zmieniając w danym theme napis za style sprawiamy, że theme zmieni swoje oblicze w niektórych elementach.
Co jest jednak smutne, nie znalazłem żadnej notki odnośnie ilości stylów i o tym, jakie są ich nazwy.
A więc nie podam wam nazw stylów, abyście mogli sobie je sprawdzić.
Wiem że są: INVERTED, GUMMY, CLASSIC (chyba). Reszty niestety nie znam...
Co określa nam engine "clearlooks"?
colorize_scrollbar = TRUE
czy suwaki w programach i oknach mają być kolorowane podczas ich używania (zmieniają lekko kolor).
reliefstyle = 1
nawet nie wiem do czego to jest, ale można określić od 0 do 4 wygląd tego elementu (czyli 0 to coś innego, 1 to coś innego, 2 to coś innego itd.)
menubarstyle = 2
Określenie stylu menu (od 0 do 3)
toolbarstyle = 1
Określenie paska z ikonkami pod menu (od 0 do 2)
animation = FALSE
Czy pasek postępu ma być animowany i poruszać się. Wartości: FALSE (musi być z dużych liter) - brak animacji, fałsz, zakaz ukazywania animacji i TRUE - czyli prawda dla danej opcji, a więc animacja ma być.
radius = 3.0
Zaokrąglenie ogólne: 0.0 - brak zaokrąglenia, 2.0 minimalne zaokrąglenie, 5.0 - średnie i widoczne zaokrąglenie kantów w theme, rysowane kanty w oknach, 12.00 - mocne zaokrąglenie linii rysujących obramowanie danego elementu w danym oknie np. w oknie rozmowy pidgin, mamy obramowanie oddzielające zakładki z rozmowami, od okna rozmowy i menu, te czarne linie o których piszę, to obramowanie tegoż okna rozmowy (czarna linia) która uwydatnia miejsce rozmowy od zakładek z rozmową, a menu.
Najlepiej jest ustawić sobie w theme 3.0, a później zmienić tą wartość na 12 i uruchomić ponownie pidgin, otwierając okno rozmowy, powinniście zobaczyć o co mi chodzi :)
style = GUMMY
Styl, o którym pisałem powyżej.
To tyle jeśli chodzi o clearlooks, ponieważ wiadome jest że tych opcji może lub jest więcej ale mało kto je obecnie już stosuje lub korzysta z silnika gtk2 clearlooks.
Obecnie prawie wszystkie theme gtk2 bazują i są budowane w oparciu o murrine. I zaraz wam pokaże dlaczego...
Daje kod jako grafikę, ponieważ w oknie bloga spowodował by on dość pokaźnej wielkości chaos. Dzięki takiemu rozwiązaniu możecie sobie obejrzeć kod.
Teraz rozumiecie dlaczego murrine jest bardziej popularne i obecnie większość theme w gtk2 preferuje ten silnik?
Moc ustawień i różnego rodzaju opcji.
Napisze od razu, że nie będę tutaj opisywał całego silnika, bo sam nie wiem: co czego dane opcje są.
animation = FALSE
colorize_scrollbar = TRUE
tego chyba nie muszę opisywać
contrast = 1.0
chyba wiadomo ;)
default_button_color = shade (0.95, "#80B8EA")
Też można się domyśleć (przyjmuję, że znacie choć trochę angielski, jeśli nie to: "standardowy kolor przycisku".
gradient_shades = {1.00, 0.91, 0.92, 0.81}
Określenie gradientu.
menubaritemstyle = 0
menubarstyle = 1
menuitemstyle = 1
menustyle = 3
Określenie menu, paska menu, okna combo (czyli to okienko kiedy to skaczemy po "plik, edycja, Widok itd.", określenie widoku menu.
Inaczej mówiąc: opcje odnośnie paska menu oraz jego wyglądu kiedy coś chcemy wybrać.
progressbarstyle = 1
Określenie paska postępu. W clearlooks pasek postępu jest taki jaki styl wybierzemy, w tym przypadku czyli w murrine, nie ma stylów i to my decydujemy: jaki pasek postępu chcemy, w jaką stronę ma się on chylić (pochylone linie na takowym pasku) i w którą stronę ma on się przewijać podczas pokazywania łasowania czegoś np. synaptic i określenie postępu pobierania lub instalowania pakietów. Każda wartość to inny układ...
rgba = FALSE
Przezroczystość w theme, która zazwyczaj nie jest uruchamiana. Podejrzewam, że jest to spowodowane tym iż aby przezroczystość zaskoczyła musi działać menadżer efektów compiz lub inny element, który będzie posiadać takowe zdolności. Zazwyczaj ta opcja jest wyłączana, ponieważ może powodować błędy.
scrollbarstyle = 0
W murrine możemy określić, jak będzie wyglądał suwak przesuwania w oknie czy przeglądarce firefox lub innej, która interpretuje theme gtk2.
roundness = 3
Zaokrąglenie krawędzi w theme (działanie takie samo jak w przypadku clearlooks i radius. Różnica jest taka, że tutaj określamy wartość, bez kropki i pobieżnych zaokrągleń rozbitych na 3.x - wartości dziesiętne.
separatorstyle = 0
Styl separatorów.
shadow_shades = {2.0, 1.0}
Określenie cienia dla cienia - masło maślane, ale na to pozwala murrine, że cień także może mieć własny cień.
toolbarstyle = 1
To chyba wiadome...
stepperstyle = 1
Określenie stoperów w oknach.
To czego nie opisałem musicie sobie sprawdzić sami :) Ale jak widzicie, murrine daje nam większą władzę nad theme i nad tym: jak ma ono wyglądać. Większa ilość możliwości np. odnośnie suwaków, pasków postępu, czy określenia menu sprawiają że na obecną chwilę trudno jest znaleźć theme gtk2, które nie bazuje na murrine + własne grafiki, które zastępują prawie każdy element wyglądu theme.
W murrine nie ma stylu, który określał by wygląd danego theme, w tym miejscu to my decydujemy o stylu, który możemy edytować, zmienić lub pozmieniać wszystko tak aby było inne. Nic niczego nam nie narzuca i nie decyduje za nas.
Tym różnią się te dwa silniki, silniki które nie są jedynymi na tym polu. Są też inne silniki do generowania wyglądu programów i pulpitu w gtk2. Ale nie dość że mało kto z nich korzysta, to jeszcze ja sam mało co o nich wiem.
Pokazałem wam i przekazałem wam to co ja wiem i to z czym ja się spotkałem.
W kolejnych wpisach zajmiemy się elementami jakie można ustawić, jak i też wyjaśnię różnice miedzy silnikami theme, ponieważ każdy silnik inaczej podchodzi do określeń danego elementu okna jeśli idzie o ustawienia. Wiąże się to oczywiście z opcjami, które są odmienne dla każdego z silników, a tym samym: inaczej określamy coś odnośnie np. przycisków w przypadku clearlooks, a inaczej w przypadku murrine.
Tylko elementy, w których dokonujemy określeń ich wyglądu są prawie nie zmienne :)
czwartek, 12 stycznia 2012
Wprowadzenie
Jako że jest to nadal świeże, to postanowiłem że drugim blogiem/stroną będzie właśnie objaśnienie gnome-shell.
Czym jest gnome-shell?
To plik, który odnosi się do API gnome3 i jego elementów.
Czym więc jest inaczej modyfikacji gnome-shell?
To modyfikowanie wyglądu gnome-shell :)
Czy to oznacza, że theme gnome-shell które można pobać z internetu to... gnome-shell?
Właśnie tak. gnome-shell to inaczej graficzna nakładka na API (tak ja to sobie tłumaczę).
Czyli, jeśli zmieniamy coś w pliku wyglądu gnome-shell to zmieniamy tym samym: gnome-shell i to jak ono wygląda.
I chcę tu wspomnieć o tym, że będziemy modyfikować oryginalny plik gnome-shell, a więc jeśli ktoś chce niech zrobi sobie kopię bezpieczeństwa :)
Co będzie nam potrzebne do modyfikacji?
Przy gnome-shell będzie nam potrzebne: uruchomione gnome-shell (ważne, aby cały czas monitorować zmiany + gedit lub nano - oba programy muszą być uruchomione w trybie: sudo.
Modyfikacja gnome-shell jest o tyle prosta, że nie jest ona budowana w oparciu o gtk3, ani nic innego. To odwołania do API i opisy: jak ma wyglądać dany element.
My nie zajmiemy się tworzeniem dodatków czy modyfikacji gnome-shell.
My zajmiemy się modyfikacją wizualną gnome-shell :)
ps.
I nie mam tu zamiaru tłumaczyć np. pewnych odnośników do API czy poleceń, bo to nie o to tu chodzi :)
Czym jest gnome-shell?
To plik, który odnosi się do API gnome3 i jego elementów.
Czym więc jest inaczej modyfikacji gnome-shell?
To modyfikowanie wyglądu gnome-shell :)
Czy to oznacza, że theme gnome-shell które można pobać z internetu to... gnome-shell?
Właśnie tak. gnome-shell to inaczej graficzna nakładka na API (tak ja to sobie tłumaczę).
Czyli, jeśli zmieniamy coś w pliku wyglądu gnome-shell to zmieniamy tym samym: gnome-shell i to jak ono wygląda.
I chcę tu wspomnieć o tym, że będziemy modyfikować oryginalny plik gnome-shell, a więc jeśli ktoś chce niech zrobi sobie kopię bezpieczeństwa :)
Co będzie nam potrzebne do modyfikacji?
Przy gnome-shell będzie nam potrzebne: uruchomione gnome-shell (ważne, aby cały czas monitorować zmiany + gedit lub nano - oba programy muszą być uruchomione w trybie: sudo.
Modyfikacja gnome-shell jest o tyle prosta, że nie jest ona budowana w oparciu o gtk3, ani nic innego. To odwołania do API i opisy: jak ma wyglądać dany element.
My nie zajmiemy się tworzeniem dodatków czy modyfikacji gnome-shell.
My zajmiemy się modyfikacją wizualną gnome-shell :)
ps.
I nie mam tu zamiaru tłumaczyć np. pewnych odnośników do API czy poleceń, bo to nie o to tu chodzi :)
małe Wyjaśnienie
Jak napisałem w poprzedniej notce, najlepiej do edycji pliku wyglądu (theme) używać gedit lub nano (terminal) w trybie sudo.
Więc zaczynamy :)
Aha, jeszcze kilka słów w woli wyjaśnienia: ja używam nano. Dlatego, ponieważ gedit w wersji gnome3 nie posiada przeskoku kółkiem myszki pomiędzy kartami. Terminal jako że używam lxterminal posiada taką możliwość, dlatego mi się lepiej pracuje w nano :)
Inna kwestia to to, że nano bazuje na skrótach klawiszowych, a jeśli działam na nano i robię to w terminalu no to trzymam ręce nad klawiaturą, a więc szybciej wykonam skrót klawiszowy, niż znajdę odpowiednią rzecz w gedit.
Jeśli ktoś chce, może korzystać z innego prostego edytora tekstu - ważne, aby być obyt z: wyszukiwaniem, zapisywaniem i pozycją (przyda się później, albo w momencie błędów)
I zapomniał bym: gnome-shell resetuje się (czyt. wylogowuje - oświadczając że ma błąd) co 3 lub 4 restarty.
Restart to: ALT+F2 i r (r jak renata). (nie muszę chyba pisać, że po r trzeba nacisnąć enter ;))
Jest to trochę problematyczne, bo zmusza nas do ponownego otwarcia wybranego programu i otwarcia danego pliku.
I tu fajne sprawdza się nano, bo wystarczy dać strzałkę wyżej aby nasze poprzednie polecenie zostało powielone. Z gedit może być różnie, ponieważ on wykonuje standardowo plik bezpieczeństwa, a do tego czasami trzeba ręcznie przeskoczyć do pliku nad jakim siedzieliśmy.
I na koniec: nie będzie tłumaczył wszystkich elementów gnome-shell, bo nie wszystkie elementy są interesujące. Bo co może być interesującego w powiadomieniach? Fajnie, że można coś w nich zmienić, ale posiadając oryginalne gnome-shell za wiele z tego nie ujrzymy. A to dlatego, że masę programów i komunikatorów bez stosownych dodatków nie pokazuje powiadomień np. pidgin, claws-mail, okno rozmowy, ponownie uruchomienie filmu: vlc.
Jeśli najdzie mnie ochota opiszę takie mało istotne zmiany na końcu tego cyklu :)
!!WAŻNE!!
Aby zachować własne modyfikacje i zmiany należy każdorazowo dokonywać kopi pliku który poddawaliście modyfikacji. Jeśli w systemie pojawi się aktualizacja paczki: gnome-shell.
Więc zaczynamy :)
Aha, jeszcze kilka słów w woli wyjaśnienia: ja używam nano. Dlatego, ponieważ gedit w wersji gnome3 nie posiada przeskoku kółkiem myszki pomiędzy kartami. Terminal jako że używam lxterminal posiada taką możliwość, dlatego mi się lepiej pracuje w nano :)
Inna kwestia to to, że nano bazuje na skrótach klawiszowych, a jeśli działam na nano i robię to w terminalu no to trzymam ręce nad klawiaturą, a więc szybciej wykonam skrót klawiszowy, niż znajdę odpowiednią rzecz w gedit.
Jeśli ktoś chce, może korzystać z innego prostego edytora tekstu - ważne, aby być obyt z: wyszukiwaniem, zapisywaniem i pozycją (przyda się później, albo w momencie błędów)
I zapomniał bym: gnome-shell resetuje się (czyt. wylogowuje - oświadczając że ma błąd) co 3 lub 4 restarty.
Restart to: ALT+F2 i r (r jak renata). (nie muszę chyba pisać, że po r trzeba nacisnąć enter ;))
Jest to trochę problematyczne, bo zmusza nas do ponownego otwarcia wybranego programu i otwarcia danego pliku.
I tu fajne sprawdza się nano, bo wystarczy dać strzałkę wyżej aby nasze poprzednie polecenie zostało powielone. Z gedit może być różnie, ponieważ on wykonuje standardowo plik bezpieczeństwa, a do tego czasami trzeba ręcznie przeskoczyć do pliku nad jakim siedzieliśmy.
I na koniec: nie będzie tłumaczył wszystkich elementów gnome-shell, bo nie wszystkie elementy są interesujące. Bo co może być interesującego w powiadomieniach? Fajnie, że można coś w nich zmienić, ale posiadając oryginalne gnome-shell za wiele z tego nie ujrzymy. A to dlatego, że masę programów i komunikatorów bez stosownych dodatków nie pokazuje powiadomień np. pidgin, claws-mail, okno rozmowy, ponownie uruchomienie filmu: vlc.
Jeśli najdzie mnie ochota opiszę takie mało istotne zmiany na końcu tego cyklu :)
!!WAŻNE!!
Aby zachować własne modyfikacje i zmiany należy każdorazowo dokonywać kopi pliku który poddawaliście modyfikacji. Jeśli w systemie pojawi się aktualizacja paczki: gnome-shell.
pierwsze modyfikacje: suwak do przewijania ikonek (podgląd), jak i całkowite jego skasowanie
Przechodzimy do pliku gnome-shell:
albo
Pierwsze linijki są odnośnie czcionki - LEPIEJ TO ZOSTAWIĆ NA RAZIE :)
Zabawne jest to, że w gnome-shell mamy suwaki.
Wiecie dlaczego zabawne?
Bo po uruchomieniu podglądu okien i przejściu do ikonek - nie musimy go używać :)
Wystarczy że naciśniemy LPM na pole między ikonkami, a "ulubionymi" i przeciągnięmy listę ikonek myszką.
Przechodzimy do modyfikacji, albo nawet skasowania suwaka ikonek. Tak, można go skasować :)
Dział odnoszący się do suwaków zaczyna się od:
a kończy na:
Objaśnienie najciekawszych rzeczy i ich modyfikacja.
Określenie minimalnej szerokości i wysokości przycisku który przesuwamy.
Warto tutaj zapamiętać jeśli chodzi o dalsze modyfikacje:
Przy suwakach mamy też takie o to znaczniki:
Chodzi oczywiście o v - vertical i h - horizontal
W przypadku suwaków określa to: do jakiego suwaka odnosi się dana opcja "pod".
Ponieważ możemy sobie inaczej określić suwak poziomy (horizontal - lewo, prawo) a inaczej pionowy (vertical - góra, dół).
Znacznik
No to co, jak już trochę wam namieszałem przechodzę do tłumaczenia elementów wewnątrz, które będą się powtarzać.
Kolor tła:
Obramowanie:
Zaokrąglone brzegi:
Graficzny plik, który ma zastąpić standardowy element z theme gtk3.
Można tutaj stworzyć sobie własny suwak i zamiast podanej nazwy wpisać swoją. Warunek: musi się on znajdować w miejscu gdzie znajduje się plik, który modyfikujecie gnome-shell. Jeśli zaś będziecie chcieli zbudować całą plejadę innych elementów niż oryginalne powinno wystarczyć stworzenie katalogu i zamiast nazwy pliku wpisać "nazwa katalogu/nazwa pliku.svg" - bez / na samym początku.
Kiedy już objaśniłem pewne kwestię odnośnie suwaków, to może je całkiem zlikwidujemy?
Robi się to przez kasowanie kodu z pliku, i wykazanie że suwaka nie widać.
A jeśli coś ma zero to jak może być ukazane?
Muszę tu nadmienić że elementem będę nazywać coś takiego:
Czyli polecenie, odnośnik do danego elementu, ale i to co pod nim się znajduje lub się tam mieści.
Elementy:
Zaś w tym miejscu:
sudo nano /usr/share/gnome-shell/theme/gnome-shell.cssalbo
sudo gedit /usr/share/gnome-shell/theme/gnome-shell.cssPierwsze linijki są odnośnie czcionki - LEPIEJ TO ZOSTAWIĆ NA RAZIE :)
stage {
font-family: cantarell, sans-serif;
}.shell-link {
color: #0000ff;
text-decoration: underline;
}.shell-link:hover {
color: #0000e0;
}.label-shadow {
color: rgba(0,0,0,0.5);
}Zabawne jest to, że w gnome-shell mamy suwaki.
Wiecie dlaczego zabawne?
Bo po uruchomieniu podglądu okien i przejściu do ikonek - nie musimy go używać :)
Wystarczy że naciśniemy LPM na pole między ikonkami, a "ulubionymi" i przeciągnięmy listę ikonek myszką.
Przechodzimy do modyfikacji, albo nawet skasowania suwaka ikonek. Tak, można go skasować :)
Dział odnoszący się do suwaków zaczyna się od:
StScrollBar
{
padding: 0px;
}a kończy na:
StScrollBar StButton#hhandle:hover,
StScrollBar StButton#vhandle:hover
{
background-color: #292929;
}
Objaśnienie najciekawszych rzeczy i ich modyfikacja.
Określenie minimalnej szerokości i wysokości przycisku który przesuwamy.
StScrollView StScrollBar
{
min-width: 16px;
min-height: 16px;
}
Warto tutaj zapamiętać jeśli chodzi o dalsze modyfikacje:
#trough - wizerunek danej rzeczy lub elementu w momencie przyciskaniaPrzy suwakach mamy też takie o to znaczniki:
#vhandle i #hhandleChodzi oczywiście o v - vertical i h - horizontal
W przypadku suwaków określa to: do jakiego suwaka odnosi się dana opcja "pod".
Ponieważ możemy sobie inaczej określić suwak poziomy (horizontal - lewo, prawo) a inaczej pionowy (vertical - góra, dół).
Znacznik
:hover to znowu oznaczenie najechania myszką na dany element.No to co, jak już trochę wam namieszałem przechodzę do tłumaczenia elementów wewnątrz, które będą się powtarzać.
Kolor tła:
background-color: #080808;Obramowanie:
border: 1px solid #2d2d2d;Zaokrąglone brzegi:
border-radius: 8px;Graficzny plik, który ma zastąpić standardowy element z theme gtk3.
background-image: url("scroll-vhandle.svg");Można tutaj stworzyć sobie własny suwak i zamiast podanej nazwy wpisać swoją. Warunek: musi się on znajdować w miejscu gdzie znajduje się plik, który modyfikujecie gnome-shell. Jeśli zaś będziecie chcieli zbudować całą plejadę innych elementów niż oryginalne powinno wystarczyć stworzenie katalogu i zamiast nazwy pliku wpisać "nazwa katalogu/nazwa pliku.svg" - bez / na samym początku.
Kiedy już objaśniłem pewne kwestię odnośnie suwaków, to może je całkiem zlikwidujemy?
Robi się to przez kasowanie kodu z pliku, i wykazanie że suwaka nie widać.
A jeśli coś ma zero to jak może być ukazane?
Muszę tu nadmienić że elementem będę nazywać coś takiego:
StScrollBar StButton#hhandle
{
background-image: url("scroll-hhandle.svg");
background-color: #252525;
border: 1px solid #080808;
border-radius: 8px;
}Czyli polecenie, odnośnik do danego elementu, ale i to co pod nim się znajduje lub się tam mieści.
Elementy:
StScrollBar StButton#vhandle , StScrollBar StButton#hhandle , StScrollBar StButton#hhandle:hover , StScrollBar StButton#vhandle:hover , StScrollBar StBin#trough - kasujemy.Zaś w tym miejscu:
StScrollView StScrollBar
{
min-width: 16px;
min-height: 16px;
}Zamiast 16 wpisujemy 0.
Po wykonaniu restartu gnome-shell suwak w ikonkach powinien zniknąć, podobnie też jak i w innych miejscach.
theme gtk2: co ustawić lub zmienić można, a czego nie można
Jest to już ostatni wpis odnośnie modyfikacji, zmiany czy edycji theme gtk2.
W poniższym tekście postaram się wam wyjaśnić: co można zmienić, co można modyfikować, a co jest stałe.
W przypadku gtk2 można zmienić prawie wszystko co widzimy w oknie lub w jego obrębie: menu, manu pod belką programu, pasek postępu, miejsce przesuwania się suwaka (z boku i na dole), sam suwak, zaokrąglenie przycisków, odstęp przycisków względem innych elementów, zaokrąglenie linii w okach, określenie typu dymków po najechaniu na ikonkę itd.
Struktura odnośników do pewnych elementów wygląda tak:
Style "xxx" {
to określenie: czego dotyczy to co znajduje się poniżej. "{" to otwarcie definicji danego elementu.
xthickness = 1
ythickness = 0
To nic innego jak określenie marginesu od danego elementu w płaszczyźnie x i y (oś współrzędnych z matematyki się tu kłania:) )
bg[SELECTED] = darker (@bg_color)
fg[SELECTED] = shade (2.08, @bg_color)
To odwołanie się do struktury kolorów określonych na początku pliku, z możliwością zmiany danego elementu na inny kolor. Ważne jest tutaj to, że dzięki temu nie musimy trzymać się kolorów ustalonych w theme np. jeśli theme jest czarne i to nam się podoba - zmiana koloru na jasny w górnej części pliku theme nada całemu theme jasny kolor, a nie tylko danemu elementowi. Jeśli chcemy, aby dany element był jasny - określamy to właśnie w tym miejscu + określenie koloru czcionki, czy koloru po najechaniu lub kliknięciu.
engine "clearlooks" {
radius = 12.8
}
Określenie silnika theme. I tu mała podpowiedź :) Określony raz element, może zostać określony drugi raz. Co powoduje, że pierwsze theme zostaje w pewien sposób anulowane, zaś drugie określenie danego elementu zaczyna działać.
W ten sposób można np. upiększyć sobie menu (ładnie przechodzący gradient w murrine (czego nie ma w clearlooks) i to w theme budowanym w oparciu o clearlooks :D ).
Po nazwie silnika theme także następuje "{" - co oznacza otarcie definicji dla silnika gdzie możemy dać: zaokrąglenie czy inne rzeczy.
Wszystko zamykamy } i drugim }. Pierwszy odnosi się do zamknięcia definicji dla silnika theme, a drugi do zamknięcia definicji dla całego określenia elementu.
Tip (podpowiedź): angielski to podstawa w elementach :)
I teraz, co do czego się odnosi:
style "scrollbar" -- przewijania (do wszystkich)
style "vscrollbar" -- dokładne odniesienie się do pionowego przewijania
style "hscrollbar" -- dokładne odniesienie się do poziomego przewijania
style "button" -- przyciski
style "notebook" -- jest to bardzo ważna opcja. Określa ona linie w oknach. np. w oknie rozmowy pidgin, macie okienko z nazwą kontaktu + awatar. Aby obramowanie tegoż elementu, czyli linia oddzielająca menu od awatara + nick - ma być na kantach zaokrąglona, to określacie to właśnie w tej opcji.
style "menubar" - menu w programach, po belką.
style "menu" - menu, które widzimy po wybraniu czegoś z menu pod belką, jak i też menu po naciśnięciu przycisku w mate (programy, system...), czy w xfce (programy), jak i też menu podręczne.
style "progressbar" -- pasek postępu
style "tooltips" -- dymek podpowiedzi
To co znajduje się poniżej to zaś odniesienie się do elementów we wszystkich elementach opartych na gtk2.
O czym mowa?
Chodzi o to, że aby np. odnośnik style "panel" zadziała musi zostać określone, czy dany element odnosi się do: *panel czy może do panel*. A jest to ważne, ponieważ np. lxde ma nazwię lxpanel, zaś mate - mate-panel, xfce ma xfce-panel. I aby we wszystkich pulpitach opartych na gtk2 + programach opartych o gtk2 działało theme musi to zostać określone. I tak ze wszystkimi elementami theme gtk2.
Ważna informacja dla was: większość theme nie określa wszystkich elementów wyglądu. Masę theme w gtk2 nie posiada w swojej strukturze dość fajnego elementu, a jest nim - określenie co do panelu. Tak, to też można sobie jakoś ustawić, aby np. określone okna miały inny kolor, albo wyglądały na wciśnięty przycisk.
Budowa tegoż elementu jest taka sama jak w pozostałych elementach theme.
Jedyna różnica to początek:
I teraz bardzo ważne!
Dodanie poniższych linijek do końcowego wykazu pliku gtkrc (gtk2).
Co określamy dzięki powyższemu?
Że *Panel* odnosi się do przedziały theme o nazwie "panel" (określenie nazwy w style "xxx").
Że każdy widżet z nazwą *Panel* odwołuje się do części theme o nazwie "panel"
Że widżet klasy *Panel* odwołuje się do części theme o nazwie "panel"
* - to określenie każdego zwrotu, nazwy, frazy przez i po nazwie panel: jednocześnie lub tylko z jednej strony.
Możecie też spotkać się z czymś takim:
Oznacza to, że dany element będzie traktowany tak jak element zaraz po znaku =. Dzięki temu można określić sobie pewne elementy, bez powielania ustawienia kolorów.
I tyle ile trzeba wiedzieć o theme gtk2, aby je samemu edytować, czy dostosować pod siebie.
Każda zmiana, dodanie opcji zaokrąglenia rogów itd. sprawia, że theme może i na pewno będzie wyglądać inaczej. Każde theme gtk2 możecie sobie sami edytować i stworzyć coś, co będzie wam się podobać :)
To co nie podałem lub zostało pominięte pozostawiam wam, do poznania i doczytania :) Ponieważ nie jestem alfą i omegą - to co wiem i do czego sam doszedłem, bez czytania jakiekolwiek poradnika przekazałem wam w tym poradniku.
Oby był on przydatny :)
W poniższym tekście postaram się wam wyjaśnić: co można zmienić, co można modyfikować, a co jest stałe.
W przypadku gtk2 można zmienić prawie wszystko co widzimy w oknie lub w jego obrębie: menu, manu pod belką programu, pasek postępu, miejsce przesuwania się suwaka (z boku i na dole), sam suwak, zaokrąglenie przycisków, odstęp przycisków względem innych elementów, zaokrąglenie linii w okach, określenie typu dymków po najechaniu na ikonkę itd.
Struktura odnośników do pewnych elementów wygląda tak:
style "entry" {
xthickness = 1
ythickness = 0
bg[SELECTED] = darker (@bg_color)
fg[SELECTED] = shade (2.08, @bg_color)
engine "clearlooks" {
radius = 12.8
}
}
Style "xxx" {
to określenie: czego dotyczy to co znajduje się poniżej. "{" to otwarcie definicji danego elementu.
xthickness = 1
ythickness = 0
To nic innego jak określenie marginesu od danego elementu w płaszczyźnie x i y (oś współrzędnych z matematyki się tu kłania:) )
bg[SELECTED] = darker (@bg_color)
fg[SELECTED] = shade (2.08, @bg_color)
To odwołanie się do struktury kolorów określonych na początku pliku, z możliwością zmiany danego elementu na inny kolor. Ważne jest tutaj to, że dzięki temu nie musimy trzymać się kolorów ustalonych w theme np. jeśli theme jest czarne i to nam się podoba - zmiana koloru na jasny w górnej części pliku theme nada całemu theme jasny kolor, a nie tylko danemu elementowi. Jeśli chcemy, aby dany element był jasny - określamy to właśnie w tym miejscu + określenie koloru czcionki, czy koloru po najechaniu lub kliknięciu.
engine "clearlooks" {
radius = 12.8
}
Określenie silnika theme. I tu mała podpowiedź :) Określony raz element, może zostać określony drugi raz. Co powoduje, że pierwsze theme zostaje w pewien sposób anulowane, zaś drugie określenie danego elementu zaczyna działać.
W ten sposób można np. upiększyć sobie menu (ładnie przechodzący gradient w murrine (czego nie ma w clearlooks) i to w theme budowanym w oparciu o clearlooks :D ).
Po nazwie silnika theme także następuje "{" - co oznacza otarcie definicji dla silnika gdzie możemy dać: zaokrąglenie czy inne rzeczy.
Wszystko zamykamy } i drugim }. Pierwszy odnosi się do zamknięcia definicji dla silnika theme, a drugi do zamknięcia definicji dla całego określenia elementu.
Tip (podpowiedź): angielski to podstawa w elementach :)
I teraz, co do czego się odnosi:
style "scrollbar" -- przewijania (do wszystkich)
style "vscrollbar" -- dokładne odniesienie się do pionowego przewijania
style "hscrollbar" -- dokładne odniesienie się do poziomego przewijania
style "button" -- przyciski
style "notebook" -- jest to bardzo ważna opcja. Określa ona linie w oknach. np. w oknie rozmowy pidgin, macie okienko z nazwą kontaktu + awatar. Aby obramowanie tegoż elementu, czyli linia oddzielająca menu od awatara + nick - ma być na kantach zaokrąglona, to określacie to właśnie w tej opcji.
style "menubar" - menu w programach, po belką.
style "menu" - menu, które widzimy po wybraniu czegoś z menu pod belką, jak i też menu po naciśnięciu przycisku w mate (programy, system...), czy w xfce (programy), jak i też menu podręczne.
style "progressbar" -- pasek postępu
style "tooltips" -- dymek podpowiedzi
To co znajduje się poniżej to zaś odniesienie się do elementów we wszystkich elementach opartych na gtk2.
O czym mowa?
Chodzi o to, że aby np. odnośnik style "panel" zadziała musi zostać określone, czy dany element odnosi się do: *panel czy może do panel*. A jest to ważne, ponieważ np. lxde ma nazwię lxpanel, zaś mate - mate-panel, xfce ma xfce-panel. I aby we wszystkich pulpitach opartych na gtk2 + programach opartych o gtk2 działało theme musi to zostać określone. I tak ze wszystkimi elementami theme gtk2.
Ważna informacja dla was: większość theme nie określa wszystkich elementów wyglądu. Masę theme w gtk2 nie posiada w swojej strukturze dość fajnego elementu, a jest nim - określenie co do panelu. Tak, to też można sobie jakoś ustawić, aby np. określone okna miały inny kolor, albo wyglądały na wciśnięty przycisk.
Budowa tegoż elementu jest taka sama jak w pozostałych elementach theme.
Jedyna różnica to początek:
style "panel" {
xxxx {
xxxxx
}
}I teraz bardzo ważne!
Dodanie poniższych linijek do końcowego wykazu pliku gtkrc (gtk2).
class "*Panel*" style "panel"
widget "*Panel*" style "panel"
widget_class "*Panel*" style "panel"Co określamy dzięki powyższemu?
Że *Panel* odnosi się do przedziały theme o nazwie "panel" (określenie nazwy w style "xxx").
Że każdy widżet z nazwą *Panel* odwołuje się do części theme o nazwie "panel"
Że widżet klasy *Panel* odwołuje się do części theme o nazwie "panel"
* - to określenie każdego zwrotu, nazwy, frazy przez i po nazwie panel: jednocześnie lub tylko z jednej strony.
Możecie też spotkać się z czymś takim:
style "murrine-toolbar" = "murrine-thin"Oznacza to, że dany element będzie traktowany tak jak element zaraz po znaku =. Dzięki temu można określić sobie pewne elementy, bez powielania ustawienia kolorów.
I tyle ile trzeba wiedzieć o theme gtk2, aby je samemu edytować, czy dostosować pod siebie.
Każda zmiana, dodanie opcji zaokrąglenia rogów itd. sprawia, że theme może i na pewno będzie wyglądać inaczej. Każde theme gtk2 możecie sobie sami edytować i stworzyć coś, co będzie wam się podobać :)
To co nie podałem lub zostało pominięte pozostawiam wam, do poznania i doczytania :) Ponieważ nie jestem alfą i omegą - to co wiem i do czego sam doszedłem, bez czytania jakiekolwiek poradnika przekazałem wam w tym poradniku.
Oby był on przydatny :)
sobota, 7 stycznia 2012
barwy, kolory, przezroczystość, tło i o strukturze danych elementów
Jak możecie zauważyć zabawa w modyfikację nie jest taka straszna. Wystarczy wiedzieć: jak zbudowane są moduły, jaka jest ich struktura, co jest od czego, po co dana rzecz jest lub od od czego ona jest (czyt. co robi).
Wiele elementów theme to powtarzające się struktury.
Ponieważ większość rzeczy nie opiera się na zasadzie: coś ma własne miejsce, ale dany plik służy tylko jednemu: wskazaniu innym elementom - jak ma coś wyglądać, jaki ma mieć kolor i czy to ma mieć zaokrąglone brzegi czy może być kanciaste.
Jest to o tyle trudne na początku, ponieważ budowa wyglądu gnome-shell opiewa na wyglądzie najmniejszych pierdów takich jak brzegi panelu.
I tak jak w gnome2 wszystko działało w oparciu o gtk2, tak w gnome3 wszystkie opiera się na gtk3, jeśli idzie o... programy. Zaś cały wygląd gnome-shell, czyli tego w czym operujemy oknami, uruchamiamy programy już podlega pod całkiem inny plik nakazujący gnome-shell wyglądać tak a nie inaczej.
I w tym miejscu zajmiemy się taką prozaiczną sprawą jak: wnętrze większości rzeczy w gnome-shell czyli: kolory, tła i inne wizualne pierdy ;)
Standardowo spotkamy się z takim wnętrzem danego elementu:
Jak już wyjaśniłem poprzednio:
to odniesienie do pliku.
to oczywiście kolor tła danego elementu pulpitu.
tu mamy składnię odnośnie brzegów.
A więc:
1px - to grubość danego brzegu
solid - linia ciągła
(ale można sprawdzić frazę: dasher - czyli linia przerywana)
#xxxxxx - kolor
zaokrąglenie danego elementu. Czyli że brzegi będzie opływowe, a nie kanciaste, a brzegi zostaną "ścięte".
Ale mamy też:
chodzi oczywiście o margines. Można określić w ten sposób nawet pozycję danego elementu w przestrzeni po przez dodanie 3 kolejnych wartości np. pading: 2px 2px 10px 10px - tak też można :)
Przezroczystość:
oznacza to, że obramowanie jest przezroczyste. Świadczy o tym fraza: rgba i wartość w nawiasie. Jest to bardzo ważne, dlatego że fraza w nawianie określa kolor danej przezroczystości :)
Przezroczyste może być: kolor czcionki, panel, tło, obramowanie - czyli wszystko w gnome-shell :D
I ważna informacja.
Wartości w nawiasie zaczynają się od (0,0,0,0) do (255,255,255,255).
Wspominam o tym, ponieważ nie musicie mieć wartości podanej w nawiasie. Ale nie może ona być wyższa niż 255.
Same 0 to kolor czarny, zaś 255 to kolor biały. Jeśli zastąpicie 255 np. 100 wyjdzie wam taki szarawy lub coś pomiędzy. Możecie się pobawić też zmianą różnych brzegów np. rgba(100, 50, 0, 10) - każda z tych cyfr określa kolor cienia na każdym z brzegów: button, top, left i right.
Czcionka:
to nic innego jak określenie wielkości czcionki. I w gnome-shell mamy ich kilka: px (pikseli), em albo pt (punkty).
tu mamy określenie czcionki odnośnie: pogrubiona (bold), normalna lub mała. Wiem, że jest trochę tego więcej, ale czy taka paleta opcji i tak nie wprowadza pewnego zamieszania?
umieszczenie napisów - prawo albo lewo, a może właśnie po środku - angielski to podstawa.
Spotkamy się też z różnymi wariacjami powyższych opcji np.
O frazie w różnych elementach poleceń ::hover już pisałem wcześniej, ale myślę sobie że warto tu nadmienić o pewnej małej opcji graficznej, której zmiana może inaczej obrazować wam oryginalny element wyglądu gnome-shell. A mowa o:
Jeśli widzicie taką frazę pod danym elementem gnome-shell to wiedzcie że chodzi o... słowo klucz: background (tło) :) Czyli ułożenie tła na danym elemencie. Zmieniając daną frazę odnośnie panelu powiadomień nasz pasek który pokazuje się po najechaniu na niego na dole w gnome-shell staje się przezroczysty z lewej i ciemny z prawej - co od razu moim zdaniem zmienia postać patrzenia na dany element w tym pulpicie.
I jeszcze słówko o strukturze elementów i ich budowie.
# - to oznaczenie głównego elementu w gnome-shell
. - to oznaczenie pozycji które są w pewien sposób podległe w ustawieniu danego elementu który został oznaczony #.
- (pod znacznikiem poprzedzonym . ) to elementy podlegające tylko pod dany elemencik.
Mamy też coś takiego:
to nic innego jak określenie odległości między ikonkami na panelu tych po prawej. Pierwsza opcja określa normalną odległość, a druga w momencie zagęszczenia - czyli jaka być minimalna odległość między ikonkami.
Jeśli chodzi o tekst to możemy mu nadać kolor, ale i też cień.
określa się to:
Zaś cień tworzy po przez:
Co oznacza, że narzucamy aby dany tekst miał czarny cień w centrum. Te trzy cyfry określają przesunięcie cienia względem oryginalnego tekstu.
Na koniec:
Zalecam wam przejrzenie całego pliku, oraz samodzielne zmiany.
Ważne!
Wiele elementów interpretuje o wiele więcej poleceń niż może się wam wydawać. Tam gdzie macie ustawienie tekstu to możecie mu nadać cień, wyznaczyć czy ma być oparte o lewy czy prawy brzeg, czy ma być przezroczysty, czy może jego tło ma być przezroczyste. A jeśli macie ochotę możecie skasować dany tekst lub kolor - oznaczając go jako: przezroczysty, a tekst jako 0. Tak samo jest z obramowaniem, jego kolorem czy jakie ono ma być duże itd.
To wszystko podlega pod wasz umiar, wyobraźnie itd. To że nie można przemieścić danego elementu gnome-shell nie oznacza, że nie może on wygląda tak jak wy tego chcecie :)
Wiele elementów theme to powtarzające się struktury.
Ponieważ większość rzeczy nie opiera się na zasadzie: coś ma własne miejsce, ale dany plik służy tylko jednemu: wskazaniu innym elementom - jak ma coś wyglądać, jaki ma mieć kolor i czy to ma mieć zaokrąglone brzegi czy może być kanciaste.
Jest to o tyle trudne na początku, ponieważ budowa wyglądu gnome-shell opiewa na wyglądzie najmniejszych pierdów takich jak brzegi panelu.
I tak jak w gnome2 wszystko działało w oparciu o gtk2, tak w gnome3 wszystkie opiera się na gtk3, jeśli idzie o... programy. Zaś cały wygląd gnome-shell, czyli tego w czym operujemy oknami, uruchamiamy programy już podlega pod całkiem inny plik nakazujący gnome-shell wyglądać tak a nie inaczej.
I w tym miejscu zajmiemy się taką prozaiczną sprawą jak: wnętrze większości rzeczy w gnome-shell czyli: kolory, tła i inne wizualne pierdy ;)
Standardowo spotkamy się z takim wnętrzem danego elementu:
background-image: url("scroll-vhandle.svg");
background-color: #252525;
border: 1px solid #080808;
border-radius: 8px;
Jak już wyjaśniłem poprzednio:
background-image: url("scroll-vhandle.svg");to odniesienie do pliku.
background-color: #252525to oczywiście kolor tła danego elementu pulpitu.
border: 1px solid #080808tu mamy składnię odnośnie brzegów.
A więc:
1px - to grubość danego brzegu
solid - linia ciągła
(ale można sprawdzić frazę: dasher - czyli linia przerywana)
#xxxxxx - kolor
border-radius: 8px;zaokrąglenie danego elementu. Czyli że brzegi będzie opływowe, a nie kanciaste, a brzegi zostaną "ścięte".
Ale mamy też:
padding: 0px;chodzi oczywiście o margines. Można określić w ten sposób nawet pozycję danego elementu w przestrzeni po przez dodanie 3 kolejnych wartości np. pading: 2px 2px 10px 10px - tak też można :)
Przezroczystość:
border: 1px solid rgba(255,255,255,0.6);oznacza to, że obramowanie jest przezroczyste. Świadczy o tym fraza: rgba i wartość w nawiasie. Jest to bardzo ważne, dlatego że fraza w nawianie określa kolor danej przezroczystości :)
Przezroczyste może być: kolor czcionki, panel, tło, obramowanie - czyli wszystko w gnome-shell :D
I ważna informacja.
Wartości w nawiasie zaczynają się od (0,0,0,0) do (255,255,255,255).
Wspominam o tym, ponieważ nie musicie mieć wartości podanej w nawiasie. Ale nie może ona być wyższa niż 255.
Same 0 to kolor czarny, zaś 255 to kolor biały. Jeśli zastąpicie 255 np. 100 wyjdzie wam taki szarawy lub coś pomiędzy. Możecie się pobawić też zmianą różnych brzegów np. rgba(100, 50, 0, 10) - każda z tych cyfr określa kolor cienia na każdym z brzegów: button, top, left i right.
Czcionka:
font-size: 0.8em;
font-weight: normal;
text-align: center;font-size: 0.8em;to nic innego jak określenie wielkości czcionki. I w gnome-shell mamy ich kilka: px (pikseli), em albo pt (punkty).
font-weight: normal;tu mamy określenie czcionki odnośnie: pogrubiona (bold), normalna lub mała. Wiem, że jest trochę tego więcej, ale czy taka paleta opcji i tak nie wprowadza pewnego zamieszania?
text-align: center;umieszczenie napisów - prawo albo lewo, a może właśnie po środku - angielski to podstawa.
Spotkamy się też z różnymi wariacjami powyższych opcji np.
padding-left - czyli chodzi o lewy margines. border-width: - szerokość obramowania, miejsca danego elementu.O frazie w różnych elementach poleceń ::hover już pisałem wcześniej, ale myślę sobie że warto tu nadmienić o pewnej małej opcji graficznej, której zmiana może inaczej obrazować wam oryginalny element wyglądu gnome-shell. A mowa o:
background-gradient-direction: i vertical i horizontal.Jeśli widzicie taką frazę pod danym elementem gnome-shell to wiedzcie że chodzi o... słowo klucz: background (tło) :) Czyli ułożenie tła na danym elemencie. Zmieniając daną frazę odnośnie panelu powiadomień nasz pasek który pokazuje się po najechaniu na niego na dole w gnome-shell staje się przezroczysty z lewej i ciemny z prawej - co od razu moim zdaniem zmienia postać patrzenia na dany element w tym pulpicie.
I jeszcze słówko o strukturze elementów i ich budowie.
# - to oznaczenie głównego elementu w gnome-shell
. - to oznaczenie pozycji które są w pewien sposób podległe w ustawieniu danego elementu który został oznaczony #.
- (pod znacznikiem poprzedzonym . ) to elementy podlegające tylko pod dany elemencik.
Mamy też coś takiego:
-natural-hpadding: 12px;
-minimum-hpadding: 6px;
to nic innego jak określenie odległości między ikonkami na panelu tych po prawej. Pierwsza opcja określa normalną odległość, a druga w momencie zagęszczenia - czyli jaka być minimalna odległość między ikonkami.
Jeśli chodzi o tekst to możemy mu nadać kolor, ale i też cień.
określa się to:
color: #xxxxxxZaś cień tworzy po przez:
text-shadow: black 0px 0px 0pxCo oznacza, że narzucamy aby dany tekst miał czarny cień w centrum. Te trzy cyfry określają przesunięcie cienia względem oryginalnego tekstu.
Na koniec:
Zalecam wam przejrzenie całego pliku, oraz samodzielne zmiany.
Ważne!
Wiele elementów interpretuje o wiele więcej poleceń niż może się wam wydawać. Tam gdzie macie ustawienie tekstu to możecie mu nadać cień, wyznaczyć czy ma być oparte o lewy czy prawy brzeg, czy ma być przezroczysty, czy może jego tło ma być przezroczyste. A jeśli macie ochotę możecie skasować dany tekst lub kolor - oznaczając go jako: przezroczysty, a tekst jako 0. Tak samo jest z obramowaniem, jego kolorem czy jakie ono ma być duże itd.
To wszystko podlega pod wasz umiar, wyobraźnie itd. To że nie można przemieścić danego elementu gnome-shell nie oznacza, że nie może on wygląda tak jak wy tego chcecie :)
piątek, 6 stycznia 2012
zmieniamy panel w gnome-shell: przezroczystość, a może by go tak zlikwidować?
Chcąc przejść do edycji panelu (pamiętny nagrany filmik), przeskakujemy cały dział odnośnie PopupMenu, aż do #panel jest to linijka 276 :)
Chodzi tutaj oczywiście o kolor panelu, jego linię/kant, tło, wielkość czcionki, jej rodzaj (pogrubiona) czy normalna i wysokość.
I już spieszę z tłumaczeniem: aby zlikwidować panel wystarczy zastąpić w ostatniej opcji em na px i zamiast wartości wstawić 3 lub 4. Spowoduje to zmniejszenie się panelu.
Małe wyjaśnienie!!
Zmniejszając panel w g-s zmniejszamy tak naprawdę tło na które możemy klikać aby przywołać dany element. Co to oznacza?
A no to, że jeśli wykonamy powyższe ustawienie zmniejszające panel - aby kliknąć na dany element na panelu i aktywować go będziemy musieli trzymać kursor przy samej górze i tylko tyle.
To jest jedyny mankament zmniejszonego panelu: obowiązek umieszczenie kursora przy górnym brzegu, a nie jak to jest oryginalnie - na danej ikonce lub opcji.
Ale dzięki temu belka programu wchodzi pod panel.
I tu błąd :)
Belka nie wchodzi pod panel, ona po prostu nie mając oporu który robił panel wchodzi głębiej.
Dlaczego więc widać ikonki i inne elementy, które znajdują się na panelu?
Ponieważ w gnome-shell są one wykazane, a więc muszą one być pokazane w danym miejscu. Ponieważ my nie kasujemy ikonek, nie nakazujemy im się zmniejszyć. One mają własne ustawienia, a my tylko zmniejszyliśmy obszar panelu i tyle :)
Kilka innych ustawień:
>code>.app-menu-icon {
width: 24px;
height: 24px;
}
określenie wielkości ikonek tych po prawej na panelu.
Bardzo ważnymi ustawieniami są te odnoszące się do czcionki.
Ponieważ jeśli "zlikwidowaliście panel" czcionka w momencie staje się nie czytelna pod białą belką.
A odnośnie koloru czcionek i ikonek:
Warto w tym miejscu trochę przysiedzieć :)
Zalecam wybór między czarnym i białym. Ponieważ kolorowa tapeta wyłapie nam biały, zaś czarny ukaże się nam w momencie kiedy belka będzie pod danymi elementami :)
i w woli wyjaśnienia:
I myślę, że w kolejnej notce zajmiemy się trochę dokładniej ikonkami i samym trybem podglądu okien.
#panel {
color: #ffffff;
background-color: black;
border-image: url("panel-border.svg") 1;
font-size: 10.5pt;
font-weight: bold;
height: 1.86em;
}
Chodzi tutaj oczywiście o kolor panelu, jego linię/kant, tło, wielkość czcionki, jej rodzaj (pogrubiona) czy normalna i wysokość.
I już spieszę z tłumaczeniem: aby zlikwidować panel wystarczy zastąpić w ostatniej opcji em na px i zamiast wartości wstawić 3 lub 4. Spowoduje to zmniejszenie się panelu.
Małe wyjaśnienie!!
Zmniejszając panel w g-s zmniejszamy tak naprawdę tło na które możemy klikać aby przywołać dany element. Co to oznacza?
A no to, że jeśli wykonamy powyższe ustawienie zmniejszające panel - aby kliknąć na dany element na panelu i aktywować go będziemy musieli trzymać kursor przy samej górze i tylko tyle.
To jest jedyny mankament zmniejszonego panelu: obowiązek umieszczenie kursora przy górnym brzegu, a nie jak to jest oryginalnie - na danej ikonce lub opcji.
Ale dzięki temu belka programu wchodzi pod panel.
I tu błąd :)
Belka nie wchodzi pod panel, ona po prostu nie mając oporu który robił panel wchodzi głębiej.
Dlaczego więc widać ikonki i inne elementy, które znajdują się na panelu?
Ponieważ w gnome-shell są one wykazane, a więc muszą one być pokazane w danym miejscu. Ponieważ my nie kasujemy ikonek, nie nakazujemy im się zmniejszyć. One mają własne ustawienia, a my tylko zmniejszyliśmy obszar panelu i tyle :)
Kilka innych ustawień:
>code>.app-menu-icon {
width: 24px;
height: 24px;
}
określenie wielkości ikonek tych po prawej na panelu.
Bardzo ważnymi ustawieniami są te odnoszące się do czcionki.
Ponieważ jeśli "zlikwidowaliście panel" czcionka w momencie staje się nie czytelna pod białą belką.
A odnośnie koloru czcionek i ikonek:
.panel-button {
-natural-hpadding: 12px;
-minimum-hpadding: 6px;
font-weight: bold;
color: #ccc;
transition-duration: 100;
}
.panel-button:hover {
color: white;
text-shadow: black 0px 2px 2px;
}
.panel-button:active,
.panel-button:overview,
.panel-button:focus {
border-image: url("panel-button-border.svg") 10 10 0 2;
background-image: url("panel-button-highlight-wide.svg");
color: white;
text-shadow: black 0px 2px 2px;
}
...
.panel-button:active > .system-status-icon,
.panel-button:checked > .system-status-icon,
.panel-button:focus > .system-status-icon {
icon-shadow: black 0px 2px 2px;
}
Warto w tym miejscu trochę przysiedzieć :)
Zalecam wybór między czarnym i białym. Ponieważ kolorowa tapeta wyłapie nam biały, zaś czarny ukaże się nam w momencie kiedy belka będzie pod danymi elementami :)
i w woli wyjaśnienia:
transition-duration: 100; określa rezerwację na dany element miejsca na panelu.I myślę, że w kolejnej notce zajmiemy się trochę dokładniej ikonkami i samym trybem podglądu okien.
Subskrybuj:
Posty (Atom)
