Terminal UI that allows Alacritty users to quickly and easily shuffle through provided themes ๐Ÿฆ„

Overview

Alac-pretty


alac-pretty.mp4

If you're like me in that you constantly need to change the colors of your dev environment because visual stagnation really bothers you, then get on Alacritty and download this BlAZiNgLy FAsT color-scheme shuffler. This only works for POSIX-compliant systems... sorry Windows peeps.

Installation

Unfortunately I am too lazy to do releases and compile this for various systems so you'll have to do this manually for now.

  1. Make sure you have Rust and its toolchain installed.
  2. $ cargo install --git https://github.com/solidiquis/alac-pretty
  3. Stick the resultant binary somewhere in your path.

Essential pre-requisites before using

The official Alacritty docs requires that you have your Alacritty config at one of the following locations:

  1. $XDG_CONFIG_HOME/alacritty/alacritty.yml
  2. $XDG_CONFIG_HOME/alacritty.yml
  3. $HOME/.config/alacritty/alacritty.yml
  4. $HOME/.alacritty.yml

To use this program, you'll need to stick this additional file in one of the following locations as well:

  1. $XDG_CONFIG_HOME/alacritty/alacritty_color_schemes.yml
  2. $XDG_CONFIG_HOME/alacritty_color_schemes.yml
  3. $HOME/.config/alacritty/alacritty_color_schemes.yml
  4. $HOME/.alacritty_color_schemes.yml

Lastly, your alacritty.yml file's scheme and colors settings will need to be formatted exactly like this file.

How to use

  • Scrolling up: k or โ†‘
  • Scrolling down: j or โ†“
  • Exiting: Ctrl-c

To-do

  • Better test coverage.
  • Incorporate Github workflows + do releases
  • Handle SIGWINCH signal.

Acknowledgements

Thanks to eendroroy for putting together all the colorschemes which I used to put together this bad boy.

Author notes

I made another version of this project in Go but wasn't very happy with it. Decided to make a skinnier version in Rust for fun that only handled colorschemes and didn't leverage any Terminal UI libs.

You might also like...
Sero is a web server that allows you to easily host your static sites without pain. The idea was inspired by surge.sh but gives you full control.

sero Lightning-fast, static web publishing with zero configuration and full control ๐Ÿ“– Table Of Contents ๐Ÿ“– Table Of Contents ๐Ÿ”ง Tools โ“ About The Pro

Terminal UI for leetcode. Lets you browse questions through different topics. View, solve, run and submit questions from TUI.
Terminal UI for leetcode. Lets you browse questions through different topics. View, solve, run and submit questions from TUI.

Leetcode TUI Use Leetcode in your terminal. Why this TUI: My motivation for creating leetcode-tui stemmed from my preference for tools that are lightw

zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets you're watching easily into watchlists for easy access on your terminal.
zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets you're watching easily into watchlists for easy access on your terminal.

zigfi zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets

๐Ÿ” quickly search with your favorite websites straight from the terminal

gg Search with your favorite websites straight from the terminal! gg-example.mp4 Configure gg To add more websites, just edit the ~/.gg.toml or %APP_D

A simple CLI I made while practicing rust to easily make QR codes with just one command, all in your terminal.
A simple CLI I made while practicing rust to easily make QR codes with just one command, all in your terminal.

Welcome to rust-qrcode-cli ๐Ÿ‘‹ A CLI I made while practicing rust to easily make QR codes with just one command, all in your terminal. Install git clon

Rust crate that allows you to display status & progress information in a terminal

status-line This crate allows you to display status & progress information in a terminal This crate handles the problem of displaying a small amount o

Rust Crate that allows to do interruptions in console. Will be implemented to functional terminal customization kit.

termpause Rust Crate that allows to do interruptions in console. Will be implemented to functional terminal customization kit. Usage Add this in your

simple but convenient CLI-based Nostr client app for following users and sending DMs

nostr-commander-rs TLDR: simple but convenient CLI-based Nostr client app for publishing, sending DMs, as well as following users and channels nostr-c

Safer Nostr is a service that helps protect users by loading sensitive information (IP leak) and using AI to prevent inappropriate images from being uploaded.

Safer Nostr is a service that helps protect users by loading sensitive information (IP leak) and using AI to prevent inappropriate images from being uploaded. It also offers image optimization and storage options. It has configurable privacy and storage settings, as well as custom cache expiration.

Comments
  • Compiling this package, produces warnings

    Compiling this package, produces warnings

    warning: unreachable expression
       --> src/ui.rs:120:9
        |
    100 | /         loop {
    101 | |             if let Ok(_) = self.stdin.read(&mut bytes_buffer) {
    102 | |                 match bytes_buffer[0] {
    103 | |                     10 => self.act_on_selection(&mut func)?,
    ...   |
    117 | |             bytes_buffer = [0; 3]
    118 | |         }
        | |_________- any code following this expression is unreachable
    119 |
    120 |           Ok(())
        |           ^^^^^^ unreachable expression
        |
        = note: `#[warn(unreachable_code)]` on by default
    
    warning: unused `Result` that must be used
      --> src/main.rs:79:5
       |
    79 | /     list.event_loop( move |selection: &str| -> Result<(), ui::Error> {
    80 | |         if false { return Err(ui::Error::CmdError) }
    81 | |
    82 | |         let new_scheme = match color_schemes.get_scheme(&selection) {
    ...  |
    90 | |         Ok(())
    91 | |     });
       | |_______^
       |
       = note: `#[warn(unused_must_use)]` on by default
       = note: this `Result` may be an `Err` variant, which should be handled
    
    warning: unused `Result` that must be used
      --> src/main.rs:88:9
       |
    88 |         alacritty_conf.apply_scheme();
       |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       |
       = note: this `Result` may be an `Err` variant, which should be handled
    
    warning: unused `Result` that must be used
       --> src/main.rs:100:5
        |
    100 |     alacritty_conf.apply_scheme();
        |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        |
        = note: this `Result` may be an `Err` variant, which should be handled
    
    warning: `alac-pretty` (bin "alac-pretty") generated 4 warnings
    
    opened by axkirillov 1
  • Panics despite config being in $HOME/.alacritty.yml

    Panics despite config being in $HOME/.alacritty.yml

    thread '<unnamed>' panicked at 'Ensure your config and/or colorschemes are at one of the following: $XDG_CONFIG_HOME/alacritty/alacritty.yml
    $XDG_CONFIG_HOME/alacritty.yml
    $HOME/.config/alacritty/alacritty.yml
    $HOME/.alacritty.yml
    $XDG_CONFIG_HOME/alacritty/alacritty_color_schemes.yml
    $XDG_CONFIG_HOME/alacritty_color_schemes.yml
    $HOME/.config/alacritty/alacritty_color_schemes.yml
    $HOME/.alacritty_color_schemes.yml
    ', src/main.rs:59:19
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    
    opened by axkirillov 1
Owner
Benji Nguyen
Guitarist | Programmer | Metalhead | Horror Geek | Weeb
Benji Nguyen
tmplt is a command-line interface tool that allows you to quickly and easily set up project templates for various programming languages and frameworks

tmplt A User Friendly CLI Tool For Creating New Projects With Templates About tmplt is a command-line tool that lets users quickly create new projects

Humble Penguin 35 Apr 8, 2023
FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config.

Connect quickly to your services ?? FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config. Instal

Julien 85 Dec 14, 2022
Termite - Termite is obsoleted by Alacritty

Termite was a keyboard-centric VTE-based terminal, aimed at use within a window manager with tiling and/or tabbing support.

Daniel Micay 2.8k Dec 29, 2022
An interactive Bayesian Probability Calculator CLI that guides users through updating beliefs based on new evidence.

Bayesian Probability Calculator CLI Welcome to the Bayesian Probability Calculator CLI! This command-line tool is designed to help you update your bel

Ben Greenberg 4 Apr 25, 2023
A standalone code editor with syntax highlighting and themes.

CodeEditor A standalone code (and text) editor for people like me who write their own user interfaces utilizing crates like pixels. CodeEditor renders

Markus Moenig 8 Nov 25, 2022
Convert your favorite images and wallpapers with your favorite color palettes/themes

dipc doprz' image palette converter Convert your favorite images and wallpapers with your favorite color palettes/themes Color Palettes/Themes catppuc

null 50 Apr 26, 2023
A cli util to apply themes to hyprland

Hyprtheme works with themes installed at ~/.config/hypr/themes additional themes can be installed from hyprland-community/theme-repo theme.toml this f

Hyprland Community 4 Jan 15, 2023
`rusty_regex` takes an input string and produces a `regex` string representing what was provided.

rusty_regex This project provides a binary that takes an input string, and preps it for regex usage, effectively replacing known generics and producin

Chris Speakes 2 Dec 31, 2022
Ergonomic and precise error handling provided by error sets. Inspired by Zig's error set type.

Error Set Error Set simplifies error management by providing a streamlined method for defining errors and easily converting between them. Resultingly,

Henry 61 Jul 24, 2024
Jumpy is a tool that allows to quickly jump to one of the directory you've visited in the past

Jumpy Jumpy is a tool that allows to quickly jump to one of the directory you've visited in the past. It is heavily inspired by Zoxide but is more lig

Clรฉment Nerma 2 Oct 3, 2022