chroma/chroma.conf.sample
NotAShelf dab6b3b0ae
meta: add coordinate based anchor examples to sample config
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I56bcc8488e3d973cc9ff99d26f991aa06a6a6964
2026-04-15 12:44:47 +03:00

128 lines
5 KiB
Text

# This is a sample configuration file for the Chroma wallpaper daemon.
# Lines starting with # are comments and are ignored.
#
# Configuration file locations (checked in order):
# 1. ~/.config/chroma/chroma.conf
# 2. $XDG_CONFIG_HOME/chroma/chroma.conf
# 3. ./chroma.conf (current directory)
#
# To get started:
# 1. Copy this file to ~/.config/chroma/chroma.conf
# 2. Modify the paths to point to your wallpaper images
# 3. Use 'wlr-randr' or similar tools to find your output names
# 4. Restart chroma or send SIGHUP to reload configuration
# This image will be used for any output that doesn't have a specific mapping.
# Supports: JPEG, PNG, BMP, TGA, PSD, GIF, HDR, PIC, PPM, PGM
# Paths can be absolute or relative, ~ expansion is supported.
#
# Alternative examples:
# default_image = ~/Pictures/wallpapers/default.png
# default_image = /usr/share/wallpapers/default.jpg
# default_image = ./wallpapers/fallback.jpg
default_image = ~/.config/chroma/default.jpg
# Whether to run as a background daemon
# Usually set via command line option --daemon, but can be set here too
daemon_mode = false
# Global scaling mode for wallpapers (used as default for all outputs)
# Options: fill, fit, stretch, center
# fill - Fill entire output, crop if necessary (default)
# fit - Fit image within output, add borders if needed
# stretch - Stretch to fill output, may distort aspect ratio
# center - Center image at original size
scale_mode = fill
# Global image filtering quality (used as default for all outputs)
# Options: nearest, linear, bilinear, trilinear
# nearest - Nearest neighbor filtering (pixelated, fast)
# linear - Linear filtering (smooth, default)
# bilinear - Bilinear filtering (smoother)
# trilinear - Trilinear filtering (smoothest)
filter_quality = linear
# Default anchor position (0-100 for both x and y)
# anchor_x: 0=left, 50=center, 100=right
# anchor_y: 0=top, 50=center, 100=bottom
# Can use named anchors: center, top, bottom, left, right, top-left, etc.
anchor = center
anchor_x = 50
anchor_y = 50
# Image downsampling settings for performance optimization
# ===================================================
# Enable automatic downsampling of large images to save memory and improve performance
# Set to false to keep original resolution for all images (uses more memory!)
enable_downsampling = true
# Maximum expected output resolution
# Images larger than these dimensions may be automatically downsampled
# Adjust based on your actual monitor setup
max_output_width = 3840 # 4K width (change to 2560 for 1440p, 1920 for 1080p)
max_output_height = 2160 # 4K height (change to 1440 for 1440p, 1080 for 1080p)
# Minimum scale factor
# Prevents images from being scaled below this percentage of original size
# Useful to preserve detail on very high-resolution images
# Range: 0.1 to 1.0 (10% to 100%)
min_scale_factor = 0.25 # Don't scale below 25% of original size
# Output-specific wallpaper mappings
# ==================================
# Basic format: output.OUTPUT_NAME = /path/to/image.ext
#
# Extended format with per-output settings:
# output.OUTPUT_NAME = /path/to/image.ext
# output.OUTPUT_NAME.scale = fill|fit|stretch|center
# output.OUTPUT_NAME.filter = nearest|linear|bilinear|trilinear
# output.OUTPUT_NAME.anchor = center|top|bottom|left|right|top-left|top-right|bottom-left|bottom-right
#
# Anchor specifies which part of the image is anchored to the output:
# center - image centered (default)
# top - image anchored to top edge
# bottom - image anchored to bottom edge
# left - image anchored to left edge
# right - image anchored to right edge
# top-left - image anchored to top-left corner
# top-right - image anchored to top-right corner
# bottom-left - image anchored to bottom-left corner
# bottom-right - image anchored to bottom-right corner
#
# To find your output names, run one of these commands:
#
# Compositor Agnostic:
# - wlr-randr (for wlroots-based compositors)
# - wayland-info | grep wl_output
# - kanshi list-outputs
#
# Compositor Specific
# - hyprctl monitors -j | jq .[].name (Hyprland specific)
#
# Common output name patterns:
# - DP-1, DP-2, DP-3, etc. (DisplayPort)
# - HDMI-A-1, HDMI-A-2, etc. (HDMI)
# - eDP-1 (embedded DisplayPort, laptops)
# - DVI-D-1, DVI-I-1 (DVI)
# - VGA-1 (VGA, legacy)
#
# Examples:
# output.HDMI-A-1 = ~/Pictures/wallpaper.jpg
# output.DP-1 = ~/Pictures/monitor1.png
# output.DP-1.scale = fit
# output.DP-1.filter = bilinear
# output.DP-1.anchor = top-left
# output.DP-2 = ~/Pictures/monitor2.jpg
# output.DP-2.scale = stretch
# output.eDP-1 = ~/Pictures/laptop-wallpaper.jpg
# output.eDP-1.scale = fill
# output.eDP-1.anchor = bottom-right
# output.eDP-1.filter = trilinear
#
# Custom anchor coordinates (anchor_x, anchor_y override anchor):
# output.ULTRAWIDE = ~/Pictures/ultrawide.jpg
# output.ULTRAWIDE.scale = fill
# output.ULTRAWIDE.anchor_x = 25 # 25% from left edge
# output.ULTRAWIDE.anchor_y = 10 # 10% from top edge