/* Copyright 2016 Stephen Bösebeck
 *
 * 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/>.
 */
#ifndef KEYMAP_GERMAN_OSX
#define KEYMAP_GERMAN_OSX

#include "keymap.h"

// Alt gr

// normal characters
#define DE_OSX_Z KC_Y
#define DE_OSX_Y KC_Z

#define DE_OSX_A KC_A
#define DE_OSX_B KC_B
#define DE_OSX_C KC_C
#define DE_OSX_D KC_D
#define DE_OSX_E KC_E
#define DE_OSX_F KC_F
#define DE_OSX_G KC_G
#define DE_OSX_H KC_H
#define DE_OSX_I KC_I
#define DE_OSX_J KC_J
#define DE_OSX_K KC_K
#define DE_OSX_L KC_L
#define DE_OSX_M KC_M
#define DE_OSX_N KC_N
#define DE_OSX_O KC_O
#define DE_OSX_P KC_P
#define DE_OSX_Q KC_Q
#define DE_OSX_R KC_R
#define DE_OSX_S KC_S
#define DE_OSX_T KC_T
#define DE_OSX_U KC_U
#define DE_OSX_V KC_V
#define DE_OSX_W KC_W
#define DE_OSX_X KC_X

#define DE_OSX_0 KC_0
#define DE_OSX_1 KC_1
#define DE_OSX_2 KC_2
#define DE_OSX_3 KC_3
#define DE_OSX_4 KC_4
#define DE_OSX_5 KC_5
#define DE_OSX_6 KC_6
#define DE_OSX_7 KC_7
#define DE_OSX_8 KC_8
#define DE_OSX_9 KC_9

#define DE_OSX_DOT KC_DOT
#define DE_OSX_COMM KC_COMM

#define DE_OSX_SS KC_MINS
#define DE_OSX_AE KC_QUOT
#define DE_OSX_UE KC_LBRC
#define DE_OSX_OE KC_SCLN

#define DE_OSX_CIRC KC_NUBS // accent circumflex ^ and ring °
#define DE_OSX_ACUT KC_EQL // accent acute ´ and grave `
#define DE_OSX_PLUS KC_RBRC // + and * and ~
#define DE_OSX_HASH KC_BSLS // # and '
#define DE_OSX_LESS KC_GRV // < and > and |
#define DE_OSX_MINS KC_SLSH // - and _

// shifted characters
#define DE_OSX_RING LSFT(DE_OSX_CIRC) // °
#define DE_OSX_EXLM LSFT(KC_1) // !
#define DE_OSX_DQOT LSFT(KC_2) // "
#define DE_OSX_PARA LSFT(KC_3) // §
#define DE_OSX_DLR  LSFT(KC_4) // $
#define DE_OSX_PERC LSFT(KC_5) // %
#define DE_OSX_AMPR LSFT(KC_6) // &
#define DE_OSX_SLSH LSFT(KC_7) // /
#define DE_OSX_LPRN LSFT(KC_8) // (
#define DE_OSX_RPRN LSFT(KC_9) // )
#define DE_OSX_EQL  LSFT(KC_0) // =
#define DE_OSX_QST  LSFT(DE_OSX_SS) // ?
#define DE_OSX_GRV  LSFT(DE_OSX_ACUT) // `
#define DE_OSX_ASTR LSFT(DE_OSX_PLUS) // *
#define DE_OSX_QUOT LSFT(DE_OSX_HASH) // '
#define DE_OSX_MORE LSFT(DE_OSX_LESS) // >
#define DE_OSX_COLN LSFT(KC_DOT) // :
#define DE_OSX_SCLN LSFT(KC_COMM) // ;
#define DE_OSX_UNDS LSFT(DE_OSX_MINS) // _

// Alt-ed characters
//#define DE_OSX_SQ2 LALT(KC_2) // ²
//#define DE_OSX_SQ3 LALT(KC_3) // ³
#define DE_OSX_LCBR LALT(KC_8) // {
#define DE_OSX_LBRC LALT(KC_5) // [
#define DE_OSX_RBRC LALT(KC_6) // ]
#define DE_OSX_RCBR LALT(KC_9) // }
#define DE_OSX_BSLS LALT(LSFT(KC_7)) // backslash
#define DE_OSX_AT  LALT(DE_OSX_L) // @
#define DE_OSX_EURO LALT(KC_E) // €
#define DE_OSX_TILD LALT(DE_OSX_N) // ~
#define DE_OSX_PIPE LALT(DE_OSX_7) // |

#endif
