Gowall is a tool to convert an image ( specifically a wallpaper ) to any color-scheme / pallete you like! It also offers a bunch of image processing features (image to pixel art, Image upscaling, color palette extraction...)
Gowall is really well documented with visual examples: https://achno.github.io/gowall-docs/ 🠔
❗ Gowall although a CLI, has an Image preview feature so it can print the image in the terminal
| Feature | Explanation | Documentation (Visual examples) |
|---|---|---|
| Convert a Wallpaper's theme | Transforms the color scheme of the image to your favorite theme (catppuccin, everforest, tokyo...) to match your system's theme | here |
| Convert an image to pixel art | Transforms your image to the typical blocky appearance of pixel art | here |
| Change Image format | Change format from .webp to .png, for example |
here |
| Invert image colors | Flips the colors of an image (a very underrated feature) | here |
| Replace a specific color in an image | Changes a specific color in the image to another | here |
| Extract the color palette | Finds the dominant or all colors in an image (similar to pywal) | here |
| Draw on the Image | Draw borders, shapes, and effects | here |
| Remove the background of the image | Removes the background from an image | here |
| Daily wallpapers | Explore community-voted wallpapers that reset daily | here |
The currently supported themes are featured below, if your favourite theme is missing open an issue or a pull request
All themes can be shown (both default and user-created via ~/.config/gowall/config.yml) by gowall list
- Catppuccin Mocha
- Nord
- Everforest
- Solarized
- Gruvbox
- Dracula
- Tokyo-dark/storm/moon
- Onedark
Click to see more themes
- Material
- Atom One Light
- Sweet
- Synthwave 84
- Atom Dark
- Oceanic Next
- Shades of Purple
- Arc Dark
- Sunset Aurant
- Sunset Saffron
- Sunset Tangerine
- Cyberpunk
- Night Owl
- Github Light (black & white)
Themes that were requested by the community and added to gowall
- Srcery
Step 1. Create the directory and file : ~/.config/gowall/config.yml
Step 2. Paste the below template and change the name and hex values for your theme
themes:
- name: "placeholder1"
colors:
- "#F5E0DC"
- "#F2CDCD"
- "#F5C2E7"
- "#CBA6F7"
- "#F38BA8"
- "#EBA0AC"
- "#FAB387"
- "#F9E2AF"
- "#A6E3A1"
- "#94E2D5"
- "#89DCEB"
- "#74C7EC"
- "#89B4FA"
- "#B4BEFE"
- "#CDD6F4"
- "#BAC2DE"
- "#A6ADC8"
- "#9399B2"
- "#7F849C"
- "#6C7086"
- "#585B70"
- "#45475A"
- "#313244"
- "#1E1E2E"
- "#181825"
- "#11111B"
- name: "placeholder2"
colors:
- "#F73253"
- "#FA39DF"
- "#005382"
- "#123456"Notes 🗒️ :
- Duplicate theme names will not be loaded
Singe conversion
gowall convert path/to/img.png -t <theme-name>-
Replace a single color with anothergowall convert /path/to/img.png -r #312424,#1D1C2D
Notes 🗒️ :
path/to/img.pngdoes not have to be an absolute path. You can use a relative path with the~ex.~/Pictures/img.png- you can find the list of all the themes via
gowall listcheck number 6. as well
-
Batch conversiongowall convert -b path/img.png,path/im2.png -t <theme-name-lowercase>
⚠️ Do not leave any white spaces between the comma,, do it like this :path/img.png,path/im2.png
-
Invert colorsgowall invert path/to/img.png
You can also batch invert colors with :
gowall invert -b path/img.png,path/img2.png
-
Convert a whole DirectoryUse the
#delimiter to convert every image file under that directorygowall convert ~/Pictures/# -t catppuccin gowall invert ~/Pictures/test/#
Notes 🗒️ : Only
pngjpegjpgwebpimages will be converted any other directory or other file will be ignored
-
List all theme namesgowall list
Notes 🗒️: You can view the colors of a theme by using the
-tflag Example:gowall list -t catppuccin
You can also open up a hex preview app in your default browser via the
-pflag Example :gowall list -pt catppuccin
-
Image previewingImage previewing is available for single image processing and is
ONby defaultExamples :
gowall convert ~/Pictures/img.pngandgowall invert ~/Pictures/img.pngYou can disable it by adding the following inside your
~/.config/gowall/config.ymlEnableImagePreviewing: false
-
Pallete extraction( Like pywal )You can extract the color pallete of an image as shown below :
gowall extract /path/to/img.png -c 6
The
-cflag specifies how many hex color codes to return ( Personally i recommend between 6-16 with 6-7 being my go to). This will print the color codes to the terminal. In order for you to view all the colors of the hex codes at once you can use the-pflag.gowall extract /path/to/img.png -pc 6
That will open a hex code previwer in your default web browser
-
Wallpaper of the DayView beautiful wallpapers that reset daily
gowall -w
You can see an example here
-
Changing formatsChange the format of an image, the available formats are
pngjpegjpgwebpgowall convert ~/Pictures/img.webp -f png
-
Adding a borderUsing the
drawcommand you can draw a border and specify the color, thickness etc... The below draws a border 5px thick with the color #5D3FD3gowall draw ~/Pictures/img.png -c #5D3FD3 -b 5
yay -S gowall
NixOS - ( Maintainer : Emily Trau )
environment.systemPackages = [
pkgs.gowall
];
More installation options : here
Void Linux - XBPS-SRC ( Maintainer : elbachir-one )
Assuming you have void-packages
git clone https://github.com/elbachir-one/void-templates
cd void-templates/ && cp -r gowall/ void-packages/srcpkgs/
cd void-packages/
./xbps-src pkg gowall
sudo xbps-install -R hostdir/binpkgs gowall🔨 Clone the repo, build the project and move it inside your $PATH
git clone https://github.com/Achno/gowall
cd gowall
go build
sudo cp gowall /usr/local/bin/
gowall
Notes 🗒️ : You dont have to use sudo cp gowall /usr/local/bin/ if you have $GOPATH setup correctly
Eg. you have the following in your .zshrc / .bashrc
export GOPATH=$(go env GOPATH)
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBINAnd simply use go install
go install github.com/Achno/gowall@latestIf you wish to contribute by adding a new theme please open an issue
I would also be very happy if you can provide the rgb values of your theme as well :) but not required if it's popular
Feel free to suggest any cool features that would improve gowall even further by opening an issue