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 ::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_NONE

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ą.

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 = 10

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ą :)

GtkProgressBar::gtk_progress_bar_set_text = 8
Określenie wielkości czcionki w pasek postępu.

GtkProgressBar::shadow-type = GTK_SHADOW_NONE
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.

#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 = -3
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.

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 = 0


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

GtkScrollbar::activate-slider = 0
GtkScrollbar::trough-border = 0

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.


GtkScrollbar::slider-width = 15
GtkScrollbar::slider-hight = 15

To określenie szerokości i wysokości - dzyndzla, którym przesuwamy strony.

GtkScrollbar::min-slider-length = 24
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ć :)

GtkScrollbar::has-backward-stepper = 0
GtkScrollbar::has-secondary-backward-stepper = 0
GtkScrollbar::has-forward-stepper = 0
GtkScrollbar::has-secondary-forward-stepper = 0

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.

Brak komentarzy:

Prześlij komentarz