brewery
notashelf /
8df203732eaad85d0b72c6eb18f958e73ce52d58

chroma

public

Lightweight wallpaper daemon for Wayland

Star0tarball
clone
ssh://git@git.notashelf.dev:33/notashelf/chroma.git
chroma.conf.sample134 lines5.4 KB
1
# This is a sample configuration file for the Chroma wallpaper daemon.
2
# Lines starting with # are comments and are ignored.
3
#
4
# Configuration file locations (checked in order):
5
#   1. ~/.config/chroma/chroma.conf
6
#   2. $XDG_CONFIG_HOME/chroma/chroma.conf
7
#   3. ./chroma.conf (current directory)
8
#
9
# To get started:
10
#   1. Copy this file to ~/.config/chroma/chroma.conf
11
#   2. Modify the paths to point to your wallpaper images
12
#   3. Use 'wlr-randr' or similar tools to find your output names
13
#   4. Restart chroma or send SIGHUP to reload configuration
14
15
# This image will be used for any output that doesn't have a specific mapping.
16
# Supports: JPEG, PNG, BMP, TGA, PSD, GIF, HDR, PIC, PPM, PGM
17
# Paths can be absolute or relative, ~ expansion is supported.
18
#
19
# Alternative examples:
20
# default_image = ~/Pictures/wallpapers/default.png
21
# default_image = /usr/share/wallpapers/default.jpg
22
# default_image = ./wallpapers/fallback.jpg
23
default_image = ~/.config/chroma/default.jpg
24
25
26
# Whether to run as a background daemon
27
# Usually set via command line option --daemon, but can be set here too
28
daemon_mode = false
29
30
# Global scaling mode for wallpapers (used as default for all outputs)
31
# Options: fill, fit, stretch, center
32
#   fill    - Fill entire output, crop if necessary (default)
33
#   fit     - Fit image within output, add borders if needed
34
#   stretch - Stretch to fill output, may distort aspect ratio
35
#   center  - Center image at original size
36
scale_mode = fill
37
38
# Global image filtering quality (used as default for all outputs)
39
# Options: nearest, linear, bilinear, trilinear
40
#   nearest   - Nearest neighbor filtering (pixelated, fast)
41
#   linear    - Linear filtering (smooth, default)
42
#   bilinear  - Bilinear filtering (smoother)
43
#   trilinear - Trilinear filtering (smoothest)
44
filter_quality = linear
45
46
# Default anchor position (0-100 for both x and y)
47
# anchor_x: 0=left, 50=center, 100=right
48
# anchor_y: 0=top, 50=center, 100=bottom
49
# Can use named anchors: center, top, bottom, left, right, top-left, etc.
50
anchor = center
51
anchor_x = 50
52
anchor_y = 50
53
54
# Image downsampling settings for performance optimization
55
# ========================================================
56
# Enable automatic downsampling of large images to save memory and improve performance
57
# Set to false to keep original resolution for all images (uses more memory!)
58
enable_downsampling = true
59
60
# Maximum expected output resolution
61
# Images larger than these dimensions may be automatically downsampled
62
# Adjust based on your actual monitor setup
63
max_output_width = 3840   # 4K width (change to 2560 for 1440p, 1920 for 1080p)
64
max_output_height = 2160  # 4K height (change to 1440 for 1440p, 1080 for 1080p)
65
66
# Minimum scale factor
67
# Prevents images from being scaled below this percentage of original size
68
# Useful to preserve detail on very high-resolution images
69
# Range: 0.1 to 1.0 (10% to 100%)
70
min_scale_factor = 0.25  # Don't scale below 25% of original size
71
72
# Output-specific wallpaper mappings
73
# ==================================
74
# Basic format: output.OUTPUT_NAME = /path/to/image.ext
75
#
76
# You can match outputs by name OR by description:
77
#   output.DP-1 = /path/to/image.jpg          # Match by port name
78
#   output.desc:Samsung = /path/to/image.jpg  # Match by description prefix
79
#
80
# The description is the human-readable name provided by the compositor
81
# via the Wayland wl_output description event. For example, if your
82
# monitor reports "Samsung T27A450" as its description, you can use
83
# "output.desc:Samsung" to match it. The match is a prefix match, so
84
# "output.desc:Sam" would also work.
85
#
86
# To find your output names and descriptions, run one of these commands:
87
#   wlr-randr (for wlroots-based compositors)
88
#   wayland-info | grep wl_output
89
#   kanshi list-outputs
90
#
91
# Extended format with per-output settings:
92
#   output.OUTPUT_NAME = /path/to/image.ext
93
#   output.OUTPUT_NAME.scale = fill|fit|stretch|center
94
#   output.OUTPUT_NAME.filter = nearest|linear|bilinear|trilinear
95
#   output.OUTPUT_NAME.anchor = center|top|bottom|left|right|top-left|top-right|bottom-left|bottom-right
96
#
97
# Anchor specifies which part of the image is anchored to the output:
98
#   center      - image centered (default)
99
#   top         - image anchored to top edge
100
#   bottom      - image anchored to bottom edge
101
#   left        - image anchored to left edge
102
#   right       - image anchored to right edge
103
#   top-left    - image anchored to top-left corner
104
#   top-right   - image anchored to top-right corner
105
#   bottom-left - image anchored to bottom-left corner
106
#   bottom-right - image anchored to bottom-right corner
107
#
108
#  Examples:
109
#  output.HDMI-A-1 = ~/Pictures/wallpaper.jpg
110
#  output.DP-1 = ~/Pictures/monitor1.png
111
#  output.DP-1.scale = fit
112
#  output.DP-1.filter = bilinear
113
#  output.DP-1.anchor = top-left
114
#  output.DP-2 = ~/Pictures/monitor2.jpg
115
#  output.DP-2.scale = stretch
116
#
117
#  # Match by monitor description (prefix match):
118
#  output.desc:Samsung = ~/Pictures/samsung-wallpaper.jpg
119
#  output.desc:Samsung.scale = fill
120
#  output.desc:LG Ultra = ~/Pictures/lg-wallpaper.jpg
121
#  output.desc:BenQ = ~/Pictures/benq-wallpaper.jpg
122
#
123
#  # Laptop internal display:
124
#  output.eDP-1 = ~/Pictures/laptop-wallpaper.jpg
125
#  output.eDP-1.scale = fill
126
#  output.eDP-1.anchor = bottom-right
127
#  output.eDP-1.filter = trilinear
128
#
129
#  Custom anchor coordinates (anchor_x, anchor_y override anchor):
130
#  output.ULTRAWIDE = ~/Pictures/ultrawide.jpg
131
#  output.ULTRAWIDE.scale = fill
132
#  output.ULTRAWIDE.anchor_x = 25    # 25% from left edge
133
#  output.ULTRAWIDE.anchor_y = 10    # 10% from top edge
134