From f936a3d5c23c1562bdcd237fcba6bd4e5223f0b8 Mon Sep 17 00:00:00 2001
From: johannes <developer.johannes.larsson@gmail.com>
Date: Fri, 3 Feb 2017 14:10:19 +0100
Subject: [PATCH] stuff

---
 keyboards/planck/keymaps/johannes/keymap.c | 38 ++++++++++++++++++++--
 1 file changed, 35 insertions(+), 3 deletions(-)

diff --git a/keyboards/planck/keymaps/johannes/keymap.c b/keyboards/planck/keymaps/johannes/keymap.c
index afbad2440c..d6c0ca81fe 100644
--- a/keyboards/planck/keymaps/johannes/keymap.c
+++ b/keyboards/planck/keymaps/johannes/keymap.c
@@ -19,14 +19,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |------+------+------+------+------+------|------+------+------+------+------+------|
  * | Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |Enter |
  * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |      |      |      | super|shift | Space|Raise | lower|  alt |      |      |fn    |
+ * |      |      |      | super|shift | Space|Raise | lower|  alt | altgr|      |fn    |
  * `-----------------------------------------------------------------------------------'
  */
 [0] = {
   {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
   {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
   {KC_LCTRL, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
-  {XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, KC_LSHIFT,    KC_SPC,  M(2),   M(1),   KC_LALT, XXXXXXX, XXXXXXX,   M(3)}
+  {XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, KC_LSHIFT,    KC_SPC,  M(2),   M(1),   KC_LALT, KC_RALT, XXXXXXX,   M(3)}
 },
 
 /* Lower
@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  */
 [1] = {
   {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
-  {_______, _______,   KC_LCBR,   KC_RCBR,   KC_PLUS,   _______,   _______,   KC_UNDS, KC_PLUS, KC_LCBR, KC_UNDS, KC_PIPE},
+  {_______, _______,   KC_LCBR,   KC_RCBR,   KC_PLUS,   _______,   _______,   M(4), M(5), M(6), KC_UNDS, _______},
   {_______, _______,   _______,   _______,   _______,  _______,  _______,_______, _______,_______, KC_BSLS, _______},
   {_______,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 },
@@ -65,6 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   {_______,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
 },
 
+// Fn-layer
 [3] = {
   {KC_F1,  KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,    KC_F11,    KC_F12},
   {_______,  _______,   _______,   _______,   _______,   _______,   _______,   _______, _______,  _______, _______, _______},
@@ -94,6 +95,37 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
       } else {
         layer_off(2);
       }
+      break;
+	  case 3:
+      if (record->event.pressed) {
+        layer_on(3);
+      } else {
+        layer_off(3);
+      }
+      break;
+    case 4: // å
+      if (record->event.pressed) {
+        register_code(KC_RALT);
+        register_code(KC_W);
+      } else {
+        unregister_code(KC_RALT);
+      }
+      break;
+    case 5: // ä
+      if (record->event.pressed) {
+        register_code(KC_RALT);
+        register_code(KC_Q);
+      } else {
+        unregister_code(KC_RALT);
+      }
+      break;
+	  case 6: // ö
+      if (record->event.pressed) {
+        register_code(KC_RALT);
+        register_code(KC_P);
+      } else {
+        unregister_code(KC_RALT);
+      }
       break;
   }
   return MACRO_NONE;