summary refs log tree commit diff
path: root/users
diff options
context:
space:
mode:
authorSilvio Gulizia <desk@silviogulizia.com>2020-03-31 23:15:16 +0200
committerGitHub <noreply@github.com>2020-03-31 14:15:16 -0700
commite5b10079cfaf9bd3cfb25781f2847a6ca4590fd4 (patch)
tree6922477b0d8bd550d99e17501102d3ba743e904b /users
parent854d46f833e57fa3b2b3b29c0230cba8f3e95a6e (diff)
[Keymap] Sigul planck (#8546)
* remove IT_PIPE duplicate and add IT_GRAD

IT_PIPE was declared 2 times, ones as ° and once as |. I changed the first declaration and called it IT_GRAD. I even fixed the definition because the ° in Italian is obtained with LSFT(IT_AACC)

* rename IT_GRAD to IT_DEGR

* fix missing music mode legend

* add    missing plus_and_minus

* fix missing IT_ACUT definition

* change KC_LALT(KC_LSFT to LALT(LSFT

* Fix alignment

* remove leftover

* fix issue generated with chars while pushing

* fix typo

* add sigul folder in Planck keymaps

* fix LCBR and RCBR

* fix euro symbol

* fix RBRC

* change IT_LESS form KC_NUBS to KC_GRAVE

* add IT_TILDE and change IT_GRAV to IT_GRAVE

* initial commit

* add ideas to readme

* comment key lock

* add a bunch of new features as stated in readme.md

* check features added and list to do

* add macros on RAISE

* add F keys on numbers row on FN layer

* flag features added

* fix macro formulas

* move DESK and SGCOM under D and S

* invert IT_EACC and S(IT_EACC) to align the layout with that of the default Planck

* invert IT_EACC and S(IT_EACC) to align the layout with that of the default Planck

fix spaces for readability

* add missing legends for accented vowels

* format for readability

* move MOUSE button on B (same key that activates it) on MOUSE layer

* revert to commit befor I edit it

* initial commit

* edited to be easier to compare to _ansi.h

* remove keymap_italian_osx_iso.h and rename with edits keymap_italian_osx_ansi.h to keymap_italian_osx.h

I found out there were no difference at all

* fix missing #endif

* change the included file from italian.h to italian_osx.h

* fix debug key

* edit Numapd layer, add enter and bsps

* change TAPPING_TOGGLE from 2 to 3

* change italian_osx.h to italian_ansi.h

* rename quantum/keymap_extras/keymap_italian_osx.h to quantum/keymap_extras/keymap_italian_ansi.h

Now this file is a clone of the keymap_italian.h that appears to be working only for ISO keyboards. It also contains a few improvements for IT_PIPE (defined two times) and IT_ACUT (missing definition). Additionally it redefines LCBR and RCBR to LSFT(IT_LBRC) and LSFT(IT_RBRC)

* rename file

* redefines IT_BKSL and IT_PIPE based on KC_BKSL

* merge new italian

* add new osx_iso and osx_ansi version for italian.h and align BKSL to BSLS, fix double definition of PIPE

* rename BKSL to BSLS

* add FN_D and some comments

* add MOUSEKEY configuration

* update

* edit swap =/+ with ò/ì

* merge with master

* add MS_B to have _MOUSE when pressing B

* move RAISE on _FN

* add phone number

* remove CONTRA folder

* remove CONTRA folder

* Update keyboards/planck/keymaps/sigul/keymap.c

fix include definition

Co-Authored-By: Ryan <fauxpark@gmail.com>

* remove default planck kemap

* remove extern keymap_config_t keymap_config;

based on suggestion from @fauxpark, It's not needed as it should already be externed through one of the includes provided by QMK_KEYBOARD_H.

Co-Authored-By: Ryan <fauxpark@gmail.com>

* add user space for user sigul

* remove custom config moved to user space sigul

* comment tri layers state (moved to user space)

* remove tri layers update comment (code moved in user space)

* add secrets

* move enum and define to userspace

* Edit title

* move enum and define to sigul.h

* add thanks

* edit: moving to userspace  enum, define and process_records

* add enum and defines

* add process_records

* cleaning code after moving code to user space

* add process_records

* cleaning code

* adding rules to manage secrets

* remove secretes

* first commit

* add macro timer

* add keycodes macro

* edit custom keycodes order

* add strings to send inside the secrets array

* remove codes for secrets & change secret to secrets

* edit secrets keycodes

* edit keycodes names and order

* add secrets.h and secrets.c

* add #pragma once

Co-Authored-By: Joel Challis <git@zvecr.com>

* Update .gitignore

Co-Authored-By: Joel Challis <git@zvecr.com>

* add local gitignore for secrets

* remove secrets

* update for secrets

* change FN_D to IT_D

* remove FN_D definition

Co-authored-by: pisilvio <silvio@picampus.it>
Co-authored-by: admin <admin@admins-MacBook-Pro.local>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Diffstat (limited to 'users')
-rw-r--r--users/sigul/.gitignore2
-rw-r--r--users/sigul/README.md17
-rw-r--r--users/sigul/config.h21
-rw-r--r--users/sigul/rules.mk8
-rw-r--r--users/sigul/sigul.c100
-rw-r--r--users/sigul/sigul.h42
6 files changed, 190 insertions, 0 deletions
diff --git a/users/sigul/.gitignore b/users/sigul/.gitignore
new file mode 100644
index 0000000000..12165fdbd7
--- /dev/null
+++ b/users/sigul/.gitignore
@@ -0,0 +1,2 @@
+secrets.h
+secrets.c
diff --git a/users/sigul/README.md b/users/sigul/README.md
new file mode 100644
index 0000000000..a8f705e154
--- /dev/null
+++ b/users/sigul/README.md
@@ -0,0 +1,17 @@
+Copyright 2020 Silvio Gulizia desk@silviogulizia.com @sigul
+
+Userspace by Silvio Gulizia
+Contains code for ANSI / Italian layouts.
+
+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/>.
diff --git a/users/sigul/config.h b/users/sigul/config.h
new file mode 100644
index 0000000000..dc0cd0f070
--- /dev/null
+++ b/users/sigul/config.h
@@ -0,0 +1,21 @@
+#pragma once
+
+// My custom configurations
+#define TAPPING_TOGGLE 3 // enable tapping toggle, used to lock level with a custom keycode defined by TT (in my case RAISE, LOWER and MOUSE)
+#define USB_MAX_POWER_CONSUMPTION 100 // required to be able to use the keyboard with iPad
+
+// Settings for using the keybaord as a mouse
+#define MOUSEKEY_DELAY 30
+// Delay between pressing a movement key and cursor movement
+#define MOUSEKEY_INTERVAL 16
+// Time between cursor movements
+#define MOUSEKEY_MAX_SPEED  3
+// Maximum cursor speed at which acceleration stops
+#define MOUSEKEY_TIME_TO_MAX 40
+// Time until maximum cursor speed is reached
+#define MOUSEKEY_WHEEL_MAX_SPEED 0
+// Maximum number of scroll steps per scroll action
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 0
+// Time until maximum scroll speed is reached
+
+#define MACRO_TIMER 5
diff --git a/users/sigul/rules.mk b/users/sigul/rules.mk
new file mode 100644
index 0000000000..e272957d0a
--- /dev/null
+++ b/users/sigul/rules.mk
@@ -0,0 +1,8 @@
+SRC += sigul.c
+MOUSEKEY_ENABLE = yes
+
+ifneq ($(strip $(NO_SECRETS)), yes)
+    ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
+        SRC += secrets.c
+    endif
+endif
diff --git a/users/sigul/sigul.c b/users/sigul/sigul.c
new file mode 100644
index 0000000000..0995ca7360
--- /dev/null
+++ b/users/sigul/sigul.c
@@ -0,0 +1,100 @@
+#include "keymap_italian_osx_ansi.h"
+#include "sigul.h"
+
+__attribute__ ((weak))
+layer_state_t layer_state_set_keymap (layer_state_t state) {
+  return state;
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+  return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
+
+__attribute__ ((weak))
+bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
+  return true;
+}
+
+__attribute__ ((weak))
+bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
+  return true;
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+  switch (keycode) {
+
+    case IT_SCCL:
+      if (record->event.pressed){
+        if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){
+          register_code16(IT_COLN);
+        } else {
+          register_code16(IT_SCLN);
+        }
+      } else {
+        unregister_code16(IT_COLN);
+        unregister_code16(IT_SCLN);
+      }
+      return false;
+      break;
+
+    case IT_APDQ:
+      if (record->event.pressed){
+        if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){
+          register_code16(IT_DQOT);
+        } else {
+          register_code16(IT_APOS);
+        }
+      } else {
+        unregister_code16(IT_DQOT);
+        unregister_code16(IT_APOS);
+        }
+      return false;
+      break;
+
+    case IT_CMLS:
+      if (record->event.pressed){
+        if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){
+          unregister_code16(KC_LSFT);
+          register_code16(IT_LESS);
+	  register_code16(KC_LSFT);
+        } else {
+          register_code16(IT_COMM);
+        }
+      } else {
+        unregister_code16(IT_LESS);
+        unregister_code16(IT_COMM);
+      }
+      return false;
+      break;
+
+    case IT_DTMR:
+      if (record->event.pressed){
+        if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){
+          register_code16(IT_MORE);
+        } else {
+          register_code16(IT_DOT);
+        }
+      } else {
+        unregister_code16(IT_MORE);
+        unregister_code16(IT_DOT);
+      }
+      return false;
+      break;
+
+    case IT_SLQS:
+      if (record->event.pressed){
+        if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){
+          register_code16(IT_QST);
+        } else {
+          register_code16(IT_SLSH);
+        }
+      } else {
+        unregister_code16(IT_QST);
+        unregister_code16(IT_SLSH);
+      }
+      return false;
+      break;
+  }
+  return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);
+};
+
diff --git a/users/sigul/sigul.h b/users/sigul/sigul.h
new file mode 100644
index 0000000000..dc24fae92f
--- /dev/null
+++ b/users/sigul/sigul.h
@@ -0,0 +1,42 @@
+#pragma once
+
+#include "quantum.h"
+
+enum userspace_layers {
+  _QWERTY,
+  _LOWER, //symbols
+  _RAISE, //numbers
+  _ADJUST, //system
+  _NUMPAD,
+  _FN,
+  _MOUSE
+};
+
+enum userspace_custom_keycodes {
+  QWERTY = SAFE_RANGE,
+  // custom keycodes for an Italian ANSI layout with accented vowels
+  IT_CMLS, // IT_COMM and IT_LESS when combined with shift
+  IT_DTMR, // IT_DOT and IT_MORE when combined with shift
+  IT_SLQS, // IT_SLSH and IT_QST when combined with shift
+  IT_APDQ, // IT_APO and IT_DQOT when combined with shift
+  IT_SCCL, // IT_SMCL and IT_COLN when combined with shift
+  SECRET0,
+  SECRET1,
+  SECRET2,
+  SECRET3, 
+  SECRET4,
+  NEW_SAFE_RANGE // start new keyboard-level declarations with NEW_SAFE_RANGE
+};
+
+// Defining Layer Keycodes
+#define QWERTY DF(_QWERTY)
+// For LOWER and RAISE I use TT instead of MO to be able to lock those layer tapping three times the key (TAPPING_TOGGLE 3 has been added in sigul.h)
+#define LOWER TT(_LOWER)
+#define RAISE TT(_RAISE)
+#define NUMPAD TG(_NUMPAD)
+#define FN MO(_FN)
+#define MOUSE TT(_MOUSE)
+#define TABFN LT(_FN, KC_TAB)
+#define ESCFN LT(_FN, KC_ESC)
+#define MS_B LT(_MOUSE, IT_B)
+