Skip to content

Key‐binds and Controls

ZERICO2005 edited this page Mar 12, 2024 · 17 revisions

This page covers the default key-binds are in ABS-Fractal-Explorer, how to setup custom key-binds in ABS-Fractal-Explorer, along with importing custom key-binds with FracExpKB files.

Default Key-binds and Controls:

Primary:
	WASD: Panning/Moving
	E/Q: Zooming In/Out
	T/G: Increase/Decrease Maximum Iterations
	R: Reset Coordinates and Zoom
	Y: Open/Close Settings Panel
Secondary:
	J/L: Change starting Z.real value
	I/K: Change starting Z.imag value
	U/O: Reset Z.real/Z.imag to 0.0
Transformations:
	Left/Right: Rotate Fractal
	Up/Down: Stretch Fractal
	F: Reset transformations
Fractal:
	Z: Change Fractal ID (0-1048575) (Type in number then press Enter)
	X: Change Fractal Type (2-5) (Quadratic-Quintic)
	C: View Julia Set
	V: Toggle starting Z value for Mandelbrot set
	H: Export Fractal Data (To the directory the EXE is located in)
	P: Take a screenshot (To the directory the EXE is located in)
Cycling:
	[/]: Decrement/Increment by Formula ID
	-/+: Decrement/Increment by Fractal Family
Rendering:
	;/': Decrement/Increment Super Sampling (Higher Quality)
	</>: Decrement/Increment Sub-Sampling (Faster Rendering)
	M: fp32 GPU Rendering (Max Zoom: ~10.0^5.7) (Fastest) 
	N: fp64 CPU Rendering (Max Zoom: ~10.0^14.4)
	B: fp80 CPU Rendering (Max Zoom: ~10.0^17.7)

How to change Key-binds in ABS-Fractal-Explorer

Please be aware that custom key-binds are only available in developer builds of ABS-Fractal-Explorer starting from version 1.0.16.

In ABS-Fractal-Explorer v1.1.0 onwards, one can edit the key-binds in key-bind menu. The keys are color coded based on the function they preform.

To set a key-bind, select a function from the drop-down menu, then click on a key on the keyboard that you want to want to bind the function to. Afterwards you can press the Bind function to key button to update the key-bind.

You can save/export the key-binds as a .FracExpKB file so they can be used on another computer.

A list of every function you can bind a key to can be found here.

Key-bind editor

FracExpKB Files

.FracExpKB files are used to share/transfer custom key-binds between different computers or other users. They can be exported from the settings panel. .FracExpKB files are also stored inside of the users configuration/settings file.

One thing to be aware of is that some devices don't have a number pad, or some of the other keys from the ANSI QWERTY Keyboard Layout. The settings panel will also state how compatible your key-binds are.

The raw FracExpKB file may be edited in a text editor, but it is not recommended.

Editing FracExpKB Files

To edit a FracExpKB file, ensure that your text editor is set to ANSI/UTF-8 encoding (ANSI is preferred). It is RECOMMENDED that you exclusively use ASCII characters. The only part of the FracExpKB file you SHOULD edit is underneath KeyBind_List:. FracExpKB files use Tabs to indicate scope, do NOT use Spaces for Tabs.

New Key-binds are started with Preset:, the inclusion of the Name: and Hash: fields is optional. ABS-Fractal-Explorer v1.1.0 does not support multiple Key-bind Presets and will only read the first Key-bind in the file.

There are two ways to format a Key-bind. You can type a Function and the Keys that trigger it; or you can type a Key and the Functions it triggers. You can assign multiple Keys to a Function, and vice versa.

KeyBind_List:
	Preset:
		Hash:
			0x0000000000000000x0000000000000000x0000000000000000x0000000000000000
		Name:
			"Example"
		incRealPos:
			SDL_SCANCODE_D
		SDL_SCANCODE_A:
			decRealPos
		takeScreenshot:
			SDL_SCANCODE_P
			SDL_SCANCODE_F12
		SDL_SCANCODE_R:
			resetCoordinates
			resetRotation

Key-binds can be ignored in a few ways:

  • Setting a Function to NONE
  • Setting a Key to SDL_SCANCODE_UNKNOWN
  • Using # at the start of a line to comment/ignore the line

Frequently Asked Questions

Can I bind the Mouse Buttons?

The mouse buttons are not currently able to be bound to functions.

Can I bind a Function/Key to multiple Keys/Functions?

Keys/Functions can be bound to multiple functions. Just make sure that you do not create conflicting Key-binds (For example, binding move-left and move-right to the same key).

Can I export/save my key-binds?

Exporting/saving key-binds can be done through the Key-binds menu.

Can I bind the FN key?

Unfortunately, the FN key does not register as a Keyboard Scan-code, it is handled internally by the keyboard so it can't be detected by the operating system.

Why does the Print-Screen/System-Request key not work/register on the Keyboard Graphic?

The Print-Screen/System-Request key are likely improperly implemented in the code which may be why neither of them work.

The keys won't register under SDL_SCANCODE_PRINTSCREEN or SDL_SCANCODE_SYSREQ, and it is possible that the issue could be fixed by switching to using SDL_Keycodes in a future version.

Can I bind the power button to a function?

YES*

If your keyboard has a power button on it, it may or may not be able to generate a SDL_SCANCODE_POWER Scancode.


See Also: