Linux Mint to jeden z najprzyjaźniejszych systemów na bazie Linuksa. Z kolei Cinnamon to jedna z kilku jego wersji, najbardziej dopieszczona pod względem wyglądu i funkcjonalności. Bardzo dobry wybór dla osób chcących odejść od Windowsa i jego dziwnych zagrywek.

Mimo ogólnej przystępności Minta, jest na nim parę rzeczy, które mogą na początku drażnić i wydawać się obce. Jedną z nich jest zachowanie dolnego paska.

Na Windowsie (a przynajmniej Windowsie 10, nie używałem jedenastki) każde otwarte okno dostaje osobną zakładkę na dolnym pasku, pokazującą jego nazwę oraz ikonę.
Na Mincie z Cinnamonem jest inaczej; okna należące do tego samego programu są domyślnie grupowane pod jedną, niepodpisaną ikoną. Trzeba na nią najechać kursorem, żeby móc wybrać któreś z nich.

Fragment paska dolnego na Cinnamonie. Pod dwie ikony są podpięte po dwa okna, oznaczone liczbami

Nie będę tego oceniał pod kątem ergonomii. Powiem jedynie: to istotna różnica względem Windowsa, na poziomie fundamentalnym. Może drażnić i odstraszać nowoprzybyłych.

A ja nie chcę rozdrażnienia. Chcę Linuksa zdobywającego serca ludzi.

Dlatego pokażę w tym krótkim samouczku parę sposobów (graficznych i konsolowych) na sprawienie, że pasek na Mincie zacznie się zachowywać jak ten na Windowsie. To naprawdę proste, wystarczy parę kliknięć.

Spis treści

Sposób łatwiejszy

Choć obszar z ikonami programów wydaje się integralną częścią paska, jest w rzeczywistości czymś częściowo niezależnym. Tak zwanym apletem. Nazywa się pogrupowaną listą okien (ang. Grouped window list).

Żeby wejść w ustawienia tego elementu, należy kliknąć prawym przyciskiem myszy jego obszar, czyli dowolną z ikon programów albo przestrzeń między nimi.

Nad paskiem pojawi się menu kontekstowe. Należy tam kliknąć zakładkę Applet preferences. Menu nieco się rozwinie i powiększy, ukazując jeszcze kilka opcji. Jedna z nich to Configure…, klikamy ją.

Menu kontekstowe apletu z dolnego paska. Zaznaczono opcje, których kliknięcie pozwala przejść do ustawień

Po jej kliknięciu pojawi się okno z ustawieniami apletu. Nazwane tak jak on i opatrzone ikoną kilku okien na fioletowym tle. Wystarczy w nim zmienić dwie rzeczy.

Rozgrupowanie okien

W górnej części okna od ustawień widnieją cztery zakładki; ta domyślnie otwarta powinna nazywać się General.

W tej zakładce interesuje nas pierwsze ustawienie od góry, Group windows by application. Kiedy je odznaczymy, to otwarte okna nie będą już grupowane pod jedną ikoną. Każde z nich zyska własne miejsce na pasku.

Okno z ustawieniami apletu od ikon, z odznaczoną opcją ich grupowania

Wyświetlanie nazw okien obok ikon

Pozostając w tym samym oknie z ustawieniami co wyżej, należy kliknąć zakładkę Panel w górnej części. Przeniesie nas to do kolejnego zestawu opcji.

Tam, obok etykiety Button label, należy zmienić opcję na Window title albo Application name, wedle własnych preferencji.

Okno z ustawieniami apletu od ikon, z wybraną opcją wyświetlania nazw okien

Podsumowanie wątku

Po zmianie obu opisanych ustawień dolny pasek zacznie się zachowywać prawie tak jak ten na Windowsie:

Fragment paska dolnego na Cinnamonie, już z jedną podpisaną zakładką na każde okno

Jest jednak pewna różnica – ikony odpowiedzialne za uruchamianie programów są wymieszane z listą otwartych okien. Jak na zrzucie ekranu: ikony Firefoksa i konsoli wciśnięte między dwa okna przeglądarki plików i dwa okna notatnika.

Mnie osobiście ten układ jakoś szczególnie nie przeszkadza. Jeśli ktoś chce coś jeszcze bliższego Windowsowi, to może rozważyć wymianę grupowanej listy na dwa osobne aplety. Opisuję to bliżej końca tego wpisu.

Niżej znajdują się natomiast sposoby na szybsze (a nawet automatyczne) wprowadzanie tych samych dwóch zmian, które opisałem wyżej.

Bonus: zmiana ustawień przez plik

Większości osób zmieniających swój pasek proponuję trzymać się zwykłej klikaniny. Szybka i bezbolesna. Zwłaszcza jeśli ktoś ma Minta zainstalowanego na stałe i chce zmienić opcje tylko raz.

Może się jednak zdarzyć, że ktoś musi zmieniać pasek Cinnamona wielokrotnie – parę przykładowych sytuacji w rozwijanej zakładce.

Kiedy może być konieczne wielokrotne ustawianie paska?
  1. Korzystamy z Minta w trybie ulotnym (live), żeby jak najlepiej chronić swoje dane osobowe albo móc swobodniej eksperymentować z systemem.

    Wiąże się to z ładowaniem systemu od zera przy każdym uruchomieniu – a zatem trzeba go również ustawiać od zera. Ręczne klikanie dzień po dniu byłoby torturą.

  2. Mamy do skonfigurowania więcej komputerów.

    Być może cała rodzinka albo firma właśnie jest w trakcie migracji na Linuksa? W każdym razie: jeśli urządzenia trzeba uruchamiać ręcznie, to jest to już wystarczająco żmudne. Niech chociaż konfiguracja będzie szybka.

Osoby chcące uniknąć rutyny docenią możliwość szybkiego wgrywania ustawień z pliku. W tej części opiszę, jak to zrobić.

Najpierw należy choć raz, na samym początku, zmienić ustawienia ręcznie, zgodnie z instrukcjami podanymi wyżej.

Następnie, wewnątrz tego samego okna z ustawieniami, należy kliknąć ikonę trzech kresek w górnym prawym rogu. Stamtąd należy wybrać opcję eksportowania pliku. Pojawi się menu odpowiedzialne za jego zapisanie.

Wystarczy teraz wpisać dowolną nazwę dla tworzonego pliku, na przykład dolny-pasek-ustawienia. Nie trzeba podawać żadnej końcówki; zostanie automatycznie zapisany jako plik .json.

Odtąd można nosić ten plik ze sobą na jakimś pendrivie. A kiedy zechcemy wgrać zawarte w nim ustawienia do apletu, na swoim lub cudzym komputerze, to:

  • otwieramy okno z ustawieniami apletu,
  • klikamy ikonę trzech kresek w górnym prawym rogu,
  • wybieramy opcję importowania pliku,
  • wybieramy nasz plik JSON.

Wygląd i zachowanie apletu od listy okien powinny zmienić się natychmiast po wgraniu pliku. Nie trzeba nic odświeżać.

Bonus 2: ustawianie skryptem (dla zaawansowanych)

Najpierw należy uzyskać, sposobem opisanym wyżej, plik JSON z ustawieniami apletu. Można go odtąd nosić ze sobą na pendrivie.

Kiedy załadujemy system, na którym chcemy zmienić działanie paska, można sobie uruchomić konsolę w folderze z tym plikiem.

Następnie używamy komendy, aby skopiować plik do folderu z ustawieniami apletu grupującego. Podmieniamy przy tym dotychczasowy plik z ustawieniami, 2.json:

cp -f NASZ_PLIK.json ~/.config/cinnamon/spices/grouped-window-list@cinnamon.org/2.json

Komendę można oczywiście uczynić częścią większego skryptu.
Tradycyjna przypominajka: gdyby ktoś ją stąd kopiował, to wkleja się ją do konsoli przez Ctrl+Shift+V.

Omówienie komendy

Program konsolowy cp odpowiada na Linuksie za kopiowanie różnych plików i folderów. Komenda cp -f NASZ_PLIK.json INNY_PLIK kopiuje wskazany przez nas plik, zastępując nim jakiś inny plik.

Znaku tyldy (~) wewnątrz ścieżki użyłem do wskazania folderu domowego. Na świeżym Mincie z pendrive’a odpowiada jej folder /home/mint – ale ta nazwa nie byłaby przenośna między systemami. Zmienia się nawet po trwałej instalacji Minta (na nazwę użytkownika).

Warto zaznaczyć, że zastępowanie plików nie jest typowym zachowaniem programu cp; uzyskaliśmy je tutaj dzięki dopisaniu argumentu -f (skrót od force; „wymuś”).

Nazwa zastępowanego pliku, 2.json, wydaje się losowa… Ale tak naprawdę wynika z faktu, że 2 to liczba przydzielona apletowi grupującemu okna. Mówi z grubsza, który jest z kolei na liście wszystkich apletów.

Uwaga

Po użyciu tej komendy aplet z ikonami zapewne zniknie. To dziwne, ale zrozumiałe zachowanie – przez ułamek sekundy stracił wszystkie ustawienia, na których polegał.
Powinien pojawić się ponownie przy kolejnym odświeżeniu Cinnamona, ponownym zalogowaniu itd.
Żeby je wymusić od razu, można kliknąć prawym przyciskiem myszy dowolny obszar paska (poza apletami), kliknąć zakładkę Troubleshoot i wybrać opcję Restart Cinnamon.
Aplet powinien wrócić na swoje miejsce i działać zgodnie z oczekiwaniami.

Trochę luźnych uwag o ustawianiu Linuksa skryptami

W tym wypadku ustawienia zmieniane skryptem były czymś na poziomie Cinnamona, zapisanym do pliku JSON o narzuconym przez nich formacie.

Warto jednak wiedzieć, że w wielu innych przypadkach – na Mincie i nie tylko – ustawienia zmieniane przez menu są zapisywane wewnątrz centralnej bazy zwanej dconf. W podlinkowanym wpisie pokazuję, w jaki sposób można takie opcje wyłapać i przerobić na skrypty, ustawiające to samo automatycznie i oszczędzające klikania.

Same pliki JSON nie są żadną ekstrawagancją i to też dość częsty sposób na przenoszenie ustawień. Poprzez plik policies.json można na przykład zmieniać domyślne zachowanie przeglądarki Firefox.

Warto znać takie centralne ustawienia, popularne formaty plików i sposoby na automatyczne wprowadzanie zmian. Zwłaszcza jeśli chce się konfigurować wielokrotnie ten sam komputer (tryb live) albo po jednym razie wiele komputerów (szykowanie floty).

Sposób alternatywny (lepsza zgodność, więcej roboty)

Tu sposób dla tych, którzy nie chcą nazw okien wymieszanych z ikonami. Wolą zachowanie dokładnie takie jak na Windowsie – nieruchome i niezmienne ikony programów, zaś po ich prawej stronie gromadzą się otwarte okna.

Zmiana apletów na pasku

Najpierw należy kliknąć prawym przyciskiem myszy jakąś pustą, niezajętą niczym część paska. Z menu kontekstowego wybieramy Applets, przechodząc do listy apletów.

Menu kontekstowe z wyróżnioną opcją wejścia w ustawienia apletów

Tam znajdujemy nasz aplet Grouped window list. Klikamy go, żeby się zaznaczył. A potem klikamy znak minusa na dole, żeby go odpiąć od paska.

Fragment okna z listą apletów i zaznaczona opcja od usunięcia grupowanej listy z paska

Teraz przyda się czymś wypełnić pustkę. Znajdujemy na liście i dodajemy (przez kliknięcie znaku plusa) dwa inne aplety: Window list (bez Grouped na początku) oraz Panel launchers.

Świeżo po dodaniu nowych apletów efekt może rozczarowywać.

Będą wyrównane do prawej strony paska, a nie lewej, jak na Windowsie. Do tego zawarte w nich ikonki będą dość małe. Ale spokojnie, można to łatwo zmienić!

Przemeblowanie paska

Najpierw sprawmy, żeby aplet z listą okien się pokazał. Jeśli nie mamy żadnych okien na pasku, to uruchamiamy dowolny program, żeby jego nazwa zagościła na pasku. Nie zamykamy jego okna.

Teraz należy wejść w tryb edycji paska. Znowu – klikamy go prawym przyciskiem w jakimś pustym miejscu, niebędącym apletem. Następnie klikamy przełącznik podpisany Panel edit mode:

Menu kontekstowe z wyróżnioną funkcją edycji paska, zwanego panelem.

Od teraz do czasu wyłączenia trybu nie będziemy w stanie aktywować apletów kliknięciami. Możemy je za to przenosić w inne części paska.

Swoją drogą powinny tam być trzy główne obszary:

  • lewy, o czerwonym tle;
  • środkowy, o zielonym tle;
  • prawy, o niebieskim tle.

Kliknijmy sobie przykładowo aplet-uruchamiacza (zawierający same ikonki programów). Po kliknięciu nie puszczamy przycisku myszy, tylko przesuwamy sam kursor, przenosząc aplet na lewą stronę.

Najeżdżamy kursorem na obszar po lewej (z czerwonym tłem), cały czas go obserwując. Kiedy obszar odrobinę się rozszerzy, to puszczamy przycisk myszy. Aplet zostanie przeniesiony w nowe miejsce.

Ilustracja przenoszenia apletu-uruchamiacza na lewą stronę paska

Można zauważyć, że po upuszczeniu apletu jego ikony automatycznie się powiększą, zyskając właściwy rozmiar. To dlatego, że każdy z trzech obszarów paska ma własne, niezależne ustawienia.

W podobny sposób przeciągamy listę okien, również kładąc ją w obszarze po lewej (ale po prawej stronie apletu z ikonami programów):

Ilustracja przenoszenia listy okien na lewą stronę paska, gdzie jest już inny aplet

Po przeniesieniu apletów znów otwieramy menu kontekstowe paska i wyłączamy tryb edycji.

Można sobie poklikać i upewnić się, że wszystko działa jak powinno. W ten sposób zyskaliśmy pasek klasyczny: ikona menu, potem ikony programów, potem lista otwartych okien. Prawie nie do odróżnienia od Windowsa 10.

O problemach z automatyzacją zmian

Liczyłem na to, że pasek można zmienić skryptem równie łatwo jak ustawienia pogrupowanej listy. Ale niestety na tym poległem.

Na początku wydawało się to łatwe. Ustawienia paska są zapisywane wewnątrz centralnej bazy Dconf (którą można łatwo modyfikować skryptami). Paska dotyczą dwa główne ustawienia:

  • /org/cinnamon/enabled-applets – lista wszystkich apletów na wszystkich paskach oraz ich położenie i liczby porządkowe. Składnia własna Cinnamona, dość czytelna.
  • /org/cinnamon/next-applet-id – numer poprzednio dodanego apletu plus jeden.

Problem jednak w tym, że kiedy zmieniłem przez dconf write obie te wartości, na te skopiowane od siebie, to: lista pogrupowana zniknęła, aplet-uruchamiacz został dodany… Ale lista okien już nie. Wystąpił błąd.

Próbowałem różnych wersji – zmieniać po jednej rzeczy naraz, stale pilnując zmiennej od ID. Zrobić pauzę między zmianami. Odświeżyć Cinnamona między zmianami. Nie pomogło.

Z tego względu póki co nie mam sposobu na zautomatyzowanie takich zmian. Osoby zainteresowane mogą się wgryźć w kod źródłowy Cinnamona (np. pliki JavaScript z folderu .../js/ui) i poszukać rozwiązania.

To tyle na ten wpis. Dzięki za uwagę i powodzenia w windowsowaniu pasków – sobie, organizacji albo rodzince :smile: