dynamically manages wallpapers based on browser history or search phrases
  • Go 96%
  • Shell 3.3%
  • Makefile 0.4%
  • Nix 0.3%
Find a file
github-actions[bot] 7eb949a2e1
Merge pull request #63 from labi-le/dependabot/go_modules/github.com/stretchr/testify-1.12.0
Bump github.com/stretchr/testify from 1.11.1 to 1.12.0
2026-08-17 19:10:36 +00:00
.github add Dependabot Automerge - Action 2024-05-06 22:11:34 +03:00
cmd refactor codebase: fix defects, add DI seams, satisfy linter 2026-07-22 19:17:52 +03:00
internal add unit test coverage across all packages 2026-07-22 19:17:59 +03:00
pkg add unit test coverage across all packages 2026-07-22 19:17:59 +03:00
.gitignore refactor 2026-01-23 23:06:39 +03:00
.golangci.yml refactor 2026-01-23 23:06:39 +03:00
.goreleaser.yaml rename project 2026-01-26 21:09:38 +03:00
generate_context.sh refactor 2026-01-23 23:06:39 +03:00
go.mod Bump github.com/stretchr/testify from 1.11.1 to 1.12.0 2026-08-17 19:10:24 +00:00
go.sum Bump github.com/stretchr/testify from 1.11.1 to 1.12.0 2026-08-17 19:10:24 +00:00
Makefile nasa api: exclude non prettier images 2026-01-26 22:02:29 +03:00
README.md rename project 2026-01-26 21:09:38 +03:00
shell.nix rename project 2026-01-26 21:09:38 +03:00

chiasma

dynamically manages wallpapers based on browser history or search phrases

features

  • source:
    • browser history: extracts last search query (chromium-based/firefox).
    • manual phrase: static keyword search.
  • api:
    • unsplash
    • nasa
  • backends:
    • swww
    • swaybg
  • output:
    • auto-detection via xrandr.
    • multi-monitor support.
  • modes:
    • one-shot.
    • daemon (--follow).

dependencies

  • wayland
  • backend (one of):
    • swww
    • swaybg
  • resolution:
    • xrandr (optional, for auto-detection).
  • browser (optional):
    • chromium-based (chrome, brave, vivaldi, opera, etc.)
    • firefox

installation

usage

chiasma [flags]

flags

      --api string              image source api (default "nasa")
      --browser string          browser name (default "google-chrome")
      --follow                  enable periodic updates
      --history-file string     path to history file
      --interval duration       update interval (default 1h0m0s)
      --output monitor          monitor output (e.g. eDP-1)
      --phrase string           search phrase
      --resolution resolution   target resolution (e.g. 1920x1080) (default 0x0)
      --save-dir string         save directory (default "/home/$USER/Pictures/chiasma")
      --tool string             wallpaper tool (default "swaybg")
      --verbose                 enable verbose logs

examples

1. one-shot update using last google search from vivaldi:

chiasma --browser vivaldi --api unsplash

2. daemon mode (update every 30 minutes) using specific keyword:

chiasma --phrase "cyberpunk city" --follow --interval 30m --tool swww

3. specific monitor and resolution with nasa api:

chiasma --output HDMI-A-1 --resolution 2560x1440 --api nasa

4. firefox usage (requires manual history path):

chiasma --browser firefox --history-file ~/.mozilla/firefox/PROFILE_ID/formhistory.sqlite

5. chromium-based browser with custom history path:

chiasma --browser brave --history-file ~/.config/BraveSoftware/Brave-Browser/Default/History

supported providers

browsers

  • chromium-based: google-chrome, vivaldi, chromium, brave, opera.
  • firefox: firefox.

apis

  • nasa
  • unsplash

tools

  • swww
  • swaybg

todo

  • add swaybg tool
  • add swww tool
  • unsplash image provider
  • nasa image provider
  • chromium based browser support
  • firefox support
  • resolution auto detection
  • refactor codebase
  • add more providers