brewery
notashelf /
c8ba7c4868c03da2f367e170d52d8de059649c71

chroma

public

Lightweight wallpaper daemon for Wayland

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