MyNixOS website logo

The sketchybar configuration. Can be specified as:

  1. A string containing the configuration content directly
  2. An attribute set with 'source' pointing to a directory containing the full configuration, and optionally 'recursive = true' to recursively copy all files
  3. An attribute set with 'text' containing inline configuration

When using a string or 'text', the appropriate shebang will be automatically added based on configType (bash or lua).

When using a directory source, it should contain a file named "sketchybarrc" which serves as the main entry point.

Declarations
Type
null or strings concatenated with "\n" or (submodule)
Default
null
Example
# String example - inline configuration
''
# Define colors
export COLOR_BLACK="0xff181926"
export COLOR_WHITE="0xffcad3f5"

# Configure bar
sketchybar --bar height=32 \
                position=top \
                padding_left=10 \
                padding_right=10 \
                color=$COLOR_BLACK

# Configure default values
sketchybar --default icon.font="SF Pro:Bold:14.0" \
                    icon.color=$COLOR_WHITE \
                    label.font="SF Pro:Bold:14.0" \
                    label.color=$COLOR_WHITE

# Add items to the bar
sketchybar --add item clock right \
          --set clock script="date '+%H:%M'" \
                      update_freq=10

# Update the bar
sketchybar --update
''

# Or directory example - for complex configurations
# {
#   source = ./path/to/sketchybar-config;
#   recursive = true;
# }