https://github.com/ttys3/bismuth
A Rust cli util to set your desktop wallpaper to the newest 'Bing Image Of The Day'.
https://github.com/ttys3/bismuth
Last synced: about 1 month ago
JSON representation
A Rust cli util to set your desktop wallpaper to the newest 'Bing Image Of The Day'.
- Host: GitHub
- URL: https://github.com/ttys3/bismuth
- Owner: ttys3
- Created: 2023-11-15T13:26:31.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-02-08T15:26:22.000Z (5 months ago)
- Last Synced: 2026-02-08T21:52:06.153Z (5 months ago)
- Language: Rust
- Size: 257 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Bismuth
> [**Bismuth**](https://en.wikipedia.org/wiki/Bismuth) is a chemical element with the symbol **Bi** and atomic number 83.
> **ビスマス**(英語: bismuth `[ˈbɪzməθ]`)あるいは**蒼鉛**(そうえん)は、原子番号83の元素。元素記号は **Bi**(ラテン語: Bismuthumから)。第15族元素の一つ。

## Table of Contents
- [About](#about)
- [Dependencies](#dependencies)
- [Arch](#for-arch)
- [Debian, Ubuntu and Mint](#for-debian-ubuntu-and-mint)
- [Installation](#installation)
- [Usage](#usage)
- [Commands](#commands)
- [silent](#silent)
- [mode](#mode-mode)
- [custom command](#custom-command-custom_command)
- [To-Do](#to-do)
## About
Bismuth is a lightweight Rust script that sets your desktop wallpaper to the latest daily Bing image.
## Dependencies
|Dependency|Link |
|----------|--------------------------------------------------|
|feh |[Github](https://github.com/derf/feh) |
### For Fedora Linux
```shell
dnf install feh
```
### For Arch
```
paru -S feh
```
```
yay -S feh
```
```
sudo pacman -S feh
```
### For Debian, Ubuntu and Mint
```
sudo apt install feh
```
## Installation
1\. Clone the repository and cd into it.
```
git clone "https://github.com/ttys3/Bismuth"
cd Bismuth
```
2\. Build Bismuth
```
cargo build --release
```
## Usage
Here's an example usage of the script.
```
bismuth --silent --mode max
```
---
Or you can also simply do;
Which calls `feh` using `--bg-fill` option as default.
```
bismuth
```
---
Here's an example of a custom command, in this case using `swaybg`.
`%` represents the file destination.
```
bismuth -c 'swaybg --image %'
```
The wallpaper gets saved at `$HOME/.local/share/.wallpaper.jpg`.
### Commands
| Command | Description |
|---------------------------------------------|--------------------------------------------------------------------------|
| `--silent`, `-s` | Disable notifications. |
| `--mode`, `-m` `` | Set feh scaling options. |
| `--custom-command`, `-c` `` | Set background using custom command, this flag can repeat multiple times |
| `--help`, `-h` | Display help information. |
| `--version`, `-V` | Show the version of the script. |
| `-b, --backup-dir ` | Backup dir to copy daily wallpaper to |
| `--mkt ` | Specify the market to use for the wallpaper |
| `-r, --resolution ` | Specify the resolution to use for the wallpaper. |
### `--help`
```
Usage: bismuth [OPTIONS]
Options:
-s, --silent
Disables notifications
-m, --mode
Specifies the scaling options for Feh [default: fill] [possible values: center, fill, max, scale, tile]
-c, --custom-command
Call custom wallpaper command, this flag can repeat multiple times
-b, --backup-dir
Backup dir to copy daily wallpaper to
--mkt
Specify the market to use for the wallpaper. Available mkt: auto, ar-XA, da-DK, de-AT, de-CH, de-DE, en-AU, en-CA, en-GB, en-ID, en-IE, en-IN, en-MY, en-NZ, en-PH, en-SG, en-US, en-WW, en-XA, en-ZA, es-AR, es-CL, es-ES, es-MX, es-US, es-XL, et-EE, fi-FI, fr-BE, fr-CA, fr-CH, fr-FR, he-IL, hr-HR, hu-HU, it-IT, ja-JP, ko-KR, lt-LT, lv-LV, nb-NO, nl-BE, nl-NL, pl-PL, pt-BR, pt-PT, ro-RO, ru-RU, sk-SK, sl-SL, sv-SE, th-TH, tr-TR, uk-UA, zh-CN, zh-HK, zh-TW
-r, --resolution
Specify the resolution to use for the wallpaper. Available resolution: auto UHD 1920x1200 1920x1080 1366x768 1280x720 1024x768 800x600
-h, --help
Print help (see more with '--help')
-V, --version
Print version
```
### `--silent`
Disables notifications when the wallpaper is successfully set.
### `--mode `
- `center`: Centers the image on the screen without scaling.
- `fill`: Scales the image to fit the screen and preserves aspect ratio.
- `max`: Scales the image to the maximum size with black borders on one side.
- `scale`: Fills the screen, but doesn't preserve the aspect ratio.
- `tile`: Tiles the image on the screen.
### `--custom-command `
Sets wallpaper using a custom command.
Example `bismuth -c "swaybg --image %"`
The `%` symbol is important as it signifies the file destination.
### To-Do
- [x] Save image as `.wallpaper.jpg` for `.fehbg`.
- [x] Custom command support.
### credits
this repo is originally forked from [thejayduck/Bismuth](https://github.com/thejayduck/Bismuth)
### Related projects
https://github.com/swsnr/picture-of-the-day
https://flathub.org/apps/details/de.swsnr.pictureoftheday
> Get a picture of the day from any of the following sources as your daily wallpaper