Back to Amethyst

Configuration Files

docs/configuration-files.md

0.24.38.9 KB
Original Source

Configuration Files

Amethyst will pick up a config file located at ~/.amethyst.yml or ~/.config/amethyst/amethyst.yml in this order. A sample can be found at /.amethyst.sample.yml

Configuration Keys

KeyDescription
layoutsOrdered list of layouts to use by layout key (default tall, wide, fullscreen, and column).
mod1First mod (default option + shift).
mod2Second mod (default option + shift + control).
mod3Third mod (not used by default).
mod4Fourth mod (not used by default).
window-max-countThe max number of windows that may be visible on a screen at one time before additional windows are minimized. A value of 0 disables the feature.
window-marginsBoolean flag for whether or not to add margins between and around windows (default false).
smart-window-marginsBoolean flag for whether or not to set window margins if there is only one window on the screen, assuming window margins are enabled (default false).
window-margin-sizeThe size of the margins between and around windows (in px, default 0).
window-minimum-heightThe smallest height that a window can be sized to regardless of its layout frame (in px, default 0).
window-minimum-widthThe smallest width that a window can be sized to regardless of its layout frame (in px, default 0)
floatingList of bundle identifiers for applications to either be automatically floating or automatically tiled based on floating-is-blacklist (default []).
floating-is-blacklistBoolean flag determining behavior of the floating list. true if the applications should be floating and all others tiled. false if the applications should be tiled and all others floating (default true).
ignore-menu-bartrue if screen frames should exclude the status bar. false if the screen frames should include the status bar (default false).
float-small-windowstrue if windows smaller than the small-window-size threshold should be floating by default (default true).
small-window-sizePixel threshold for float-small-windows. Windows with both width and height below this value are considered small (in px, default 500).
mouse-follows-focustrue if the mouse should move position to the center of a window when it becomes focused (default false). Note that this is largely incompatible with focus-follows-mouse.
focus-follows-mousetrue if the windows underneath the mouse should become focused as the mouse moves (default false). Note that this is largely incompatible with mouse-follows-focus
mouse-swaps-windowstrue if dragging and dropping windows on to each other should swap their positions (default false).
mouse-resizes-windowstrue if changing the frame of a window with the mouse should update the layout to accommodate the change (default false). Note that not all layouts will be able to respond to the change.
enables-layout-hudtrue to display the name of the layout when a new layout is selected (default true).
enables-layout-hud-on-space-changetrue to display the name of the layout when moving to a new space (default true).
enables-window-count-hudtrue to display notifications when window max count changes (default false).
use-canary-buildtrue to get updates to beta versions of the software (default false).
new-windows-to-maintrue to insert new windows into the first position and false to insert new windows into the last position (default false).
follow-space-thrown-windowstrue to automatically move to a space when throwing a window to it (default true).
window-resize-stepThe integer percentage of the screen dimension to increment and decrement main pane ratios by (default 5).
screen-padding-leftPadding to apply between windows and the left edge of the screen (in px, default 0).
screen-padding-rightPadding to apply between windows and the right edge of the screen (in px, default 0).
screen-padding-topPadding to apply between windows and the top edge of the screen (in px, default 0).
screen-padding-bottomPadding to apply between windows and the bottom edge of the screen (in px, default 0).
restore-layouts-on-launchtrue to maintain layout state across application executions (default true).
debug-layout-infotrue to display some optional debug information in the layout HUD (default false).
disable-padding-on-builtin-displaytrue to disable screen padding on in-built display (default false).
hide-menu-bar-icontrue to hide the menu bar icon (default false).

Commands

Commands are defined at the root of the config file, as either an object with mod and key values to customize the command or is false to entirely disable it.

KeyDescription
modThe modifier to use, either mod1, mod2, mod3 or mod4.
keyThe key on the keyboard to use.

Mods

A mod is a list of keyboard modifiers. Namely, option, control, shift, and command.

Command Keys

CommandDescription
cycle-layoutMove to the next layout in the list.
cycle-layout-backwardMove to the previous layout in the list.
shrink-mainShrink the main pane by a percentage of the screen dimension as defined by window-resize-step. Note that not all layouts respond to this command.
expand-mainExpand the main pane by a percentage of the screen dimension as defined by window-resize-step. Note that not all layouts respond to this command.
increase-mainIncrease the number of windows in the main pane. Note that not all layouts respond to this command.
decrease-mainDecrease the number of windows in the main pane. Note that not all layouts respond to this command.
increase-window-max-countIncrease the maximum number of windows allowed on screen before additional windows are minimized.
decrease-window-max-countDecrease the maximum number of windows allowed on screen before additional windows are minimized.
command1General purpose command for custom layouts. Functionality is layout-dependent.
command2General purpose command for custom layouts. Functionality is layout-dependent.
command3General purpose command for custom layouts. Functionality is layout-dependent.
command4General purpose command for custom layouts. Functionality is layout-dependent.
focus-ccwFocus the next window in the list going counter-clockwise.
focus-cwFocus the next window in the list going clockwise.
focus-mainFocus the main window in the list.
focus-screen-ccwFocus the next screen in the list going counter-clockwise.
focus-screen-cwFocus the next screen in the list going clockwise.
swap-screen-ccwMove the currently focused window onto the next screen in the list going counter-clockwise.
swap-screen-cwMove the currently focused window onto the next screen in the list going clockwise.
swap-ccwSwap the position of the currently focused window with the next window in the list going counter-clockwise.
swap-cwSwap the position of the currently focused window with the next window in the list going clockwise.
swap-mainSwap the position of the currently focused window with the main window in the list.
focus-screen-nMove focus to the n-th screen in the list; e.g., focus-screen-3 will move mouse focus to the 3rd screen. Note that the main window in the given screen will be focused.
throw-screen-nMove the currently focused window to the n-th screen; e.g., throw-screen-3 will move the window to the 3rd screen.
throw-space-nMove the currently focused window to the n-th space; e.g., throw-space-3 will move the window to the 3rd space.
throw-space-leftMove the currently focused window to the space to the left.
throw-space-rightMove currently the focused window to the space to the right.
toggle-floatToggle the floating state of the currently focused window; i.e., if it was floating make it tiled and if it was tiled make it floating.
display-current-layoutDisplay the layout HUD with the current layout on each screen.
toggle-tilingTurn on or off tiling entirely.
enable-tilingTurn on tiling.
disable-tilingTurn off tiling.
reevaluate-windowsRerun the current layout's algorithm.
toggle-focus-follows-mouseTurn on or off focus-follows-mouse.
relaunch-amethystAutomatically quit and reopen Amethyst.

Layout Selection

Amethyst supports defining shortcuts for selecting specific layouts directly. They take the form of select-${layout_key}-layout. For example, defining the command select-tall-layout will define a shortcut that when used will switch directly to the Tall layout. Note, this works for custom layouts as well.