PICO-8 Wiki
(→‎Global use: fps toggle)
(Added information about redundant MacOS shortcuts. For example both Ctrl+C and Cmd+C both copy text without any functional difference and can be chosen based on a user's preference.)
Tag: Visual edit
 
(35 intermediate revisions by 12 users not shown)
Line 1: Line 1:
<sup>''!!! Work in progress, not ready for prime time, do not link from other pages yet !!!''</sup>
+
<sup>''!!! Work in progress !!!''</sup>
   
Not all PICO-8 hardware has a keyboard, but when it does, there are many keyboard shortcuts that one can use.
+
Not all PICO-8 hardware has a keyboard, but when it does, there are many keyboard shortcuts that one can use. Known shortcuts are listed here.
   
  +
----
Note that the list below primarily shows the shortcuts for a QWERTY keyboard layout on a Windows build of PICO-8. Regional and platform variations do exist, however. Where known to be different, the Linux and MacOS alternatives are listed here.
 
   
  +
:'''Important:''' the lists below all start with the shortcuts for a '''QWERTY''' keyboard layout on a '''Windows''' build of PICO-8. Key bindings for other keyboard layouts or platform builds are only listed if they are known to be ''different'' from the Windows Build.
'''Readers with knowledge of other platforms are encouraged to fill in the blanks if they know of keys that differ from the Windows layout. If you do, please follow the existing format, thanks!'''
 
  +
  +
:If your key isn't listed, or doesn't work right, try to use the Windows-style shortcut the way you would usually expect one to be done in your own OS. For instance, if you know Undo is Ctrl-Z on Windows, you'd want to try Cmd-Z on MacOS. Certain MacOS functions, but not all, permit the use of either the Ctrl or Cmd keys interchangeably. For instance, both Ctrl+C and Cmd+C will copy text on MacOS. As such, certain functions may have multiple redundant shortcuts listed under the MacOS column. As these are functionally equivalent, you can choose whichever shortcut works best for your workflow and/or preference.
  +
  +
:Also, if you are on a different regional layout, such as AZERTY or QWERTZ, try using the key that would be in the same ''physical'' position as the QWERTY key. And remember, there is a [[Keyconfig|<code>keyconfig</code>]] command you can use to change in-game button assignments.
  +
  +
:'''Readers with knowledge of other platforms are encouraged to fill in the blanks if they know of keys that differ from the Windows layout.''' Don't worry too much about following the tricky formatting in these tables, unless you want to. Feel free to just enter whatever helpful notes you have, even if they aren't put into the tables. Someone else can do the formatting later if needed. Thanks!
  +
  +
----
   
 
<!-- handy chars: ⌘Cmd ⇧Shift ⌥Opt ⌃↩⌤⌫⌦⌧⇥⇤␣⎋⇪⏏⇞⇟↖↘←→↑↓ -->
 
<!-- handy chars: ⌘Cmd ⇧Shift ⌥Opt ⌃↩⌤⌫⌦⌧⇥⇤␣⎋⇪⏏⇞⇟↖↘←→↑↓ -->
 
==Global use==
 
==Global use==
   
{| class="article-table"
+
{| class="article-table" style="width: 100%;"
!Function
+
!scope="col" style="width: 34%;"|Function
  +
!scope="col" style="width: 22%;"|Windows
!Windows
 
  +
!scope="col" style="width: 22%;"|Linux
!Linux
 
  +
!scope="col" style="width: 22%;"|MacOS
!MacOS
 
 
|-
 
|-
  +
|<u>Q</u>uit
|Quit
 
 
|<kbd>Alt</kbd>+<kbd>F4</kbd>
 
|<kbd>Alt</kbd>+<kbd>F4</kbd>
  +
|<kbd>Ctrl</kbd>+<kbd>Q</kbd>
|
 
 
|<kbd>⌘Cmd</kbd>+<kbd>Q</kbd>
 
|<kbd>⌘Cmd</kbd>+<kbd>Q</kbd>
 
|-
 
|-
  +
|<u>R</u>eload/<u>R</u>un/<u>R</u>estart
|Reload/Run/Restart
 
  +
|<kbd>Ctrl</kbd>+<kbd>R</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>R</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>R</kbd>
  +
|<kbd>⌘Cmd</kbd>+<kbd>R</kbd>
|
 
|
 
 
|-
 
|-
|Quick-save
+
|Quick-<u>S</u>ave
 
|<kbd>Ctrl</kbd>+<kbd>S</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>S</kbd>
  +
|<kbd>Ctrl</kbd>+<kbd>S</kbd>
|
 
  +
|<kbd>⌘Cmd</kbd>+<kbd>S</kbd>
|
 
 
|-
 
|-
  +
|<u>M</u>ute/un<u>m</u>ute
|Mute/unmute
 
 
|<kbd>Ctrl</kbd>+<kbd>M</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>M</kbd>
  +
|<kbd>Ctrl</kbd>+<kbd>M</kbd>
|
 
  +
|<kbd>^Ctrl</kbd>+<kbd>M</kbd>
|
 
 
|-
 
|-
 
|Editor toggle
 
|Editor toggle
 
|<kbd>Esc</kbd>
 
|<kbd>Esc</kbd>
  +
|<kbd>Esc</kbd>
|
 
  +
|<kbd>Esc</kbd>
|
 
 
|-
 
|-
 
|Full screen toggle
 
|Full screen toggle
 
|<kbd>Alt</kbd>+<kbd>Enter</kbd>
 
|<kbd>Alt</kbd>+<kbd>Enter</kbd>
  +
|<kbd>Alt</kbd>+<kbd>Enter</kbd>
|
 
 
|<kbd>⌘Cmd</kbd>+<kbd>F</kbd>
 
|<kbd>⌘Cmd</kbd>+<kbd>F</kbd>
 
|-
 
|-
 
|Save a screenshot to desktop
 
|Save a screenshot to desktop
|<kbd>F1</kbd> / <kbd>F6</kbd> / <br /><kbd>Ctrl</kbd>+<kbd>6</kbd>
+
|<kbd>F1</kbd> / <kbd>F6</kbd><br /><kbd>Ctrl</kbd>+<kbd>6</kbd>
|
 
 
|
 
|
  +
|<kbd>^Ctrl</kbd>+<kbd>6</kbd>
 
|-
 
|-
 
|Capture cartridge label image
 
|Capture cartridge label image
|<kbd>F2</kbd> / <kbd>F7</kbd> / <br /><kbd>Ctrl</kbd>+<kbd>7</kbd>
+
|<kbd>F2</kbd> / <kbd>F7</kbd><br /><kbd>Ctrl</kbd>+<kbd>7</kbd>
|
 
 
|
 
|
  +
|<kbd>^Ctrl</kbd>+<kbd>7</kbd>
 
|-
 
|-
 
|Start recording a video
 
|Start recording a video
|<kbd>F3</kbd> / <kbd>F8</kbd> / <br /><kbd>Ctrl</kbd>+<kbd>8</kbd>
+
|<kbd>F3</kbd> / <kbd>F8</kbd><br /><kbd>Ctrl</kbd>+<kbd>8</kbd>
|
 
 
|
 
|
  +
|<kbd>^Ctrl</kbd>+<kbd>8</kbd>
 
|-
 
|-
 
|Save GIF video to desktop
 
|Save GIF video to desktop
|<kbd>F4</kbd> / <kbd>F9</kbd> / <br /><kbd>Ctrl</kbd>+<kbd>9</kbd>
+
|<kbd>F4</kbd> / <kbd>F9</kbd><br /><kbd>Ctrl</kbd>+<kbd>9</kbd>
 
|
 
|
  +
|<kbd>^Ctrl</kbd>+<kbd>9</kbd>
  +
|-
  +
|Toggle keyboard cursor
  +
|<kbd>F5</kbd> / <kbd>F10</kbd><br /><kbd>Ctrl</kbd>+<kbd>0</kbd>
 
|
 
|
  +
|<kbd>^Ctrl</kbd>+<kbd>0</kbd>
 
|-
 
|-
 
|Toggle FPS display
 
|Toggle FPS display
 
|<kbd>Ctrl</kbd>+<kbd>1</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>1</kbd>
 
|
 
|
  +
|<kbd>^Ctrl</kbd>+<kbd>1</kbd>
|
 
  +
|-
  +
|Previous editor
  +
|<kbd>Alt</kbd>+<kbd>←</kbd>
  +
|<kbd>Alt</kbd>+<kbd>←</kbd>
  +
|<kbd>⌥Alt</kbd>+<kbd>←</kbd>
  +
|-
  +
|Next editor
  +
|<kbd>Alt</kbd>+<kbd>→</kbd>
  +
|<kbd>Alt</kbd>+<kbd>→</kbd>
  +
|<kbd>⌥Alt</kbd>+<kbd>→</kbd>
 
|}
 
|}
   
 
==While running==
 
==While running==
   
{| class="article-table"
+
{| class="article-table" style="width: 100%;"
!Function
+
! scope="col" style="width: 34%;" |Function
  +
! scope="col" style="width: 22%;" |Windows
!Windows
 
  +
! scope="col" style="width: 22%;" |Linux
!Linux
 
  +
! scope="col" style="width: 22%;" |MacOS
!MacOS
 
 
|-
 
|-
|Pause menu
+
|<u>P</u>ause menu
 
|<kbd>P</kbd> / <kbd>Enter</kbd>
 
|<kbd>P</kbd> / <kbd>Enter</kbd>
  +
|
  +
|
  +
|-
  +
|<u>P</u>erformance Monitor
  +
|<kbd>Ctrl</kbd>+<kbd>P</kbd>
 
|
 
|
 
|
 
|
Line 87: Line 115:
   
 
See [[Btn|<code>btn()</code>]] for details on default controller/keyboard mappings, and [[Keyconfig|<code>keyconfig</code>]] for info on changing those mappings.
 
See [[Btn|<code>btn()</code>]] for details on default controller/keyboard mappings, and [[Keyconfig|<code>keyconfig</code>]] for info on changing those mappings.
 
   
 
==Command Line==
 
==Command Line==
   
{| class="article-table"
+
{| class="article-table" style="width: 100%;"
!Function
+
! scope="col" style="width: 34%;" |Function
  +
! scope="col" style="width: 22%;" |Windows
!Windows
 
  +
! scope="col" style="width: 22%;" |Linux
!Linux
 
  +
! scope="col" style="width: 22%;" |MacOS
!MacOS
 
 
|-
 
|-
|Copy (entire line)
+
|<u>C</u>opy (entire line)
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|
 
|
Line 111: Line 138:
 
|
 
|
 
|
 
|
|}
+
|-
  +
|<u>E</u>nd-of-line
 
  +
|<kbd>End</kbd><br /><kbd>Ctrl</kbd>+<kbd>E</kbd>
  +
|
  +
|
  +
|-
  +
|Start-of-line
  +
|<kbd>Home</kbd><br /><kbd>Ctrl</kbd>+<kbd>A</kbd>
  +
|
  +
|
  +
|-
  +
|<u>K</u>ill to end-of-line
  +
|<kbd>Ctrl</kbd>+<kbd>K</kbd>
  +
|
  +
|
  +
|-
  +
|Kill to start-of-line
  +
|<kbd>Ctrl</kbd>+<kbd>U</kbd>
  +
|
  +
|
  +
|-
  +
|Clear screen
  +
|<kbd>Ctrl</kbd>+<kbd>L</kbd>
  +
|
  +
|
  +
|}
   
 
==Text Editor==
 
==Text Editor==
   
  +
{| class="article-table" style="width: 100%;"
 
  +
! scope="col" style="width: 34%;" |Function
{| class="article-table"
 
  +
! scope="col" style="width: 22%;" |Windows
!Function
 
  +
! scope="col" style="width: 22%;" |Linux
!Windows
 
  +
! scope="col" style="width: 22%;" |MacOS
!Linux
 
!MacOS
 
 
|-
 
|-
 
|Cut
 
|Cut
 
|<kbd>Ctrl</kbd>+<kbd>X</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>X</kbd>
 
|
 
|
  +
|<kbd>⌘Cmd</kbd>+<kbd>X</kbd>
|
 
 
|-
 
|-
  +
|<u>C</u>opy
|Copy
 
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|
 
|
  +
|<kbd>⌘Cmd</kbd>+<kbd>C</kbd>
|
 
 
|-
 
|-
 
|Paste
 
|Paste
 
|<kbd>Ctrl</kbd>+<kbd>V</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>V</kbd>
 
|
 
|
  +
|<kbd>⌘Cmd</kbd>+<kbd>V</kbd>
|
 
 
|-
 
|-
|Select all
+
|Select <u>A</u>ll
 
|<kbd>Ctrl</kbd>+<kbd>A</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>A</kbd>
 
|
 
|
  +
|<kbd>⌘Cmd</kbd>+<kbd>A</kbd>
|
 
 
|-
 
|-
  +
|<u>K</u>atakana (Japanese) Font Entry Mode Toggle
|Glyph mode toggle
 
 
|<kbd>Ctrl</kbd>+<kbd>K</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>K</kbd>
 
|
 
|
  +
|<kbd>⌘Cmd</kbd>+<kbd>K</kbd>
  +
|-
  +
|Hiragana (<u>J</u>apanese) Font Entry Mode Toggle
  +
|<kbd>Ctrl</kbd>+<kbd>J</kbd>
 
|
 
|
  +
|<kbd>⌘Cmd</kbd>+<kbd>J</kbd>
  +
|-
  +
|<u>P</u>uny (Small Caps) Font Entry Mode Toggle
  +
|<kbd>Ctrl</kbd>+<kbd>P</kbd>
  +
|
  +
|<kbd>⌘Cmd</kbd>+<kbd>P</kbd>
  +
|-
  +
|Glyph (Icons) Font Entry
  +
|<kbd>Shift</kbd>+<kbd>ABC...XYZ</kbd>
  +
|
  +
|<kbd>Shift</kbd>+<kbd>ABC...XYZ</kbd>
 
|-
 
|-
 
|Insert/overwrite toggle
 
|Insert/overwrite toggle
 
|<kbd>Ins</kbd>
 
|<kbd>Ins</kbd>
  +
|
  +
|
  +
|-
  +
|Add indented line and 'END'
  +
|<kbd>Shift</kbd>+<kbd>Enter</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
 
|Start of line
 
|Start of line
|<kbd>Home</kbd>
+
|<kbd>Home</kbd><br /><kbd>Ctrl</kbd>+<kbd>W</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
|End of line
+
|<u>E</u>nd of line
|<kbd>End</kbd>
+
|<kbd>End</kbd><br /><kbd>Ctrl</kbd>+<kbd>E</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
 
|Start of document
 
|Start of document
|<kbd>Ctrl</kbd>+<kbd>Home</kbd> / <br /><kbd>Ctrl</kbd>+<kbd>&#8239;↑&#8239;</kbd>
+
|<kbd>Ctrl</kbd>+<kbd>Home</kbd><br /><kbd>Ctrl</kbd>+<kbd>&#8239;↑&#8239;</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
 
|End of document
 
|End of document
|<kbd>Ctrl</kbd>+<kbd>End</kbd> / <br /><kbd>Ctrl</kbd>+<kbd>&#8239;↓&#8239;</kbd>
+
|<kbd>Ctrl</kbd>+<kbd>End</kbd><br /><kbd>Ctrl</kbd>+<kbd>&#8239;↓&#8239;</kbd>
 
|
 
|
 
|
 
|
Line 213: Line 283:
 
|
 
|
 
|-
 
|-
|Find text in current tab
+
|<u>F</u>ind text in current tab
 
|<kbd>Ctrl</kbd>+<kbd>F</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>F</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
|Find text aGain
+
|Find text a<u>G</u>ain
 
|<kbd>Ctrl</kbd>+<kbd>G</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>G</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
  +
|Repeat search across tabs (<u>H</u>yper search)
|Go to Line number
 
|<kbd>Ctrl</kbd>+<kbd>L</kbd>, #, <kbd>Enter</kbd>
+
|<kbd>Ctrl</kbd>+<kbd>H</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
  +
|Go to <u>L</u>ine number
|Duplicate current line
 
  +
|<kbd>Ctrl</kbd>+<kbd>I</kbd><br /><kbd>Ctrl</kbd>+<kbd>L</kbd>
  +
|
  +
|
  +
|-
  +
|<u>D</u>uplicate current line
 
|<kbd>Ctrl</kbd>+<kbd>D</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>D</kbd>
 
|
 
|
 
|
 
|
  +
|-
  +
|Toggle comment <u>B</u>lock
  +
|<kbd>Ctrl</kbd>+<kbd>B</kbd>
  +
|
  +
|<kbd>⌘Cmd</kbd>+<kbd>B</kbd>
 
|-
 
|-
 
|Switch to next tab
 
|Switch to next tab
 
|<kbd>Ctrl</kbd>+<kbd>⇥Tab</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>⇥Tab</kbd>
 
|
 
|
  +
|<kbd>^Ctrl</kbd>+<kbd>⇥Tab</kbd>
|
 
 
|-
 
|-
 
|Switch to previous tab
 
|Switch to previous tab
 
|<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>⇥Tab</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>⇥Tab</kbd>
 
|
 
|
  +
|<kbd>^Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>⇥Tab</kbd>
|
 
|}
+
|}
   
 
==Sprite editor==
 
==Sprite editor==
   
 
All tools:
 
All tools:
{| class="article-table"
+
{| class="article-table" style="width: 100%;"
!Function
+
! scope="col" style="width: 34%;" |Function
  +
! scope="col" style="width: 22%;" |Windows
!Windows
 
  +
! scope="col" style="width: 22%;" |Linux
!Linux
 
  +
! scope="col" style="width: 22%;" |MacOS
!MacOS
 
 
|-
 
|-
  +
|Pan tool
|Copy
 
  +
|<kbd>Space</kbd>+<kbd>🖰&#8239;LClick+Drag</kbd>
  +
|
  +
|
  +
|-
  +
|<u>C</u>opy (see note below)
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|
 
|
Line 275: Line 360:
 
|Next sprite
 
|Next sprite
 
|<kbd>W</kbd>
 
|<kbd>W</kbd>
  +
|
  +
|
  +
|-
  +
|Sprite above
  +
|<kbd>Shift</kbd>+<kbd>Q</kbd>
  +
|
  +
|
  +
|-
  +
|Sprite below
  +
|<kbd>Shift</kbd>+<kbd>W</kbd>
 
|
 
|
 
|
 
|
Line 294: Line 389:
 
|-
 
|-
 
|Replace color
 
|Replace color
|<kbd>Ctrl</kbd>+<kbd>🖰&#8239;Click</kbd>
+
|<kbd>Ctrl</kbd>+<kbd>🖰&#8239;LClick</kbd>
 
|
 
|
 
|
 
|
Line 303: Line 398:
 
|
 
|
 
|-
 
|-
  +
|<u>F</u>lip <u>H</u>orizontal
|Flip horizontal
 
|<kbd>F</kbd>
+
|<kbd>F</kbd><br /><kbd>H</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
|Flip Vertical
+
|Flip <u>V</u>ertical
 
|<kbd>V</kbd>
 
|<kbd>V</kbd>
 
|
 
|
 
|
 
|
 
|-
 
|-
|Rotate 90° CCW
+
|<u>R</u>otate 90° CCW
 
|<kbd>R</kbd>
 
|<kbd>R</kbd>
 
|
 
|
Line 319: Line 414:
 
|-
 
|-
 
|Zoom
 
|Zoom
|<kbd>&lt;</kbd> / <kbd>&gt;</kbd> / <br /><kbd>🖰&#8239;Wheel</kbd>
+
|<kbd>&lt;</kbd> / <kbd>&gt;</kbd><br /><kbd>🖰&#8239;Wheel</kbd>
 
|
 
|
 
|
 
|
Line 325: Line 420:
   
 
Draw tool:
 
Draw tool:
{| class="article-table"
+
{| class="article-table" style="width: 100%;"
!Function
+
! scope="col" style="width: 34%;" |Function
  +
! scope="col" style="width: 22%;" |Windows
!Windows
 
  +
! scope="col" style="width: 22%;" |Linux
!Linux
 
  +
! scope="col" style="width: 22%;" |MacOS
!MacOS
 
 
|-
 
|-
  +
|<u>C</u>opy
|Copy
 
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|<kbd>Ctrl</kbd>+<kbd>C</kbd>
 
|
 
|
Line 342: Line 437:
 
|-
 
|-
 
|Replace color
 
|Replace color
|<kbd>Ctrl</kbd>+<kbd>🖰&#8239;Click</kbd>
+
|<kbd>Ctrl</kbd>+<kbd>🖰&#8239;LClick</kbd>
  +
|
  +
|
  +
|-
  +
|Color Picker
  +
|<kbd>🖰&#8239;RClick</kbd>
 
|
 
|
 
|
 
|
Line 348: Line 448:
   
 
Stamp tool:
 
Stamp tool:
{| class="article-table"
+
{| class="article-table" style="width: 100%;"
!Function
+
! scope="col" style="width: 34%;" |Function
  +
! scope="col" style="width: 22%;" |Windows
!Windows
 
  +
! scope="col" style="width: 22%;" |Linux
!Linux
 
  +
! scope="col" style="width: 22%;" |MacOS
!MacOS
 
 
|-
 
|-
 
|Stamp with color 0 transparent
 
|Stamp with color 0 transparent
|<kbd>LCtrl</kbd>+<kbd>🖰&#8239;Click</kbd>
+
|<kbd>LCtrl</kbd>+<kbd>🖰&#8239;LClick</kbd>
 
|
 
|
 
|
 
|
Line 361: Line 461:
   
 
Select tool:
 
Select tool:
{| class="article-table"
+
{| class="article-table" style="width: 100%;"
!Function
+
! scope="col" style="width: 34%;" |Function
  +
! scope="col" style="width: 22%;" |Windows
!Windows
 
  +
! scope="col" style="width: 22%;" |Linux
!Linux
 
  +
! scope="col" style="width: 22%;" |MacOS
!MacOS
 
 
|-
 
|-
 
|Select none
 
|Select none
Line 373: Line 473:
 
|}
 
|}
   
Pan tool:
+
Fill tool:
  +
{| class="article-table"
 
  +
(n/a?)
!Function
 
  +
!Windows
 
  +
Lower sprite sheet area:
!Linux
 
  +
{| class="article-table" style="width: 100%;"
!MacOS
 
  +
! scope="col" style="width: 34%;" |Function
  +
! scope="col" style="width: 22%;" |Windows
  +
! scope="col" style="width: 22%;" |Linux
  +
! scope="col" style="width: 22%;" |MacOS
 
|-
 
|-
  +
|Select multiple sprites<br />(for flip, shift, copy, rotate)
|View sprite sheet
 
|<kbd>Space</kbd>
+
|<kbd>Shift</kbd>+<kbd>🖰&#8239;LClick+Drag</kbd>
 
|
 
|
 
|
 
|
|}
+
|}
   
  +
Note: When a sprite or range of sprites is copied to the clipboard, they may be pasted into other programs as a text-encoded representation. This representation can be uploaded in a BBS post and will show as the actual sprite. Similarly, a sprite encoded in text may be copied from outside of PICO-8 and pasted into the sprite editor.
Fill tool:
 
 
(n/a?)
 
   
 
==Map editor==
 
==Map editor==
  +
{| class="article-table"
(TODO)
 
  +
!Function
 
  +
!MacOS
  +
|-
  +
|Move a sprite to another sprite and changes all sprites on map equal to the sprite number to the new sprite number
  +
|<kbd>Ctrl</kbd>+<kbd>X</kbd>
  +
|}
 
==SFX editor==
 
==SFX editor==
  +
(TODO)
 
  +
==== Both views ====
  +
{| class="article-table" style="width: 100%;"
  +
! scope="col" style="width: 34%;" |Function
  +
! scope="col" style="width: 22%;" |Windows
  +
! scope="col" style="width: 22%;" |Linux
  +
! scope="col" style="width: 22%;" |MacOS
  +
|-
  +
|Swap pitch/note views
  +
|<kbd>Tab</kbd>
  +
|<kbd>Tab</kbd>
  +
|
  +
|-
  +
|Increase Speed
  +
|<kbd>Period</kbd>
  +
|<kbd>Period</kbd>
  +
|
  +
|-
  +
|Decrease Speed
  +
|<kbd>Comma</kbd>
  +
|<kbd>Comma</kbd>
  +
|
  +
|-
  +
|Increase Speed by 4
  +
|<kbd>Shift</kbd> + <kbd>Period</kbd>
  +
|<kbd>Shift</kbd> + <kbd>Period</kbd>
  +
|
  +
|-
  +
|Decrease Speed by 4
  +
|<kbd>Shift</kbd> + <kbd>Comma</kbd>
  +
|<kbd>Shift</kbd> + <kbd>Comma</kbd>
  +
|
  +
|-
  +
|Switch to Next Sound Effect
  +
|<kbd>=</kbd>
  +
|<kbd>=</kbd>
  +
|
  +
|-
  +
|Switch to Previous Sound Effect
  +
|<kbd>-</kbd>
  +
|<kbd>-</kbd>
  +
|
  +
|-
  +
|Switch to n+4 Sound Effect
  +
|<kbd>Shift</kbd>+<kbd>=</kbd>
  +
|
  +
|
  +
|-
  +
|Switch to n-4 Sound Effect
  +
|<kbd>Shift</kbd>+<kbd>-</kbd>
  +
|
  +
|
  +
|-
  +
|Change all notes to the selected instrument
  +
|<kbd>Shift</kbd>+<kbd>🖰&#8239;LClick</kbd> on an instrument
  +
|
  +
|
  +
|}
  +
  +
==== Note view ====
  +
''For each of the transpose shortcuts, you need to have notes selected.''
  +
{| class="article-table" style="width: 100%;"
  +
! scope="col" style="width: 34%;" |Function
  +
! scope="col" style="width: 22%;" |Windows
  +
! scope="col" style="width: 22%;" |Linux
  +
! scope="col" style="width: 22%;" |MacOS
  +
|-
  +
|Select Multiple Notes
  +
|<kbd>Shift</kbd>+<kbd>🖰&#8239;LClick</kbd> the notes (first click is left side, second click is right side)
  +
|
  +
|
  +
|-
  +
|Apply Effect to All Notes
  +
|<kbd>Shift</kbd>+<kbd>🖰&#8239;LClick</kbd> an effect
  +
|
  +
|
  +
|-
  +
|Navigate down/up 4 notes
  +
|<kbd>Ctrl</kbd>+<kbd>&#8239;↓&#8239;</kbd> or <kbd>Ctrl</kbd>+<kbd>&#8239;↑&#8239;</kbd>
  +
|
  +
|
  +
|-
  +
|Navigate to right/left column
  +
|<kbd>Ctrl</kbd>+<kbd>→</kbd> or <kbd>Ctrl</kbd>+<kbd>←</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +1 (one semitone)
  +
|<kbd>Shift</kbd>+<kbd>2</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +2
  +
|<kbd>Shift</kbd>+<kbd>W</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +3
  +
|<kbd>Shift</kbd>+<kbd>3</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +4
  +
|<kbd>Shift</kbd>+<kbd>E</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +5
  +
|<kbd>Shift</kbd>+<kbd>R</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +6
  +
|<kbd>Shift</kbd>+<kbd>5</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +7
  +
|<kbd>Shift</kbd>+<kbd>T</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +8
  +
|<kbd>Shift</kbd>+<kbd>6</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +9
  +
|<kbd>Shift</kbd>+<kbd>Y</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +10
  +
|<kbd>Shift</kbd>+<kbd>7</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +11
  +
|<kbd>Shift</kbd>+<kbd>U</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +12 (one octave)
  +
|<kbd>Shift</kbd>+<kbd>i</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +13
  +
|<kbd>Shift</kbd>+<kbd>9</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +14
  +
|<kbd>Shift</kbd>+<kbd>O</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose +15
  +
|<kbd>Shift</kbd>+<kbd>0</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose -12 (one octave)
  +
|<kbd>Shift</kbd>+<kbd>Z</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose -11
  +
|<kbd>Shift</kbd>+<kbd>S</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose -10
  +
|<kbd>Shift</kbd>+<kbd>X</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose -9
  +
|<kbd>Shift</kbd>+<kbd>D</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose -8
  +
|<kbd>Shift</kbd>+<kbd>C</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose -7
  +
|<kbd>Shift</kbd>+<kbd>V</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose -6
  +
|<kbd>Shift</kbd>+<kbd>G</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose -5
  +
|<kbd>Shift</kbd>+<kbd>B</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose -4
  +
|<kbd>Shift</kbd>+<kbd>H</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose -3
  +
|<kbd>Shift</kbd>+<kbd>N</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose -2
  +
|<kbd>Shift</kbd>+<kbd>J</kbd>
  +
|
  +
|
  +
|-
  +
|Transpose -1
  +
|<kbd>Shift</kbd>+<kbd>M</kbd>
  +
|
  +
|
  +
|}
   
 
==Music editor==
 
==Music editor==
 
(TODO)
 
(TODO)
  +
[[Category:Research]]

Latest revision as of 21:33, 4 December 2023

!!! Work in progress !!!

Not all PICO-8 hardware has a keyboard, but when it does, there are many keyboard shortcuts that one can use. Known shortcuts are listed here.


Important: the lists below all start with the shortcuts for a QWERTY keyboard layout on a Windows build of PICO-8. Key bindings for other keyboard layouts or platform builds are only listed if they are known to be different from the Windows Build.
If your key isn't listed, or doesn't work right, try to use the Windows-style shortcut the way you would usually expect one to be done in your own OS. For instance, if you know Undo is Ctrl-Z on Windows, you'd want to try Cmd-Z on MacOS. Certain MacOS functions, but not all, permit the use of either the Ctrl or Cmd keys interchangeably. For instance, both Ctrl+C and Cmd+C will copy text on MacOS. As such, certain functions may have multiple redundant shortcuts listed under the MacOS column. As these are functionally equivalent, you can choose whichever shortcut works best for your workflow and/or preference.
Also, if you are on a different regional layout, such as AZERTY or QWERTZ, try using the key that would be in the same physical position as the QWERTY key. And remember, there is a keyconfig command you can use to change in-game button assignments.
Readers with knowledge of other platforms are encouraged to fill in the blanks if they know of keys that differ from the Windows layout. Don't worry too much about following the tricky formatting in these tables, unless you want to. Feel free to just enter whatever helpful notes you have, even if they aren't put into the tables. Someone else can do the formatting later if needed. Thanks!

Global use[]

Function Windows Linux MacOS
Quit Alt+F4 Ctrl+Q ⌘Cmd+Q
Reload/Run/Restart Ctrl+R Ctrl+R ⌘Cmd+R
Quick-Save Ctrl+S Ctrl+S ⌘Cmd+S
Mute/unmute Ctrl+M Ctrl+M ^Ctrl+M
Editor toggle Esc Esc Esc
Full screen toggle Alt+Enter Alt+Enter ⌘Cmd+F
Save a screenshot to desktop F1 / F6
Ctrl+6
^Ctrl+6
Capture cartridge label image F2 / F7
Ctrl+7
^Ctrl+7
Start recording a video F3 / F8
Ctrl+8
^Ctrl+8
Save GIF video to desktop F4 / F9
Ctrl+9
^Ctrl+9
Toggle keyboard cursor F5 / F10
Ctrl+0
^Ctrl+0
Toggle FPS display Ctrl+1 ^Ctrl+1
Previous editor Alt+ Alt+ ⌥Alt+
Next editor Alt+ Alt+ ⌥Alt+

While running[]

Function Windows Linux MacOS
Pause menu P / Enter
Performance Monitor Ctrl+P

See btn() for details on default controller/keyboard mappings, and keyconfig for info on changing those mappings.

Command Line[]

Function Windows Linux MacOS
Copy (entire line) Ctrl+C
Paste Ctrl+V
History  ↑  /  ↓ 
End-of-line End
Ctrl+E
Start-of-line Home
Ctrl+A
Kill to end-of-line Ctrl+K
Kill to start-of-line Ctrl+U
Clear screen Ctrl+L

Text Editor[]

Function Windows Linux MacOS
Cut Ctrl+X ⌘Cmd+X
Copy Ctrl+C ⌘Cmd+C
Paste Ctrl+V ⌘Cmd+V
Select All Ctrl+A ⌘Cmd+A
Katakana (Japanese) Font Entry Mode Toggle Ctrl+K ⌘Cmd+K
Hiragana (Japanese) Font Entry Mode Toggle Ctrl+J ⌘Cmd+J
Puny (Small Caps) Font Entry Mode Toggle Ctrl+P ⌘Cmd+P
Glyph (Icons) Font Entry Shift+ABC...XYZ Shift+ABC...XYZ
Insert/overwrite toggle Ins
Add indented line and 'END' Shift+Enter
Start of line Home
Ctrl+W
End of line End
Ctrl+E
Start of document Ctrl+Home
Ctrl+ ↑ 
End of document Ctrl+End
Ctrl+ ↓ 
Previous word Ctrl+
Next word Ctrl+
Previous function Alt+ ↑ 
Next function Alt+ ↓ 
Indent selection ⇥Tab
Un-indent selection Shift+⇥Tab
Undo Ctrl+Z
Redo Ctrl+Y
Find text in current tab Ctrl+F
Find text aGain Ctrl+G
Repeat search across tabs (Hyper search) Ctrl+H
Go to Line number Ctrl+I
Ctrl+L
Duplicate current line Ctrl+D
Toggle comment Block Ctrl+B ⌘Cmd+B
Switch to next tab Ctrl+⇥Tab ^Ctrl+⇥Tab
Switch to previous tab Ctrl+Shift+⇥Tab ^Ctrl+Shift+⇥Tab

Sprite editor[]

All tools:

Function Windows Linux MacOS
Pan tool Space+🖰 LClick+Drag
Copy (see note below) Ctrl+C
Paste (at current sprite location) Ctrl+V
Undo/Redo (single-step) Ctrl+Z
Previous sprite Q
Next sprite W
Sprite above Shift+Q
Sprite below Shift+W
Previous color 1
Next color 2
Toggle full view ⇥Tab
Replace color Ctrl+🖰 LClick
Shift by one pixel / /  ↑  /  ↓ 
Flip Horizontal F
H
Flip Vertical V
Rotate 90° CCW R
Zoom < / >
🖰 Wheel

Draw tool:

Function Windows Linux MacOS
Copy Ctrl+C
Paste (at upper left) Ctrl+V
Replace color Ctrl+🖰 LClick
Color Picker 🖰 RClick

Stamp tool:

Function Windows Linux MacOS
Stamp with color 0 transparent LCtrl+🖰 LClick

Select tool:

Function Windows Linux MacOS
Select none Enter

Fill tool:

(n/a?)

Lower sprite sheet area:

Function Windows Linux MacOS
Select multiple sprites
(for flip, shift, copy, rotate)
Shift+🖰 LClick+Drag

Note: When a sprite or range of sprites is copied to the clipboard, they may be pasted into other programs as a text-encoded representation. This representation can be uploaded in a BBS post and will show as the actual sprite. Similarly, a sprite encoded in text may be copied from outside of PICO-8 and pasted into the sprite editor.

Map editor[]

Function MacOS
Move a sprite to another sprite and changes all sprites on map equal to the sprite number to the new sprite number Ctrl+X

SFX editor[]

Both views[]

Function Windows Linux MacOS
Swap pitch/note views Tab Tab
Increase Speed Period Period
Decrease Speed Comma Comma
Increase Speed by 4 Shift + Period Shift + Period
Decrease Speed by 4 Shift + Comma Shift + Comma
Switch to Next Sound Effect = =
Switch to Previous Sound Effect - -
Switch to n+4 Sound Effect Shift+=
Switch to n-4 Sound Effect Shift+-
Change all notes to the selected instrument Shift+🖰 LClick on an instrument

Note view[]

For each of the transpose shortcuts, you need to have notes selected.

Function Windows Linux MacOS
Select Multiple Notes Shift+🖰 LClick the notes (first click is left side, second click is right side)
Apply Effect to All Notes Shift+🖰 LClick an effect
Navigate down/up 4 notes Ctrl+ ↓  or Ctrl+ ↑ 
Navigate to right/left column Ctrl+ or Ctrl+
Transpose +1 (one semitone) Shift+2
Transpose +2 Shift+W
Transpose +3 Shift+3
Transpose +4 Shift+E
Transpose +5 Shift+R
Transpose +6 Shift+5
Transpose +7 Shift+T
Transpose +8 Shift+6
Transpose +9 Shift+Y
Transpose +10 Shift+7
Transpose +11 Shift+U
Transpose +12 (one octave) Shift+i
Transpose +13 Shift+9
Transpose +14 Shift+O
Transpose +15 Shift+0
Transpose -12 (one octave) Shift+Z
Transpose -11 Shift+S
Transpose -10 Shift+X
Transpose -9 Shift+D
Transpose -8 Shift+C
Transpose -7 Shift+V
Transpose -6 Shift+G
Transpose -5 Shift+B
Transpose -4 Shift+H
Transpose -3 Shift+N
Transpose -2 Shift+J
Transpose -1 Shift+M

Music editor[]

(TODO)