Skip to content

Commit

Permalink
handwired/nicekey optimisation (qmk#14788)
Browse files Browse the repository at this point in the history
* handwired/nicekey optimisation

* Add some consts

* Read address from progmem, pass it into send_string_with_delay_P
  • Loading branch information
fauxpark authored Oct 11, 2021
1 parent 5640b6c commit 633ef14
Show file tree
Hide file tree
Showing 3 changed files with 138 additions and 77 deletions.
187 changes: 122 additions & 65 deletions keyboards/handwired/nicekey/keymaps/default/keymap.c
Original file line number Diff line number Diff line change
@@ -1,75 +1,132 @@
#include QMK_KEYBOARD_H

#define RANDOM_STRING_DELAY 100

enum custom_keycodes {
RANDOM_STRING_MACRO = SAFE_RANGE
RANDOM_STRING_MACRO = SAFE_RANGE
};

const int delay = 100;
const char *sentences[] = {
"I hope you have a great day!\n",
"You are an awesome person.\n",
"I wish I knew you better, you seem nice!\n",
"Your views restore my faith in humanity\n",
"You are as cool as a norm-critical disney princess\n",
"You have impeccable manners.\n",
"You are making me smile\n",
"You are making a difference\n",
"You bring out the best in other people\n",
"You are all that and a super-size bag of chips.\n",
"You are not someone I pretend to not see in public.\n",
"Are you a beaver, because damn.\n",
"I bet you make babies smile.\n",
"You are awkward, in a cute way. Like an elevator ride, but with puppies.\n",
"Looking like a complete idiot with you is really fun.\n",
"If you cooked something really bad, I would tell you instead of eating it.\n",
"I love how passionate you are about your hobby.\n",
"Our conversations always make me feel better.\n",
"It is amazing how far out of your way you go to help people.\n",
"I am so glad that you wrote something here.\n",
"Hey you! How nice to see a friendly person in my feed!\n",
"I hope we know each other for a long time.\n",
"I bet if Britney Spears knew you, 2008 would have gone a lot differently.\n",
"I would trust you with my passwords.\n",
"You are a great problem solver\n",
"I would love to hear you laugh!\n",
"Please, have a monologue about your week, I just want to listen to you!\n",
"You are very far from being Trump.\n",
"I think my dog might like you more than me\n",
"I feel like you would be a great person to do a group project with\n",
"I bet animals love you\n",
"I bet even Kanye would like you more than himself\n",
"You are just doing a great job at life\n",
"I like how you are challenging me.\n",
"You would do be a great mother!\n",
"I... Baked bread for you.\n",
"Wow. You.\n",
"You would not have let that balrog pass!\n",
"Thank you.\n",
"You would be standing out in a crowd\n",
"Your sense of style is amazing.\n",
"You have a beautiful mind.\n",
"I like that big juicy brain of yours\n",
"I would share my cinnamon bun with you\n",
"I like you more than i like my moms apple pie\n",
"You give me the same feeling as a summers night\n",
"I enjoy you more than the click of my mechanical switch\n",
"I would let you pop my bubble wrap\n",
"Being near you is like being inside of a poem\n"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT(
RANDOM_STRING_MACRO
)
};

const char sentence_01[] PROGMEM = "I hope you have a great day!";
const char sentence_02[] PROGMEM = "You are an awesome person.";
const char sentence_03[] PROGMEM = "I wish I knew you better, you seem nice!";
const char sentence_04[] PROGMEM = "Your views restore my faith in humanity";
const char sentence_05[] PROGMEM = "You are as cool as a norm-critical disney princess";
const char sentence_06[] PROGMEM = "You have impeccable manners.";
const char sentence_07[] PROGMEM = "You are making me smile";
const char sentence_08[] PROGMEM = "You are making a difference";
const char sentence_09[] PROGMEM = "You bring out the best in other people";
const char sentence_10[] PROGMEM = "You are all that and a super-size bag of chips.";
const char sentence_11[] PROGMEM = "You are not someone I pretend to not see in public.";
const char sentence_12[] PROGMEM = "Are you a beaver, because damn.";
const char sentence_13[] PROGMEM = "I bet you make babies smile.";
const char sentence_14[] PROGMEM = "You are awkward, in a cute way. Like an elevator ride, but with puppies.";
const char sentence_15[] PROGMEM = "Looking like a complete idiot with you is really fun.";
const char sentence_16[] PROGMEM = "If you cooked something really bad, I would tell you instead of eating it.";
const char sentence_17[] PROGMEM = "I love how passionate you are about your hobby.";
const char sentence_18[] PROGMEM = "Our conversations always make me feel better.";
const char sentence_19[] PROGMEM = "It is amazing how far out of your way you go to help people.";
const char sentence_20[] PROGMEM = "I am so glad that you wrote something here.";
const char sentence_21[] PROGMEM = "Hey you! How nice to see a friendly person in my feed!";
const char sentence_22[] PROGMEM = "I hope we know each other for a long time.";
const char sentence_23[] PROGMEM = "I bet if Britney Spears knew you, 2008 would have gone a lot differently.";
const char sentence_24[] PROGMEM = "I would trust you with my passwords.";
const char sentence_25[] PROGMEM = "You are a great problem solver";
const char sentence_26[] PROGMEM = "I would love to hear you laugh!";
const char sentence_27[] PROGMEM = "Please, have a monologue about your week, I just want to listen to you!";
const char sentence_28[] PROGMEM = "You are very far from being Trump.";
const char sentence_29[] PROGMEM = "I think my dog might like you more than me";
const char sentence_30[] PROGMEM = "I feel like you would be a great person to do a group project with";
const char sentence_31[] PROGMEM = "I bet animals love you";
const char sentence_32[] PROGMEM = "I bet even Kanye would like you more than himself";
const char sentence_33[] PROGMEM = "You are just doing a great job at life";
const char sentence_34[] PROGMEM = "I like how you are challenging me.";
const char sentence_35[] PROGMEM = "You would do be a great mother!";
const char sentence_36[] PROGMEM = "I... Baked bread for you.";
const char sentence_37[] PROGMEM = "Wow. You.";
const char sentence_38[] PROGMEM = "You would not have let that balrog pass!";
const char sentence_39[] PROGMEM = "Thank you.";
const char sentence_40[] PROGMEM = "You would be standing out in a crowd";
const char sentence_41[] PROGMEM = "Your sense of style is amazing.";
const char sentence_42[] PROGMEM = "You have a beautiful mind.";
const char sentence_43[] PROGMEM = "I like that big juicy brain of yours";
const char sentence_44[] PROGMEM = "I would share my cinnamon bun with you";
const char sentence_45[] PROGMEM = "I like you more than i like my moms apple pie";
const char sentence_46[] PROGMEM = "You give me the same feeling as a summers night";
const char sentence_47[] PROGMEM = "I enjoy you more than the click of my mechanical switch";
const char sentence_48[] PROGMEM = "I would let you pop my bubble wrap";
const char sentence_49[] PROGMEM = "Being near you is like being inside of a poem";

PGM_P const sentences[] PROGMEM = {
sentence_01,
sentence_02,
sentence_03,
sentence_04,
sentence_05,
sentence_06,
sentence_07,
sentence_08,
sentence_09,
sentence_10,
sentence_11,
sentence_12,
sentence_13,
sentence_14,
sentence_15,
sentence_16,
sentence_17,
sentence_18,
sentence_19,
sentence_20,
sentence_21,
sentence_22,
sentence_23,
sentence_24,
sentence_25,
sentence_26,
sentence_27,
sentence_28,
sentence_29,
sentence_30,
sentence_31,
sentence_32,
sentence_33,
sentence_34,
sentence_35,
sentence_36,
sentence_37,
sentence_38,
sentence_39,
sentence_40,
sentence_41,
sentence_42,
sentence_43,
sentence_44,
sentence_45,
sentence_46,
sentence_47,
sentence_48,
sentence_49
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
int sentences_size = sizeof(sentences) / sizeof(sentences[0]);
int i = rand() % sentences_size;
switch(keycode) {
case RANDOM_STRING_MACRO:
send_string_with_delay(sentences[i], delay);
return false;
if (record->event.pressed) {
int sentences_size = sizeof(sentences) / sizeof(sentences[0]);
int i = rand() % sentences_size;

switch (keycode) {
case RANDOM_STRING_MACRO:
send_string_with_delay_P((PGM_P)pgm_read_word(&(sentences[i])), RANDOM_STRING_DELAY);
tap_code(KC_ENT);

return false;
}
}
}
return true;
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT( RANDOM_STRING_MACRO )
};
return true;
}
9 changes: 4 additions & 5 deletions keyboards/handwired/nicekey/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@

![The first NiceKey](https://s3.eu-central-1.amazonaws.com/mindlevel/nicekey.jpg)


Custom handwired nicekey, a one key keyboard that writes random compliments.

Keyboard Maintainer: [spydon](https://github.com/spydon)
Hardware Supported: Custom handwired one key
Hardware Availability:
* Keyboard Maintainer: [spydon](https://github.com/spydon)
* Hardware Supported: Custom handwired one key
* Hardware Availability: n/a

Switch must be connected to pins C6 and B6.
Switch must be connected to pins C6 and B6.

Make example for this keyboard (after setting up your build environment):

Expand Down
19 changes: 12 additions & 7 deletions keyboards/handwired/nicekey/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,17 @@ MCU = atmega32u4
BOOTLOADER = caterina

# Build Options
# comment out to disable the options.
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output

0 comments on commit 633ef14

Please sign in to comment.