Turn your wallpaper into a palette and the configs to match
Drop in an image and the Generator builds a palette from it (background, text, an accent and all sixteen terminal colors), lets you tune it while a mock desktop recolors, and writes the theme files for your apps.
The Generator
~/generatorsample wallpaper, drawn by ricetheme · the ricetheme palette
lowercase letters, digits and hyphens; it names the files
~/generator export
Theme files for ricetheme
How it works.
Drop in a wallpaper
Drag an image onto the page, paste it, or pick a file: JPEG, PNG or WebP, any size. Your browser reads it on your computer, and it is never uploaded.
Get a palette
The Generator finds the colors that carry the image and gives each one a job: a background and a surface, text and a muted shade, one accent, and the sixteen terminal colors, with red still a red and green still a green.
Tune it by eye
Push the contrast up or down, warm or cool the grays, or pick another accent from the wallpaper. The mock desktop beside the controls recolors as you go, and every text color stays readable on the background.
Copy the configs
Each app has a tab with its theme file, where the file goes and the one line that loads it. Copy them one at a time, or download them all in a zip with a palette.json.
What it writes.
A theme file for each app, written to sit beside your config, so your keybinds, layout and fonts stay yours.
kitty· alacritty · ghostty
Terminals
kitty, Alacritty and Ghostty: background, text, cursor, selection and all sixteen colors, in a theme file your main config includes.
tmux
tmux
The status line, the window list, pane borders and messages, in a file your tmux.conf sources.
hyprland· sway · i3
Window managers
Hyprland, Sway and i3: focused and unfocused borders from the accent, plus the palette as variables you can use anywhere else in your config.
waybar· polybar
Bars
Waybar as GTK CSS color definitions with a starter style, and Polybar as a section you reference by name, so your modules and layout stay as they are.
rofi· fuzzel
Launchers
rofi as a small, complete theme, and fuzzel as its colors section.
neovim· vs code
Editors
A Lua colorscheme for Neovim, with its terminal colors set too, and a block for VS Code’s settings.json that colors the workbench, the integrated terminal and the main syntax groups.
palette.json
palette.json
Every color by name in one file, for dotfiles that theme everything from one place, or to drop back into the Generator later and pick up where you left off.
Each export is a theme file, not a config. It sits next to your app’s own config under ~/.config, holds the colors and the few lines that apply them, and loads through one line you add yourself. Every tab names the version of the app its file is written for, and nothing in the download replaces a config you already have.
What it won’t do.
Install or rearrange anything
It writes colors. It doesn’t install apps or fonts, change your gaps, layouts or keybinds, or edit your config: the one line that loads each file is yours to add.
Theme every app
Only the apps listed above. There is no GTK, Qt or KDE Plasma theme, so panels, menus and app windows keep their own colors; palette.json has every value if you want to write your own template.
Promise every version
Config formats change between releases. Each tab names the version its file is written for; on a much older or newer version, a key may be renamed or missing.
Make a gray wallpaper colorful
A gray or one-color image gives a quiet palette: the terminal colors it can’t find are filled in at the image’s own low saturation. Pick a brighter accent by hand if you want more color.
Know your screen
Every text color keeps at least 4.5:1 contrast against the background at every setting, but monitors and eyes differ. Check the result on your own screen before you commit it.
Questions ricers ask.
Is it free? Do I need an account?
It’s free, with no account and nothing to install. The Generator is part of this page: open it, drop in a wallpaper, take the files.
Does my wallpaper get uploaded anywhere?
No. Your browser reads the image and measures its colors on your computer. The Generator has no upload and no server behind it, so neither the image nor the palette leaves your machine, and nothing is kept once you close the tab.
How is this different from pywal?
pywal and the tools that followed it, like wallust and matugen, run on your machine: they pull colors from the wallpaper and fill in templates your configs load, again every time you change it. That suits wallpapers that rotate. The Generator is for a palette you settle on: tune it by eye, keep the files in your dotfiles, and nothing new runs on your system.
Will red still be red?
Yes. Programs use the sixteen terminal colors for meaning: red for errors and deleted lines, green for success and added ones, yellow for warnings. Each color keeps its hue family and moves toward the wallpaper’s own shades only as far as that allows, so a git diff still reads at a glance.
Can it make a light theme?
Yes. Switch to light and the background comes from the palest part of the image instead of the darkest, with the same contrast floors. Light themes ask more of the terminal colors: yellow and cyan have to darken a lot to stay readable on a pale background, so expect them deeper than in the dark version.
Do I have to replace my config?
No. Every export is a theme file that sits beside your config, plus the one line that loads it: include for kitty, import for Alacritty, source for tmux, @import for Waybar, and for Hyprland the line that matches your version (the Hyprland tab shows both). Your keybinds, layout and fonts stay as they are. VS Code is the exception: it gets a block to merge into settings.json.
Which versions are the files written for?
Each tab says, next to the file. Formats do change: Alacritty moved from YAML to TOML in version 0.13, for example, and an older Alacritty won’t read the new file. If a file doesn’t load on your version, send us the app and the version through the contact page and we’ll look at the template.
Does it work on KDE Plasma or GNOME?
The terminal, tmux and editor files work on any desktop, X11 or Wayland. What it doesn’t write is a Plasma color scheme or a GTK theme, so on Plasma and GNOME the panels, menus and app windows keep their own colors.
Can I use the files on a Mac?
The kitty, Alacritty, Ghostty, tmux, Neovim and VS Code files work on macOS as they are. Only some paths differ, and the tabs for those apps say where the file goes on a Mac.
Why aren’t the colors exactly the ones in my wallpaper?
Because each color has a job. The hue comes from the image, but lightness and saturation are adjusted until text reads on the background and the terminal colors are easy to tell apart. A wallpaper’s deepest navy may be too saturated for a background you look at all day, so it is calmed to a near-neutral with the same tint.
Can I share the palette or put it in my dotfiles?
Yes, it’s yours: the palette comes from your image and your choices, and the files carry no license terms from us. The wallpaper is a separate matter. If you publish dotfiles with the image in them, check its license and credit the artist.
Got a wallpaper you keep coming back to?
Drop it in and watch your desktop take its colors before you change a single file.