Updated n900[rx-51] keyboard layout for linux fremantle, leste, and others ========================================================================== Version: enyc0.3 2019-07-27 [Minor corrections and reading-clarity]. Version: enyc0.4 2020-02-01 [Further corrections, explained N900]. Design Goals / Decisions: * Upgrade the limited us/english_base keyboard layout without breaking other dependent layouts. * Support All ASCII Printable characters (adds %{}[]|^<>~` ), reducing necessity for onscreen-kbd. * Reduce/Avoid the need for screen-hungry osso-xterm toolbar. * Support additional PC-style keys as usable in Fremantle (adds Esc Tab Insert PgDn PgUp Home End). * Support all F-keys and note their maemo-uses, can always be re-assigned to something else. * Inspired in part by https://wiki.maemo.org/Remapping_keyboard/user_vis_awesome_kbdmapping , and (more limited) postmarketOS and Arch n900 layouts. * For Leste/others, remove seemingly fremantle-specific KP_Enter workaround. * Maintain backwards-compatibility, all existing base-keys (layers 1-3) kept as-is [except BKSP l3]. * Careful choice of layout to make new keys reasonably easy to find/memorize, taking advantage of similarities, relative-positions, adjacencies and associations as much as possible [e.g. Caret associated to Ctrl shorterns to 'C' key, % # both used as comment-characters, ...]. Layout plan: shift+fn: ----------F1-F12--------- ( ) Top Row fn: 1 2 3 4 5 6 7 8 9 0 = Esc ( ) q w e r t y u i o p , <- ( stift+<- = Delete ) shift+fn: % { } [ ]= | Ins ( ) Middle Row fn: * + # - _ ( ) & ! ? ( fn+RETN = Tab ) a s d f g h j k l . ( ) Bottom Row fn: £ $ € / \ " ' @ ( fn+Arrows = ) shift+fn: = ^ < > ~ ` ( PgUp/PgDn/Home/End ) z x c v b n m SPC ( ) (Leste version now has [] on shift+fn+ a,s keys for those with unpatched-kernel) Bugs/Issues worked around: * fn+shift+[k/j] and fn+shift/[z/x] cannot be distinguished, marked with = in plan above, but with patched-kernel you can use either one of each pair, or indeed intentionally produce a pair of characters in other custom layouts. * Avoid 'shift' for Tab, use fn-only. * Avoid 'shift' for Esc, use fn-only. * Avoid 'shift' for arrows (conflicts with text-selection), use fn-only. * See https://wiki.maemo.org/Remapping_keyboard#Known_Remap_Bugs Installation for Fremantle/CSSU users: * Simply (as root) rename /usr/share/X11/xkb/symbols/nokia_vndr/rx-51 and then install the rx-51.fremantle-enyc? file as rx-51. MAKE SURE "setxkbmap us" works before reboot/shutdown, to avoid unbootable system. * Optionally execute these 2 commands (do not need root) to disable the osso-xterm toolbar:- gconftool-2 -s /apps/osso/xterm/toolbar -t bool false gconftool-2 -s /apps/osso/xterm/toolbar_fullscreen -t bool false NOTE you will need F6(shift+fn+y) to get in/out of fullscreen (and also to make the toolbar initially disappear). * Those with customized layouts / non-default terminal should pay particular attention to check Delete (shift+BKSP) works for you, you MAY want to change KP_Delete to Delete (see comments in new rx-51 file.) Installation for Leste-alpha/other users: * Exactly the same file SHOULD work for jessie/stretch/ascii/leste-alpha which all use exactly the same default rx-51 file, probably many other distributions. * Simply (as root) rename /usr/share/X11/xkb/symbols/nokia_vndr/rx-51 and then install the rx-51.leste-enyc? file as rx-51. MAKE SURE "setxkbmap us" works before rebooting a running system. * Optionally disable osso-xterm toolbar, same as Fremantle instructions above. * shift+fn+Arrows will allow you to scroll in osso-xterm. * Optionally execute these 2 commands (do not need root) to disable the osso-xterm toolbar:- gconftool-2 -s /apps/osso/xterm/toolbar -t bool false gconftool-2 -s /apps/osso/xterm/toolbar_fullscreen -t bool false NOTE you will need F6(shift+fn+y) to get in/out of fullscreen (and also to make the toolbar initially disappear). Possible Regressions/Controversies: * RETN button on leste/other has now been programmed to produce more-normal "Return" rather than KP_Enter which is confirmed as a Fremantle-specific workaround. * Shift+BKSP on fremantle has now been programmed to produce KP_Delete which makes delete more functional under osso-xterm than before, not found any regressions as-yet. * Insert key works in Fremantle osso_notes, but may not be very useful [can always be reassigned]. Feedback Please: * Usability//Arkwardness of layout -> Suggested layout-changes (with reasons)? * Additional English-related or PC keys worthy of inclusion [SysRq-button? PrintScreen?] * Bear in mind this is not intended to be perfect for anybody's custom-configs nor show any affiliation to any particular text-editor/mailer/etc, but rather form a "backwards-compatible new base layout". * Any views on affects on non-us/uk english usage? * CHECK FOR REGRESSIONS with varied uses/applications, especially Del on fremantle, Enter on Leste/others. For now, please just direct message to 'enyc' in freenode #maemo-leste, or /msg enyc me for longer reports, alternatively email NICKNAME@NICKNAME.org.uk Intentions going forwards: * Get this tested in leste-alpha new image. * Get a console version equivalent available [start from:-] https://raw.githubusercontent.com/archlinuxarm-n900/n900-keymaps/master/rx51_us.map * Collect further initial feedback (thankyou to sicelo,mijofa,daniels,duncan^,u0d7i), intending to make any minor-amendments, dvorak and de and other versions. [e.g. look at PostMarketOS's fn+[vol+-] console-switching maybe?]. * Try to get advice to get kernel patch upstream, in a way that only activates on n900 without affecting other twl4030 keyboard users. * If all is well, ultimately suggest an update to upstream devuan/debian/freedesktop.org default rx-51 layout file [as this should be essentially fully backwards-compatible and non-conflicting]. Similarly for console keyboard map.