Stop Windows 10 Update Notifications from Interrupting Your Games

I had taken quite the hiatus from Windows gaming while I worked on certification, but got a chance to have some quick Overwatch sessions last night, only to have one of the competitive matches interrupted by a popup that took me out of the game (I was able to alt-tab back in) that stated the following: “Updates Are Available. Required Updates need to be downloaded”.

Thanks for letting me know about the updates, but interrupting all apps is not the best user experience

Now don’t get me wrong, this is normally fine, but when you’re in the middle of something, say a movie, intense game, conference call or presentation, this behaviour is pretty awful.

No fear, however, there’s a fix, though definitely not obvious. Let’s disable the Windows 10 update notification. We’ll be using the cmd.exe tool in order to run the following script found on StackExchange:

cd /d "%Windir%\System32"
takeown /F MusNotification.exe
icacls MusNotification.exe /deny Everyone:(X)
takeown /F MusNotificationUx.exe
icacls MusNotificationUx.exe /deny Everyone:(X)
rem

This essentially denies the system from running the app itself, which will stop the popup.

In order to undo it:

cd /d "%Windir%\System32"
 icacls MusNotification.exe /remove:d Everyone
 icacls MusNotification.exe /grant Everyone:F
 icacls MusNotification.exe /setowner "NT SERVICE\TrustedInstaller"
 icacls MusNotification.exe /remove:g Everyone
 icacls MusNotificationUx.exe /remove:d Everyone
 icacls MusNotificationUx.exe /grant Everyone:F
 icacls MusNotificationUx.exe /setowner "NT SERVICE\TrustedInstaller"
 icacls MusNotificationUx.exe /remove:g Everyone
 rem

And there you have it! No more intrusive popups when updates are needed.

Now that we’ve modified this, a quick reminder that if you want regular updates, it may be worth checking for them once in a while.

New Zeal60 Keyboard Layout – Split Backspace, Split Right Shift, ANSI

I’ve really been enjoying the programmable firmware on the Zeal60 keyboard PCB from ZealPC. It’s definitely not all the bells and whistles, this layout gives you 62 keys in total, though you might need a keycap set that supports all of these keys. I’m currently using the Originative Co  Modern Beige set, though I hear most  (if not all) GMK sets would also  accommodate  this.

Zeal60 layout created with Keyboard Layout Editor – note the Fn button to the right of the shift key, and the backspace and backslash keys swapping spots, with an added tilde.

This layout addresses something I sorely needed: the ` and ~ keys (used with Github,  Bash and Slack on a daily basis).

In order to accomplish this, I need to edit the keymap.c and config.h files, which allowed me to generate a zeal60_rmac.hex  file for use with the QMK flasher tool (Win/Mac/Lin).

In order to follow the Zeal example, I also made a zeal60_keymap_rmac.bat file, which can be used with Windows.

The code is currently submitted to Wilba’s fork of QMK as a pull request, but here’s the code as well, so you can see what it looks like.

keymap.c:

// Rmac split backspace, split  shift layout for Zeal60

#include "zeal60.h"

// [0,13] is either left key of split backspace (e.g. HHKB \| key) or 2U backspace
// [1,13] is either backslash or ISO Enter
// [2,12] is either ANSI Enter or key left of ISO Enter
// [2,13] is right key of split backspace (e.g. HHKB `~ key)
// [3,1] is right key of split left-shift (e.g ISO key)
// [3,13] is right key of split right-shift (e.g. HHKB Fn key)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

// Default layer
[0] = {
 {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS},
 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC},
 {KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_GRV},
 {KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FN_MO13},
 {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_RALT, KC_RGUI, FN_MO23, KC_RCTL}
},

// Fn1 Layer
[1] = {
 {KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL },
 {KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS},
 {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS},
 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_TRNS, KC_TRNS},
 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
},

// Fn2 Layer
[2] = {
 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
},

// Fn3 Layer (zeal60 Configuration)
[3] = {
 {KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS},
 {KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS},
 {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}
}

};

config.h:

#ifndef CONFIG_USER_H
#define CONFIG_USER_H

#include "../../config.h"

/* enable/disable LEDs based on layout */
#undef USE_SPLIT_BACKSPACE
#define USE_SPLIT_BACKSPACE 1

#undef USE_SPLIT_LEFT_SHIFT
#define USE_SPLIT_LEFT_SHIFT 0

#undef USE_SPLIT_RIGHT_SHIFT
#define USE_SPLIT_RIGHT_SHIFT 1

#undef USE_7U_SPACEBAR
#define USE_7U_SPACEBAR 0

#undef USE_ISO_ENTER
#define USE_ISO_ENTER 0

#endif //CONFIG_USER_H

And as promised, zeal60_keymap_rmac.bat:

@echo off

zeal60 backlight_config_set_values ^
 use_split_backspace=1 ^
 use_split_left_shift=0 ^
 use_split_right_shift=1 ^
 use_7u_spacebar=1 ^
 use_iso_enter=0 ^
 disable_when_usb_suspended=1 ^
 disable_after_timeout=10

zeal60 backlight_config_set_alphas_mods ^
 MOD ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA MOD ^
 MOD ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA MOD ^
 MOD ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA MOD MOD ^
 MOD ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA ALPHA MOD MOD ^
 MOD MOD MOD MOD MOD MOD MOD MOD MOD MOD MOD MOD MOD MOD

zeal60 keymap 0 ^
 KC_ESC KC_1 KC_2 KC_3 KC_4 KC_5 KC_6 KC_7 KC_8 KC_9 KC_0 KC_MINS KC_EQL KC_BSLS ^
 KC_TAB KC_Q KC_W KC_E KC_R KC_T KC_Y KC_U KC_I KC_O KC_P KC_LBRC KC_RBRC KC_BSPC ^
 KC_CAPS KC_A KC_S KC_D KC_F KC_G KC_H KC_J KC_K KC_L KC_SCLN KC_QUOT KC_ENT KC_GRV ^
 KC_LSFT KC_NO KC_Z KC_X KC_C KC_V KC_B KC_N KC_M KC_COMM KC_DOT KC_SLSH KC_RSFT FN_MO13 ^
 KC_LCTL KC_LGUI KC_LALT KC_NO KC_NO KC_NO KC_NO KC_SPC KC_NO KC_NO KC_NO KC_RALT FN_MO23 KC_RCTL

zeal60 keymap 1 ^
 KC_GRV KC_F1 KC_F2 KC_F3 KC_F4 KC_F5 KC_F6 KC_F7 KC_F8 KC_F9 KC_F10 KC_F11 KC_F12 KC_DEL ^
 KC_TRNS KC_TRNS KC_UP KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_UP KC_TRNS KC_TRNS ^
 KC_TRNS KC_LEFT KC_DOWN KC_RGHT KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_LEFT KC_RGHT KC_TRNS KC_TRNS ^
 KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_DOWN KC_TRNS KC_TRNS ^
 KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS

zeal60 keymap 2 ^
 KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS ^
 KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS ^
 KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS ^
 KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS ^
 KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS

zeal60 keymap 3 ^
 KC_TRNS EF_DEC EF_INC H1_DEC H1_INC H2_DEC H2_INC KC_TRNS KC_TRNS KC_TRNS KC_TRNS BR_DEC BR_INC KC_TRNS ^
 KC_TRNS KC_TRNS KC_TRNS S1_DEC S1_INC S2_DEC S2_INC KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS ^
 KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS ^
 KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS TG_NKRO KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS ^
 KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS KC_TRNS

pause

Here’s a link to all three files with the compiled `zeal60_rmac.hex`.

Hope you enjoy this! It took a bit of doing, but was well worth it 🙂

Note that the files in question do a good job of walking you through the mods, making it rather easy. The one caveat was the tilde key being on a different row, as there’s only 13 spots per row, but that’s covered in the comments anyway.

As for the batch file for windows,  you can see that it’s really a combination of the config.h  and keymap.c files, to a certain extent, so copying and pasting the modified bits did the trick.

Zeal60 Zealencio Zealiostotle JSpacer Holtite Custom Keyboard Build

Custom Backlit Mechanical Keyboard - Ryan MacLean
Custom Backlit Mechanical Keyboard - Ryan MacLean
The finished product – a ZealPC Zeal60 with holtite mod, Zealiostotlespacers, Originative Modern Beige Japanese keycaps resting in a Sentraq teal aluminum 60% case with teal plate.

After much research, I decided to assemble a keyboard using hand-picked parts.
The goals of this build were a bit lofty, but luckily I prevailed in the end:

  • Cold-swappable switches in case I change my mind later
  • Almost silent typing that would be safe for work
  • Tactile feeling on the keys when typing
  • The option to use backlighting at night
  • A small footprint so I could bring the keyboard home for the weekend
  • The board should be programmable and support multiple layouts
  • The keyboard should be as flat as possible
  • There should be no “ping” from the case
  • There should be no flex in the PCB when installing switches
  • Keycaps that fit Zealencios properly – Cherry profile thick keycaps

This led me to a few easy decisions: I would go with a ZealPC Zeal60 as it supported SMD LEDs, was programmable via QMK, was 60%. I’d also opt for Zealio 65g switches as they had great tactile response, and were fairly quiet when combined with Zealencios.

What I didn’t see coming was the arrival of the test Aristotle stems (via /r/mechmarket) and a last-minute purchase of JSpacers from The Van Keyboard. These were for two different projects, respectively: Gatistoles and Jailhoused Outemu blues. During those projects I got to wondering if I could mix the results, and sure enough, figured out a way to add JSpacers to Gatistoles. Not satisfied, I ended up trying this same mod in a Zealio housing, and then to seal the deal, put some Zealencios on top. This led to a tactile switch that was very quiet – more so than a typical dome keyboard.

Creating Zealiostotlespacers with Holtites - Ryan MacLean
Parts required for a “Zealiostotlespacer” – The Van Keyboard JSpacers (black rubber, bottom left), Zealios Switches (purple switch, middle), Aristotle switch stems (white, top right), and Zealencios (clear, top left). This creates a tactile, non-wobbly switch that is both satisfying and almost silent.

In order to be able to cold-swap switches as with the TeamWolf Zhuque+ and PC Gaming Master Race Mechanical Keyboard, I’d need to sort out a way to replicate the recepticles each of these boards implement. After doing a lot of research into LED sip sockets that might work, I stumbled across a Linus Tech Tips forum post about something called “holtites” which were used for this purpose. A few Reddit searches later I found out that the TE AMP connectors would fit the bill, and made a spur of the moment DigiKey order.

TE AMP Holtites - Ryan MacLean
TE Connectivity AMP Holtites – these allow you to “cold-swap” switches without desoldering, perfect for testing different switch types
Holtites Installed on ZealPC Zeal60 PCB - Ryan MacLean
Here you can see the Holtites installed in the Zeal60 board – they are flush-inserted using a spudger and a rotating motion to keep them snug.

Now that I had the switches and board picked out, I was left with a tough decision regarding the case and plate. Nothing I could find actually had the proper mounting standoffs for the Zeal60 PCB, most were of the “Poker” variety, which were missing top screw standoffs, as well as one lower-left. It looked like I had to compromise, and seeing as most 60% cases seemed to be incredibly similar, I ended up going with a Sentraq aluminum case and plate based on looks alone. I ended up getting a cyan case and plate, as well as purple versions of the same, intending to try and colour match the Zeal60. It later turned out that I preferred the cyan varieties, which you’ll see in the shots.

Custom keyboard with Zeal60, Zealiostotlespacers, Enjoy PBT Kana Keycaps, Sentraq Teal Plate and Case - Ryan MacLean
A pretty good match – the Sentraq teal aluminum case fit the purple legends with teal kana subscript

The Sentraq case with the Zeal60 is not without problems: both cases prohibited me from screwing in the leftmost PCB screw, and both seemed to have the wrong thread on the top left standoff. Nothing altogether impossible to get around, but disconcerting all the same. Furthermore, the fit and finish of the top plate in the case wasn’t great, causing the right side to be less snug than the left. All of this to say: I’m still on the lookout for a case and plate that fit well together, and have not ruled out making my own.

Sentraq Teal Case and Plate - Ryan MacLean
The Sentraq plate and case are pretty snug, but there’s definitely room for improvement. That being said, this is a 1:1 macro…

As for the keycaps, I searched all over, asked around and tried a few OEM samples and was not satisfied. I ended up purchasing an Originative Co Modern Beige purple set with kana legends which I am happy with in terms of looks, fit and sound, but am not sure they are fit for work. In other words – I’m still looking for a good set of keycaps. I’ve been told GMK might be the best call for the Aristotle stems, and as soon as I have a sample of them, I’ll report back.

Enjoy PBT Keycaps with Kana Legends - Ryan MacLean
Originative Co Modern Beige with purple legends and cyan kana keycaps
Custom keyboard with Zeal60, Zealiostotlespacers, Enjoy PBT Kana Keycaps, Sentraq Teal Plate and Case - Ryan MacLean
The Cherry profile is perfect for the Zealencios, which didn’t work very well with the OEM keycaps I had tried previously.

Finally, regarding the LEDs: though I was not at all interested in RGB LEDs (preferring white when possible), I ended up actually really liking the default rainbow profile (fn1+2). This is a bit colourful for most, but as I have them turned off most of the time, the assumption is that I’ll be the only one seeing them.

Originative Co Modern Beige Keycaps with Kana Legends - Ryan MacLean
The SMD LEDs are fairly bright when set to max!

Gallery of the rest of the shots from this set:

Building Zeal60 Keymaps on OSX

Before starting, this guide requires Homebrew, which you can install from here: https://brew.sh

Open Terminal, and paste in the following. It will take a while to build, but you should be able to get it all done in one fell swoop:

cd
git clone https://github.com/Wilba6582/qmk_firmware.git
cd qmk_firmware
git branch zeal60
cd keyboards/zeal60
git submodule update --init --recursive
brew tap osx-cross/avr
brew install avr-gcc avr-libc dfu-programmer

You can then make your keymap, like so:

  • make keymap=default
  • make keymap=poker2_ansi
  • make keymap=poker2_iso
  • make keymap=hhkb_ansi

You can run them all if you want, but you’ll probably only need one 🙂

Once you have your firmware, you can flash like so (for HHKB ANSI):

sudo dfu-programmer atmega32u4 erase --force
sudo dfu-programmer atmega32u4 flash hhkb_ansi.hex
sudo dfu-programmer atmega32u4 reset

Getting Started with the ZealPC Zeal60 Keyboard PCB

Recently I picked up a Zeal 60 printed circuit board from BC-based ZealPC, and I couldn’t be happier!

The board supports a few layouts for now, though it’s open source, and you can either fork it to add your own, or add a pull request to share with the community.

The first thing you’ll want to do after getting a Zeal60 PCB is to flash it with the “default.hex” file. I used Windows for this, though you can achieve similar results on Linux and MacOS (OSX).

Initial Downloads

  1. Download Java Runtime Environment (JRE) here: http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
  2. Download the Atmel flashing utility “FLIP”: http://www.atmel.com/tools/flip.aspx
  3. Grab the most recent Zeal 60 keyboard zip: https://cdn.shopify.com/s/files/1/0490/7329/files/zeal60_v0_3.zip
  4. Unzip the zeal60_v0_3.zip file to your desktop

Install the Driver

  1. Plug in your Zeal60 to your computer via USB
  2. Hit “Windows” and “r” keys together, then type “devmgmt.msc”
  3. Right click the device with the exclamation point next to it
  4. Click “browse for driver”
  5. Navigate to C:\Program Files\FLIP\Drivers
  6. Hit “next”

Flashing the Board

  1. Install the driver –
  2. If you’ve not started assembling anything yet, press the golden button between the “A” and “S” pads on the board (if you’ve already assembled it, unplug it and hold the “space” and “esc” keys while plugging in the USB cable)
  3. Open FLIP
  4. In FLIP, hit connect to the device, and select “ATMega32U4”
  5. Hit “ctrl” + “U” keys to connect to the Zeal 60 PCB
  6. Hit “ctrl” + “L” to load a file
  7. Select the “default.hex” file in the Zeal 60 folder you extracted to your desktop
  8. On the left-hand window, click “Run”
  9. Once completed, then click “Start Application” in the right window

You’re all set!

Outemu Blue JSpacer Jailhouse Mod

This tutorial will cover removing Outemu Blue switches from a TeamWolf Zhuque+ and applying the “Jailhouse Mod” – so-named as it stops the mechanical keyboard switches from “clicking” when depressed. What’s great about this mod is that it also retains the tactile feeling of the switch, and slightly increases the force needed to bottom out.

An interesting side effect was that these switches became very quiet! If there’s interest I can also post a video with a comparison of before and after, and compared to Zealios + Zealencios, Gateron Browns, Gateron Browns + Zealencios. Just leave a comment and I’ll see what I can do  🙂

Note that it took about 6 hours to do this for each switch on the board, though admittedly I was watching a movie at the time, and it was New Years Eve. Also be prepared for some eventual pain in your fingers: Outemu switches are a bit hard to pry apart in this fashion, but I’m open to suggestions for easier methods.

Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
Tools we’ll be using for this tutorial

Tools required:

  • A “spudger” – available at Mac repair shops
  • A 2.5mm size flathead screwdriver
  • A switch removal tool (or a soldering iron, if the board is not hot-swappable)
  • A set of JSpacers from the Van Keyboard

A note about the keyboard used:

Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
1. Remove the switch from the board using the included switch remover
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
2. The removed switch
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
3. Put the screwdriver under the top (clear) part of the switch housing
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
4. Insert the screwdriver into the other side, being careful not to push the lose side back on, and pop the top off the switch housing
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
5. Rotate the screwdriver slightly and push in order to get the top of the housing over the retaining clips
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
6. Insert the screwdriver slowly at an angle
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
7. Place the flat head screwdriver between the top and bottom of the switch housing
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
8. As you pop the second side off, make sure to press firmly between the thumb and forefingers as there’s a spring inside just dying to get out!
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
9. A dis-assembled Outemu Blue mechanical switch
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
10. Wedge the spudger in the middle of the slider
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
11. Gently rotate the spudger to pop the two apart
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
12. Place the Jspacer on the slider, ensuring that the longer edges are rotated to fit between the opening in the stem side clips
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
13. Put the tactile white plastic piece over the slider and Jspacer
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
14. Place the switch spring on the switch slider
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
15. Place the spring and slider into the notch on the bottom half of the switch housing, ensuring that the clicking mechanism is facing the switch itself (copper coloured in photo)
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
16. Hold the combination of switch bottom, spring and slider together between thumb and forefinger of one hand – you’ll need the other hand free in order to attach the top
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
17. Click the top half over the bottom half quicklly and firmly in order to ensure that both sides “click” at once
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
Modding complete! A removed, assembled Outemu Blue switch
Modding a blue Outemu switch for a mechanical keyboard in order to remove the "click" sound and maintain tactility - Ryan MacLean @ Blandname.com
Final Step. Put the blue switch back on the board, then place the keycap back on – you’re done!
Because the beauty dish was already setup, I figured I might as well pay the dog tax! Ryan MacLean @ Blandname.com
Doge. Because the beauty dish was already setup, I figured I might as well pay the dog tax!