Opačný scroll v chrome

Možná se Vám také stalo, že po jedné z aktualizací se některé programy, včetně Chrome, začali chovat divně. Příčiny i následky mohou být různé, teď se ale zaměříme na to, že se otočí scroll oproti systémovému nastavení.

Osobně používám Xfce, které v nastavení myši umožňuje změnit scroll na „přirozený“, který znáte možná z Macu, nebo výchozího nastavení většiny nových driverů pro Windows. Problémem však je, že tato aplikace se chová jako xmodmap a tedy otočí stisknutí tlačítka, což není způsob, který vyhovuje některým aplikacím.

Důvodem je přechod na Xinput2, který již neposílá při posunu ona „kliknutí tlačítka“, ale kontinuální hodnoty posunu. Řešení je tedy poměrně jednoduché: vykašlat se na nastavení pomocí GUI a sáhnout do konfiguračního souboru.

V mém případě se jedná o úpravu hodnoty v xorg configu v sekci ovladače Synaptics. Pro myš v konfiguraci tedy přidáme hodnotu Option "VertScrollDelta" "-107", kde -107 bylo ve výchozí hodnotě číslo 107.

Jaké číslo je výchozí můžeme zjistit například pomocí programu xinput a to tak, že si nejprve nalzeneme ID touchpadu, který cheme převrátit příkazem xinput list a následně zobrazíme hodnotu pro posun xinput list-props 11 | grep -i scroll. Výstup může vypadat nějak takto:

Synaptics Scrolling Distance (272): -107, 107
Synaptics Edge Scrolling (273): 0, 0, 0
Synaptics Two-Finger Scrolling (274):   1, 0
Synaptics Circular Scrolling (281): 0
Synaptics Circular Scrolling Distance (282):    0.100000
Synaptics Circular Scrolling Trigger (283): 0

V mém případě byla zajímavá hodnota Synaptics Scrolling Distance. Pokud používáte jiný ovladač, tak je rozumné podívat se do jeho dokumentace a zjistit, co která hodnota znamená.

Tak… teď už by vše mělo fungovat jako dřív. Jen nezapomeňte vypnout obrácený scroll v nastavení myši, jinak se stane, že aplikace používající Xinput budou reagovat opačně.

Uložení webu

Občas si člověk potřebuje uložit nějaký web, aby si jej mohl prohlížet offline, nebo proto, že tuší, že by mohl nastat jeho výpadek. Metod je samozřejmě velké množství, ale jednou z těch nejjednodušších je použití programu wget.

Instalace na linuxu je velice jednoduchá a dost často je wget přítomen jako předinstalovaný balíček. Jak se instaluje na Windows jsem nikdy nezjišťoval, ale myslím, že i pro něj existuje.

wget \
--recursive \
--no-clobber \
--page-requisites \
--html-extension \
--convert-links \
--restrict-file-names=unix \
--domains example.com \
--no-parent \
-e robots=off
www.example.com

Z příkladu je vidět, že jeho použití je skutečně jednoduché. --recursive říká, že se bude procházet celý web --no-clobber, že se nemají přepisovat soubory. --page-requisites je pro nás důležitý neboť zajišťuje, že se kromě HTML stáhne i CSS a obrázky. --html-extension přidává souborům koncovku html a --convert-links zajišťuje, že odkazy budou lokální, tedy budeme moci procházet stažený obsah. --restict-file-names není zas tak důležitá volba, ale předcházíme tak tomu, že by soubor měl název, který není použitelný na našem systému. --domains určuje doménu ze které se stahuje (aby jsme nestáhli celý internet). Volba --no-parent pak říká, že se nemají stahovat předci. Pokud tedy budeme v mypage.org/user/hefay tak se nebude stahovat obsah jako mypage.org/user. A -e robots=off dohromady tvoří volbu, která zakáže používání robots.txt. A konečně, poslední volbou je web, který stahujeme.

Budeme navždy spolu

Tak pět týdnů zpět jsem si změnil hlavní operační systém na svém laptopu z Linuxu na Windows. Kupodivu jsem dokonce skončil na Windows 8.1 a nemusím snad ani zdůrazňovat jak kruté boje spolu svádíme.

Tématem tohoto příspěvku má být však něco jiného. Jelikož bych jen s Windows asi nevydržel rozhodl jsem se pro dva kroky. Prvním krokem bylo nainstalování Linuxu na virtuální PC. Ve skutečnosti to byl až krok druhý, ale vzhledem k jeho jednoduchosti mě měl napadnout jako první. Druhým, a tedy pro mně prvním krokem, bylo nainstalovat mou oblíbenou distribuci na USB klíčenku. To bylo nakonec také velmi primitivní a možná o tom napíši i krátký příspěvek. Abych byl přesnější, tak sem nestál o žádnou live distribuci, kde se vše ztratí poté, co vypnu počítač. Já chtěl plnohodnotnou distribuci, na které budu mít své oblíbené programy a prostředí.

Možná si teď říkáte, proč jsem nepoužil dual boot. Inu, to proto, že jsem jej měl asi dva roky, ale už mi nestačilo místo, které jsem měl vyhrazené pro Windows.

Takže nyní s sebou nosím většinu základních programů, které potřebuji a stačí mi PC, kde je dovoleno bootovat z USB. Ještě máme v plánu to vyzkoušet na Macbooku, kde si tím nejsme tak úplně jistí.

Mňo, tak to je prozatím vše.

Arch linux: Balíčky dle velikosti

Občas se mi stane, že potřebuji vypsat nainstalované balíčky a seřadit, je dle nějakého parametru. Jde to samozřejmě několika způsoby. Každého hned asi napadne použít pacman s nějakým vychytaným parametrem. Bohužel jsem žádný takový parametr nenalezl v dokumentaci, takže asi neexistuje.

Další by mohl být nějaký jednoduchý script, který bude využívat pacman, grep, sort a nebo třeba awk. To je krásná myšlenka. Dokonce je i lehce proveditelná, ale musíte si ten skript někam uložit a nezapomenout na něj. Popřípadě prohledat nějaké ti diskuze a najít již napsaný.

No, pokud nejste líní hledat a číst, narazíte nejspíš na program expac, který umožňuje jednoduché dotazování na databázi nainstalovaných balíčků. Takže si pomocí něj můžeme jednoduše vypsat balíčky ve tvaru velikost název. Pak už stačí si balíčky jen seřadit pomocí sortu a máme vyhráno.

expac '%m\t%n' | sort -h

Tento postup je opradu velmi jednoduchý a efektivní. Narazil jsem na něj na oficiálním fóru distribuce Arch Linux.
Snad Vám také pomůže a ušetří trochu toho hledání.

Trochu té typografie

Nejsem zběhlý v mém rodném jazyce a ani se tím příliš netajím. Texty si opětovně neprocházím a nehledám v nich chyby pokud mě na ně někdo neupozorní, to je pak i opravím. I tak se snažím psát co nejlépe mohu a dodržovat u toho alespoň některé zásady. To se samozřejmě nepovede vždy, někdy se změní nástroje jindy je člověk prostě jen líný.

Dnes jsem na vytvořil repozitář s mírně upraveným rozložením české qwertz klávesnice, tu jsem obohatil o pár typografických „specialit“. Dostupné jsou tak například:

  • české uvozovky ve tvaru 9966 se znaky a ,
  • dlouhá pomlčka (HTML entita —) ,
  • výpustka …,
  • nezalomitelná mezera

Abych se přiznal, právě nezalomitelnou mezeru prakticky nepoužívám. Psát někdy Space a někdy AltGr+Space mi prostě nejde vůbec od ruky.

Rozložení klávesnice je pro Xorg a používám jej na svém Archu, verzi pro Windows rozhodně neplánuji. Pokud by však byly problémy na Linuxu můžeme se dohodnout a pokusit se je opravit.

Závěrem tedy uvedu snad jen odkaz na repozitář s klávesnicí: Rozložení klávesnice Hefay - GitHub

Nová podoba loginu

Jak jistě všichni víte používám k běžné práci linux. Je to operační systém, který nesedí úplně každému a rozhodně o něm nemohu tvrdit, že je přívětivý a jednoduchý. Grafických prostředí sem používal nespočet i nyní mám nainstalovány 4. Poslední dobou však nejvíce používám Xfce, jedná se o lehké prostředí vhodné i pro starší stroje.

Do grafického prostředí se můžeme dostat několika způsoby, například můžeme napsat startxfce4 a spustit tak Xfce. To ale není příliš pohodlné, proto používáme Display Managery. To jsou programy, které za nás spustí grafické prostředí a nabídnou nám hezkou obrazovku s formulářem pro přihlášení. Většinu času jsem používal GDM (Gnome display manager), pak chvilku SLiM, opět GDM a nyní jsem se vrátil zpět ke SLiMu.

Nebyl bych to já kdybych si neupravil to co na mne vybafne při každém spuštění PC. Takže zde je výsledek.

Náhled logovací obrazovky
Náhled logovací obrazovky

Jedná se o náhled zobrazení se spuštěným Xfce, takže je na něm zobrazený i můj dekorátor oken. Jinak je vidět pouze černá obrazovka s formulářem pro login.

CMUS - Moc ve dvojtečce

Kdysi jsem tu psal, že jsem našel zajímavý konzolový přehrávač hudby. Pokud si na to vzpomínáte jmenoval se MOC a využíval ncurses. Dnes tu pro vás mám přehrávač pro trochu náročnější uživatele. Tentokrát se nechová jako daemon, ale jako klasická aplikace která se spustí a ukončí. Ovládání má z velké části převzaté z populárně nepopulárního editoru Vi či Vim.

Pozor, jméno dnešního představeného je krátké a obtížně vyslovitelné. Je to CMUS! CMUS je opět textový program využívající ncurses. Spouští se tedy v terminálu nebo konzoli což nemusí sednout každému, cmus si to pojistil ještě tím, že používá příkazový mód podpobní Vimu a má sedm pohledů.

CMUS po spuštění
CMUS po spuštění

Po spuštění se jeví přehrávač opravdu prázdný, musíte do něj totiž přidat svou hudební sbírku. To se dá udělat několika způsoby, já uvedu ten který je dle mne nejrychlejší a nejpohodlnější. Chceme tedy přidat například složku Hudba z našeho domovského adresáře.

 :add ~/Hudba

Ano, stačí jednoduše napsat dvojtečku klíčové slovo add a pak umístění. Nyní bychom měli mít dostupnou naši hudební kolekci a máme možnost ji procházet.

V hudební kolekci se můžete pohybovat pomocí kláves JK, nebo pomocí šipek jeli vám to příjemnější. Složky otevíráte mezerníkem a přehrávání zahájíte klávesou Enter.

Jak jsem již zmínil, tak cmus obsahuje sedm pohledů. První je výchozí a je to pohled na vaši hudební kolekci. Druhý pohled (standardně klávesa 2) obsahuje seřazenou hudební sbírku, třetí je (kupodivu klávesa 3) je pak playlist, čtvrtý obsahuje aktuálně přehrávanou frontu, pátý umožňuje procházet soubory, šestý obsahuje filtry a sedmí nastavení.

Své nastavení si můžete uložit pomocí

:save

Tento přehrávač má samozřejmě daleko více možností a jejich rozebrání by bylo na delší příspěvek. Vše podstatné najdete v manuálových stránkách programu

man cmus

nebo v tutoriálu, který vás naučí základní techniky

man cmus-tutorial

Jen bych nerad zapomněl na jeden z nejdůležitějších příkazů a tím je:

:q

Tímto příkazem ukončíte cmus.

Aktualizace Archu

Tak jsem dnes po delší době zase aktualizoval stolní počítač. Jak mám ve zvyku šel jsem na to hrubou silou a ignoroval veškerá varování. Také jsem si samozřejmě neudělal zálohu, protože je to jen ztracený čas a prostor. Mno můžete zkusit hádat jak to dopadlo. Samozřejmě se v poslední verzi archu měnil filesystem, takže se všechny položky z /bin, /sbin a /usr/sbin přesunuli do adresáře /usr/bin. To by nebyl takový problém pokud bych používal jen a pouze věci z oficiálního repositáře. Tak tomu ale samozřejmě není.

Klasický postup takovéto aktualizace je velice prostý. Zjistíte si které všechny balíčky nejsou nainstalovány z repositáře, které jsou nainstalovány z neoficiálního repositáře a které soubory se tam prostě nějakým způsobem vyskytli. Všechny tyto soubory pak přesunete z adresářů /sbin, /bin a /usr/sbin do jediného adresáře /usr/bin. A pak si vesele aktualizujete systém.

Můj postup se trochu liší. Brutální silou a ignorací všech varování a oznámení aktualizuji systém a pokud se sesype tak to řeším. To se stalo například zrovna tentokrát a při minulé změně filesystému.

Takže jak jsem to řešil. Na mém notebooku jsem si stáhl aktuální obraz (*.iso) Archu a nahrál jej na flash disk. Byl jsem nemile překvapen, když nepomohl Unetbootin a tak jsem musel sáhnout ke klasické variantě s dd.

dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx

Za if= dosadíte cestu k obrazu disku, takže například u mne /home/hefay/Stažené/arch.iso a za of= adresu blokového zařízení. Tu můžete zjistit například pomocí příkazu lsblk. Opravdu dobře se přesvědčte, že se jedná o adresu USB klíčenky kterou chcete použít a že na ní nemáte žádná důležitá data! Poté jsem klíčenku vložil do PC, které jsem tak nádherně zlikvidoval, že se nespustila ani konzole. Obraz, který jsem nahrál na klíčenku a je stažitelný z webu archlinux.org, obsahuje autologin, takže se nemusíte bát. Pak už šlo jen o pár jednoduchých kroků, které sem ještě ke všemu musel udělat z důvodu konfliktu /usr/sbin.

loadkeys cz-qwertz
mount /dev/sda1 /mnt
mv /mnt/usr/sbin/* /mnt/usr/bin
rmdir /mnt/usr/sbin
arch-chroot /mnt pacman -Syu
reboot

A krize byla zažehnána. Systém normálně běží a zdá se, že vše funguje jak má.

Pokud se s tím setká i někdo z vás, tak vám snad tento příspěvek pomůže jako velmi rychlí fix. Nefunkční balíčky si přinejhorším nainstalujte znovu.

Rád bych vás ještě závěrem upozornil, že toto opravdu není korektní postup a ani správná oprava. Ale stačí to pokud se nechcete příliš zdržovat a potřebujete systém funkční co nejrychleji.

Escape sekvence?

Možná jste o nich slyšeli, možná ne. Pokusím se vám zde představit escape sekvence, které zřejmě nepoužijete příliš často a to ty, které vám umožní trochu oživit konzoli.

Barvy v mém terminálu
Barvy v mém terminálu

Na obrázku vidíte malou tabulku, která zachycuje barvy na mém terminálu. Vytvořil jsem jí pomocí jednoduchého skriptu. Řádky zachybují barvy textu a sloupce barvy pozadí, výsledná kombinace je pak zobrazena v místě, kde se daný řádek protíná se sloupcem.

Předem bych rád podotkl, že používám Arch linux a nevím zda je to v jiných distribucích naprosto stejné. Změníme si barvu textu třeba na oranžovou a necháme si černé pozadí. Takže do terminálu napište

echo -e "\e[33;40m"

Nyní máme oranžový text s černým pozadím, tedy za předpokladu, že máte barevný terminál a že vám barvy zobrazuje stejně jako mě.

Tak si to trochu popíšeme, ne? echo je program, který nám umožní vypsat text na standardní výstup, spouštíme ho s parametrem -e, který nám umožní používat escape sekvence. Uvozovky nám ohraničují text. Textem v prvním příkladě je escape sekvence, která nastaví požadovanou barvu. 

Escape sekvence je uvozena pomoci ESC[, což je v našem případě \e[, když se podíváte do dokumentace programu echo, uvidíte tam někde, že \e je escape.

man echo

Barvičky samozřejmě nejsou jediná věc, která se dá s escape sekvencemi dělat. Můžeme se posunout například o 5 řádků nahoru s kurzorem. A teď si ukážeme jak na to.

echo -e "\e[5A"

Na to samozřejmě musíte mít 5 řádků místa. Ty získáte třeba tak, že si vypíšete dmesg.

Tak, to by byl takový malý úvod do escape sekvencí v terminálu.

Když se člověk nepřesvědčí

Nedávno jsem psal, že jsem si pořídil nový notebook. Pokud si vzpomínáte tak se jednalo o ThinkPad Edge E530 a popisoval jsem jak se mi podařilo rozchodit prakticky vše.

Mno, neustále jsem měl problémy s nastavením APM pro disk, respektive se po probuzení ze spánku použila hodnota ve firmware, kterou výrobce nastavil neskutečně nízko (96). Bohužel jsem udělal chybu a nezkontroloval jsem si zda a kdy se pouští skripty, které tuto hodnotu měli zvedat až na 254, skripty se nepouštěli a tak mi zůstala hodnota 96 na celkem dlouho.

hdparm Load_Cycle_Count
hdparm Load_Cycle_Count

Jak vidíte tak Load_Cycle_Count se mi zvedl poměrně dost rychle – měření probíhá každou hodinu. Tímto tempem bych svůj pevný disk poslal velice rychle do kytek a tak jsem dnes udělal pár změn, které by to měli vyřešit. Pokud se vše podařilo, tak sem dám za pár dní „návod“ jak na to.