Deprecated: Creation of dynamic property c2c_AddAdminCSS::$admin_options_name is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 106 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$config is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 106 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$disable_contextual_help is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 106 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$disable_update_check is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 106 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$hook_prefix is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 106 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$form_name is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 106 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$menu_name is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 106 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$name is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 106 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$nonce_field is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 106 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$settings_page is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 106 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$show_admin is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 106 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$textdomain is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 106 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$textdomain_subdir is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 106 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$author_prefix is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 109 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$id_base is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 110 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$options_page is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 111 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$plugin_basename is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 112 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$plugin_file is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 113 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$plugin_path is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 114 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$u_id_base is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 115 Deprecated: Creation of dynamic property c2c_AddAdminCSS::$version is deprecated in /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php on line 116 Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/plugins/add-admin-css/c2c-plugin.php:106) in /var/www/html/wp-includes/rest-api/class-wp-rest-server.php on line 1768 {"id":152,"date":"2022-06-06T16:46:38","date_gmt":"2022-06-06T09:46:38","guid":{"rendered":"https:\/\/erwin.co\/?p=152"},"modified":"2022-07-05T18:32:49","modified_gmt":"2022-07-05T11:32:49","slug":"adding-a-hyper-modifier-key-to-your-keyboard-because-shift-ctrl-alt-meta-super-arent-enough","status":"publish","type":"post","link":"https:\/\/erwin.co\/adding-a-hyper-modifier-key-to-your-keyboard-because-shift-ctrl-alt-meta-super-arent-enough\/","title":{"rendered":"Adding a `hyper` modifier key to your keyboard, because shift\/ctrl\/alt\/meta\/super aren’t enough"},"content":{"rendered":"\n

TL\/DR: Try this in your ~\/.Xmodmap log out of X11 and log back in. If you moved to Wayland, hopefully one day we'll get stable APIs for 3rd party window utilities. Until that happens, I recommend switching back to X11 if you can.<\/p>\n\n\n\n

clear mod1\nclear mod2\nclear mod3\nclear mod4\nclear mod5\n\nkeycode 248 = Hyper_L\n\nadd Mod1 = Alt_L Alt_R\nadd Mod2 = Num_Lock\nadd Mod3 = Hyper_L\nadd mod4 = Super_L Super_R\nadd mod5 = ISO_Level3_Shift Mode_switch<\/code><\/pre>\n\n\n\n

Note that you can't blindly copy code 248<\/code>... You need to find a key that will work for your keyboard.<\/p>\n\n\n\n

\"\"
Soft fn<\/code> key on keyboard<\/figcaption><\/figure>\n\n\n\n

Use xev -event keyboard<\/code> to find the keycode for the key that you want to use. While xev is running, focus on the xev window and press the key you want to use. You'll see the KeyRelease event<\/code> show on your console. Best to use the xev -event keyboard filter so that all mouse events can be ignored.<\/p>\n\n\n\n

\"\"
In my example, this is AFTER I've use Xmodmap to map this key to Hyper_L... You won't see this until your remapping is successful.<\/figcaption><\/figure>\n\n\n\n

You need to make sure Xmodmap will actually start with your widow manager, and for me, it works best with a delay. So I have a file ~\/.config\/autostart\/xmodmap.desktop<\/p>\n\n\n\n

[Desktop Entry]\nName=xmodmap\nComment=Xmodmap Keyboard Modification\nExec=delay_xmodmap\nTerminal=false\nType=Application<\/code><\/pre>\n\n\n\n

And then delay_xmodmap<\/code> is a trivial script that just sleeps for a bit before launching.<\/p>\n\n\n\n

#!\/bin\/bash\n\nsleep 10;\nxmodmap ~\/.Xmodmap<\/code><\/pre>\n\n\n\n

Using a hot key manager like sxhkd<\/a> you should be able to map shortcuts to the Hyper key now. Put something like this in your ~\/.config\/sxhkd\/sxhkdrc to test that Hyper is working.<\/p>\n\n\n\n

hyper + {a-z}\n        notify-send \"hyper {a-z}\"<\/code><\/pre>\n\n\n\n

Every keyboard I've ever seen has a SHIFT key and CONTROL keys. Historical Unix vs Mac vs Windows are a bit different for the other keys:
Alt == Meta (Option in the Mac World)
Windows Key == Super Key == Command Key<\/p>\n\n\n\n

So you basically get 3 modifiers on each key, but SHIFT is so common for text it's dangerous for most of us to configure that.<\/p>\n\n\n\n

If you're on Linux, and you have a keyboard that generates an actual \"keycode\" (some fn<\/code> labeled keys actually run software in the keyboard to send a different keycode to the OS, without the OS knowing that a modifier was involved).<\/p>\n\n\n\n

Unix<\/td>Win<\/td>Mac<\/td>Linux<\/td><\/tr>
mod1<\/td>Alt<\/td>Option<\/td>Alt_L Alt_R \/ Meta<\/td><\/tr>
mod2<\/td>Num Lock<\/td><\/td>Num Lock<\/td><\/tr>
mod3<\/td><\/td><\/td>HYPER<\/strong><\/td><\/tr>
mod4<\/td>Windows Key<\/td>Command Key<\/td>Super_L Super_R <\/td><\/tr>
mod5<\/td><\/td><\/td>ISO_Level3_Shift<\/td><\/tr><\/tbody><\/table>
X11 mod1 keys<\/figcaption><\/figure>\n\n\n\n

<\/p>\n","protected":false},"excerpt":{"rendered":"

TL\/DR: Try this in your ~\/.Xmodmap log out of X11 and log back in. If you moved to Wayland, hopefully one day we’ll get stable APIs for 3rd party window utilities. Until that happens, I recommend switching back to X11 if you can. Note that you can’t blindly copy code 248… You need to find […]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[15,16],"tags":[],"_links":{"self":[{"href":"https:\/\/erwin.co\/wp-json\/wp\/v2\/posts\/152"}],"collection":[{"href":"https:\/\/erwin.co\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/erwin.co\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/erwin.co\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/erwin.co\/wp-json\/wp\/v2\/comments?post=152"}],"version-history":[{"count":2,"href":"https:\/\/erwin.co\/wp-json\/wp\/v2\/posts\/152\/revisions"}],"predecessor-version":[{"id":156,"href":"https:\/\/erwin.co\/wp-json\/wp\/v2\/posts\/152\/revisions\/156"}],"wp:attachment":[{"href":"https:\/\/erwin.co\/wp-json\/wp\/v2\/media?parent=152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/erwin.co\/wp-json\/wp\/v2\/categories?post=152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/erwin.co\/wp-json\/wp\/v2\/tags?post=152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}