From 91c8a9314aed50d4220ce18e7f3f1e0476e44286 Mon Sep 17 00:00:00 2001
From: Lukas Klingsbo <lukas.klingsbo@gmail.com>
Date: Mon, 30 Dec 2019 16:34:12 +0100
Subject: [PATCH] Dactyl manuform layout optimized for Swedish (#7724)

* Dactyl manuform layout optimized for Swedish

* Layers as enum
---
 .../5x6/keymaps/swedish/config.h              | 27 +++++++++
 .../5x6/keymaps/swedish/keymap.c              | 58 +++++++++++++++++++
 2 files changed, 85 insertions(+)
 create mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/swedish/config.h
 create mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/swedish/keymap.c

diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/swedish/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/swedish/config.h
new file mode 100644
index 0000000000..29ab59ad66
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/swedish/config.h
@@ -0,0 +1,27 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+#pragma once
+
+
+#define USE_SERIAL
+
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+//#define EE_HANDS
+// Rows are doubled-up
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/swedish/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/swedish/keymap.c
new file mode 100644
index 0000000000..f8dfb2718c
--- /dev/null
+++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/swedish/keymap.c
@@ -0,0 +1,58 @@
+/* A Swedish XMonad layout for the Dactyl Manuform 5x6 Keyboard */ 
+
+#include QMK_KEYBOARD_H
+#include "keymap_swedish.h"
+
+enum dactyl_layers {
+  _QWERTY,
+  _LOWER,
+  _RAISE,
+};
+
+#define RAISE  MO(_RAISE)
+#define LOWER  MO(_LOWER)
+#define TERM   LGUI(LSFT(KC_ENT))
+#define ALTTAB LGUI(KC_TAB)
+#define KILL   LGUI(LSFT(KC_C))
+#define OPEN   LGUI(KC_P)
+#define KC_QSM LSFT(SE_PLUS)
+#define KC_AA  SE_AA
+#define KC_AE  SE_AE
+#define KC_OE  SE_OSLH
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+  [_QWERTY] = LAYOUT_5x6(
+     KC_ESC , KC_1   , KC_2   , KC_3   , KC_4   , KC_5   ,                        KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , SE_APOS,
+     KC_TAB , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   ,                        KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_AA  ,
+     KC_LSFT, KC_A   , KC_S   , KC_D   , KC_F   , KC_G   ,                        KC_H   , KC_J   , KC_K   , KC_L   , KC_OE  , KC_AE  ,
+     KC_LCTL, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   ,                        KC_N   , KC_M   , KC_COMM, KC_DOT , SE_SLSH, SE_MINS,
+                       KC_EXLM, KC_QSM ,                                                            SE_PLUS, SE_EQL ,
+                                                  RAISE  , KC_SPC ,      KC_ENT , LOWER  ,
+                                                  ALTTAB , KC_LGUI,      KC_BSPC, KC_DEL ,
+                                                  OPEN   , TERM   ,      KILL   , KC_LALT
+  ),
+
+  [_LOWER] = LAYOUT_5x6(
+     SE_TILD, KC_EXLM,  SE_AT , KC_HASH, SE_DLR , KC_PERC,                        SE_CIRC, SE_AMPR, SE_ASTR, SE_SLSH, SE_LPRN, SE_RPRN,
+     SE_ACUT, _______, _______, _______, _______, _______,                        _______, _______, _______, _______, SE_LCBR, SE_RCBR,
+     _______, _______, _______, _______, _______, _______,                        KC_LEFT, KC_DOWN, KC_UP  , KC_RGHT, SE_LBRC, SE_RBRC,
+     _______, _______, _______, _______, _______, _______,                        _______, _______, _______, _______, SE_LESS, SE_GRTR,
+                       _______, _______,                                                            _______, _______,
+                                                  _______, _______,      _______, _______,
+                                                  _______, _______,      _______, _______,
+                                                  _______, _______,      _______, _______
+
+  ),
+
+  [_RAISE] = LAYOUT_5x6(
+     KC_F12 , KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_F5  ,                        KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , KC_F11 ,
+     _______, _______, _______, _______, _______, _______,                        RESET  , _______, _______, _______, KC_MUTE, SE_PIPE,
+     _______, _______, _______, _______, _______, _______,                        KC_HOME, KC_PGDN, KC_PGUP, KC_END , KC_VOLU, SE_BSLS,
+     _______, _______, _______, _______, _______, _______,                        _______, KC_MPLY, KC_MPRV, KC_MNXT, KC_VOLD, _______,
+                       _______, _______,                                                            _______, _______, 
+                                                  _______, _______,      _______, _______,
+                                                  _______, _______,      _______, _______,
+                                                  _______, _______,      _______, _______
+  ),
+};