Thicket data repository for the EEG
1{
2 "id": "https://mort.io/blog/elcapitan-maps/",
3 "title": "Of Mice and Keyboards",
4 "link": "https://mort.io/blog/elcapitan-maps/",
5 "updated": "2015-11-21T00:00:00",
6 "published": "2015-11-21T00:00:00",
7 "summary": "<p>A bit of a delay since the last post – lots going on! But anyway: I\n(relatively) recently upgraded my old skool Macbook Pro (look! built-in Ethernet\nport! DVD drive!) to El Capitan. This was generally rather less faff that the\nprevious upgrade, though it did seem to take rather more reboots than might have\nbeen assumed to be <em>strictly</em> necessary before it settled down, and I’d\nremembered to fix up permissions for Homebrew with <code>sudo chown -R $(whoami):admin /usr/local</code>. So that was ok.</p>\n<p><img alt=\"Macbook Pro UK Keyboard\" src=\"https://mort.io/blog/elcapitan-maps/keyboard-small.png\" title=\"Macbook Pro\nUK Keyboard\"></p>\n<p>Except… I have a slightly odd keyboard and mouse setup. It’s a UK Macbook\nwhich means a slightly tweaked keyboard layout compared to the standard US\nMacbook keyboard. At my desk, I also use a <em>Microsoft Digital Media Keyboard</em> –\nnice action (for me!) plus some handy shortcut keys – and a <em>Microsoft 5-Button\nMouse with IntelliEye</em>. Now, until El Capitan I’d happily been using the\nMicrosoft provided software to make use of the extra mouse buttons and shortcut\nkeys, coupled with a\n<a href=\"http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele\">Ukelele-generated</a>\nkeymap to handle the oddities of the UK laptop keyboard (like, who in the world\nreally needs <code>§</code> at the top-left key, below <code>escape</code> rather than <code>`</code>; and\ndoesn’t need an easily accessible <code>#</code>?).</p>\n<p>This had never been entirely satisfactory – I had to have a standard keymap\ninstalled in addition to my modified one, and some apps (all of Microsoft\nOffice, I’m looking at you) liked to intermittently flip the keymap away from my\nkeymap to the standard issue on, including undoing my remapping of <code>caps lock</code>\nto <code>ctrl</code>. This was annoying, but having it completely break was intolerable.</p>\n<p>So I went hunting for alternatives and am now very happy with\n<a href=\"https://pqrs.org/osx/karabiner/\">Karabiner.app</a> for standard keyboard remappings, and fairly happy\nwith <a href=\"http://www.usboverdrive.com\">USB Overdrive</a> to handle the mouse and the\nspecial Microsoft Digital Media Keyboard shortcut keys.</p>\n<h3><a href=\"https://mort.io/blog/elcapitan-maps/#usb-overdrive\">USB Overdrive</a></h3>\n<p>USB Overdrive seems to do the mouse mappings correctly, having detected the\ndevice as a “Microsoft 5-Button Mouse with IntelliEye(tm), Any Application” –\n<code>Button 4</code> and <code>Button 5</code> can be remapped to <code>forward</code> and <code>back</code>, just as I\nlike it.</p>\n<p><img alt=\"USB Overdrive\" src=\"https://mort.io/blog/elcapitan-maps/usboverdrive.png\" title=\"USB Overdrive Configuration\"></p>\n<p>It also allows me to repurpose some of the extra keys on my Microsoft keyboard\nthat <a href=\"https://pqrs.org/osx/karabiner/\">Karabiner</a> doesn’t seem able to see– so I get one touch play/pause of\niTunes and other such delights.</p>\n<h3><a href=\"https://mort.io/blog/elcapitan-maps/#karabiner-app\">Karabiner.app</a></h3>\n<p><a href=\"https://pqrs.org/osx/karabiner/\">Karabiner</a> took a bit more setting up but does a very nice job. I needed to\nremap certain keys differently on the two different keyboards to make both\nconsistent and to fix some of the weirder (to my mind!) decisions both Microsoft\nand (particualrly) Apple have taken with their layouts. The result is an\n<a href=\"https://github.com/mor1/rc-files/blob/master/karabiner.xml\">XML configuration file</a>, symlinked by <code>~/Library/Application Support/Karabiner/private.xml</code>. This applies two keymaps based on the detected\ndevice, using product ID codes determined by the <code>EventViewer</code> app that comes\nwith <a href=\"https://pqrs.org/osx/karabiner/\">Karabiner</a>:</p>\n<pre><code><span><span><span><</span><span>deviceproductdef</span><span>></span></span>\n</span><span> <span><span><</span><span>productname</span><span>></span></span>MACBOOK_PRO_UK_KEYBOARD<span><span></</span><span>productname</span><span>></span></span>\n</span><span> <span><span><</span><span>productid</span><span>></span></span>0x0253<span><span></</span><span>productid</span><span>></span></span>\n</span><span><span><span></</span><span>deviceproductdef</span><span>></span></span>\n</span><span>\n</span><span><span><span><</span><span>deviceproductdef</span><span>></span></span>\n</span><span> <span><span><</span><span>productname</span><span>></span></span>DIGITAL_MEDIA_KEYBOARD<span><span></</span><span>productname</span><span>></span></span>\n</span><span> <span><span><</span><span>productid</span><span>></span></span>0x00b4<span><span></</span><span>productid</span><span>></span></span>\n</span><span><span><span></</span><span>deviceproductdef</span><span>></span></span>\n</span><span>\n</span><span><span><span><</span><span>deviceproductdef</span><span>></span></span>\n</span><span> <span><span><</span><span>productname</span><span>></span></span>FIVE_BUTTON_MOUSE_WITH_INTELLIEYE<span><span></</span><span>productname</span><span>></span></span>\n</span><span> <span><span><</span><span>productid</span><span>></span></span>0x0039<span><span></</span><span>productid</span><span>></span></span>\n</span><span><span><span></</span><span>deviceproductdef</span><span>></span></span>\n</span></code></pre>\n<p>There are then two <code><item></item></code> stanzas that configure the two different\nkeyboards, e.g.,</p>\n<pre><code><span><span><span><</span><span>item</span><span>></span></span>\n</span><span> <span><span><</span><span>name</span><span>></span></span>Keyboard mappings for Microsoft keyboard<span><span></</span><span>name</span><span>></span></span>\n</span><span> <span><span><</span><span>identifier</span><span>></span></span>private.io.mort.microsoft_keyboard<span><span></</span><span>identifier</span><span>></span></span>\n</span><span> <span><span><</span><span>device_only</span><span>></span></span>\n</span><span> DeviceVendor::MICROSOFT,\n</span><span> DeviceProduct::DIGITAL_MEDIA_KEYBOARD\n</span><span> <span><span></</span><span>device</span><span>></span></span>\n</span><span> ...\n</span></code></pre>\n<p>Each of these contains a number of <code><autogen></autogen></code> stanza mapping specific\nkeycodes for that keymap. For example, I want the top-left key on the main block\nto be <code>`</code> and, when shifted, to be <code>€</code>. This leads to the following on the\nMicrosoft keyboard:</p>\n<pre><code><span><span><span><!--</span> shift-` to € <span>--></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::BACKQUOTE, ModifierFlag::SHIFT_L | ModifierFlag::NONE,\n</span><span> KeyCode::KEY_2, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::BACKQUOTE, ModifierFlag::SHIFT_R | ModifierFlag::NONE,\n</span><span> KeyCode::KEY_2, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span></code></pre>\n<p>…but to the following on the Macbook built-in UK keyboard, to take account\nfirst of the different keycode it generates but also to ensure that when used\nwith command and command-shift, the standard behaviour of cycling between\nwindows works:</p>\n<pre><code><span><span><span><!--</span> top-left § to ` <span>--></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::DANISH_DOLLAR, ModifierFlag::NONE,\n</span><span> KeyCode::BACKQUOTE\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span><span><span><span><!--</span> ...with shift, to € <span>--></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::DANISH_DOLLAR, ModifierFlag::SHIFT_L | ModifierFlag::NONE,\n</span><span> KeyCode::KEY_2, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::DANISH_DOLLAR, ModifierFlag::SHIFT_R | ModifierFlag::NONE,\n</span><span> KeyCode::KEY_2, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span><span><span><span><!--</span> ...with COMMAND/SHIFT, so that cycle-window-{forward,back} work <span>--></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::DANISH_DOLLAR, ModifierFlag::COMMAND_L | ModifierFlag::NONE,\n</span><span> KeyCode::BACKQUOTE, ModifierFlag::COMMAND_R\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::DANISH_DOLLAR, ModifierFlag::COMMAND_L | ModifierFlag::SHIFT_L | ModifierFlag::NONE,\n</span><span> KeyCode::BACKQUOTE, ModifierFlag::COMMAND_R | ModifierFlag::SHIFT_R\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span></code></pre>\n<p>There are a number of other mappings made in <a href=\"https://github.com/mor1/rc-files/blob/master/karabiner.xml\">karabiner.xml</a>: <code>shift-'</code> is\n<code>@</code>, <code>shift-2</code> is <code>\"</code>, <code>shift-3</code> is <code>£</code>, and resolving general confusion among\n<code>#</code>, <code>\\</code>, <code>~</code>, and <code>|</code>.</p>\n<h3><a href=\"https://mort.io/blog/elcapitan-maps/#emacs\">Emacs</a></h3>\n<p>That fixed things for the terminal and for most apps – the only remaining\nsticking point was Emacs. I don’t pretend to understand the entire chain of\nevent processing but suffice it to say that Emacs was receiving <code>shift-@</code> and\n<code>shift-3</code> without knowing what to do with them. Fortunately, when coupled with\n<a href=\"https://github.com/mor1/rc-files/blob/master/emacs.d/init.el#L929-L1019\">my hacks to enforce a <code>my-keys-minor-mode</code> to override everything</a>,\nthe fix was pretty straightforward:</p>\n<pre><code><span><span><span>(</span>define<span>-</span>key my<span>-</span>keys<span>-</span>minor<span>-</span>mode<span>-</span><span>map</span> <span><span>(</span>kbd <span><span>"</span>s-@<span>"</span></span><span>)</span></span> <span><span>"</span>€<span>"</span></span><span>)</span></span>\n</span><span><span><span>(</span>define<span>-</span>key my<span>-</span>keys<span>-</span>minor<span>-</span>mode<span>-</span><span>map</span> <span><span>(</span>kbd <span><span>"</span>s-3<span>"</span></span><span>)</span></span>\n</span></span><span><span> '<span><span>(</span><span>lambda</span> <span><span>(</span><span>)</span></span> <span><span>(</span>interactive<span>)</span></span> <span><span>(</span>insert<span>-</span><span>char</span> <span><span>#</span>x00A3</span><span>)</span></span><span>)</span></span><span>)</span></span> <span><span>;</span> £\n</span></span></code></pre>\n<h3><a href=\"https://mort.io/blog/elcapitan-maps/#result\">Result?</a></h3>\n<p>A <strong>significant</strong> decrease in the need I feel to curse because my keyboard has\nchanged in the middle of typing! It seems that keyboards remain, like time and\nterminals, one of those <em>Really Hard</em> things for computers/manufacturers to\nhandle…</p>\n<p><em>Note: Thanks to <a href=\"http://www.amp-what.com/unicode/search/\">http://www.amp-what.com/unicode/search/</a> for an easy way to\nhunt down some of the unicode symbols used above!</em></p>",
8 "content": "<p>A bit of a delay since the last post – lots going on! But anyway: I\n(relatively) recently upgraded my old skool Macbook Pro (look! built-in Ethernet\nport! DVD drive!) to El Capitan. This was generally rather less faff that the\nprevious upgrade, though it did seem to take rather more reboots than might have\nbeen assumed to be <em>strictly</em> necessary before it settled down, and I’d\nremembered to fix up permissions for Homebrew with <code>sudo chown -R $(whoami):admin /usr/local</code>. So that was ok.</p>\n<p><img alt=\"Macbook Pro UK Keyboard\" src=\"https://mort.io/blog/elcapitan-maps/keyboard-small.png\" title=\"Macbook Pro\nUK Keyboard\"></p>\n<p>Except… I have a slightly odd keyboard and mouse setup. It’s a UK Macbook\nwhich means a slightly tweaked keyboard layout compared to the standard US\nMacbook keyboard. At my desk, I also use a <em>Microsoft Digital Media Keyboard</em> –\nnice action (for me!) plus some handy shortcut keys – and a <em>Microsoft 5-Button\nMouse with IntelliEye</em>. Now, until El Capitan I’d happily been using the\nMicrosoft provided software to make use of the extra mouse buttons and shortcut\nkeys, coupled with a\n<a href=\"http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele\">Ukelele-generated</a>\nkeymap to handle the oddities of the UK laptop keyboard (like, who in the world\nreally needs <code>§</code> at the top-left key, below <code>escape</code> rather than <code>`</code>; and\ndoesn’t need an easily accessible <code>#</code>?).</p>\n<p>This had never been entirely satisfactory – I had to have a standard keymap\ninstalled in addition to my modified one, and some apps (all of Microsoft\nOffice, I’m looking at you) liked to intermittently flip the keymap away from my\nkeymap to the standard issue on, including undoing my remapping of <code>caps lock</code>\nto <code>ctrl</code>. This was annoying, but having it completely break was intolerable.</p>\n<p>So I went hunting for alternatives and am now very happy with\n<a href=\"https://pqrs.org/osx/karabiner/\">Karabiner.app</a> for standard keyboard remappings, and fairly happy\nwith <a href=\"http://www.usboverdrive.com\">USB Overdrive</a> to handle the mouse and the\nspecial Microsoft Digital Media Keyboard shortcut keys.</p>\n<h3><a href=\"https://mort.io/blog/elcapitan-maps/#usb-overdrive\">USB Overdrive</a></h3>\n<p>USB Overdrive seems to do the mouse mappings correctly, having detected the\ndevice as a “Microsoft 5-Button Mouse with IntelliEye(tm), Any Application” –\n<code>Button 4</code> and <code>Button 5</code> can be remapped to <code>forward</code> and <code>back</code>, just as I\nlike it.</p>\n<p><img alt=\"USB Overdrive\" src=\"https://mort.io/blog/elcapitan-maps/usboverdrive.png\" title=\"USB Overdrive Configuration\"></p>\n<p>It also allows me to repurpose some of the extra keys on my Microsoft keyboard\nthat <a href=\"https://pqrs.org/osx/karabiner/\">Karabiner</a> doesn’t seem able to see– so I get one touch play/pause of\niTunes and other such delights.</p>\n<h3><a href=\"https://mort.io/blog/elcapitan-maps/#karabiner-app\">Karabiner.app</a></h3>\n<p><a href=\"https://pqrs.org/osx/karabiner/\">Karabiner</a> took a bit more setting up but does a very nice job. I needed to\nremap certain keys differently on the two different keyboards to make both\nconsistent and to fix some of the weirder (to my mind!) decisions both Microsoft\nand (particualrly) Apple have taken with their layouts. The result is an\n<a href=\"https://github.com/mor1/rc-files/blob/master/karabiner.xml\">XML configuration file</a>, symlinked by <code>~/Library/Application Support/Karabiner/private.xml</code>. This applies two keymaps based on the detected\ndevice, using product ID codes determined by the <code>EventViewer</code> app that comes\nwith <a href=\"https://pqrs.org/osx/karabiner/\">Karabiner</a>:</p>\n<pre><code><span><span><span><</span><span>deviceproductdef</span><span>></span></span>\n</span><span> <span><span><</span><span>productname</span><span>></span></span>MACBOOK_PRO_UK_KEYBOARD<span><span></</span><span>productname</span><span>></span></span>\n</span><span> <span><span><</span><span>productid</span><span>></span></span>0x0253<span><span></</span><span>productid</span><span>></span></span>\n</span><span><span><span></</span><span>deviceproductdef</span><span>></span></span>\n</span><span>\n</span><span><span><span><</span><span>deviceproductdef</span><span>></span></span>\n</span><span> <span><span><</span><span>productname</span><span>></span></span>DIGITAL_MEDIA_KEYBOARD<span><span></</span><span>productname</span><span>></span></span>\n</span><span> <span><span><</span><span>productid</span><span>></span></span>0x00b4<span><span></</span><span>productid</span><span>></span></span>\n</span><span><span><span></</span><span>deviceproductdef</span><span>></span></span>\n</span><span>\n</span><span><span><span><</span><span>deviceproductdef</span><span>></span></span>\n</span><span> <span><span><</span><span>productname</span><span>></span></span>FIVE_BUTTON_MOUSE_WITH_INTELLIEYE<span><span></</span><span>productname</span><span>></span></span>\n</span><span> <span><span><</span><span>productid</span><span>></span></span>0x0039<span><span></</span><span>productid</span><span>></span></span>\n</span><span><span><span></</span><span>deviceproductdef</span><span>></span></span>\n</span></code></pre>\n<p>There are then two <code><item></item></code> stanzas that configure the two different\nkeyboards, e.g.,</p>\n<pre><code><span><span><span><</span><span>item</span><span>></span></span>\n</span><span> <span><span><</span><span>name</span><span>></span></span>Keyboard mappings for Microsoft keyboard<span><span></</span><span>name</span><span>></span></span>\n</span><span> <span><span><</span><span>identifier</span><span>></span></span>private.io.mort.microsoft_keyboard<span><span></</span><span>identifier</span><span>></span></span>\n</span><span> <span><span><</span><span>device_only</span><span>></span></span>\n</span><span> DeviceVendor::MICROSOFT,\n</span><span> DeviceProduct::DIGITAL_MEDIA_KEYBOARD\n</span><span> <span><span></</span><span>device</span><span>></span></span>\n</span><span> ...\n</span></code></pre>\n<p>Each of these contains a number of <code><autogen></autogen></code> stanza mapping specific\nkeycodes for that keymap. For example, I want the top-left key on the main block\nto be <code>`</code> and, when shifted, to be <code>€</code>. This leads to the following on the\nMicrosoft keyboard:</p>\n<pre><code><span><span><span><!--</span> shift-` to € <span>--></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::BACKQUOTE, ModifierFlag::SHIFT_L | ModifierFlag::NONE,\n</span><span> KeyCode::KEY_2, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::BACKQUOTE, ModifierFlag::SHIFT_R | ModifierFlag::NONE,\n</span><span> KeyCode::KEY_2, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span></code></pre>\n<p>…but to the following on the Macbook built-in UK keyboard, to take account\nfirst of the different keycode it generates but also to ensure that when used\nwith command and command-shift, the standard behaviour of cycling between\nwindows works:</p>\n<pre><code><span><span><span><!--</span> top-left § to ` <span>--></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::DANISH_DOLLAR, ModifierFlag::NONE,\n</span><span> KeyCode::BACKQUOTE\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span><span><span><span><!--</span> ...with shift, to € <span>--></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::DANISH_DOLLAR, ModifierFlag::SHIFT_L | ModifierFlag::NONE,\n</span><span> KeyCode::KEY_2, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::DANISH_DOLLAR, ModifierFlag::SHIFT_R | ModifierFlag::NONE,\n</span><span> KeyCode::KEY_2, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span><span><span><span><!--</span> ...with COMMAND/SHIFT, so that cycle-window-{forward,back} work <span>--></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::DANISH_DOLLAR, ModifierFlag::COMMAND_L | ModifierFlag::NONE,\n</span><span> KeyCode::BACKQUOTE, ModifierFlag::COMMAND_R\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span><span><span><span><</span><span>autogen</span><span>></span></span>\n</span><span> __KeyToKey__\n</span><span> KeyCode::DANISH_DOLLAR, ModifierFlag::COMMAND_L | ModifierFlag::SHIFT_L | ModifierFlag::NONE,\n</span><span> KeyCode::BACKQUOTE, ModifierFlag::COMMAND_R | ModifierFlag::SHIFT_R\n</span><span><span><span></</span><span>autogen</span><span>></span></span>\n</span></code></pre>\n<p>There are a number of other mappings made in <a href=\"https://github.com/mor1/rc-files/blob/master/karabiner.xml\">karabiner.xml</a>: <code>shift-'</code> is\n<code>@</code>, <code>shift-2</code> is <code>\"</code>, <code>shift-3</code> is <code>£</code>, and resolving general confusion among\n<code>#</code>, <code>\\</code>, <code>~</code>, and <code>|</code>.</p>\n<h3><a href=\"https://mort.io/blog/elcapitan-maps/#emacs\">Emacs</a></h3>\n<p>That fixed things for the terminal and for most apps – the only remaining\nsticking point was Emacs. I don’t pretend to understand the entire chain of\nevent processing but suffice it to say that Emacs was receiving <code>shift-@</code> and\n<code>shift-3</code> without knowing what to do with them. Fortunately, when coupled with\n<a href=\"https://github.com/mor1/rc-files/blob/master/emacs.d/init.el#L929-L1019\">my hacks to enforce a <code>my-keys-minor-mode</code> to override everything</a>,\nthe fix was pretty straightforward:</p>\n<pre><code><span><span><span>(</span>define<span>-</span>key my<span>-</span>keys<span>-</span>minor<span>-</span>mode<span>-</span><span>map</span> <span><span>(</span>kbd <span><span>"</span>s-@<span>"</span></span><span>)</span></span> <span><span>"</span>€<span>"</span></span><span>)</span></span>\n</span><span><span><span>(</span>define<span>-</span>key my<span>-</span>keys<span>-</span>minor<span>-</span>mode<span>-</span><span>map</span> <span><span>(</span>kbd <span><span>"</span>s-3<span>"</span></span><span>)</span></span>\n</span></span><span><span> '<span><span>(</span><span>lambda</span> <span><span>(</span><span>)</span></span> <span><span>(</span>interactive<span>)</span></span> <span><span>(</span>insert<span>-</span><span>char</span> <span><span>#</span>x00A3</span><span>)</span></span><span>)</span></span><span>)</span></span> <span><span>;</span> £\n</span></span></code></pre>\n<h3><a href=\"https://mort.io/blog/elcapitan-maps/#result\">Result?</a></h3>\n<p>A <strong>significant</strong> decrease in the need I feel to curse because my keyboard has\nchanged in the middle of typing! It seems that keyboards remain, like time and\nterminals, one of those <em>Really Hard</em> things for computers/manufacturers to\nhandle…</p>\n<p><em>Note: Thanks to <a href=\"http://www.amp-what.com/unicode/search/\">http://www.amp-what.com/unicode/search/</a> for an easy way to\nhunt down some of the unicode symbols used above!</em></p>",
9 "content_type": "html",
10 "author": {
11 "name": "Unknown",
12 "email": null,
13 "uri": null
14 },
15 "categories": [],
16 "source": "https://mort.io/atom.xml"
17}