Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Konfigurace "přídavných" tlačítek na klávesnici je evergreen, který se táhne různými články a návody minimálně od doby, kdy na běžné PC klávesnice přibyly tři podivné klávesy (dvě s logem jakéhosi operačního systému, třetí s obrázkem menu). Pamatuji si své nadšení, když se mi po stisku jedné z takových záhadných kláves rozbalilo hlavní menu v KDE. Od těchto dávných dob přibyla na klávesnice spousta dalších tlačítek pro ovládání médií, webového prohlížeče, případně pro spouštění kancelářských programů. Nechat je bez využití by bylo ostudou pro každého správného linuxového geeka.
Svoje první experimenty s rozšiřujícími klávesami jsem prováděl podle výborného článku Multimediální a jinak vylepšené klávesnice pana Zdeňka Štěpánka. S dosaženými úspěchy jsem byl plně spokojen. Existuje však způsob, jak celou věc provést elegantněji a uživatelsky přívětivěji. Dokonce je zde možnost přispět do X.Org i pro neprogramátory, a ulehčit tak život technicky méně zdatným uživatelům.
Přiznám se, že nejsem odborníkem na X keyboard extension (xkb), nicméně metodou pokus-omyl jsem dosáhl úspěchu, o který bych se rád podělil se čtenáři abclinuxu.cz. Předpokládám, že experti na tuto problematiku neopomenou v diskuzi pod článkem opravit všechny moje diletantské chyby v terminologii a vůbec v chápání celého systému.
Řešení spočívá v mapování tzv. keycodes na symboly (keysym). Když si odpustím nudnou teorii o scankódech a nebudu se zatěžovat detaily práce s klávesnici v XFree86/X.Org a jeho subsystémech, mohu drze prohlásit, že keycode je hodnota vygenerovaná při stisku klávesy. Tato hodnota je předmětem dalšího zpracování, na jehož výstupu je symbol (keysym), který je poslán aplikaci. Sestavením tabulky mapující keycody na symboly dosáhneme podpory pro rozšiřující klávesy.
Ti, kdo četli zmíněný článek, nebo jsou jinak poučeni o celé problematice, vědí, že keycody jednotlivých rozšiřujících kláves zjistíme programem xev
. Symboly pro "multimediální" klávesnice nalezneme v souboru /usr/X11R6/lib/X11/XKeysymDB
, jak radí v diskusi pod článkem Petr Ferschmann. Já jsem svoje experimenty prováděl s klávesnicí Genius Twintouch Optical Office. Popiskám kláves na této klávesnici odpovídají následující symboly:
XF86Search,
XF86AudioMedia,
XF86WWW,
XF86AudioPrev,
XF86AudioNext,
XF86AudioMute,
XF86Calculator,
XF86AudioPlay,
XF86AudioPause,
XF86AudioStop,
XF86AudioLowerVolume,
XF86AudioRaiseVolume,
XF86Sleep,
XF86Favorites,
XF86Refresh,
XF86Stop,
XF86Forward,
XF86Back,
XF86Mail,
XF86MyComputer
Mapování keycodů na symboly najdeme v adresáři /etc/X11/xkb/symbols
. Mapování pro "multimediální" klávesnice pak v souboru /etc/X11/xkb/symbols/inet
. Pro svoji klávesnici jsem doplnil následující sekci:
... // Genius Wireless Twintouch Optical Office partial alphanumeric_keys xkb_symbols "geniustwintouch" { key <FK17> { [ XF86Search ] }; key <I01> { [ XF86AudioMedia ] }; key <I02> { [ XF86WWW ] }; key <I10> { [ XF86AudioPrev ] }; key <I19> { [ XF86AudioNext ] }; key <I20> { [ XF86AudioMute ] }; key <I21> { [ XF86Calculator ] }; key <I22> { [ XF86AudioPlay, XF86AudioPause ] }; key <I24> { [ XF86AudioStop ] }; key <I2E> { [ XF86AudioLowerVolume ] }; key <I30> { [ XF86AudioRaiseVolume ] }; key <I5F> { [ XF86Sleep ] }; key <I66> { [ XF86Favorites ] }; key <I67> { [ XF86Refresh ] }; key <I68> { [ XF86Stop ] }; key <I69> { [ XF86Forward ] }; key <I6A> { [ XF86Back ] }; key <I6C> { [ XF86Mail ] }; key <K67> { [ XF86MyComputer ] }; }; ...
Keycody se zapisují ve formě vyjadřující jejich relativní pozici na klávesnici (podivné kódy v ostrých závorkách za klíčovým slovem key
). Alespoň tak tvrdí popis v souboru /etc/X11/xkb/README.enhancing
. To je poměrně nepříjemné, protože program xev
vrací v položce označené keycode
jinou hodnotu. Po troše pátrání jsem přišel na to, že hodnoty vrácené programem xev
jsou mapovány na kýžené keycody (resp. formát vhodný pro mapování na symboly) v souboru /etc/X11/xkb/keycodes/xfree86
. Všimněte si položky xkb_symbols
. Její hodnotu (v mém případě jsem si vymyslel geniustwintouch
) použijeme jako identifikátor modelu klávesnice v souboru /etc/X11/XF86Config
(položka XkbModel
).
... Section "InputDevice" Option "XkbModel" "geniustwintouch" Identifier "Keyboard1" Driver "keyboard" Option "XkbLayout" "cz" Option "XkbOptions" "compose:rwin" EndSection ...
Než tak učiníme, musíme ještě hodnotu xkb_symbols
zapsat do souboru /etc/X11/xkb/rules/xfree86
(resp. /etc/X11/xkb/rules/xorg
).
... ! $inetkbds = a4techKB21 a4techKBS8 acer_tm_800 acpi airkey azonaRF2300 \ brother \ btc5113rf btc5126t btc9000 btc9000a btc9001ah btc5090\ cherryblue cherrybluea cherryblueb \ chicony chicony9885 \ compaqeak8 compaqik7 compaqik13 compaqik18 cymotionlinux \ armada presario ipaq \ dell inspiron dtk2000 \ dexxa diamond genius geniuscomfy2 geniustwintouch \ ennyah_dkb1008 gyration \ hpi6 hp2501 hp2505 hp5181 hpxe3gc hpxe3gf hpxe4xxx hpzt11xx \ hp500fa hp5xx hp5185 \ honeywell_euroboard \ rapidaccess rapidaccess2 rapidaccess2a \ ltcd logiaccess logicdp logicdpa logicdit logicink logiciink \ logiinkse logiinkseusb logiitc logiik itouch logiultrax \ mx1998 mx2500 mx2750 \ microsoftinet microsoftpro microsoftprousb microsoftprooem microsoftprose \ microsoftoffice microsoftmult \ oretec \ propeller scorpius \ qtronix \ samsung4500 samsung4510 \ sk1300 sk2500 sk6200 sk7100 sp_inet \ sven symplon toshiba_s3000 trust trustda yahoo ...
Nyní můžeme začít používat rozšiřující klávesy v aplikacích.
Chceme-li splnit předsevzetí maximální uživatelské přívětivosti, měli bychom umožnit uživateli, který nic netuší o nějakém souboru /etc/X11/XF86Config
, aby si "naklikal" model klávesnice například přímo v KDE (viz obrázek).
K tomu však musíme ještě upravit soubor /etc/X11/xkb/rules/xfree86.lst
(resp. /etc/X11/xkb/rules/xorg.lst
).
... dtk2000 DTK2000 ennyah_dkb1008 Ennyah DKB-1008 genius Genius Comfy KB-16M / Genius MM Keyboard KWD-910 geniuscomfy2 Genius Comfy KB-21e-Scroll geniustwintouch Genius Wireless TwinTouch Optical Office gyration Gyration hpi6 Hewlett-Packard Internet Keyboard hp2501 Hewlett-Packard SK-2501 Multimedia Keyboard hp2505 Hewlett-Packard SK-2505 Internet Keyboard ...
Pokud někdo očekával, že se z článku dozví, jak celá věc funguje, pravděpodobně jsem jej zklamal. Musím se přiznat, že nevím. Nicméně jsem přišel na fungující postup, jak celou věc nakonfigurovat. Věřím, že není daleko doba, kdy se tímto postupem nebudu muset zabývat. Nově zakoupenou supermoderní klávesnici s fůrou tlačítek na ovládání všeho možního si prostě vyberu v nějakém grafickém konfiguračním nástroji. Svoji úpravu souboru /etc/X11/xkb/symbols/inet
zasílám autorům X.Org. Majitelé multimediálních klávesnic celého světa, spojte se!
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Autor článku popisuje způsob, jak zařídit, aby klávesnici podporoval X server bez jakýchkoliv pomocných programů.O tom nepochybuju a netvrdil jsem, že Lineak je lepší, nebo dokonce systémovější...
Problém nevyřeší?Ne. Pouze obejde.
CdromDevice = /dev/cdrom Display_align = center Display_color = 0aff00 Display_font = -adobe-helvetica-bold-r-normal-*-*-240-*-*-p-*-*-* Display_hoffset = 0 Display_plugin = xosd Display_pos = bottom Display_soffset = 1 Display_timeout = 3 Display_voffset = 50 KeyboardType = LTCDE-YRQ57 MixerDevice = /dev/mixer RAWCommands = Screensaver = conffilename = /home/tomas/.lineak/lineakd.conf keystate_capslock = keystate_numlock = keystate_scrolllock = AudioLowerVolume = "aumix -w -3" AudioMute = "~/.lineak/mute" AudioRaiseVolume = "aumix -w +3" Back = Calculator = "kcalc" Mail = "kmail" WWW = "firefox"
lineakd --create typ-klavesnice
(viz man) a potom jsem připsal akce k jednotlivým tlačítkům.
Nehledě na to, že v článku je odkaz na již dřívější článek, který je imho výstižnější.Oba články ale popisují jiný postup. Tentokrát jde o přidání definice nové klávesnice přímo do X, což je sice možná trochu namáhavější, ale taková definice pak už v systému zůstane budou ji moci použít i další uživatelé X.
pokračování "seriálu" Cesta do hlubin kompilace jádra ... už v plánu asi není, že?Zatím to nevypadá, že by mohlo vyjít další pokračování. Bohužel jsem se s autorem seriálu neshodl na důležitých věcech, takže jsme vydávání museli přerušit. Pokud by se však našel někdo, kdo by chtěl navázat, ať se mi ozve.
$ cat /etc/acpi/events/hotkey event=hotkey ATKD .* action=/etc/acpi/actions/hotkey.sh %e $ cat /etc/acpi/actions/hotkey.sh #!/bin/bash case "$3" in # Mute button 00000032) amixer sset Front,0 toggle amixer sset Surround,0 toggle amixer sset Center,0 toggle amixer sset LFE,0 toggle ;; # Volume up button 00000030) amixer sset PCM,0 15+ ;; # Volume down button 00000031) amixer sset PCM,0 15- ;; *) logger "ACPI hotkey $3 is not defined" ;; esac
Více viz např.: https://bugzilla.novell.com/show_bug.cgi?id=159807Access Denied You are not authorized to access bug #159807. To see this bug, you must first log in to an account with the appropriate permissions. novell sucks
The main part of the problem is now in Xorg. GNOME knows XF86RaiseVolume and XF86LowerVolume key IDs (if enabled), but Xorg does not understand extended keyboard kernel codes (kernel 2.6). Kernel has to emulate AT keyboard for X. Kernel tries hard to emulate Microsoft Multimedia Keyboard for X and X tries to interpret this emulation by a keyboard map in the /etc/X11/xkb/symbols/inet. It fails for many keyboards. This old design was optimized for AT keyboards only and kernel 2.4 and cannot work in 2.6 properly. In particular cases, definition of a new hot key in GNOME control center causes hang of keyboard due to keycode conflict. To fix this situation, X must accept keys with codes above 240 or, in the best case, directly use key names recognized by kernel.
/etc/X11/xkb/rules/xorg.xml
, ale stale nic.
Netusi niekto, ako Gnome presvedcit, ze tu klavesnicu pozna?
Relevantna sekcia z xorg.conf
:
Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "a4tech_2348rp" # Option "XkbLayout" "us,sk" # Option "XkbVariant" ",qwerty" # Option "XkbOptions" "grp:Alt_shift_toggle" EndSection(skusal som to s aj bez zakomentovnych riadkov)
inet
jsem zjistil, že je tato programovatelná klavesa nadefinovaná dvakrát:
xkb_symbols "logitech_base" { ... key <I2F> { [ XF86AudioRaiseVolume ] }; key <I30> { [ XF86AudioRaiseVolume ] }; ... }V mém připadě je ten správný key I30 a ten nesprávný jsem zakomentoval.
partial alphanumeric_keys xkb_symbols "geniusns" { // This USB mouse uses HID mapping for some keys on it // as keyboard keys. With use of ExplorerPS/2 driver you // can have most buttons working. There is one // not sending keycode nor mouse button - desktop showing // made by Petr Mensik pihhan(at)cipis.net. name[Group1]= "Genius NetScrool+ Superior Mouse"; key <I2E> { [ XF86AudioRaiseVolume ] }; key <I30> { [ XF86AudioLowerVolume ] }; key <I02> { [ XF86WWW, XF86Mail ] }; key <I22> { [ XF86AudioPlay, XF86AudioPause ] }; };Ty co to obsahuje jsou stejné jako uvedené v článku u klávesnice. Akorát moc nechápu, proč samotný Genius nemůže mít jednotné kódy. Momentálně už jsem natrefil na 3. druh rozložení, a to mám na svojí myši jenom 4 funkční čudly s keykódy, takže by se to mělo obvykle shodovat. I02 ten mail jsem si přidal jako extra, ne že bych to někdy využil. Máte někdo další myš s multimediálními tlačítky? funguje vám to nějak? Musím říct že aspoň ve WMP to fungovalo bez instalace driveru, v Debianu to rozchodit byl celkem porod. Hlavně už blbé je to, že většinou to nikde není předvoleno. Nevíte jak moc jsou linuxy schopné detekovat automaticky USB myši i s jejich rozšířeními? Mám sice debian, který není tak moc zaměřený na desktop, ale stejně mám za to, že to je s automatickou detekcí myši i s využitím případných featur špatné.
// Labtec Internet Keyboard partial alphanumeric_keys xkb_symbols "labtecinternet" { key <I5F> { [ XF86Sleep ] }; key <I22> { [ XF86AudioPlay, XF86AudioPause ] }; key <I24> { [ XF86AudioStop ] }; key <I10> { [ XF86AudioPrev ] }; key <I19> { [ XF86AudioNext ] }; key <I20> { [ XF86AudioMute ] }; key <I2E> { [ XF86AudioLowerVolume ] }; key <I30> { [ XF86AudioRaiseVolume ] }; key <I32> { [ XF86WWW ] }; key <I6C> { [ XF86Mail ] }; key <I65> { [ XF86Search ] }; key <I66> { [ XF86MyComputer ] }; };Je to celkem slušná a levná klávesnice (voděodolná :D)
// Genius SlimStar, USB partial alphanumeric_keys xkb_symbols "geniusslimstar" { key <I5F> { [ XF86Standby ] }; key <XFER> { [ XF86AudioMedia ] }; key <I22> { [ XF86AudioPlay, XF86AudioPause ] }; key <I24> { [ XF86AudioStop ] }; key <I2E> { [ XF86AudioLowerVolume ] }; key <I30> { [ XF86AudioRaiseVolume ] }; key <I6A> { [ XF86Back ] }; key <I02> { [ XF86WWW ] }; key <I69> { [ XF86Forward ] }; key <I6C> { [ XF86Mail ] }; key <I21> { [ XF86Calculator ] }; key <K67> { [ XF86MyComputer ] }; }btw. nemohl by sem nekdo hodit email na nekoho kompetentniho z X.Org, komu poslat konfiguraci?
/etc/X11/xkb/*
, ale v /usr/share/X11/xkb/*
, coz je podle meho logictejsi=)
// Labtec // Labtec Ultra-flat Wireless Desktop (model Y-RAE68) partial alphanumeric_keys xkb_symbols "labtecufwd" { key <MENU> { [ Menu ] }; key <I22> { [ XF86AudioPlay, XF86AudioPause ] }; key <I24> { [ XF86AudioStop ] }; key <I10> { [ XF86AudioPrev ] }; key <I19> { [ XF86AudioNext ] }; key <I20> { [ XF86AudioMute ] }; key <I2E> { [ XF86AudioLowerVolume ] }; key <I30> { [ XF86AudioRaiseVolume ] }; key <I6C> { [ XF86Mail ] }; key <I32> { [ XF86HomePage ] }; key <I66> { [ XF86Favorites ] }; key <I67> { [ XF86Refresh ] }; key <I65> { [ XF86Search ] }; key <I6B> { [ XF86MyComputer ] }; key <I6D> { [ XF86AudioMedia ] }; };
// Eurocase Waterproof KB-8101 Multimedia Keyboard
partial alphanumeric_keys
xkb_symbols "eurocasemk" {
key <I5E> { [ XF86PowerOff ] };
key <I5F> { [ XF86Sleep ] };
key <I5F> { [ XF86AudioMedia ] };
key <I22> { [ XF86AudioPlay, XF86AudioPause ] };
key <I24> { [ XF86AudioStop ] };
key <I10> { [ XF86AudioPrev ] };
key <I19> { [ XF86AudioNext ] };
key <I2E> { [ XF86AudioLowerVolume ] };
key <I30> { [ XF86AudioRaiseVolume ] };
key <I20> { [ XF86AudioMute ] };
key <I6D> { [ XF86AudioMedia ] };
key <I32> { [ XF86MyComputer ] };
key <I6C> { [ XF86Mail ] };
};