Giter Site home page Giter Site logo

combos's People

Contributors

ecliptik avatar germ avatar obar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

combos's Issues

undefined reference to `keymapsCount'

i want compile on crkbd. but errors.

avr-gcc.exe (GCC) 8.4.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling: keyboards/gboards/g/engine.c [OK]
Compiling: keyboards/crkbd/crkbd.c [OK]
Compiling: keyboards/crkbd/rev1/rev1.c [OK]
Compiling: keyboards/crkbd/keymaps/chording_v6cl/keymap.c [OK]
Compiling: quantum/quantum.c [OK]
Compiling: quantum/send_string.c [OK]
Compiling: quantum/bitwise.c [OK]
Compiling: quantum/led.c [OK]
Compiling: quantum/action.c [OK]
Compiling: quantum/action_layer.c [OK]
Compiling: quantum/action_macro.c [OK]
Compiling: quantum/action_tapping.c [OK]
Compiling: quantum/action_util.c [OK]
Compiling: quantum/eeconfig.c [OK]
Compiling: quantum/keyboard.c [OK]
Compiling: quantum/keymap_common.c [OK]
Compiling: quantum/keycode_config.c [OK]
Compiling: quantum/logging/debug.c [OK]
Compiling: quantum/logging/sendchar.c [OK]
Compiling: quantum/bootmagic/bootmagic_lite.c [OK]
Compiling: quantum/bootmagic/magic.c [OK]
Compiling: quantum/matrix_common.c [OK]
Compiling: quantum/matrix.c [OK]
Compiling: quantum/debounce/sym_defer_g.c [OK]
Compiling: quantum/split_common/split_util.c [OK]
Compiling: quantum/split_common/transport.c [OK]
Compiling: quantum/split_common/transactions.c [OK]
Compiling: quantum/main.c [OK]
Compiling: quantum/mousekey.c [OK]
Compiling: quantum/crc.c [OK]
Compiling: quantum/process_keycode/process_space_cadet.c [OK]
Compiling: quantum/process_keycode/process_magic.c [OK]
Compiling: quantum/process_keycode/process_grave_esc.c [OK]
Compiling: platforms/avr/drivers/i2c_master.c [OK]
Archiving: .build/obj_crkbd_rev1_chording_v6cl/i2c_master.o [OK]
Compiling: platforms/avr/drivers/i2c_slave.c [OK]
Archiving: .build/obj_crkbd_rev1_chording_v6cl/i2c_slave.o [OK]
Compiling: platforms/avr/drivers/serial.c [OK]
Archiving: .build/obj_crkbd_rev1_chording_v6cl/serial.o [OK]
Compiling: tmk_core/common/host.c [OK]
Compiling: tmk_core/common/report.c [OK]
Compiling: tmk_core/common/sync_timer.c [OK]
Compiling: tmk_core/common/usb_util.c [OK]
Compiling: tmk_core/common/avr/platform.c [OK]
Compiling: tmk_core/common/avr/suspend.c [OK]
Compiling: tmk_core/common/avr/timer.c [OK]
Compiling: tmk_core/common/avr/bootloader.c [OK]
Compiling: tmk_core/common/avr/printf.c [OK]
Compiling: tmk_core/protocol/lufa/lufa.c [OK]
Compiling: tmk_core/protocol/usb_descriptor.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Class/Common/HIDParser.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/ConfigDescriptors.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/DeviceStandardReq.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/Events.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/HostStandardReq.c [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/USBTask.c [OK]
Compiling: tmk_core/protocol/lufa/usb_util.c [OK]
Linking: .build/crkbd_rev1_chording_v6cl.elf [ERRORS]
|
| c:/qmk_msys/mingw64/bin/../lib/gcc/avr/8.4.0/../../../../avr/bin/ld.exe: .build/obj_crkbd_rev1_chording_v6cl/g/engine.o: in function SWITCH_LAYER': | C:\Users\v6cl\qmk_firmware/keyboards/gboards/g/engine.c:430: undefined reference to keymapsCount'
| c:/qmk_msys/mingw64/bin/../lib/gcc/avr/8.4.0/../../../../avr/bin/ld.exe: C:\Users\v6cl\qmk_firmware/keyboards/gboards/g/engine.c:430: undefined reference to `keymapsCount'
| collect2.exe: error: ld returned 1 exit status
|
make[1]: *** [tmk_core/rules.mk:351: .build/crkbd_rev1_chording_v6cl.elf] 오류 1
Make finished with errors

KakaoTalk_20211104_195925952
key.zip

Include docs for steno engine

Hello, thank you very much for this awesome project,I started using combos recently and this is a game changer.
The references to the stenography engine caught my attention, but I can’t find any docs related.
From looking at the code I deduce the following:

  • It shadows some QMK features, so maybe things like tap dance does not work.
  • it has some keys that activate an special “enter a long chord here” mode that may not rely on timeouts
  • for some reason the qmk keys are redefined with some stenography conventions like GA for KC_A, not sure why this is needed other than shorter definitions

I will be very grateful if some extra and accurate info is included to see if I want to use it on my keyboards (or at least on my gengi)
Thanks and regards

Quick-Command keyboard shortcuts for asetniop

tl;dr An easy way to do keyboard shortcuts with asetniop keyboards like cmd+s, ctrl+v, shift+pgup, or even things like cmd+ctrl+option+space in only two or three chords instead of five-plus.


Preamble

My Ginny is in the mail so I've not actually used the QMK asetniop implementation yet, but I had an idea for tackling the dance-routine that is keyboard shortcuts, such as C-S-z (ctrl+super+z, cmd+ctrl+z, or win+ctrl+z depending on your fanboi status) and wanted to write it down before I forgot it. I can maybe take a stab at coding it once I get my Ginny to test.

Problem

Every single keyboard shortcut using modifier keys needs command mode, and every single keyboard shortcut using command mode takes five or more combos.

For example, C-S-z takes seven chords: Command mode (ETNI)/Commands (ESIO)/ctrl (A)/Commands (ESIO)/super (T)/z (AI)/Command mode (ETNI).[1] This is awful for a person with a nearly-100% keyboard-driven interface.

Proposal

The idea is to put all modifier keys (shift, ctrl, alt, and super) on a hold-layer that is enabled by holding both thumbs down and auto-combines with the next keycode. The mapping for ASET keys when both thumbs are held would be shift, ctrl, alt, and super respectively (or perhaps swap alt/super to match windows keyboards).

All other keys are generally not used as mods: insert, pgup/pgdn, F-keys, punctuation, letters, numbers, arrows, space/backspace/return, etc. are all "final" keys that may be combined with modifiers and not modifiers themselves, and it is never the case that more than one final key is combined outside of stenography or other chorded-typing engines. (The one exception is esc, but it is so rarely used as a mod and not worth including in Quick-Command.)

Example cases

So how does this stack up for some example shortcuts?

  • To get the previously-mentioned C-S-z it would be LRST/z, only two chords instead of seven. This is the keyboard shortcut that re-tiles a floating window in my window manager, used a few times a day.
  • S-s (cmd+s on mac, commonly used for saving files) instead of ETNI/ESIO/T/S/ETNI (five chords) it would be LRT/s (two chords).
  • ctrl+numbers are how I switch desktop spaces and I use this hundreds of times a day. This would go from six chords to three, eg: LRS/ATNP/A for C-1
  • shift+pgdn is almost a problem as pgdn/up are bound to thumbs in command mode, but this would be LRA/ESIO/R
  • How about shift+space which is both thumbs and a single combo currently? LRA/R. This is the only LONGER combo that I'm aware of. Perhaps even pressing both thumbs and no keys could trigger this, but I'd bet that just aborting quick-command would be better.

Extra credit

The four mods I've mentioned have both left and right versions. rarely needed, but still helpful. We have the RGT and LFT combo keywords, so if thumbs are pressed left-first, LRA, then it would be left-shift. Right-first RLA would be right-shift.

1: If command mode is sticky then the second ESIO combo would come later, but high-number of combos needed still holds.

Can I reference this from my user space?

Hello, thanks for this impressive repo.
I am looking for a way to simplify the creation of combos.
My combos are defined on my user-space, because I want to use them on all my keyboards.
I wanted to streamline the combo creation using macros and I found this.
It looks like includes the macros I wanted and some extras, so my doubts are:

  • Can I follow this install instructions and only get the macros to define combos without the dictionaries and without the custom engine? I mean, raw QMK + using combos.def
  • Can I link it from my user space and use it inside my user-folder/combo.c ?
  • Or maybe it will be better if I just copy paste the macros I'm interested on on my combo.h and call it a day?

Training hints via an IME

I am trying to setup a way to learn chording during everyday typing.
I came across IME customizations like varnam and i think it could be cool to compile an IME suggestion dictionary from a combos.def file.

My intermediate solution is to use macos text substitution feature.

So when I type thi i see a hint to remind me of the available chord:
Thi_Substitution

but this can only give one suggestion for each combo, and actually when i type
th i want a list of the various options for th...
Th_Various

Ideally, i want a list that allows me to choose which actual word to type and the hint to remind me of the chord.

I think this could be done with a custom IME, perhaps even with a simple fork of the varnam project, but i have zero experience with that level of os integration, so i am documenting the idea and wish here.

Any thoughts or resonance?

How to increase speed of emitted letters?

Right now, the speed at which each letter gets printed when you press a chord is slower than the speed of typing letters normally, e.g. typing "asdfhjkl" is slower than a combo emitting "asdfhjkl" even though they're the same length of string. Is there a way to make this faster?

How to capitalize a word typed with SUBS

I notice that i expect when i am holding shift and type a SUBS based chord, it ought to only capitalize the first letter.
As of now, it capitalizes the WHOLE word.

I know technically this is correct, and i started to make SUBS including the space char to indicate capitalize, but i am running out of space already and if i need to duplicate each rule its no good.

Should i try to adjust the SUBS function? where and how could I overwrite that?

No way to type "\" or "|" (KC_BSLASH) in Ginny keymaps?

I was poking at en-keymap.def, num-keymap.def, and cmd-keymap.def, and there doesn't seem to be a mapping for the backslash/pipe key.

I did notice that there was a doubled mapping for KC_MINS on line 28 and 29:

PRES(NUM|AE|AO, KC_MINS) PRES(NUM|AS|AE, KC_MINS)

I was wondering if one of these was in error, and perhaps it was intended to be mapped to the missing KC_BSLASH key?

Ginny does not return to typing layer...

At long last, I received my Ginny today!

While I was poking around at the firmware, I noticed a bug:

If you enter any layer, you can exit again by hitting that layer chord as expected. However, if you try to go from num to command, or vice versa, the board becomes unresponsive.

I fired up xev, and it's not sending keypresses at this point.

The "hit all the keys twice to reset" mentioned in the documentation doesn't seem to work.

Disconnecting and reconnecting the USB resets the board as expected, and it returns to sending keypresses.

I'm new to playing with this board, so if I'm missing anything obvious please let me know. I'm happy to test fixes, as I absolutely love this thing and want to help make it better.

On that note, are there a decent set of instructions on how to reflash the Ginny?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.