Config
This is an example config. Please note, we're not pointing out defaults everywhere yet, it is a WIP.
[general]
# Start Satty in fullscreen mode
fullscreen = false
# fullscreen = true
# since 0.20.1, this can be written like below. Current is just the current screen, all is all screens. This may depend on the compositor.
#fullscreen = "all"
#fullscreen = "current-screen"
# resize initially (0.20.1)
resize = { mode = "smart" }
# resize = { mode = "size", width = 2000, height = 800 }
# try to have the window float (0.20.1). This may depend on the compositor.
floating-hack = true
# Change to true to automatically copy to clipboard after every annotation change (0.21.0)
auto-copy = false
# Change to true to automatically select newly created annotation (NEXTRELEASE)
auto-select-new = false
# Exit directly after copy/save action. 0.21.0: change to list of triggers
# Note that exit-early-save-as was removed with 0.21.0.
early-exit = ["all"]
# Aspect ratios used when holding Shift while drawing - also matches inverse aspect ratios
aspect-ratios = [[1, 1], [1, 2], [5, 4], [4, 3], [7, 5], [3, 2], [16, 9]]
# is equivalent to both
# early-exit = ["copy", "save", "save-as"]
# early-exit = true
# Draw corners of rectangles round if the value is greater than 0 (0 disables rounded corners)
corner-roundness = 12
# Select the tool on startup [possible values: see `satty --help`]
initial-tool = "brush"
# Configure the command to be called on copy, for example `wl-copy`
copy-command = "wl-copy"
# Increase or decrease the size of the annotations
annotation-size-factor = 2
# Filename to use for saving action. Omit to disable saving to file. Might contain format specifiers: https://docs.rs/chrono/latest/chrono/format/strftime/index.html
# starting with 0.20.0, can contain leading tilde (~) for home directory
# starting with 0.21.0, save as uses this as initial filename/path when available
output-filename = "/tmp/test-%Y-%m-%d_%H:%M:%S.png"
# After copying the screenshot, save it to a file as well
save-after-copy = false
# Hide toolbars by default
default-hide-toolbars = false
# Experimental (since 0.20.0): whether window focus shows/hides toolbars. This does not affect initial state of toolbars, see default-hide-toolbars.
focus-toggles-toolbars = false
# Fill shapes by default (since 0.20.0)
default-fill-shapes = false
# Round caps for arrow and line tools
default-round-caps = true
# The primary highlighter to use, the other is accessible by holding CTRL at the start of a highlight [possible values: block, freehand]
primary-highlighter = "block"
# Disable notifications
disable-notifications = false
# Actions to trigger on right click (order is important)
# [possible values: save-to-clipboard, save-to-file, save-to-file-as, copy-filepath-to-clipboard, exit]
actions-on-right-click = []
# Actions to trigger on Enter key (order is important)
# [possible values: save-to-clipboard, save-to-file, save-to-file-as, copy-filepath-to-clipboard, exit]
actions-on-enter = ["save-to-clipboard"]
# Actions to trigger on Escape key (order is important)
# [possible values: save-to-clipboard, save-to-file, save-to-file-as, copy-filepath-to-clipboard, exit]
actions-on-escape = ["exit"]
# Action to perform when the Enter key is pressed [possible values: see `satty --help`]
# Deprecated: use actions-on-enter instead
action-on-enter = "save-to-clipboard"
# Right click to copy
# Deprecated: use actions-on-right-click instead
right-click-copy = false
# request no window decoration. Please note that the compositor has the final say in this. At this point. requires xdg-decoration-unstable-v1.
no-window-decoration = true
# experimental feature: adjust history size for brush input smoothing (0: disabled, default: 0, try e.g. 5 or 10)
brush-smooth-history-size = 10
# experimental feature (0.20.1): The pan step size to use when panning with arrow keys.
pan-step-size = 50.0
# experimental feature (0.20.1): The zoom factor to use for the image.
# 1.0 means no zooming.
zoom-factor = 1.1
# experimental feature (0.20.1): The length to move the text when using arrow keys. defaults to 50.0
text-move-length = 50.0
# experimental feature (0.20.1): Scale factor on the input image when it was taken (e.g. DPI scale on the monitor it was recorded from).
# This may be more useful to set via the command line.
# Note, before 0.21.0 this is ignored with explicit resize.
input-scale = 1.0
# experimental feature (0.21.0): set window title
title = "Satty"
# experimental feature (0.21.0): set app_id, note this has to match D-Bus well-known name format, otherwise GTK does not accept it.
app-id = "org.satty.satty"
# experimental feature (0.22.0): show thumbnail as notifcation icon
# notification-thumbnail = "app-icon"
notification-thumbnail = "screenshot"
# how long we are waiting after notification thumbnail was sent before exiting (exit early or quit). This is based on the temporary file mtime.
# for fast machines, the default value of 250ms is ridiculously high.
notification-grace-period = 250
# Generic keyboard shortcuts (NEXTRELEASE)
[keybinds]
# "<Control>q" = "run-actions-on-escape" # additionally to Escape
# "i" = "none" # unbind "i" default for line
# "l" = "line"
# Global
"<Shift><Control>d" = "open-gtk-inspector"
"<Shift><Control>i" = "open-gtk-inspector"
"<Alt>Left" = "pan-left"
"<Alt>Right" = "pan-right"
"<Alt>Up" = "pan-up"
"<Alt>Down" = "pan-down"
"Delete" = "delete-selection"
"Escape" = "run-actions-on-escape"
"Return" = "run-actions-on-enter"
"<Control>t" = "toggle-toolbars"
# scale is in %, 0 is fit to window
"<Alt>2" = "scale:50"
"<Alt>3" = "scale:33"
"<Alt>4" = "scale:25"
"<Control>2" = "scale:200"
"<Control>3" = "scale:300"
"<Control>4" = "scale:400"
# top toolbar
"<Alt>1" = "scale:100"
"<Control>1" = "scale:0"
"<Shift>Delete" = "clear-all"
"<Control>z" = "undo"
"<Control>y" = "redo"
"p" = "pointer"
"c" = "crop"
"b" = "brush"
"i" = "line"
"z" = "arrow"
"r" = "rectangle"
"e" = "ellipse"
"t" = "text"
"m" = "marker"
"u" = "blur"
"g" = "highlight"
"o" = "image"
"<Control>s" = "save-to-file"
"<Shift><Control>s" = "save-to-file-as"
"<Control>c" = "save-to-clipboard"
"<Shift><Control>c" = "copy-filepath-to-clipboard"
"<Control>v" = "paste-image"
# bottom toolbar
"1" = "select-color-index:1"
"2" = "select-color-index:2"
"3" = "select-color-index:3"
"4" = "select-color-index:4"
"5" = "select-color-index:5"
"6" = "select-color-index:6"
"7" = "select-color-index:7"
"8" = "select-color-index:8"
"9" = "select-color-index:9"
"minus" = "cycle-size"
#"..." = "select-size:(small|medium|large)"
"s" = "focus-annotation-size-factor"
"f" = "toggle-fill"
"k" = "toggle-round-caps"
# Font to use for text annotations
[font]
family = "Roboto"
style = "Regular"
# specify fallback fonts (0.20.1)
# Please note, there is no default setting for these and the fonts listed below
# are not shipped with Satty but need to be available on the system.
# An installed color emoji font (e.g. Noto Color Emoji) is picked up automatically
# as the last fallback, so emoji render without extra configuration. (0.22.0)
fallback = [
"Noto Sans CJK SC",
# "Noto Sans CJK JP",
# "Noto Sans CJK TC",
# "Noto Sans CJK KR",
# "Noto Serif CJK JP",
# "Noto Serif JP",
# "IPAGothic",
# "IPAexGothic",
# "Source Han Sans",
# add or remove as needed - more fonts may make satty slower
]
# Custom colours for the colour palette
[color-palette]
# These will be shown in the toolbar for quick selection
palette = [
# RRGGBBAA format, where AA is the alpha channel
# (00 is fully transparent, ff is fully opaque)
"#f0932bff",
"#eb4d4bff",
"#6ab04cff",
"#22a6b3ff",
"#130f40FF",
# add or remove as needed
]
# These will be available in the color picker as presets
# Leave empty to use GTK's default
custom = [
# "#a52a2a",
# "#ffd700",
# "#008000",
# add or remove as needed
]