* 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
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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
 |