MacOS 14.2 – nie działa hidutil

Ja jeszcze nie zaktualizowałem MacOS do wersji Sonoma, ale znajomi zdążyli to zrobić i narzekają, że polecenie hidutil przestało działać. Nie zwraca błędu, ale nie mapuje klawiszy. W związku z tym polecane kiedyś przeze mnie mapowanie klawiszy bez użycia Karabiner Elements również nie będzie działać.

Sprawdzonego rozwiązania w tej chwili nie podam, zamiast tego odsyłam do wątku na forum Apple oraz wątku na Reddicie. Jest tam wiele pomysłów na rozwiązanie, można przymierzyć – może ktoś znajdzie satysfakcjonujące dla siebie.

Ludzie zgłaszają błąd do Apple, więc liczę, że błąd zostanie poprawiony w kolejnej aktualizacji. Mapowanie bez dodatkowych programów było eleganckie.

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

Ventura

Trochę późno, bo dopiero wczoraj zaktualizowałem system do wersji Ventura. Biorąc pod uwagę mój stosunek do aktualizacji macOS, ta była wyjątkowo sprawna. Szczególnie biorąc pod uwagę rozmiar. Jednak w sumie nie widzę zmian godnych uwagi – trochę inne kolory, ot co.

Skoro jednak jest już pretekst, do wpisu, to przetestowałem nową wersję hashcata (v6.2.6-320-g9acfc26d8) na nowej wersji systemu. W stosunku do poprzedniej wersji, jest szybciej. Istotnie szybciej, nawet o 50% w niektórych przypadkach:

METAL API (Metal 306.3.5)
=========================
* Device #1: Apple M1 Pro, skipped

OpenCL API (OpenCL 1.2 (Dec 16 2022 20:37:40)) - Platform #1 [Apple]
====================================================================
* Device #2: Apple M1 Pro, GPU, 960/21845 MB (2048 MB allocatable), 16MCU

Benchmark relevant options:
===========================
* --optimized-kernel-enable

-------------------
* Hash-Mode 0 (MD5)
-------------------

Speed.#2.........:  6542.3 MH/s (0.97ms) @ Accel:64 Loops:1024 Thr:256 Vec:1

----------------------
* Hash-Mode 100 (SHA1)
----------------------

Speed.#2.........:  2718.3 MH/s (2.35ms) @ Accel:128 Loops:1024 Thr:128 Vec:1

---------------------------
* Hash-Mode 1400 (SHA2-256)
---------------------------

Speed.#2.........:   983.4 MH/s (6.52ms) @ Accel:64 Loops:1024 Thr:256 Vec:1

No i jeszcze md5crypt:

------------------------------------------------------------------------------
* Hash-Mode 500 (md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)) [Iterations: 1000]
------------------------------------------------------------------------------

Speed.#2.........:  2516.6 kH/s (1.13ms) @ Accel:128 Loops:1000 Thr:64 Vec:1