komorebi configuration and keyboard shortcut handler.

Overview

komorebik

A configuration and keyboard shortcut handler for komorebi.

How to Use

You can build from source using cargo build --release.

A better solution will be provided for starting komorebik in the background. I've just been launching komorebik.exe using PowerShell.

Start-Process komorebik.exe -WindowStyle hidden

This assumes that komorebik currently resides somewhere in PATH.

Configuration

komorebik's configuration is located at ~/.config/komorebik.toml.

The configuration executes as soon as komorebik has started. In order for changes to take effect you must restart the application.

A sample has been provided in examples/, it is heavily based off of the komorebi.generated.ahk script.

Keys

Currently, the modifier keys are CONTROL+ALT as it has the least amount of conflicting usage but should be configurable in the future.

Keys are structured using komorebi's socket schema and should be explained more in the future.

[keys]
left = { type = "MoveWindow", content = "Left" }
right = { type = "MoveWindow", content = "Right" }
up = { type = "MoveWindow", content = "Up" }
down = { type = "MoveWindow", content = "Down" }
k = { type = "ResizeWindowAxis", content = ["Vertical", "Decrease"] }
i = { type = "ResizeWindowAxis", content = ["Vertical", "Increase"] }
j = { type = "ResizeWindowAxis", content = ["Horizontal", "Decrease"] }
l = { type = "ResizeWindowAxis", content = ["Horizontal", "Increase"] }

Key names are determined here. Unless explicitly renamed, write the name in "lower_snake_case".

Windows

[[window]]
bordered = true      # identify-border-overflow-application
floating = true      # float-rule
layered = true       # identify-layered-application
managed = true       # manage-rule
name_change = true   # identify-object-name-change-application
tray = true          # identify-tray-application
[[window.rule]]
type = "class"
name = "SampleWindowClass"
[[window.rule]]
type = "exe"
name = "sample.exe"
[[window.rule]]
type = "title"
name = "Sample Title"
You might also like...
Markdown LSP server for easy note-taking with cross-references and diagnostics.
Markdown LSP server for easy note-taking with cross-references and diagnostics.

Zeta Note is a language server that helps you write and manage notes. The primary focus is to support Zettelkasten-like1, 2 note taking by providing an easy way to cross-reference notes (see more about features below).

Volt - A powerful, fast and memory safe package manager for the web
Volt - A powerful, fast and memory safe package manager for the web

Volt - A powerful, fast and memory safe package manager for the web

Thruster - An fast and intuitive rust web framework

A fast, middleware based, web framework written in Rust

A full-featured and easy-to-use web framework with the Rust programming language.

Poem Framework A program is like a poem, you cannot write a poem without writing it. --- Dijkstra A full-featured and easy-to-use web framework with t

Seed is a Rust front-end framework for creating fast and reliable web apps with an Elm-like architecture.
Seed is a Rust front-end framework for creating fast and reliable web apps with an Elm-like architecture.

Seed is a Rust front-end framework for creating fast and reliable web apps with an Elm-like architecture.

Murasaki is a Fast, Secure, and Reliable Webkit based web browser.
Murasaki is a Fast, Secure, and Reliable Webkit based web browser.

Murasaki is a Fast, Secure, and Reliable Webkit based web browser. Table of Contents Goals Status Usage License Goals Security: Be secure, and not com

example of a full stack web app (backend and frontend) wrtiten in Rust

rust-fullstack-example An example of creating a full stack web application (backend and frontend) using Rust. Backend Go to ./backend and start the se

☁ file.AsyncWrite - because THEY wont do it!!!!!! and its in RUST

☁ gm_async_write Simple module that adds file.AsyncWrite and file.AsyncAppend to Garry's Mod. These functions are mostly based off file.AsyncRead and

A minimal and flexible blog generator based on GitHub Gists.
A minimal and flexible blog generator based on GitHub Gists.

gisture Utilizing GitHub Gists as a Blogging Platform A minimal and flexible blog generator based on GitHub Gists with SEO, Templating, Syntax Highlig

Comments
  • App-specific config generation

    App-specific config generation

    Somebody shared this project in the komorebi community Discord server yesterday and I just wanted to drop a line to share how great I think this project is!

    It would be nice to have a komorebik config generation target which could consume the application-specific-configuration fixes to make it even easier for people to get up and running with komorebik as an alternative to AutoHotKey.

    opened by LGUG2Z 7
  • Initial configuration options

    Initial configuration options

    Only container and workspace padding are supported as options for the initial configuration. We could just allow a list of messages that should always be executed when komorebik is ran, which should solve most use cases.

    enhancement 
    opened by gladiator 1
  • Submit messages using socket schema

    Submit messages using socket schema

    We're just launching a komorebic child process with the desired message translated into arguments. We should be using the supported socket schema and connecting with komorebi over a pipe.

    enhancement 
    opened by gladiator 1
  • Unconfigurable messages

    Unconfigurable messages

    Currently, things aren't very awesome. Many possible messages are simply left out because there's no possible way to handle them in a configurable sense because they're processed in a very "simple" way.

    Currently, a key's actions are identified by a Message type, which describes an action for komorebic in an extremely simple sense, by packing all of komorebi's messages into the discriminant. This can be seen understood by looking at:

    https://github.com/gladiator/komorebik/blob/2e4e8c6fcb628eab8b83e42d45eb85ec3ffc6a20/src/message.rs#L15-L22

    as opposed to:

    https://github.com/LGUG2Z/komorebi/blob/master/komorebi-core/src/lib.rs#L39

    This puts some severe restrictions on how configurable a key can be. Clearly, some changes to the configuration must be done so that we can just embed komorebi's SocketMessage instead of creating our own messages.

    enhancement 
    opened by gladiator 1
Owner
Daniel E
I do some C++, Java, Rust, and reverse engineering for fun.
Daniel E
A Google-like web search engine that provides the user with the most relevant websites in accordance to his/her query, using crawled and indexed textual data and PageRank.

Mini Google Course project for the Architecture of Computer Systems course. Overview: Architecture: We are working on multiple components of the web c

Max 11 Aug 10, 2022
Ergonomic and modular web framework built with Tokio, Tower, and Hyper

axum axum is a web application framework that focuses on ergonomics and modularity. More information about this crate can be found in the crate docume

Tokio 7.9k Dec 31, 2022
Proxies all incoming connections to a minecraft server of your choosing, while also logging all ping and login requests to a json file and discord webhook.

minecraft-honeypot Proxies all incoming connections to a minecraft server of your choosing, while also logging all ping and login requests to a json f

Cleo 19 Jan 4, 2023
A simple authentication flow using Rust and Actix-web, with a PostgreSQL database and a sveltekit frontend.

Rust-auth-example This repository aims to represent a simple authentication flow using Rust and Actix-web, with a PostgreSQL database and a sveltekit

Kival Mahadew 4 Feb 19, 2023
A secure and efficient gateway for interacting with OpenAI's API, featuring load balancing, user request handling without individual API keys, and global access control.

OpenAI Hub OpenAI Hub is a comprehensive and robust tool designed to streamline and enhance your interaction with OpenAI's API. It features an innovat

Akase Cho 30 Jun 16, 2023
Rust Macro which loads files into the rust binary at compile time during release and loads the file from the fs during dev.

Rust Embed Rust Custom Derive Macro which loads files into the rust binary at compile time during release and loads the file from the fs during dev. Y

Peter 1k Jan 5, 2023
Sōzu HTTP reverse proxy, configurable at runtime, fast and safe, built in Rust. It is awesome! Ping us on gitter to know more

Sōzu · Sōzu is a lightweight, fast, always-up reverse proxy server. Why use Sōzu? Hot configurable: Sozu can receive configuration changes at runtime

sōzu 2k Dec 30, 2022
A html document syntax and operation library written in Rust, use APIs similar to jQuery.

Visdom A server-side html document syntax and operation library written in Rust, it uses apis similar to jQuery, left off the parts thoes only worked

轩子 80 Dec 21, 2022
Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

Actix 16.2k Jan 2, 2023
A rust web framework with safety and speed in mind.

darpi A web api framework with speed and safety in mind. One of the big goals is to catch all errors at compile time, if possible. The framework uses

null 32 Apr 11, 2022