summaryrefslogtreecommitdiff
path: root/keyboards
AgeCommit message (Collapse)Author
2020-03-28V-USB: Use structs for USB descriptors (#8572)Ryan
* V-USB: Use structs for USB descriptors * Update usbconfigs * cformat pass
2020-03-27Fix inverted backlight for XD60 (#8575)Ryan
2020-03-26[Keyboard] MountainBlocks MB17 (#8554)MechMerlin
* initial commit * preliminary support for mb17 using the qmk default keymap * add the VIA keymap * add qmk configurator support * code cleanups before submission * Update keyboards/mountainblocks/mb17/rules.mk * Update keyboards/mountainblocks/mb17/info.json * remove file
2020-03-26[Keymap] BM16a stock layout (#8547)Jakub Darowski
* Stock layout * Added the default readme * Update keyboards/bm16a/keymaps/stock/keymap.c Removed trailing backslashes from layouts * Removed redundant files, renamed stock keymap and changed readme
2020-03-26V-USB: Use manufacturer and product strings from config.h (#7797)Ryan
* V-USB: Use manufacturer and product strings from config.h * Update board configs
2020-03-26Add KeebsPCB pre-Alpha support (#8485)Álvaro A. Volpato
* Add initial KeebsPCB support * Update readme * Update readme * Correct readme typo * Update keyboards/acheron/keebspcb/config.h Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Apply @noroadsleft suggestions from code review Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/acheron/keebspcb/info.json Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/acheron/keebspcb/keymaps/default/keymap.c Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-26Add _33 Keyboard folder (#8543)tominabox1
* Add _33 Keyboard folder * Correcting naming convetions and other code convetions * Removed extra spaces * fixed layout callbacks to new lower-case versions * Remove tapping_term, fix RGB pin define. Added blank readme-to be updated. * initial addition of the readme.md * Update readme.md for hardware/pcb availability info * Adding keymap readme * Info.json added * Incorporate Drashna's recommended changes
2020-03-25add ansi with blocker layout and keymap for KBD67 rev2 PCB (#8538)elmo-space
* add new layout for 65% with blocker and add matching keymap the rev2 pcb gets used in the kbd67 which has a blocker between the left arrow key and the right ctrl key. this layout is missing so far even though it's probably the most used one for this board. * add split backspace layout with blocker * change keycode for backslash * update rules.mk and add missing layouts in info.json * Update keyboards/kbdfans/kbd67/rev2/rules.mk Co-Authored-By: Joel Challis <git@zvecr.com> Co-authored-by: Joel Challis <git@zvecr.com>
2020-03-25Slice Keyboard (#8464)2Moons-JP
* Adding Slice Keyboard * Update keyboards/basekeys/slice/rev1/config.h Co-Authored-By: Erovia <Erovia@users.noreply.github.com> * Update config.h * Update keyboards/basekeys/slice/slice.h Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/slice.h Co-Authored-By: Joel Challis <git@zvecr.com> * Update and rename rev1.c to rev1_rgb.c * Rename rev1.h to rev1_rgb.h * Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/slice_font.c Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/slice_font.c Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/_font.c Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/_font.c Co-Authored-By: Joel Challis <git@zvecr.com> * slice_font location * Update config.h * Delete slice_font.c * Update config.h * Update keyboards/basekeys/slice/rev1/config.h Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/rev1_rgb/rules.mk Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/basekeys/slice/rev1_rgb/rules.mk Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/basekeys/slice/rev1/rules.mk Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/basekeys/slice/rev1/rules.mk Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/basekeys/slice/keymaps/default/keymap.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keymap.c * oled rotation, config handedness * OLED and LED functionality removed * Update keyboards/basekeys/slice/keymaps/default/keymap.c Co-Authored-By: Drashna Jaelre <drashna@live.com> * Update keyboards/basekeys/slice/keymaps/default/keymap.c Co-Authored-By: Drashna Jaelre <drashna@live.com> * Update keyboards/basekeys/slice/keymaps/default/keymap.c Co-Authored-By: Drashna Jaelre <drashna@live.com> * Update keymap.c * Update keymap.c * oled rotation, config handedness * rev1 added EE_HANDS * oled function name * oled function name * oled function name * Update keyboards/basekeys/slice/rev1_rgb/rules.mk Co-Authored-By: Joel Challis <git@zvecr.com> * keymap changes * Delete _font.c * keymap changes, VID/PID * Update keyboards/basekeys/slice/rev1/config.h Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/rev1/config.h Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/basekeys/slice/rev1_rgb/config.h Co-Authored-By: Joel Challis <git@zvecr.com> * split_util.h used Co-authored-by: Erovia <Erovia@users.noreply.github.com> Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-03-24[Keyboard] Add kudox game rev2 (#8529)くまお工房
* Add Kudox Game rev2. * Add the keymap of Kudox Game a layer for regulating RGB. * Modified rgblight_init when RGBLIGHT_ENABLE=no. * Remove invalid codes. * Modified *init* function right intention of framework.
2020-03-24[Keymap] shadowprogr's personal keymap (#8497)Hoàng Vương
* Add personal keymap * Add keymap readme.md * Update keymap
2020-03-24Set backlight and RGB pins for AVR onekeys (#8533)Ryan
* Set backlight and RGB pins for AVR onekeys * Set pin for ADC as well * Define ADC_PIN for F4 blackpills * Use A0 for F4 ADCs * Set ADC pins for F0 and F1
2020-03-24[Keymap] Minidox Bepo layout (#8515)Olivier
* [Keymap] Minidox Bepo layout Todo : Lower Adjust Update Lower E and Lower S on schema * Added config.h * Code review, update config.h Co-Authored-By: Ryan <fauxpark@gmail.com> Co-authored-by: dolie <olivier.ghafari@pm.me> Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-23[Keyboard] Add support for Southpaw Extended 65% (#8465)horza21
* Add support for Southpaw Extended 65% * Update keyboards/switchplate/southpaw_65/readme.md * Update keyboards/switchplate/southpaw_65/readme.md * Update keyboards/switchplate/southpaw_65/readme.md * Update keyboards/switchplate/southpaw_65/southpaw_65.c * Update keyboards/switchplate/southpaw_65/rules.mk * Cleaned up keymaps -Removed default2 keymap -Removed default_iso2 keymap -Rename default keymap directory to default_ansi to reflect correct keymap name * Update readme.md for default_ansi keymap directory change * Add layout_all for configurator and correct maximum number of keys supported in readme.md * Update keyboards/switchplate/southpaw_65/info.json Forgot to change name to LAYOUT_all * Update keyboards/switchplate/southpaw_65/info.json * Update keyboards/switchplate/southpaw_65/readme.md * Update keyboards/switchplate/southpaw_65/rules.mk * Add LAYOUT_all keymap * Update keyboards/switchplate/southpaw_65/keymaps/default/keymap.c * Update keyboards/switchplate/southpaw_65/info.json
2020-03-22[Keyboard] Snap96 Keyboard (#8416)Xelus22
* snap96 * fix readme * small fixes * remove 4th layer * moved via config to via folder * remove suspend * via config.h * kc_nubs * remove kc_trns to define and remove layer 2 * remove merge conflicts * remove define and add 3rd layer for VIA keymap * fix comma Co-authored-by: Xelus22 <preyas22@gmail.com>
2020-03-22[Keyboard] Added two new layouts for the cospad (#8502)johannbl
* creation new numpad layout for 23 keys creation of new keymap * Update cospad.h * Update info.json * Update keymap.c * Update keymap.c Added a macro for the "00" key. * added two new keymap. one for each new layout. The new keymaps are based on the default keymap but focus on * Update keyboards/cospad/cospad.h Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/cospad/cospad.h Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/cospad/keymaps/johannbl/numpad2/keymap.c Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/cospad/info.json Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/cospad/keymaps/johannbl/keymap.c Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/cospad/keymaps/johannbl/numpad2/keymap.c Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/cospad/info.json Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/cospad/keymaps/johannbl/numpad3/keymap.c Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/cospad/keymaps/johannbl/numpad3/keymap.c Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/cospad/keymaps/johannbl/numpad3/keymap.c Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keymap.c layout name fix. * Update keyboards/cospad/keymaps/johannbl/keymap.c Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/cospad/info.json Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/cospad/keymaps/johannbl/keymap.c Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/cospad/keymaps/johannbl/keymap.c Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Delete keymap.c * Rename keyboards/cospad/keymaps/johannbl/numpad2/keymap.c to keyboards/cospad/keymaps/johannbl/split_plus_and_zero/keymap.c * Rename keyboards/cospad/keymaps/johannbl/numpad3/keymap.c to keyboards/cospad/keymaps/johannbl/split_zero/keymap.c * Rename keyboards/cospad/keymaps/johannbl/split_plus_and_zero/keymap.c to keyboards/cospad/keymaps/split_plus_and_zero/keymap.c * Rename keyboards/cospad/keymaps/johannbl/split_zero/keymap.c to keyboards/cospad/keymaps/split_zero/keymap.c * Update keyboards/cospad/keymaps/split_plus_and_zero/keymap.c Co-Authored-By: Nick Brassel <nick@tzarc.org> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-03-21FLX Lodestone: add ANSI and ISO layout data and keymaps (#8481)James Young
* Lodestone: add ANSI and ISO layout data and keymaps * rename layout macros LAYOUT_ansi -> LAYOUT_65_ansi_blocker_split_bs LAYOUT_iso -> LAYOUT_65_iso_blocker_split_bs * use four-space indent on the new keymaps * add 65_ansi_blocker and 65_iso_blocker layouts
2020-03-21Claw44 rev1 Configurator layout support (#8488)James Young
2020-03-21Fix build of Equinox (#8505)Wilba
* Remove rules.mk from equinox dir * Add explicit rules.mk to rev0 and rev1 dirs
2020-03-20[Keyboard] Palette1202 fix encoder rotate direction (#8489)Takashi Shibusawa
* revised hardware availability - URL * fixed encoder rotate direction (reversed)
2020-03-21Initial arm->chibios pass - simplify some platform logic (#8450)Joel Challis
2020-03-21fixing matrix layout (#8504)worldspawn00
2020-03-19Add VIA support to Leaf 60 (#8490)Wilba
2020-03-19VIA Support for GH60 (#8442)Diego Song
* VIA Support: GH60 Rev C and GH60 Satan * Corrected GH60 VIA default keymap * Corrected GH60 VIA default keymap pt 2 * Copied default keymap over via default keymap * Satan GH60 default corrected for VIA * Satan GH60 default corrected for VIA pt 2 * Satan GH60 LTO enable for size * Transparent 4th dynamic layer for GH60 Via support * Update keyboards/gh60/revc/info.json * Update keyboards/gh60/satan/info.json * Update keyboards/gh60/satan/info.json * Removed deprecated JSON keys gh60/revc/info.json * Removed inline comment next to VID for GH60 Satan
2020-03-19Add tw1t611 ergodash keymap. (#8377)tw1t611
* Add tw1t611 ergodash keymap. * Fix keycodes. Change kc_rctl to kcb rsft. * Change block to enum layers. * Remove blackslahs. * Remove last slash. Align row. * Use new german keymap. * Fix typo. Co-authored-by: Daniel Schindler <client55@protonmail.com>
2020-03-19VIA Support: PDXKBC Macropad (#8431)MechMerlin
* add via support for pdxkbc macropad * add VIA support for the pdxkbc * clean out some commented code * remove unused files * comment the vendor ID * Update keyboards/pdxkbc/keymaps/via/keymap.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/pdxkbc/keymaps/via/keymap.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/pdxkbc/keymaps/via/keymap.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/pdxkbc/keymaps/via/keymap.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/pdxkbc/keymaps/via/keymap.c Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/pdxkbc/keymaps/via/keymap.c Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/pdxkbc/keymaps/via/keymap.c Co-Authored-By: Joel Challis <git@zvecr.com> Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Joel Challis <git@zvecr.com>
2020-03-19Set MCU for some F103 boards (#8459)Ryan
2020-03-18Allow RGBLIGHT_ANIMATIONS to work on keebio/iris configurator builds (#8482)James Young
* Allow RGBLIGHT_ANIMATIONS to work on keebio/iris configurator builds * Also align rules.mk
2020-03-19M0lly: refactor OLED support and qmk-dfu bootloader (#8475)TerryMathews
2020-03-19VIA support for projectkb/alice (#8474)Ryan Miguel
* Create rules.mk Added rules.mk in keymaps/via * Update rules.mk Added new line at the end of the file * Create via\keymap.c Added keymap.c inside the via directory * Update config.h in projectkb/alice Defined VIA eeprom layout size to 2 bits to allow for 4 layout options
2020-03-19Also align rules.mkzvecr
2020-03-19Allow RGBLIGHT_ANIMATIONS to work on keebio/iris configurator buildszvecr
2020-03-18[Keyboard] FLX Lodestone (#8451)Flexerm
* Add Lodestone PCB Working Firmware for Lodestone PCB tested on physical PCB prototypes. * Update keyboards/flx/lodestone/lodestone.c * Update keyboards/flx/lodestone/keymaps/default/config.h * Update keyboards/flx/lodestone/rules.mk * Update keyboards/flx/lodestone/readme.md * Delete config.h * Update keyboards/flx/lodestone/info.json Suggested by noroadsleft * Update keyboards/flx/lodestone/info.json * Update keyboards/flx/lodestone/info.json Changed maintainer name as suggested. * Update keyboards/flx/lodestone/keymaps/default/readme.md * Update keyboards/flx/lodestone/info.json * Update keyboards/flx/lodestone/rules.mk Changed Link_Time_Optimization to LTO didn't know this was a thing :) * Update keyboards/flx/lodestone/keymaps/default/keymap.c Removed 2 unessisary layers from the default map. * Update keyboards/flx/lodestone/readme.md * Update keyboards/flx/lodestone/info.json * Changed from LAYOUT to LAYOUT_all AS suggested by noroadsleft, changed 4 files to match, and re-testeed on my hardware to confirm working. * Update keyboards/flx/lodestone/config.h Cleaned up Manu, Product and Descriptor as suggested. * Update keyboards/flx/lodestone/readme.md
2020-03-18format code according to conventions [skip ci]QMK Bot
2020-03-18[Keyboard] uranuma (#8343)yohewi
* uranuma * Update keyboards/uranuma/keymaps/default/keymap.c * Update keyboards/uranuma/rules.mk * Update keyboards/uranuma/keymaps/default/keymap.c * Update keyboards/uranuma/keymaps/default/keymap.c * Update keyboards/uranuma/keymaps/default/keymap.c * Update keyboards/uranuma/uranuma.h * Update keyboards/uranuma/keymaps/default/keymap.c * Update keyboards/uranuma/keymaps/default/keymap.c * 20200316change
2020-03-18[Keyboard] Wheatfield Blocked65% (#8339)TerryMathews
* Initial support for Wheatfield Blocked65% * Update keyboards/wheatfield/blocked65/blocked65.c * Update keyboards/wheatfield/blocked65/blocked65.h * Update keyboards/wheatfield/blocked65/blocked65.h * Update keyboards/wheatfield/blocked65/info.json * Update keyboards/wheatfield/blocked65/info.json * Update keyboards/wheatfield/blocked65/keymaps/default/keymap.c * Update keyboards/wheatfield/blocked65/keymaps/default/keymap.c * Update keyboards/wheatfield/blocked65/readme.md * Update keyboards/wheatfield/blocked65/readme.md * Update keyboards/wheatfield/blocked65/rules.mk * Update keyboards/wheatfield/blocked65/keymaps/default/keymap.c
2020-03-18[Keyboard] Splitreus62 (#8383)Derek
* added splitreus62 * fixed rules.mk * Update keymap.c * Updated RGBLIGHT_ENABLE * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Updated NKRO * added splitreus62 * fixed rules.mk * Update keymap.c * Updated RGBLIGHT_ENABLE * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Update readme.md * Updated NKRO * Update config.h * Update keyboards/splitreus62/rules.mk * Update keyboards/splitreus62/splitreus62.c * Update keyboards/splitreus62/splitreus62.h * Update keyboards/splitreus62/readme.md * Update keyboards/splitreus62/rules.mk * Update config.h * Update keyboards/splitreus62/readme.md * Update keyboards/splitreus62/rules.mk * Update keyboards/splitreus62/splitreus62.h * Update keyboards/splitreus62/keymaps/default/keymap.c * Update keyboards/splitreus62/readme.md
2020-03-18[Keymap] Update default keymap for Choco60 (#8453)Naoto Takai
* Update default keymap for Choco60 * Update keyboards/choco60/keymaps/default/keymap.c Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-18[Keymap] I2C scanner (#8454)Joel Challis
* Add i2c scanner keymap * Add bodge for chibios * Fix readme title * make chibios bodge a little cleaner * fix typo in readme
2020-03-18[Keyboard] Add more community layout support to Polaris (#8468)Brandon Schlack
- Add 60_ansi, 60_ansi_split_bs_rshift layouts
2020-03-18VIA support for TKC1800 (#8178)Wilba
* VIA support for TKC1800 * Fixed VENDOR_ID
2020-03-18[Keymap] Add the fsck layout for iris (#8473)Frederick Hirsch
2020-03-17[Keymap] Corodiak's Kyria (#8444)Jann-Niklas Zimmermann
* Add kyria keymap * Delete wrong readme.md * Move layer keys * Refine keymap * Clean up * Add comment * Improve OS depending macros * Update keymap overview * Add review suggestions
2020-03-17[Keymap] New Massdrop ALT keymap for emptyflask (#8460)Jon Roberts
amended to remove a couple of unnecessary lines, thanks to @zvecr and @fauxpark
2020-03-17[Keyboard] Add sick68 keyboard (#8400)Umberto Baldi
* add sick68 keyboard * relocate to keyboards/handwired/sick68 * Apply suggestions from code review * delete config.h because was emply * Apply suggestions from code review
2020-03-17Fix Dimple VIA keymap (#8466)Erovia
2020-03-17Add VIA support for LazyDesigners Dimple. (#8447)Erovia
* Assign unique VID to LazyDesigners' boards * Add VIA support for LazyDesigners Dimple * Apply @fauxpark's suggestions Co-Authored-By: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-17ARM - ADC cleanup (#8385)Joel Challis
* Update switch to array to allow custom values * Add adc keymap * update docs to reflect alignment of default 10 bit * start conversion to USE_ADCVn * samplerate is hella wrong...stub out for now * basic f1 and f4 functionality * Tidy up current changes * Restore old pinToMux function * Add back sample rate for supported platforms * F0 compile fixes * wordsmithery Co-Authored-By: Ryan <fauxpark@gmail.com> * Remove reference to avr only function Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-15[Keyboard] Add the Romeo keyboard (#8434)coseyfannitutti
* Add Keyboard - Romeo * Update rules.mk * Update readme.md * Update keyboards/coseyfannitutti/romeo/readme.md Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/coseyfannitutti/romeo/romeo.c Co-Authored-By: Joel Challis <git@zvecr.com> * Update keyboards/coseyfannitutti/romeo/keymaps/default/keymap.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/coseyfannitutti/romeo/keymaps/default/keymap.c Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/coseyfannitutti/romeo/readme.md Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/coseyfannitutti/romeo/rules.mk Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/coseyfannitutti/romeo/usbconfig.h Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/coseyfannitutti/romeo/usbconfig.h Co-Authored-By: Ryan <fauxpark@gmail.com> * Update keyboards/coseyfannitutti/romeo/usbconfig.h Co-Authored-By: Ryan <fauxpark@gmail.com> Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-15[Keymap] fix sigma keymaps build (#8427)Yann Hodique
handle unicode input properly.