Jak ujarzmić UEFI

Choć może być trudno w to uwierzyć, system, którego używam na co dzień na swojej głównej maszynie, korzeniami sięga mojej pierwszej instalacji Gentoo z 2004 roku. W międzyczasie był przenoszony wielokrotnie między maszynami, ale zasadniczo większość migracji polegała na skopiowaniu plików, naniesieniu niezbędnych modyfikacji w konfiguracji kernela i na deser rekompilacji całości z flagami dla nowego procesora.

Do czego zmierzam? Przez długie lata jako bootloadera używałem lilo, potem gruba i  z przyzwyczajenia trzymałem się tablicy partycji w formacie MBR oraz legacy boot (CSM). Sęk w tym, że świat nie stoi w miejscu i po drodze pojawił się wynalazek o nazwie UEFI. Co więcej, moja aktualna maszyna to na dobrą sprawę ostatnia generacja, która jeszcze obsługuje legacy boot. Widząc to, uznałem, że w ramach future-proofing warto byłoby przejść na tablicę partycji w formacie GPT i UEFI boot, zmniejszając ryzyko, że nie będę mógł odpalić systemu, gdyby przyszło mi przełożyć go do kolejnej maszyny z płytą bez wsparcia dla CSM.

Czytaj dalej...

Kitty – nowoczesny emulator terminala

Przez ponad 15 lat korzystałem z Konsole i byłem z niego ogólnie zadowolony. Wszystko działało jak trzeba i miałem swój config, który przenosiłem między maszynami i kolejnymi wersjami KDE/Plasmy... i wtedy poznałem Kitty. Pobawiłem się nim chwilkę i zauważyłem, że choć Konsole było szybkie, to Kitty jest zabójczo szybkie. Na Konsole miałem też problemy z używaniem nnn, które całkowicie zniknęły pod Kitty (pod Konsole musiałem je obchodzić wymuszając inny TERM, co z kolei psuło fzf). Samo to jeszcze by mnie nie przekonało do zmiany, ale czytając dokumentację byłem coraz bardziej przekonany, że to terminal dla mnie i że mogę go dostosować o wiele bardziej niż Konsole. Parę dodatkowych funkcji realnie przełożyło się na moją wygodę pracy. Napotkałem jednak pewne problemy i niespodzianki, które jednak szczęśliwie udało się rozwiązać albo obejść. Postanowiłem więc spisać swoje wrażenia i przygody z używania Kitty. Program ma tonę funkcji, z których jeszcze nie zdążyłem skorzystać, albo o których zapomniałem, więc siłą rzeczy nie jest to kompletny opis.

Czytaj dalej...

btle-proximity, czyli jak blokować automatycznie pulpit

Jakiś czas temu doszedłem do wniosku, że skoro tak czy inaczej cały czas na swoim nadgarstku noszę jedną z popularnych opasek inteligentnych, może warto byłoby oprócz monitorowania tętna spożytkować ją do czegoś umiarkowanie przydatnego. Na myśl przyszło mi automatyczne blokowanie pulpitu, gdy odejdę na dłużej od komputera.
Czytaj dalej...

pwn2dict 3.0

Zgodnie z moją wcześniejszą zapowiedzią postanowiłem oczyścić pwn2dict z niepotrzebnego balastu zapewniającego kompatybilność ze starszymi wersjami Pythona. Niniejszym wydaję te zmiany jako wersję 3.0, która wymaga Pythona 3.6+. Jeśli z jakiegoś powodu utknęliście na starszej wersji Pythona, przypominam, że starsze wersje skryptu są nadal dostępne w repozytorium.

Oto dokładna lista zmian:

  • Usunięcie wsparcia dla Pythona 2.7
  • Użycie pathlib do operacji na ścieżkach
  • Zastosowanie f-strings do formatowania tekstu
  • Lepsza domyślna wartość bookname przy konwersji do StarDict

Linki:
pwn2dict, Instrukcja obsługi

pwn2dict 2.8

Po prawie 6 latach od ostatniej publicznej aktualizacji postanowiłem oficjalnie wydać nową wersję pwn2dict. Parę zmian pojawiło się wprawdzie w repo bez ogłaszania ich tutaj. Podbijałem nawet wersję, stąd skok o dwie, choć publicznie wersja 2.7 nie została ogłoszona.

pwn2dict 2.8 to wyłącznie zmiany od kuchni, w większości niezauważalne dla zwykłego użytkownika, ale nadal istotne z punktu widzenia kompatybilności skryptu z nowszymi wersjami Pythona. Oto lista zmian:

  • Przeportowanie z klasy OptionParser na ArgumentParser (ta pierwsza jest nierozwijana od Pythona 3.2)
  • Użycie upstreamowego cmp_to_key, jeśli dostępne (dodane w Pythonie 3.2)
  • Zastąpienie metody HTMLParser().unescape metodą html.unescape (ta pierwsza została usunięta w Pythonie 3.9, uniemożliwiając użycie skryptu na tej wersji, co zgłosił jeden z czytelników)

To wszystko, żadnych nowych wariacji formatu ani wielkich optymalizacji. Ponieważ Python 2.7 jest już oficjalnie martwy, rozważam oczyszczenie skryptu ze zbędnego balastu i wydanie wersji, która wymaga współczesnej wersji Pythona, ale nie jest to wysoko na mojej liście priorytetów.

Linki:
pwn2dict, Instrukcja obsługi

Jak utworzyć profil PulseAudio?

Ci, którzy znają mnie dobrze, wiedzą, że PulseAudio przez długi czas spędzało mi sen z powiek i korzystałem z każdej okazji, by się od niego uwolnić. Ale pod naporem różnych czynników i ponieważ niektóre funkcje jak choćby przerzucanie strumieni w locie między urządzenia są dla mnie bardzo przydatne, złamałem się i od jakiegoś czasu przestałem unikać nieuniknionego. Cóż, czasem płynięcie pod prąd przestaje być opłacalne.

W każdym razie, powodem tego postu jest pewna zmiana w konfiguracji PulseAudio, którą naniosłem na swoim laptopie. Domyślna konfiguracja zawierała wyjścia dla głośników/słuchawek i HDMI, ale na osobnych profilach, co uniemożliwiało banalne przerzucanie dźwięku między jednym a drugim, bo najpierw należało wejść w ustawienia dźwięku i zmienić profil. Problemu nie mam na stacjonarnym, bo tam zintegrowana dźwiękówka i HDMI audio od nvidii to osobne urządzenia, widoczne od razu. Cóż, rozwiązaniem jest utworzenie nowego profilu PulseAudio dla urządzenia i to będzie tematem tego wpisu.

Czytaj dalej...

Intel Skylake pod Gentoo, czyli moje boje

W ostatnim czasie postanowiłem wymienić swój leciwy już sprzęt na coś bardziej współczesnego. Po paru tygodniach czytania recenzji, zasięgania języka u różnych ludzi wybór padł na jeszcze świeżą platformę Skylake od Intela, mimo nieco niepokającym doniesieniom o bugach w mikrokodzie. Pomijając mniej ciekawe z punktu widzenia tego wpisu elementy, ostateczny komputer został wyposażony w czterordzeniowego i5-6400, płytę Gigabyte Z170-HD3P (celowo model z sieciówką Realteka, bo te w przeciwieństwie do Intela działają out-of-the-box na odpowiednio nowych wersjach kernela) i SSD Samsung Evo 850 EVO (120GB, bo tyle swobodnie starcza mi na system, a dane trzymam na klasycznym, talerzowym HDD). Celem tego wpisu będzie zrelacjonowanie ogólnych wrażeń, kompatybilności i paru niespodzianek, które spotkały mnie mimo starannego rekonesansu. Cóż, zaczynajmy!

Czytaj dalej...