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...
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.

kwctl is the go-to CLI tool for Kubewarden users.

kwctl kwctl is the go-to CLI tool for Kubewarden users. Think of it as the docker CLI tool if you were working with containers. How does kwctl help me

A Rust CLI tool that helps you enforce Git policies through Git hooks both server and client side

GitPolicyEnforcer This is a command line utility written in Rust, that helps you utilize Git hooks, to enforce various policies. It currently supports

Voila is a domain-specific language launched through CLI tool for operating with files and directories in massive amounts in a fast & reliable way.

Voila is a domain-specific language designed for doing complex operations to folders & files. It is based on a CLI tool, although you can write your V

This utility traverses through your filesystem looking for open-source dependencies that are seeking donations by parsing README.md and FUNDING.yml files
This utility traverses through your filesystem looking for open-source dependencies that are seeking donations by parsing README.md and FUNDING.yml files

This utility traverses through your filesystem looking for open-source dependencies that are seeking donations by parsing README.md and FUNDING.yml files

fas stand for Find all stuff and it's a go app that simplify the find command and allow you to easily search everything you nedd
fas stand for Find all stuff and it's a go app that simplify the find command and allow you to easily search everything you nedd

fas fas stands for Find all stuff and it's a rust app that simplify the find command and allow you to easily search everything you need. Note: current

TMM is a Linux native game modding tool. it allows to install and depoly mods for Linux native and wine games.

Tux Mod Manager TMM is a Linux native mod manager made with the Tauri toolkit. It can install, load, remove and deploy mods for both Linux native and

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
Alacritty - A fast, cross-platform, OpenGL terminal emulator

Alacritty is a modern terminal emulator that comes with sensible defaults, but allows for extensive configuration. By integrating with other applications, rather than reimplementing their functionality, it manages to provide a flexible set of features with high performance. The supported platforms currently consist of BSD, Linux, macOS and Windows.

Alacritty 43.8k Dec 31, 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
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
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
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
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

Aldrin Zigmund Cortez Velasco 18 Oct 24, 2022
🔍 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

Vedant Nandwana 4 Dec 31, 2022
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

Dhravya Shah 2 Mar 2, 2022
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

Piotr Kołaczkowski 20 Dec 27, 2022