summaryrefslogtreecommitdiff
path: root/keyboards/z12/keymaps/zigotica/encoder.c
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2021-10-16 02:02:07 +0000
committerQMK Bot <hello@qmk.fm>2021-10-16 02:02:07 +0000
commita1191495132e924cad12533f11c19ba4b8288b0d (patch)
tree8b7fe8472fbc0d7229883a93ef91b26129ddc60b /keyboards/z12/keymaps/zigotica/encoder.c
parent36fc46ead7e9c3231b1223eb7945152aab705993 (diff)
parent40badc4413d97226398302fb7a84c83c5c4f03a8 (diff)
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'keyboards/z12/keymaps/zigotica/encoder.c')
-rw-r--r--keyboards/z12/keymaps/zigotica/encoder.c114
1 files changed, 114 insertions, 0 deletions
diff --git a/keyboards/z12/keymaps/zigotica/encoder.c b/keyboards/z12/keymaps/zigotica/encoder.c
new file mode 100644
index 0000000000..49a3d859b6
--- /dev/null
+++ b/keyboards/z12/keymaps/zigotica/encoder.c
@@ -0,0 +1,114 @@
+/* Copyright 2020 Sergi Meseguer <zigotica@gmail.com>
+
+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/>.
+*/
+
+#include "zigotica.h"
+
+bool encoder_update_user(uint8_t index, bool clockwise) {
+ switch(get_highest_layer(layer_state)){
+ case _VIM:
+ if (index == 0) { // LEFT
+ // Cycle through buffers
+ if (clockwise) {
+ register_code(KC_ESC);
+ SEND_STRING(":bprevious");
+ register_code(KC_ENT);
+ unregister_code(KC_ESC);
+ unregister_code(KC_ENT);
+ } else {
+ register_code(KC_ESC);
+ SEND_STRING(":bnext");
+ register_code(KC_ENT);
+ unregister_code(KC_ESC);
+ unregister_code(KC_ENT);
+ }
+ } else { // RIGHT
+ // Scroll
+ if (clockwise) {
+ tap_code(KC_PGDN);
+ } else {
+ tap_code(KC_PGUP);
+ }
+ }
+ break;
+ case _BROWSER:
+ if (index == 0) { // LEFT
+ // Cycle through Tabs
+ if (clockwise) {
+ tap_code16(C(KC_TAB));
+ /* register_code16(G(KC_RCBR)); */
+ /* unregister_code16(G(KC_RCBR)); */
+ } else {
+ tap_code16(S(C(KC_TAB)));
+ /* register_code16(G(KC_LCBR)); */
+ /* unregister_code16(G(KC_LCBR)); */
+ }
+ } else { // RIGHT
+ // Scroll up/down
+ if (clockwise) {
+ register_code(KC_WH_U);
+ unregister_code(KC_WH_U);
+ } else {
+ register_code(KC_WH_D);
+ unregister_code(KC_WH_D);
+ }
+ }
+ break;
+ case _FIGMA:
+ if (index == 0) { // LEFT
+ // Volume control.
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ } else { // RIGHT
+ // Zoom in/out
+ if (clockwise) {
+ register_code(KC_LGUI);
+ register_code(KC_WH_D);
+ unregister_code(KC_WH_D);
+ unregister_code(KC_LGUI);
+ } else {
+ register_code(KC_LGUI);
+ register_code(KC_WH_U);
+ unregister_code(KC_WH_U);
+ unregister_code(KC_LGUI);
+ }
+ }
+ break;
+ case _TERMINAL:
+ default:
+ if (index == 0) { // LEFT
+ // Volume control.
+ if (clockwise) {
+ tap_code(KC_VOLU);
+ } else {
+ tap_code(KC_VOLD);
+ }
+ } else { // RIGHT
+ // Scroll
+ if (clockwise) {
+ tap_code(KC_PGDN);
+ } else {
+ tap_code(KC_PGUP);
+ }
+ }
+ break;
+ }
+ return false;
+}
+
+