Nie jesteś zalogowany na forum.

#1 2017-08-27 21:31:19

TomaszGasior
Użytkownik
Lokalizacja: śląskie
Data rejestracji: 2017-07-13
Liczba postów: 12
WWW

gtk3-mushrooms

Od kilku miesięcy pracuję nad projektem o nazwie „gtk3-mushrooms”. Jest to zestaw patchy dla biblioteki GTK3, repozytorium na GitHubie i jednocześnie paczka AUR. Powołałem go do życia, ponieważ zdecydowanie preferuję środowiska oparte na GTK (szczególnie XFCE i MATE), ale nie samo GNOME. Jak wszyscy dobrze tutaj wiemy, twórcami GTK są twórcy GNOME. Niektóre nieprzemyślane decyzje projektantów GNOME i GTK sprawiały mi dyskomfort przy pracy w środowiskach GTK-based, inne psuły spójność środowiska.
Nie jestem programistą C, w którym GTK jest napisane. Ba, nie napisałem w tym języku ani jednej własnej linijki. Ale jakimś cudem udaje mi się dość skutecznie modyfikować kod GTK3 do swoich celów, głównie dzięki analogii do znanego mi języka PHP.

Ale do rzeczy. Co zmieniają moje pacze? Można je podzielić na trzy grupy.
· Rzeczy, które da się zrobić bez paczowania, ale paczuję je, żeby gtk3-mushrooms było out-of-the-box lepsze dla użytkowników XFCE/MATE. Np. zmiana domyślnego programu podglądu wydruku z „evince” na „atril”. Czy domyślnie katalog domowy zamiast „Ostatnio otwieranych” w file chooserze.
· Rzeczy, których nie da się zrobić bez paczowania, ale mało istotne. Np. klasyczne menu kontekstowe zamiast popoverów w file chooserze.
· Rzeczy ważne, których nie da się zrobić bez paczowania.

Po szczegóły nt. tych ostatnich zapraszam do pliku README. Oprócz tego zamieszczam też screenshoty niektórych zmian.

Najważniejsze zmiany, jakie wprowadzam:
· Dekoracje po stronie klienta (Client Side Decorations) są całkowicie wyłączone . Istnieje możliwość ich włączenia zmienną środowiskową na dwa sposoby.
__ 1. Wszystkie okna GTK3 dostają CSD. Cienie są renderowane client-side.
__ 2. Tylko okna, które tego zażądają, dostają CSD. Cienie okien renderowane są server-side (przez menadżera okien). Rozwiązuje to niektóre problemy z pozycjonowaniem okien przy przenoszeniu ich po ekranie, przeskakiwaniem przy maksymalizacji/przywracaniu, ale może też spowodować niemożność zmiany rozmiaru okien, jeśli motyw GTK nie określa dla CSD żadnego obramowania. Wtedy może pomóc dopisanie "decoration {border: 3px solid #000}" do pliku "~/.config/gtk-3.0/gtk.css".
· Mnemoniki pokazują się bez opóźnienia, od razu po naciśnięciu lewego alta.
· Ikony są przywrócone na przyciskach w oknach dialogowych GTK oraz we wbudowanych menu kontekstowych.
· W oknie file choosera zawsze trzeba kliknąć dwa razy na liście plików, aby go wybrać. (Ten patch zgapiłem z Ubuntu.)
· Typeahead jest przywrócone w liście plików okna file choosera. Gdy zaczynamy pisać, nie włącza się automatyczne wyszukiwanie rekurencyjne. Jedynie podświetla się właściwa pozycja na liście. Można jednak uruchomić silnik wyszukiwania GTK, wciskając Alt+S (zauważyłem, że nie działa w Audaciousie ale to chyba wina tego programu).

Będzie mi miło, jeśli część polskiej społeczności Archa wypróbuje moje patche, zasugeruje coś, oceni. Z góry dziękuję za poświęcenie dla mnie czasu. ;)

https://aur.archlinux.org/packages/gtk3-mushrooms/
https://github.com/TomaszGasior/gtk3-mushrooms
(Repozytorium GH i AUR są zawsze zsynchronizowane.)

https://github.com/TomaszGasior/gtk3-mu … /README.md
https://github.com/TomaszGasior/gtk3-mu … creenshots

Offline

#2 2017-08-27 22:27:22

dracorp
Użytkownik
Lokalizacja: Poland, Gdańsk
Data rejestracji: 2015-09-06
Liczba postów: 96
WWW

Odp: gtk3-mushrooms

Chwała Ci za to. Ja oczywiście przetestuję bo uwielbiam wszelkie nowinki związane z xfce.

Offline

#3 2017-09-08 18:09:25

sir_lucjan
Administrator
Lokalizacja: Kraków
Data rejestracji: 2015-08-20
Liczba postów: 839

Odp: gtk3-mushrooms

Takie małe techniczne pytanie: nie byłoby lepiej pobierać źródeł z gita zamiast ładować je do tarballa?

Wtedy mógłbyś wprowadzić jakąś zmienną do PKGBULD, np:

_gtk_mushroom='https://raw.githubusercontent.com/TomaszGasior/gtk3-mushrooms/master'

Następnie w sources odpowiednio to zastosować:

"${_gtk_mushroom}/popovers__color-chooser.patch"

Moim zdaniem im mniej plików znajduje się w tarballu tym lepiej - ale to oczywiście tylko moje zdanie.


Dell Inspiron 15-3542 (3542-2538) || Arch Linux || [linux-lucjan-git]
[AUR]  [GitHub]  [GitLab]

Offline

#4 2017-09-09 20:34:01

TomaszGasior
Użytkownik
Lokalizacja: śląskie
Data rejestracji: 2017-07-13
Liczba postów: 12
WWW

Odp: gtk3-mushrooms

Zauktualizowałem paczkę do nowej wersji GTK (przed opiekunem w repozytorium Archa, ale wszystko działa OK).

@sir_lucjan. Dzięki za komentarz. Paczki AUR to technicznie małe repozytoria GIT. Tak naprawdę repozytorium na GitHubie (1) i paczka AUR (2) to dokładnie to samo repozytorium. Po prostu gdy robię nową wersję, robię dwa pushe (np. `git push github`, `git push arch`).
(1) https://github.com/TomaszGasior/gtk3-mushrooms
(2) https://aur.archlinux.org/cgit/aur.git/ … -mushrooms

Offline

#5 2017-09-11 16:54:09

sir_lucjan
Administrator
Lokalizacja: Kraków
Data rejestracji: 2015-08-20
Liczba postów: 839

Odp: gtk3-mushrooms

Masz całkowite prawo do swojego punktu widzenia - nikt tego absolutnie nie neguje. 

Jednakże troszkę bezsensownie nadkładasz sobie pracy.

Za przykład posłuży program pkgbuilder,

1. Autor źródła umieścił na githubie:

https://github.com/Kwpolska/pkgbuilder

2. W AUR umieścił odpowiednio przygotowany PKGBUILD:

https://aur.archlinux.org/packages/pkgbuilder-git/

Tenże PKGBUILD w sources zawiera stosowną adnotację:

source=("git+https://github.com/Kwpolska/${_gitname}")

PKGBUILD pobiera wtedy wszystko z gita i buduje program. Tak przygotowany PKGBUILD służy tak długo, aż nie zajdzie konieczność jego aktualizacji (zmiana zależności, adresu repozytorium).
Zaoszczędziłbyś sobie nieco czasu.


Dell Inspiron 15-3542 (3542-2538) || Arch Linux || [linux-lucjan-git]
[AUR]  [GitHub]  [GitLab]

Offline

#6 2017-09-11 21:02:51

barthalion
Developer
Lokalizacja: Poznań
Data rejestracji: 2015-08-20
Liczba postów: 219
WWW

Odp: gtk3-mushrooms

Tylko że projekt Tomasza nie składa się z kodu źródłowego GTK3 i jego zmian, a samych łat. Porównywanie jabłek do pomarańczy.

Offline

#7 2017-09-11 22:14:03

sir_lucjan
Administrator
Lokalizacja: Kraków
Data rejestracji: 2015-08-20
Liczba postów: 839

Odp: gtk3-mushrooms

barthalion napisał/a:

Tylko że projekt Tomasza nie składa się z kodu źródłowego GTK3 i jego zmian, a samych łat. Porównywanie jabłek do pomarańczy.

Też prawda dlatego szkoda, że nie rozwija tego właśnie w tej formie.


Dell Inspiron 15-3542 (3542-2538) || Arch Linux || [linux-lucjan-git]
[AUR]  [GitHub]  [GitLab]

Offline

#8 2017-09-13 10:39:03

TomaszGasior
Użytkownik
Lokalizacja: śląskie
Data rejestracji: 2017-07-13
Liczba postów: 12
WWW

Odp: gtk3-mushrooms

@barthalion, @sir_lucjan. Dziękuję za wasze komentarze. Obydwaj macie trochę racji. Z jednej strony używam „repozytorium” paczki AUR niezgodnie z przeznaczeniem, z drugiej zaś strony rozdrabnianie się na oddzielne repozytorium na patche i oddzielne na byłoby dla mnie mniej wygodne. Być może w przyszłości dojdzie do takiego rozgałęzienia, jeśli np. chciałbym robić też takie paczki dla innych dystrybucji Linuksa — aktualnie tego nie planuję.

@sir_lucjan. Rozwijam „projekt” w takiej a nie innej formie bo właśnie tak mi jest wygodniej. ;) Moja wiedza programistyczna o C i GTK jest niewielka (choć grzebanie bebechach GTK troszkę ją rozszerzylo). Nie byłbym w stanie utrzymać forka GTK3, dlatego tworzę tylko zestaw patchy nakładanych na oryginalny kod — jest to dużo wygodniejsze. Również utrzymywanie jednego repozytorium jako paczki AUR i na GitHubie jest dla mnie prostsze. Tak naprawdę repozytorium na GitHubie jest niepotrzebne i początkowo go w ogóle nie było. Zrobiłem je tylko po to, żebym mógł trzymać je jako taką kopię zapasową, gdy np. paczka AUR zostałaby z jakiegoś powodu usunięta, no i dla pięknego podglądu plików Markdown (README.md), czy też dla hostowania screenshotów.

--

Zaktualizowałem moją paczkę.
* Od teraz można włączyć GTK_OVERLAY_SCROLLING. Wystarczy ustawić zmienną na „1”.
* Podczas renderowania okien tło w ich wnętrzu jest teraz dopasowane do koloru motywu, a nie zawsze czarne. Dzięki temu moment renderowania mniej rzuca się w oczy. Tak było w GTK2 i jeszcze niedawno także w GTK3, ale zostało to zmienione.  https://bugzilla.gnome.org/show_bug.cgi?id=757104#c0

Offline

#9 2017-09-17 21:47:45

TomaszGasior
Użytkownik
Lokalizacja: śląskie
Data rejestracji: 2017-07-13
Liczba postów: 12
WWW

Odp: gtk3-mushrooms

Zaktualizowałem paczkę. Od teraz użytkownicy programów takich jak czytnik ekranowy Orca nie będą mieć problemów z ich używaniem.

Oprócz tego mała ciekawostka dla użytkowników Manjaro. Moje pacze tak bardzo spodobały się twórcom Manjaro, że od kilku dni moja paczka w delikatnie zmienionej formie jest dostępna w oficjalnym repozytorium tego forka Archa jako `gtk3-classic`. ;) Więcej tutaj: https://forum.manjaro.org/t/gtk3-classi … n-patches/ .

Offline

#10 2017-09-18 14:25:03

sir_lucjan
Administrator
Lokalizacja: Kraków
Data rejestracji: 2015-08-20
Liczba postów: 839

Odp: gtk3-mushrooms

Gratulacje.


Dell Inspiron 15-3542 (3542-2538) || Arch Linux || [linux-lucjan-git]
[AUR]  [GitHub]  [GitLab]

Offline

#11 2017-09-18 17:28:45

dracorp
Użytkownik
Lokalizacja: Poland, Gdańsk
Data rejestracji: 2015-09-06
Liczba postów: 96
WWW

Odp: gtk3-mushrooms

Tomasz a co Ty na to aby wrzucić wszystkie zmienne systemowe które są używane do pliku /etc/profile.d/gtk-mushrooms.sh?
W sumie nie jest ich dużo.

Ostatnio edytowany przez dracorp (2017-09-18 22:22:18)

Offline

#12 2017-09-18 19:49:23

TomaszGasior
Użytkownik
Lokalizacja: śląskie
Data rejestracji: 2017-07-13
Liczba postów: 12
WWW

Odp: gtk3-mushrooms

A w jakim celu? Samo GTK tego nie robi, a ja żadnych nowych zmiennych nie dodaję moimi patchami. Co najwyżej zmieniam zachowanie dwóch istniejących. ;) Zawsze można przeczytać w `README.md`, co i jak.

Offline

#13 2018-06-01 20:34:04

TomaszGasior
Użytkownik
Lokalizacja: śląskie
Data rejestracji: 2017-07-13
Liczba postów: 12
WWW

Odp: gtk3-mushrooms

Dawno nie byłem aktywny w tym wątku.  gtk3-mushrooms cały czas żyje. Patrząc na rozwój GTK i podejście programistów GNOME,  pod koniec tego roku rozpocząć będę musiał prace nad gtk4-mushrooms.

Tymczasem zapraszam na moją stronę, gdzie opisałem historię powstania pakietu: https://tomaszgasior.pl/inne/gtk3-mushr … ad-swiatem

Ważna informacja dla użytkowników menadżera okien `i3`.  Owy wm posiada buga, który ujawnia się przy `gtk3-mushrooms`. Więcej informacji tutaj: https://github.com/i3/i3/issues/3297

Offline

#14 2018-06-02 11:31:48

TomaszGasior
Użytkownik
Lokalizacja: śląskie
Data rejestracji: 2017-07-13
Liczba postów: 12
WWW

Odp: gtk3-mushrooms

Wspomniany we wpisie powyżej bląd i3wm w podobnej, ale bardziej zauważalnej formie istnieje z wm-ie Awesome. Jeżeli zaktualizujecie `gtk3-mushrooms` do najnowszej wersji, błąd zniknie. Jednakże wciąż tkwi w obydwu tych menadżerach okien. Naprawiam go w `gtk3-mushrooms` jedynie by ułatwić użytkownikom życie.

Offline

Stopka

Napędzają nas PacmanVPS i MegiTeam

Forum oparte na FluxBB