MacOS, iTerm i problemy z pl-znakami

Niezbyt często używam pl-znaków w konsoli łącząc się po SSH, ale jest parę miejsc, gdzie ich potrzebuję. Po dłuższym czasie zauważyłem, że na nowym komputerze mam problem z pl-znakami. Występował tylko przy połączeniu się z tego macOS przy pomocy SSH do Linuksa. Nic krytycznego, bo w zasadzie nie potrzebuję się tam łączyć z macOS, z innych Linuksów działało, ale byłoby miło, gdyby działało wszędzie. W końcu znalazłem chwilę i postanowiłem się zająć sprawą.

Krótko o środowisku: na workstacji macOS Ventura 13.4 z zsh 5.9 oraz iTerm2 3.4.19. Dla pamięci opis sprawdzania ustawień krok po kroku.

ustawienia iTerm

Upewniamy się, że iTerm korzysta z kodowania UTF-8. W tym celu należy wybrać
settings -> profiles -> terminal
Upewniamy się, że character encoding jest ustawione na UTF-8.

zmienne środowiskowe

Sprawdzamy ustawienia zmiennych środowiskowych na macOS. W tym celu należy wpisać
echo $LANG
i sprawdzić wartość zmiennej LANG. Powinna być jakaś z UTF-8, na przykład pl_PL.UTF-8.

Jeśli jest inaczej, można dopisać odpowiednią wartość w pliku .zshrc[1]
export LANG=pl_PL.UTF-8

Jeśli wykonujemy zmianę, należy uruchomić nowy terminal, aby została zastosowana.

kodowanie w powłoce

Sprawdzamy na macOS, jakie kodowanie mamy ustawione w terminalu. Wpisujemy locale i weryfikujemy zawartość zmiennych LC_CTYPE oraz LANG. Powinny zawierać kodowanie UTF-8. Jeśli tak nie jest, można ustawić odpowiednie zmienne w sposób opisany w poprzedniem akapicie.

ustawienia systemu zdalnego

Należy sprawdzić, czy na serwerze zdalnym locale ustawione są na wersję z UTF-8. W tym celu wpisujemy locale. Jeśli tak nie jest, to w Debianie i Ubuntu polecenie dpkg-reconfigure locales umożliwi zarówno wygenerowanie odpowiednich locali, jak i ustawienie domyślnych.

Przy powyższych ustawieniach pl-znaki powinny wyświetlać się poprawnie.

Dla zupełnej transparentności: tym razem nie ma odnośników do stron, których używałem przy rozwiązywaniu problemu. Posiłkowałem się bowiem chatGPT z niewyszukanym promptem macos problem utf-8 iterm how to solve. Całkiem sprawnie sobie poradził.

[1] Jeżeli z jakiegoś powodu korzytamy z bash, nie zsh, to właściwym plikiem będzie .bash_profile

Instalacja drukarki HP DeskJet 920c na Linuksie

Zauważyłem skandaliczne zaniedbanie: nie mam żadnego wpisu o Linuksie i drukarkach na blogu. Jest jeden jedyny ślad w postaci opisu zużycia prądu przez HP DeskJet 854c na eksperymentalnym blogu wattmeter. A przecież drukarki to taki wdzięczny temat. Można pisać tomy o praktykach rynkowych producentów, czyli dymaniu konsumentów, o wolności, o ekologii… Last but not least drukarka miała ważny wkład w powstanie wolnego oprogramowania. Przy okazji, jeśli ktoś nie czytał Free as in Freedom, to polecam, jest dostępne za darmo.

Tym razem jednak będzie nieco mniej wodolejstwa, a więcej techniki. Nowoczesny sprzęt nieco odmówił posłuszeństwa i musiałem wrócić do korzeni, czyli tytułowej drukarki. W dodatku instalując ją na nowym sprzęcie. Instalacja drukarki na Linuksie jest prosta, ale system działa latami bez reinstalacji, więc stwierdziłem, że po prostu nie pamiętam jak to zrobić. Świetny pretekst do zrobienia wpisu.

HP deskjet 920c

Źródło: https://www.recycledgoods.com/

O DeskJet 920c słów parę

HP DeskJet 920c to stara drukarka atramentowa. Ma te same kartridże co 854c, ze zintegrowanymi głowicami, co przeważyło o jej przyjęciu. Trafiła do mnie bowiem jako sprzęt przestarzały moralnie. Ot, kiedyś ktoś w firmie kupił nowy, lepszy sprzęt i oddawał stary. Tymczasem ja drukuję niewiele, a wieki temu nauczyłem się szybko i skutecznie napełniać kolor czarny w tych kartridżach i od tej pory jestem wierny HP. Tym bardziej, że tolerancja na różne tusze uzupełniające też jest spora. Co prawda staram się trzymać w miarę możliwości przeznaczonych do tego modelu lub linii, ale różnie z tym bywało. A drukuje zawsze dobrze, cokolwiek wleję.

Kolor niby napełnia się analogicznie, ale wychodziło mi to gorzej i drukowało zawsze nieidealnie – jakieś przerwy, paski itp. Może mniej używane i głowica zaschła? W każdym razie dwa czy trzy razy podchodziłem do tematu i mimo różnych tricków, które działały dla tuszu czarnego, nigdy nie było dobrze. Ponieważ niespecjalnie potrzebowałem koloru, zniechęciłem się i zaprzestałem dalszych prób.

Podłączenie i instalacja

Instalacja przeprowadzona została na Debianie Bullseye, ale z tego co pamiętam wcześniej wyglądała analogicznie.

Po podłączeniu drukarki lsusb pokazuje:

Bus 003 Device 006: ID 03f0:1504 HP, Inc DeskJet 920c

natomiast dmesg:

[ 165.918646] usb 3-1.4: new full-speed USB device number 6 using ehci-pci
[ 166.079696] usb 3-1.4: New USB device found, idVendor=03f0, idProduct=1504, bcdDevice= 1.00
[ 166.079706] usb 3-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 166.079712] usb 3-1.4: Product: DeskJet 920C
[ 166.079715] usb 3-1.4: Manufacturer: Hewlett-Packard
[ 166.079719] usb 3-1.4: SerialNumber: CN1596C025BI
[ 166.111410] usblp 3-1.4:1.0: usblp1: USB Bidirectional printer dev 6 if 0 alt 0 proto 2 vid 0x03F0 pid 0x1504

Najpierw instalujemy pakiety, a w zasadzie pakiet. CUPS zostanie doinstalowany w ramach spełniania zależności.

apt install hplip

Następnie dodajemy wybranego użytkownika USER do grupy z uprawnieniami administracyjnymi do drukarki.

adduser USER lpadmin

Resztę można wyklikać. I tak jest najłatwiej. Aby dostać się do interfejsu zarządzania CUPS, w przeglądarce wchodzimy na http://localhost:631 Przechodzimy do administration, wybieramy add printer. Uwierzytelniamy się jako użytkownik, któremu wcześniej przyznaliśmy dostęp. I działamy, czyli w zasadzie klikamy continue. Seria zrzutów ekranu poniżej.

Wybieramy lokalną drukarkę:

CUPS wybór drukarki HP DeskJet 920c

Ustawiamy jej nazwę:

CUPS - nadanie nazwy drukarki

Jeśli chcemy, możemy także w tym miejscu ustawić udostępnianie drukarki.
Następnie wybieramy sterownik drukarki:

CUPS - wybór sterownika

Nie wiem, czemu pokazał tyle sterowników. Wybrałem pierwszy z brzegu.
Na koniec ustawiamy domyślne ustawienia drukowania:

CUPS - wybór domyślnych ustawień drukowania

I to tyle, jeśli chodzi o instalację HP DeskJet 920c na Linuksie. Od tej pory możemy korzystać z drukarki.

Jak naprawić Zoom pod Linuksem – HOWTO

Zoom na Linuksa jest i generalnie działa. Można ponarzekać na wciąż rosnący rozmiar pakietów. Nie mogę znaleźć teraz porównania, ale pakiet instalacyjny w krótkim czasie podwoił swoją objętość. Jednak, skoro działa, to po co narzekać? Tyle, że czasami nie działa. W szczególności przy próbie annotate potrafi pokazywać czarny, pusty ekran. Przynajmniej u mnie.

Sprawdziłem na dwóch komputerach. Różne wersje Debiana, różne wersje Zooma. Wszędzie to samo – udostępnianie pulpitu działa, ale włączenie trybu annotate powodowało, że uczestnicy spotkania widzieli czarny ekran.

Po nieco przydługich poszukiwaniach udało mi się znaleźć rozwiązanie. Najpierw trzeba zainstalować xcompmgr, a następnie użyć go. Z odpowiednimi parametrami. Instalacja:

apt install xcompmgr

Użycie:

xcompmgr -o0.0

Po wydaniu polecenia, zarówno udostępnianie, jak i rysowanie działają bez problemu. Do czasu przerwania polecenia, oczywiście. Skutków ubocznych nie zauważyłem. Nie musiałem ponownie uruchamiać Zooma. Jak widać chodzi o ustawienia dotyczące przezroczystości. Skutków ubocznych nie zauważyłem. Po zakończeniu sesji zooma można zakończyć połączenie.

Oryginalny post z rozwiązaniem pochodzi z Reddita, a polecenie tam podane ma nieco więcej opcji.