/* Copyright 2015-2016 Jack Humbert
 *
 * 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_DVORAK_H
#define KEYMAP_DVORAK_H

#include "keymap.h"

// Normal characters
#define DV_GRV KC_GRV
#define DV_1 KC_1
#define DV_2 KC_2
#define DV_3 KC_3
#define DV_4 KC_4
#define DV_5 KC_5
#define DV_6 KC_6
#define DV_7 KC_7
#define DV_8 KC_8
#define DV_9 KC_9
#define DV_0 KC_0
#define DV_LBRC KC_MINS
#define DV_RBRC KC_EQL

#define DV_QUOT KC_Q
#define DV_COMM KC_W
#define DV_DOT KC_E
#define DV_P KC_R
#define DV_Y KC_T
#define DV_F KC_Y
#define DV_G KC_U
#define DV_C KC_I
#define DV_R KC_O
#define DV_L KC_P
#define DV_SLSH KC_LBRC
#define DV_EQL KC_RBRC
#define DV_BSLS KC_BSLS

#define DV_A KC_A
#define DV_O KC_S
#define DV_E KC_D
#define DV_U KC_F
#define DV_I KC_G
#define DV_D KC_H
#define DV_H KC_J
#define DV_T KC_K
#define DV_N KC_L
#define DV_S KC_SCLN
#define DV_MINS KC_QUOT

#define DV_SCLN KC_Z
#define DV_Q KC_X
#define DV_J KC_C
#define DV_K KC_V
#define DV_X KC_B
#define DV_B KC_N
#define DV_M KC_M
#define DV_W KC_COMM
#define DV_V KC_DOT
#define DV_Z KC_SLSH

// Shifted characters
#define DV_TILD LSFT(DV_GRV)
#define DV_EXLM LSFT(DV_1)
#define DV_AT LSFT(DV_2)
#define DV_HASH LSFT(DV_3)
#define DV_DLR LSFT(DV_4)
#define DV_PERC LSFT(DV_5)
#define DV_CIRC LSFT(DV_6)
#define DV_AMPR LSFT(DV_7)
#define DV_ASTR LSFT(DV_8)
#define DV_LPRN LSFT(DV_9)
#define DV_RPRN LSFT(DV_0)
#define DV_LCBR LSFT(DV_LBRC)
#define DV_RCBR LSFT(DV_RBRC)

#define DV_DQUO LSFT(DV_QUOT)
#define DV_LABK LSFT(DV_COMM)
#define DV_RABK LSFT(DV_DOT)

#define DV_QUES LSFT(DV_SLSH)
#define DV_PLUS LSFT(DV_EQL)
#define DV_PIPE LSFT(DV_BSLS)

#define DV_UNDS LSFT(DV_MINS)

#define DV_COLN LSFT(DV_SCLN)

#endif