An open API service indexing awesome lists of open source software.

https://github.com/Achno/gowall

A tool to convert a Wallpaper's color scheme / palette, image to pixel art, color palette extraction, image upsacling with Adversarial Networks and more image processing features
https://github.com/Achno/gowall

cli color-extractor color-palette color-scheme go image image-converter image-processing pixel-art theme-switcher upscale

Last synced: 16 days ago
JSON representation

A tool to convert a Wallpaper's color scheme / palette, image to pixel art, color palette extraction, image upsacling with Adversarial Networks and more image processing features

Awesome Lists containing this project

README

          

###### *

Design By Achno
*



 [
 Overview 
](#overview-framed_picture) 
 [
 Installation 
](#installation-package) 
 [
 Contributions 
](#contributions-handshake) 





---

# Overview :framed_picture:

Gowall is a tool to convert an image ( specifically a wallpaper ) to any color-scheme / palette you like!
It also offers a bunch of image processing features (image to pixel art, Image upscaling, color palette extraction...)

## Docs
Gowall is really well documented with **visual examples**: [Gowall Docs](https://achno.github.io/gowall-docs/)

---

## Features

❗ Although Gowall is a CLI tool, it has an `Image preview` feature that allows
printing images directly in the terminal. See [Gowall Terminal Image preview](https://achno.github.io/gowall-docs/#image-preview)

- Convert Wallpaper's theme 👾 – Recolor an image to match your favorite + (Custom) themes (Catppuccin...).
- AI Image Upscaling 👾- Increase the resolution of the image while preserving or improving its quality.
- Support for Unix pipes/redirection 👾 - Read from stdin and write to stdout.
- Convert Icon's theme 👾 (svg,ico) - Recolor your icons to match a theme.
- Image to pixel art - Transforms your image to the typical blocky appearance of pixel art.
- Replace a specific color in an image - Pretty self explanatory.
- Create a gif from images - Use the images as frames and specify a delay and the number of loops.
- Extract color palette - Extracts all the dominant colors in an image (like pywal).
- Change Image format - Ex. change format from .webp to .png.
- Invert image colors - Pretty self explanatory.
- Draw on the Image - Draw borders,grids on the image
- Remove the background of the image - Pretty self explanatory.
- Effects - Mirror,Flip,Grayscale,change brightness and more to come!
- Daily wallpapers - Explore community-voted wallpapers that reset daily.

---

















---

# Themes :art:

You can check the section [here](https://achno.github.io/gowall-docs/themes) on how to create a **Custom Theme**.

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 flavors**
- **Dracula**
- **Everforest**
- **Gruvbox**
- **Nord**
- **Onedark**
- **Solarized**
- **Tokyo-dark/storm/moon**

Click to see more themes


  • Arc Dark

  • Atom Dark

  • Atom One Light

  • Cat Frappe/latte

  • Cyberpunk

  • Github Light (black & white)

  • Kanagawa

  • Material

  • Melange (Dark & Light)

  • Night Owl

  • Oceanic Next

  • Rose Pine

  • Shades of Purple

  • Sunset Aurant

  • Sunset Saffron

  • Sunset Tangerine

  • Sweet

  • Synthwave 84


---

# Installation :package:

Make sure to do `gowall -v` and compare it against the release page version,
since the [docs](https://achno.github.io/gowall-docs/installation) only show the commands/flags and capabilities of the latest released version.

### MacOS (Homebrew)

```sh
brew install gowall
```

Thank you to `chenrui333`. You can find the [ruby formula](https://github.com/Homebrew/homebrew-core/blob/b86ea8e19ae7bf087fab8e2d56cd623eec1e1cf9/Formula/g/gowall.rb) there.

### Arch linux - AUR

```sh
yay -S gowall
```
### Fedora - COPR

```sh
sudo dnf copr enable achno/gowall
sudo dnf install gowall
```

### NixOS - ( Maintainer : [Emily Trau](https://github.com/emilytrau))

```yaml
environment.systemPackages = [
pkgs.gowall
];
```

More installation options : [here](https://search.nixos.org/packages?channel=24.05&from=0&size=50&sort=relevance&type=packages&query=gowall)

### Void Linux - XBPS-SRC ( Maintainer : [elbachir-one](https://github.com/elbachir-one/))

Assuming you have [void-packages](https://github.com/void-linux/void-packages)

```sh
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
```

### Grab the binary from the release section (Stable Release) 🢀 **Prefered Method**

If you don't know how to install gowall you should probably following this method rather than cloning and building the project.

Head over to the [release](https://github.com/Achno/gowall/releases) section

Choose the latest version of gowall. You should see a `.tar.gz` for your operating system and architecture. Simply Extract the binary inside named `gowall` and place it inside your `$PATH`

```sh
sudo cp gowall /usr/local/bin/
```

### Build from source (Cutting Edge)

If you are a normal user, consider using using the method above for a stable gowall release.

> If you want to contribute to the project
>
> Or have all the latest features that have not been released yet then

🔨 Clone the repo, build the project and move it inside your `$PATH`

```sh
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

```sh
export GOPATH=$(go env GOPATH)
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN
```

And simply use `go install`

```sh
go install github.com/Achno/gowall@latest
```
---

# Contributions :handshake:

If 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`

# Community

## Community Extensions

The following are **third-party projects** built by the community that extend or integrate with `gowall`.

>[!Warning]
>These tools are **not officially affiliated with the `gowall` project**. Please audit/inspects scripts before running them.

### 🔗 Projects

- [**tinted-gowall**](https://github.com/tinted-theming/tinted-gowall) — A bridge between `gowall` and the [tinted-theming](https://github.com/tinted-theming) ecosystem. This project enables users to apply their `base16`/`base24` themes with `gowall`, unlocking hundreds of new visual styles.

# Special Thanks

Special thanks to [lutgen](https://github.com/ozwaldorf/lutgen-rs) for the original implementation of the color correction algorithm which i adapted for this project.