keychron_qmk_firmware/users/xtonhasvim/xtonhasvim.h
xton 05be1de1aa Xton's first keymap! (#2941)
* FORK!

* WIP - just how i like it

* empty

* more movement

* mouse keys

* more vimminess

* append/insert shift

* WIP - vim macros

* blocked out layer below in cmd mode.

also, about to restart my cmd approach.

* WIP - new vim layer

ripoff of the ergodox one, but rewritten as a state machine.

* debugged some, got key repeat working

* moooar coverage

* moooar coverage

* regular vis mode

* basically done with basics.

* some refactoring

- common movement sequences into helper function
- added some rgb controls

* modkey passthru feature

* stdized on cmd-left/right instead of ctrl-a/e

sadly. as there's no reliable shift-ctrl-e

* indicator lights

* moved vim layer into userspace

* cleaned up some yanking edge cases

* docs and some tweaks to layerescapes

* updated/added license strings

* updated comments

* moved config changes to keymap

* spurious changes removed
2018-05-12 08:52:11 -07:00

67 lines
1.4 KiB
C

/* Copyright 2015-2017 Christon DeWan
*
* 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 USERSPACE
#define USERSPACE
#include QMK_KEYBOARD_H
#include "action_layer.h"
#define X_____X KC_NO
bool process_record_xtonhasvim(uint16_t keycode, keyrecord_t *record);
enum xtonhasvim_keycodes {
DUMMY = SAFE_RANGE,
VIM_START, // bookend for vim states
VIM_A,
VIM_B,
VIM_C,
VIM_CI,
VIM_D,
VIM_DI,
VIM_E,
VIM_H,
VIM_G,
VIM_I,
VIM_J,
VIM_K,
VIM_L,
VIM_O,
VIM_P,
VIM_S,
VIM_U,
VIM_V,
VIM_VS, // visual-line
VIM_VI,
VIM_W,
VIM_X,
VIM_Y,
VIM_PERIOD, // to support indent/outdent
VIM_COMMA, // and toggle comments
VIM_SHIFT, // avoid side-effect of supporting real shift.
VIM_ESC, // bookend
VIM_SAFE_RANGE // start other keycodes here.
};
enum xtonhasvim_layers {
_EDIT = 12,
_CMD
};
#endif