Skip to content
Use a physical keyboard to interact with SmileBASIC in Citra
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information. Update Apr 29, 2019
sbkb.ahk Update sbkb.ahk May 14, 2019


Use a physical keyboard to interact with SmileBASIC in Citra

It is HIGHLY RECOMMENDED that you map the D-Pad buttons to the arrow keys prior to using this script

this guide uses emacs key notation



  • M-x: toggle Controller Mode
  • CapsLock: switch keyboard case (if possible)
  • C-leftmouse: set touchscreen top left do this before anything else
  • C-rightmouse: set touchscreen bottom right do this before anything else

Normal Mode

  • normal keys: insert text
  • backspace: backspace
  • RET: insert newline
  • C-s: save slot (enable Dialog Mode)
  • C-o: open file in slot
  • C-v: paste
  • C-z: undo
  • C-y: redo
  • C-LeftArr, home: beginning of line
  • C-RightArr, end: end of line
  • C-Up, PgUp: scroll up
  • C-Down, PgDn: scroll down
  • C-f: enable Search Mode
  • C-S-H: enable Search Mode with replace on
  • C-<SPACE>: enable Select Mode
  • S-arrows: select and move
  • C-/, C-.: make current line a comment
  • M-w: insert WHILE WEND (experimental)
  • M-i: insert IF THEN (experimental)
  • M-l: insert ELSEIF THEN (experimental)
  • C-h: toggle SB help

Search Mode

  • normal keys: enter search/replace query
  • C-, (C-<): previous result
  • C-. (C->): next result
  • RET: commit replace
  • C-h: toggle replace

Select Mode

  • C-c: copy
  • C-x: cut
  • C-v: paste
  • C-<SPACE>: disable Select Mode

Controller Mode

Keys are unassigned and default to their meaning as Citra buttons

  • normal keys: unassigned
  • Shift: enable Select Mode

Dialog Mode

  • valid filename keys: enter text
  • C-c: cancel
  • RET: OK
You can’t perform that action at this time.