cutler 0.19.7

Powerful, declarative settings management for your Mac, with speed.
Documentation
# Remove the line below to enable activating this configuration.
template = true

# This is a starter configuration.
# If you want to explore what each section of the configuration does in detail,
# visit: https://machlit.github.io/cutler

# cutler works by storing various different configurations in a table-like structure.
# The example below is of storing the system preferences:

[set.menuextra.clock]           # The preference is put without the com.apple. prefix (here it is com.apple.menuextra.clock)
FlashDateSeparators = true      # Then there is the setting which you want to change and its value.
Show24Hour = false
ShowAMPM = false
ShowDate = 2
ShowDayOfWeek = false
ShowSeconds = true

[set.finder]                    # Some examples have been included for your convenience.
AppleShowAllFiles = true        # (Finder, Dock, Trackpad etc.)
CreateDesktop = false
ShowPathbar = true
ShowExternalHardDrivesOnDesktop = false
FXRemoveOldTrashItems = true
FXEnableExtensionChangeWarning = false
FXDefaultSearchScope = "SCcf"

[set.AppleMultitouchTrackpad]
FirstClickThreshold = 0
TrackpadThreeFingerDrag = true

[set.dock]                      # Sample Settings for Dock:
tilesize = 50                   # This will change the dock's size to 50.
autohide = true                 # This will autohide the dock.
static-only = true              # Ony running apps will be shown on the dock.
show-recents = false
magnification = false
orientation = "right"
mineffect = "suck"
autohide-delay = 0
autohide-time-modifier = 0.6
expose-group-apps = true

[set.screencapture]
show-thumbnail = false
target = "clipboard"
type = "png"

[set.NSGlobalDomain]            # For global domains, use the NSGlobalDomain key.
KeyRepeat = 2
InitialKeyRepeat = 15
NSDocumentSaveNewDocumentsToCloud = false
NSAutomaticInlinePredictionEnabled = false
NSAutomaticSpellingCorrectionEnabled = false
"com.apple.keyboard.fnState" = false

# cutler can also help you run shell commands every now and then.
# Store them inside their own [commands] table instance and run them by name using the command:
#
# `cutler exec <cmd_name>`

[vars]                          # The [vars] table stores variables only available to the
hostname = "darkstar"           # commands you are storing in the configuration.

[command.hostname]
run = """
scutil --set ComputerName $hostname
scutil --set HostName $hostname
scutil --set LocalHostName $hostname
"""
ensure_first = true             # ensure_first = true; Runs before all other commands.
sudo = true                     # sudo = true; When you want your command to run with sudo privileges.
                                # Please note that this is just a minor convenience feature;
                                # regular sudo inside your actual command still works.

# cutler can also store your installed apps and tools via Homebrew.
# It does so by wrapping around the tool and helping you automate the process.

[brew]
formulae = [
    "bash",
    "bash-completion@2",
    "bat",
    "cargo-edit",
    "cmake",
    "cmatrix",
]
casks = ["aerospace", "android-studio", "appcleaner", "container", "discord"]
taps = ["machlit/tap", "nikitabobko/tap"]
no_deps = true # Use this if you do not want cutler to check for dependencies when comparing.

# Remote config example
# Uncomment to use:
#
# [remote]
# url = "https://url/to/config.toml"        # URL to your configuration file.
# autosync = false                          # Whether to update the configuration on command execution.