Skip to content

Commit

Permalink
Some revisions to cbbrowne Planck keymap, and a preliminary xd75 keym…
Browse files Browse the repository at this point in the history
…ap (qmk#1715)

* Add HOME/END keys as upper/lower on arrow-up/down

* Reduce .hex file size by turning off unneeded options

* Put digit keypad onto left hand upon RAISE; this will sometimes be preferable to double-hits of right hand

* Latest super latest version merge

* cbbrowne keymap for XD75re

* starting notes on XD75re keymap plans

* First draft of bottom row of QWERTY

* Switch my special bottom line over to QCENT

* Dunno

* Filling in wanted keys, bit by bit...

* Add copyright, extra macro

* Clean up comments, remove some experimental code I didn't like

* TODO plans for xd75re

* clean up keyboard layout

* QCENT2 is my new experiment for the main keyboard...

* Add a few more main layer keys, and modify LOWER to shift things outwards to conform with main layer

* Clean up RAISE layer to conform with main layer, remove QCENT layer as QCENT2 is the new thing

* More xd75 changes, now that I actually have it in hand

* shift keymap around, as original attempt was a bit too aggressive in keeping to the edges

* more revs to XD75

* Dropping parts of the centre keypad in favor of Keys I Really Need

* Improve documentation to conform with how builds are done now

* Improve documentation to conform with how builds are done now

* Add cbbrowne rules file as alternative to having the rules in Makefile

* Makefile not needed anymore for individual keymap
  • Loading branch information
cbbrowne authored and jackhumbert committed Sep 14, 2017
1 parent 23ce0b4 commit a07d1f2
Show file tree
Hide file tree
Showing 10 changed files with 596 additions and 37 deletions.
17 changes: 17 additions & 0 deletions keyboards/planck/keymaps/cbbrowne/config.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/* Copyright 2017 Christopher Browne
*
* 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 CONFIG_USER_H
#define CONFIG_USER_H

Expand All @@ -23,6 +39,7 @@
* borrowed from basic keymap */

#define _______ KC_TRNS
#define _____ KC_NO

#endif

146 changes: 140 additions & 6 deletions keyboards/planck/keymaps/cbbrowne/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@

/* Some interesting things implemented
- There is a macro that writes out "cbbrowne" to show that I could
- There is a macro that writes out "cbbrowne" just to show that I
could
- There is a (somewhat cruddy) linear congruential random number
generator.
- I would like to be seeding it with clock info to make it look
more random
- I seed it somewhat with clock info to make it look more random
- There are two macros that use the random number generators
- one, M_RANDDIGIT, generates a random digit based on state
of the random number generator
Expand All @@ -59,10 +59,12 @@
- Need to think about what zsh and readline actions I use lots
- Ought to ensure that Control-Alt-Delete is convenient enough
- How about Alt-F1 thru Alt-F8?
- How about Alt-F1 thru Alt-F8? Not yet...
- What's the keystroke to get from X to console these days?
- A layer for doing console switching would not be a bad idea
- I haven't got page-up/page-down, let's have that...
- I'm messing with jeremy-dev's keymap that shifts everything
outwards. Gotta figure out how to make it sensible...
*/

enum layers {
Expand All @@ -71,6 +73,21 @@ enum layers {
_RAISE, /* Raised layer, where top line has digits 1234567890 */
_KEYPAD, /* Key pad */
_ADJUST, /* Special Adjust layer coming via tri-placement */

};

enum my_keycodes {
MY_ABVE = SAFE_RANGE,
MY_BELW,
MY_TERM,
MY_DEQL, // /=
MY_MEQL, // *=
MY_SEQL, // -=
MY_PEQL, // +=
MY_NEQL, // !=
MY_LTGT, // <>
MY_DPIP, // ||
MY_DAMP, // &&
};

enum macro_id {
Expand Down Expand Up @@ -132,9 +149,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
{_______, RANDDIG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
{_______, RANDALP, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______ },
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
}
}
};


/* What is fn_actions actually used for??? */
const uint16_t PROGMEM fn_actions[] = {
};
Expand Down Expand Up @@ -233,3 +251,119 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
}
return MACRO_NONE;
};

void press_key(uint16_t key) {
register_code(key);
unregister_code(key);
}

void press_two_keys(uint16_t key1, uint16_t key2) {
register_code(key1);
register_code(key2);
unregister_code(key2);
unregister_code(key1);
}

void press_three_keys(uint16_t key1, uint16_t key2, uint16_t key3) {
register_code(key1);
register_code(key2);
register_code(key3);
unregister_code(key3);
unregister_code(key2);
unregister_code(key1);
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case MY_BELW:
if (record->event.pressed) {
press_two_keys(KC_LGUI, KC_RGHT);
press_key(KC_ENT);
}

return false;

case MY_ABVE:
if (record->event.pressed) {
press_two_keys(KC_LGUI, KC_LEFT);
press_key(KC_ENT);
press_key(KC_UP);
}

return false;

case MY_TERM:
if (record->event.pressed) {
press_three_keys(KC_LGUI, KC_LSFT, KC_ENT);
}

return false;

case MY_DEQL: // /=
if (record->event.pressed) {
press_key(KC_SLSH);
press_key(KC_EQL);
}

return false;

case MY_MEQL: // *=
if (record->event.pressed) {
press_two_keys(KC_LSFT, KC_ASTR);
press_key(KC_EQL);
}

return false;

case MY_SEQL: // -=
if (record->event.pressed) {
press_key(KC_MINS);
press_key(KC_EQL);
}

return false;

case MY_PEQL: // +=
if (record->event.pressed) {
press_two_keys(KC_LSFT, KC_PLUS);
press_key(KC_EQL);
}

return false;

case MY_NEQL: // !=
if (record->event.pressed) {
press_two_keys(KC_LSFT, KC_EXLM);
press_key(KC_EQL);
}

return false;

case MY_LTGT: // <>
if (record->event.pressed) {
press_two_keys(KC_LSFT, KC_LABK);
press_two_keys(KC_LSFT, KC_RABK);
}

return false;

case MY_DPIP: // ||
if (record->event.pressed) {
press_two_keys(KC_LSFT, KC_PIPE);
press_two_keys(KC_LSFT, KC_PIPE);
}

return false;

case MY_DAMP: // &&
if (record->event.pressed) {
press_two_keys(KC_LSFT, KC_AMPR);
press_two_keys(KC_LSFT, KC_AMPR);
}

return false;
}

return true;
}

15 changes: 12 additions & 3 deletions keyboards/planck/keymaps/cbbrowne/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ doing sundry experimentation:
interesting idea to express the maps rotated 90%, so that you
only need to fit 4 symbols onto each line, rather than 12.

I used enums to manage layer IDs and macro IDs so that I don't need
I use enums to manage layer IDs and macro IDs so that I don't need
to care (beyond "start at 0", and arguably even that's not needed)
about their values.

Expand Down Expand Up @@ -102,12 +102,21 @@ unwise things again...
* I use tmux quite a lot; the mollat keymap seems to have some
interesting helpers. It might be interesting to add a "tmux
layer," or to have a few keys in a layer oriented towards that
- Keys for...
- Picking windows 0 thru 8
- next/prev/new window
* The mollat tmux layer also suggests some thoughts about Emacs
helpers.
helpers.
* I do not presently have anything that handles X11 screen
switching, as with Control-Alt-various
* I ought to probably look into KC_LEAD, to have some key combos
that do not need to be concurrent
* The jeebak keymap seems to have some neat ideas:
- Number layer which is aggressive about having numbers in several places
- Touch layer seems interesting
- TouchCursor layer seems interesting
- It sets up a layer with cursor keys on the home keys
* The jeremy-dev keymap has some very interesting concepts
- Shift hands outwards; the special keys go in the center
- Symbol layer has some compound keys for C operators like /=, *=, -=, +=, ...
- This is likely what I'll use for my XD75re, and maybe I'll fork a
planck keymap for similar
2 changes: 0 additions & 2 deletions keyboards/planck/keymaps/cbbrowne/rules.mk
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
Expand Down
18 changes: 0 additions & 18 deletions keyboards/xd75/Makefile

This file was deleted.

38 changes: 38 additions & 0 deletions keyboards/xd75/keymaps/cbbrowne/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Copyright 2013 Jun Wako <[email protected]>
#
# 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/>.


# QMK Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = no # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
API_SYSEX_ENABLE = no # Enable SYSEX API (+5390)

ifndef QUANTUM_DIR
include ../../../../Makefile
endif
44 changes: 44 additions & 0 deletions keyboards/xd75/keymaps/cbbrowne/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/* Copyright 2017 REPLACE_WITH_YOUR_NAME
*
* 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 CONFIG_USER_H
#define CONFIG_USER_H

#ifndef NO_DEBUG
#define NO_DEBUG
#endif
#ifndef NO_PRINT
#define NO_PRINT
#endif

#include "../../config.h"

#define LEADER_TIMEOUT 300
#define BACKLIGHT_BREATHING

/* cbbrowne user configuration */

#define randadd 53
#define randmul 181
#define randmod 167

/* Filler to make layering a bit clearer *
* borrowed from basic keymap */

#define _______ KC_TRNS
#define _____ KC_NO

#endif
Loading

0 comments on commit a07d1f2

Please sign in to comment.