⌨ Toward a more useful keyboard

Overview

Toward a more useful keyboard

Steve Losh's Modern Space Cadet is an inspiration. It opened my eyes to the fact that there's a more useful keyboard hidden inside the vanilla QWERTY package that most of us have tolerated for all these years. This repo represents my nascent quest to unleash that more useful keyboard.

At first, this might sound no different than the typical Emacs/Vim/<Every-Other-Editor> tweakfest. But it is. I'm not talking about honing my editor-of-choice. I'm not talking about pimping out my shell. I want a more useful keyboard everywhere. Whether I'm in my editor, in the terminal, in the browser, or in Keynote, I want a more useful keyboard.

And ideally, I want the same (more useful) keyboard in every app. Ubiquitous keyboarding. Muscle memory. Don't make me think.

How do I go to the beginning of the line in this app? The same way I go to the beginning of the line in every app! Don't make me think.

How do I go to the top of the file/screen/page in this app? The same way I... Well, you get the point.

More useful (for me)

cus·tom·ize (verb): to modify or build according to individual or personal specifications or preference [dictionary.com]

Any customization is, by definition, personal. While I find that these customizations yield a more-useful keyboard for me, they might not feel like a win for you.

Features

A more useful caps lock key

By repurposing the anachronistic caps lock key, we can make control and escape accessible via the home row.

  • Tap caps lock for escape
  • Hold caps lock for control

📣 Shout-out to @arbelt and @jasoncodes for the implementation. ⚡️ 🍻 🌟

(S)uper (D)uper Mode

To activate, push the s and d keys simultaneously and hold them down. Now you're in (S)uper (D)uper Mode. It's like a secret keyboard inside your keyboard. (Whoa.) It's optimized for keeping you on the home row, or very close to it. Now you can:

  • Use h / j / k / l for left/down/up/right respectively
  • Use a for option (AKA alt)
  • Use f for command
  • Use space for shift
  • Use a + j / k for page down / page up
  • Use i / o to move to the previous/next tab
  • Use u / p to go to the first/last tab (in most apps)
  • Use a + h / l to move to previous/next word (in most apps)

(S)uper (D)uper Mode Keybindings

📣 Shout-out to Karabiner's Simultaneous vi Mode for providing the inspiration for (S)uper (D)uper Mode. :neckbeard:

Window Layout Mode

Quickly arrange and resize windows in common configurations, using keyboard shortcuts that are on or near the home row. (Or, feel free to choose your own keyboard shortcuts.)

Default keybindings

Use control + s to turn on Window Layout Mode. Then, use any shortcut below to make windows do your bidding. For example, to send the window left, hit control + s, and then hit h.

  • Use h to send window left (left half of screen)
  • Use j to send window down (bottom half of screen)
  • Use k to send window up (top half of screen)
  • Use l to send window right (right half of screen)
  • Use shift + h to send window to left 40% of screen
  • Use shift + l to send window to right 60% of screen
  • Use i to send window to upper left quarter of screen
  • Use o to send window to upper right quarter of screen
  • Use , to send window to lower left quarter of screen
  • Use . to send window to lower right quarter of screen
  • Use space to send window to center of screen
  • Use enter to resize window to fill the screen
  • Use n to send window to the next monitor
  • Use to send window to the monitor on the left (if there is one)
  • Use to send window to the monitor on the right (if there is one)
  • Use control + s to exit Window Layout Mode without moving any windows

Window Layout Mode Keybindings (1) Window Layout Mode Keybindings (2)

Choose your own keybindings

Window Layout Mode ships with the default keybindings above, but you're welcome to personalize this setup. See hammerspoon/windows-bindings-defaults.lua for instructions on configuring shortcuts to your personal taste.

Markdown Mode

Perform common Markdown-formatting tasks anywhere that you're editing text (e.g., in a GitHub comment, in your editor, in your email client).

Use control + m to turn on Markdown Mode. Then, use any shortcut below to perform an action. For example, to format the selected text as bold in Markdown, hit control + m, and then b.

  • Use b to wrap the currently-selected text in double asterisks ("B" for "Bold")

    Example: **selection**

  • Use c to wrap the currently-selected text in backticks ("C" for "Code")

    Example: `selection`

  • Use i to wrap the currently-selected text in single asterisks ("I" for "Italic")

    Example: *selection*

  • Use s to wrap the currently-selected text in double tildes ("S" for "Strikethrough")

    Example: ~~selection~~

  • Use l to convert the currently-selected text to an inline link, using a URL from the clipboard ("L" for "Link")

    Example: [selection](clipboard)

  • Use control + m to exit Markdown Mode without performing any actions

Hyper key for quickly launching apps

macOS doesn't have a native hyper key. But thanks to Karabiner-Elements, we can create our own. In this setup, we'll use the right option key as our hyper key.

With a new modifier key defined, we open a whole world of possibilities. I find it especially useful for providing global shortcuts for launching apps.

Choose your own apps

Hyper Mode ships with the default keybindings below, but you'll likely want to personalize this setup. See hammerspoon/hyper-apps-defaults.lua for instructions on configuring shortcuts to launch your most commonly-used apps.

Default app keybindings

  • hyper + a to open iTunes ("A" for "Apple Music")
  • hyper + b to open Google Chrome ("B" for "Browser")
  • hyper + c to open Slack ("C for "Chat")
  • hyper + d to open Remember The Milk ("D" for "Do!" ... or "Done!")
  • hyper + e to open Atom ("E" for "Editor")
  • hyper + f to open Finder ("F" for "Finder")
  • hyper + g to open Mailplane ("G" for "Gmail")
  • hyper + s to open Slack ("S" for "Slack")
  • hyper + t to open iTerm2 ("T" for "Terminal")

Miscellaneous goodness

  • Use control + - (dash) to split iTerm2 panes horizontally
  • Use control + | (pipe) split iTerm2 panes vertically
  • Use control + h / j / k / l to move left/down/up/right by one pane in iTerm2
  • Use control + u to delete to the start of the line
  • Use control + ; to delete to the end of the line
  • Use option + h / l to delete the previous/next word

Dependencies

This setup is honed and tested with the following dependencies.

Installation

  1. Grab the bits

    git clone https://github.com/jasonrudolph/keyboard.git ~/.keyboard
    
    cd ~/.keyboard
    
    script/setup
  2. Enable accessibility to allow Hammerspoon to do its thing [screenshot]

  3. You'll be prompted to allow Karabiner-Elements to load its kernel extension, followed by a flurry of prompts related to input monitoring. Follow the prompts to upgrade your life.

Comments
  • macOS Sierra Support

    macOS Sierra Support

    This setup has historically relied heavily on Karabiner. According to the Karabiner site:

    Karabiner does not work on macOS Sierra at the moment.

    We are developing Karabiner-Elements which provides simple key modification for macOS Sierra at first. (Karabiner-Elements works well on macOS Sierra. We are working on fixing several remaining issues.)

    We'll start updating for the full featured Karabiner for Sierra after Karabiner-Elements is completed.

    I have high hopes for all a full-featured Karabiner coming to Sierra 🤞, but in the meantime, I'd :heart: to have as much of this setup working on Sierra as possible.

    This branch represents a work-in-progress attempt to port the majority of this repository's pre-Sierra functionality to Sierra. Presently, the tools available on Sierra lack the power and flexibility available in Karabiner. Given those limitations, porting the previous functionality to Sierra will likely involve compromises. It's unlikely to be an exact port.

    TODO

    • [x] A more useful caps lock
      • [x] Tap caps lock for escape
      • [x] Hold caps lock for control
    • [x] Enable navigation via the home row (See README 📝)
      • [x] Left/down/up/right
      • [x] Previous/next word
        • [x] In most apps
        • [x] In iTerm2
      • [x] Start/end of line
      • [x] Page down/up
      • [x] Select while navigating
      • [x] Delete previous/next word
      • [x] Delete to start/end of line
    • [x] Enable other commonly-used actions on or near the home row (See README 📝)
      • [x] Previous/next tab
      • [x] First/last tab
      • [x] Split panes horizontally/vertically in iTerm2
      • [x] Move left/up/down/right by one pane in iTerm2
    • [x] Window management using keyboard shortcuts on or near the home row
      • [x] Send window left (left half of screen) - control + s, h
      • [x] Send window down (bottom half of screen) - control + s, j
      • [x] Send window up (top half of screen) - control + s, k
      • [x] Send window right (right half of screen) - control + s, l
      • [x] Send window to upper left - control + s, i
      • [x] Send window to upper right - control + s, o
      • [x] Send window to lower left - control + s, ,
      • [x] Send window to lower right - control + s, .
      • [x] Send window to center of screen - control + s, space
      • [x] Resize window to fill the screen - control + s, enter
      • [x] Send window to next monitor - control + s, n
    • [x] Hyper key for quickly launching apps
      • [x] Use right option key as hyper key
      • [x] hyper + a to open iTunes ("A" for "Apple Music")
      • [x] hyper + b to open Google Chrome ("B" for "Browser")
      • [x] hyper + c to open Hackable Slack Client ("C for "Chat")
      • [x] hyper + d to open Remember The Milk ("D" for "Do!" ... or "Done!")
      • [x] hyper + e to open Atom Beta ("E" for "Editor")
      • [x] hyper + f to open Finder ("F" for "Finder")
      • [x] hyper + g to open Mailplane 3 ("G" for "Gmail")
      • [x] hyper + t to open iTerm ("T" for "Terminal")
    • [x] Markdown formatting
      • [x] Italics (Wrap the currently-selected text in single asterisks) - control + m, i
      • [x] Bold (Wrap the currently-selected text in double asterisks) - control + m, b
      • [x] Strikethrough (Wrap the currently-selected text in double tildes - control + m, s
      • [x] Inline link (Convert the currently-selected text to an inline link, using a URL from the clipboard) - control + m, l
    • [x] Consider providing visual indicator when in (S)uper (D)uper Mode, WindowLayout Mode, and Markdown Mode
    • [x] Update README
    opened by jasonrudolph 20
  • Add shush-like functionality

    Add shush-like functionality

    This is a work-in-progress and just a proof-of-concept right now.

    I wanted to see if I could copy the functionality of Shush.app with Hammerspoon - turns out it was not that difficult. Basically, you hold a hot key to mute or unmute the mic, and double-tap the hot key to toggle hold-to-mute or hold-to-unmute. It's a super minimal app that just brings push-to-talk to macOS.

    screen shot 2017-01-30 at 4 33 20 pm

    Building out the hotkey functionality is kind of funny in Hammerspoon - from what I could tell you can't use hs.hotKey or hs.hotKey.modal to listen for meta-only keys (like ⌥), so I ended up doing basically the same thing you did in control-escape.lua.

    I got all the way to this point and realized that hs.audiodevice:setMuted(state) doesn't exactly work as advertised. I can see the current device being muted/unmuted in Audio MIDI Setup.app, but it still comes through in all of the applications I tested in.

    screen shot 2017-01-30 at 4 41 00 pm

    It sounds like another option is to set the input volume to 0, but I've read that it doesn't completely mute the input, but just makes it really quiet. I'm going to try that next, but I just wanted to put this here to see if it is something you're interested in (and to see if maybe someone knows why setMuted doesn't actually work 😄).

    opened by adamyonk 11
  • stuck on Tapping caskroom/cask

    stuck on Tapping caskroom/cask

    Hello there, can't wait to adabting this keyboard

    so I followed the insteractions and after running script/setup i'm left out with the following :

    brew bundle can't satisfy your Brewfile's dependencies.
    Satisfy missing dependencies with `brew bundle install`.
    

    when I run brew bundle install it get stuck on

    Tapping caskroom/cask
    Using karabiner-elements
    

    now when I redo script/setup i get

    brew bundle can't satisfy your Brewfile's dependencies.
    Satisfy missing dependencies with `brew bundle install`.
    Tapping caskroom/cask
    Using karabiner-elements
    

    thanks

    opened by Kwask94 9
  • Bug when typing

    Bug when typing "s"/"d" with another character in rapid succession

    Steps to reproduce: Type "s" or "d" followed by another character in rapid succession (< MAX_TIME_BETWEEN_SIMULTANEOUS_KEY_PRESSES), such as se really fast. Instead of inserting se, es is inserted. Running on macOS 10.13.5 with Hammerspoon 0.9.66. This issue has been consistently reproduced with Hammerspoon running, and has been consistently absent with Hammerspoon closed.

    opened by denosawr 9
  • Mac Big Sur - 2 Brewfile dependencies failed to install.

    Mac Big Sur - 2 Brewfile dependencies failed to install.

    I am not sure if this is related to big Sur or not. I am running brew under Rosetta2 otherwise there is no brew with Big Sur yet. I am using the recommended installation and with pre-installed hammerspoon and Karabiner elements brew fails to recognise the installations. If I delete the installations i get the error below, - still fialing to install the dependencies. Is this a Big Sur/Rosetta issue?.

    ❯ script/setup brew bundle can't satisfy your Brewfile's dependencies. Satisfy missing dependencies with brew bundle install. Error: Cask 'karabiner-elements' is unavailable: No Cask with this name exists. Installing karabiner-elements has failed! Error: Cask 'hammerspoon' is unavailable: No Cask with this name exists. Installing hammerspoon has failed! Homebrew Bundle failed! 2 Brewfile dependencies failed to install.

    opened by capnahab 8
  • Can't activate SuperDuper mode while using Russian keyboard

    Can't activate SuperDuper mode while using Russian keyboard

    Problem

    When switching to Russian language, I can't activate SuperDuper mode. At the same time, WindowsLayout and Markdown modes work just fine.

    I use macOS Catalina

    Is there any way to make it working?

    help-wanted 
    opened by aantipov 7
  • Persist 'muted' status message when microphone is muted

    Persist 'muted' status message when microphone is muted

    I often find myself toggling push-to-talk on/off to gain confidence as to which mode I'm in (PTT vs. PTM), whereas this change will leave the "muted" status message on screen when in push-to-talk mode.

    opened by jamesottaway 6
  • ln error during script/setup

    ln error during script/setup

    Running script/setup gives me this error: ln: /Users/harmtemolder/.config//karabiner: Operation not permitted Rewriting line 12 from ln -sfn $PWD/karabiner ~/.config/ to ln -sfn $PWD/karabiner ~/.config fixed this.

    I'm not confident enough around ln to change the file, but happy to do so if you agree that this would improve it.

    opened by harmtemolder 4
  • Hyper issues on German keyboards with @-sign

    Hyper issues on German keyboards with @-sign

    Hey Jason,

    thank you for this awesome repo but I have a small problem with the 'Hyper' key. On the German Keyboard the 'right option' + lowercase 'L' writes the @-sign. Is it possible to remap that to 'Hyper' + lowercase 'L' ? I looked at the 'hyper.lua' file and it looks like I can only open apps or execute functions. I am not familiar with Lua so I was wondering what I would have to do to just send one symbol.

    Best, Chris

    opened by chbroecker 4
  • Super Duper mode

    Super Duper mode "space to select" is not working with "h" key

    When I'm pressing (s)+(d) and holding (space) to select text, it only works when moving forward (pressing (l) key) and not when moving backwards (pressing (h). So that means I cannot select the text that is before the cursor.

    So to sum up, the key combination (s)+(d)+(space)+(h) is not working for me

    opened by garrofederico 3
  • Windows bindings stopped working when I upgraded to Big Sur 11.5.1

    Windows bindings stopped working when I upgraded to Big Sur 11.5.1

    Last night I upgraded from Big Sur 11.5 (Intel) to Big Sur 11.5.1. This morning I realized that most of my windows bindings weren't working. (I.E. ctrl-s + h)

    All of the alpha bindings no longer work. The symbol bindings (,, ., space, return, etc.) still appear to be working.

    I realized that my versions of Hammerspoon, Karabiner-Elements, and keyboard were all of out date. I spent a bit of time upgrading everything. When that didn't fix it, I removed my configuration and all of the apps and reinstalled from a fresh copy of keyboard.

    Now with a fresh copy of everything, nothing has changed. Since I just upgraded to Big Sur 11.5.1 last night, something must have changed with macOS.

    Any ideas?

    opened by kgust 3
  • Install error

    Install error

    Dear Jason,

    I've been trying to install your keyboard on my Mac but when the bits are copied to the terminal the following error pops up:

    fatal: destination path '/Users/cyril/.keyboard' already exists and is not an empty directory. Homebrew is required: http://brew.sh/

    Does this mean the keyboard is already installed? If so I would like to know if there are any additional steps to the installation because I am not able to use it's features presently.

    Thanks Cyril

    opened by cyrilgmathew 1
  • Period -

    Period - "." stops working after sometime

    When I load the Hammerspoon config (which loads this keyboard), for sometime the period character "." works as expected. Every key press of "." inserts the "." character.

    Since the period is not remapped in any of the customized shortcuts, this is as expected.

    However, after a while, consistently, I see that pressing the period key does not insert the period. Instead, the only way to insert a period is to consecutively press period twice (within a short time).

    In order to insert every "." in this issue description, I had to press "." twice quickly to print it to the screen.


    Now as I'm typing this, I'm reloading the Hammerspoon config. And all periods after this point was inserted with a single key press of "." .... -> each period corresponds to a single press now, after reloading the config.

    This is an interesting issue. Any idea why this might be happening.

    opened by novicebaba 4
  • Cannot access command(f) in Super Duper Mode

    Cannot access command(f) in Super Duper Mode

    Hi, I recently starting using this set of code, but when I am in super-duper mode, I cannot hit f to go to command, as when I try things like cmd-z or cmd-c, nothing happens. Can someone tell me if I am doing anything wrong?

    opened by rockwoodfrank 6
Releases(v6.0.0)
  • v6.0.0(Oct 10, 2020)

    Hammerspoon 0.9.80 introduced a breaking API change related to window management (https://github.com/Hammerspoon/hammerspoon/issues/2517, jasonrudolph/keyboard#72). Since Hammerspoon regularly prompts users to upgrade, anyone who upgraded to the newer version of Hammerspoon was then unable to use Window Layout Mode in jasonrudolph/keyboard v5.0.0 and earlier.

    To be compatible with Hammerspoon 0.9.80 and up, this release updates to the new API, but this change is incompatible with older versions of Hammerspoon (0.9.79 and earlier).

    To upgrade to this release, upgrade to Hammerspoon 0.9.81 and then update your local checkout of jasonrudolph/keyboard:

    $ cd ~/keyboard
    
    $ git fetch
    
    $ git checkout v6.0.0
    

    Shout-out to @landongrindheim for the fix! (https://github.com/jasonrudolph/keyboard/pull/73) :zap:

    Source code(tar.gz)
    Source code(zip)
  • v5.0.0(Jul 22, 2018)

    To overcome an issue with Karabiner-Elements where keys would seemingly get stuck and start repeating at unexpected times, jasonrudolph/keyboard v4.0.0 removed the dependency on Karabiner-Elements and implemented Hyper Mode via Hammerspoon.

    Due to differences in the abilities of Karabiner-Elements and Hammerspoon, implementing Hyper Mode via Hammerspoon required a slight reduction in the ease of activating Hyper Mode. That slightly degraded user experience was a reasonable compromise to overcome the bug in Karabiner-Elements, but now that the Karabiner-Elements bug is resolved, jasonrudolph/keyboard v5.0.0 restores Hyper Mode's previous (faster, more pleasant) user experience. :sweat_smile:

    For full details on Hyper Mode and its usage, check out the README.

    Upgrading

    1. Install the latest bits
      cd <path-to-your-local-copy-of-this-repository>
      
      git pull
      
      script/setup
      
    2. Restart Hammerspoon
    3. You may be prompted to allow Karabiner-Elements to load its kernel extension. If so, follow the prompts to upgrade your life:
      1. Click "Open System Preferences" [screenshot]
      2. Click "Allow" [screenshot]

    Changelog

    • #43 Restore use of Karabiner-Elements for more convenient Hyper Key
    Source code(tar.gz)
    Source code(zip)
  • v4.0.0(Jun 22, 2018)

    To overcome an issue with Karabiner-Elements, this release removes the dependency on Karabiner-Elements and doubles down on Hammerspoon.

    As a result of this change, Hyper Mode is now triggered by tapping the option key.

    Upgrading

    1. Grab the latest bits
      cd <path-to-your-local-copy-of-this-repository>
      
      git pull
      
    2. Uninstall Karabiner-Elements
    3. Restart your Mac
    4. [OPTIONAL] Remap your caps lock key to control: Open System Preferences, navigate to Keyboard > Modifier Keys, and set the caps lock key to control [screenshot]

    Changelog

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Jun 3, 2017)

    Changelog

    • #11 Add script/setup to automate installation -- :zap: @bkeepers
    • #12 Support native modifier keys in (S)uper (D)uper mode -- :zap: @raineorshine
    • #13 + #21 Provide universal push-to-talk/push-to-mute hotkey using the fn key -- :zap: @adamyonk
    • #16 In Markdown Mode, use c to format the selected text as code -- :zap: @jnunemaker
    • #20 In Window Layout Mode, use / to send window to the monitor on the left/right -- :zap: @sonnius
    • #21 Make it easier to use jasonrudolph/keyboard in combination with other Hammerspoon customizations

    Upgrading

    To account for the changes in #21, you'll need to remove your existing ~/.hammerspoon symlink before upgrading to this version. The following steps should do the trick:

    rm ~/.hammerspoon
    
    cd <path-to-your-local-copy-of-this-repository>
    
    git pull
    
    ./script/setup
    
    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Jan 28, 2017)

  • v1.0.0(Jan 28, 2017)

    ✅ El Capitan (10.11), Yosemite (10.10), and Mavericks (10.9)

    This release is suitable for use on OS X El Capitan (10.11), and it probably works on OS X Yosemite (10.10) and OS X Mavericks (10.9) as well. This release depends on:

    ❌ Not compatible with Sierra (10.12)

    This release is not compatible with macOS Sierra (10.12). According to the Karabiner site as of January 2017:

    Karabiner does not work on macOS Sierra at the moment.

    We are developing Karabiner-Elements which provides simple key modification for macOS Sierra at first. ... We'll start updating for the full featured Karabiner for Sierra after Karabiner-Elements is completed.

    https://github.com/tekezo/Karabiner/issues/660#issuecomment-226942420 provides additional context on the breaking changes in macOS Sierra:

    macOS 10.12 changes of the generic keyboard and mouse drivers made a great impact on Karabiner and Seil. We should make a large changes in Karabiner and Seil architecture. There is not a workaround for this issue.

    Please wait an update of Karabiner and Seil for macOS 10.12. (It may take a long time.)

    For Sierra support, see v2.0.0, which removes the dependency on Karabiner and Seil, and instead depends on Karabiner-Elements and Hammerspoon.

    Source code(tar.gz)
    Source code(zip)
Owner
Jason Rudolph
Creator of @buildpulse. Previously: Staff Engineer at @GitHub, Partner at @Relevance.
Jason Rudolph
A command-line tool to flash python code to Codey Rocky without having to use the online mblock5 IDE.

What? A command-line tool to flash python code to Codey Rocky without having to use the online mblock5 IDE. Description This is a very low-effort proj

1 Dec 29, 2021
Zero-config CLI for TypeScript package development

Despite all the recent hype, setting up a new TypeScript (x React) library can be tough. Between Rollup, Jest, tsconfig, Yarn resolutions, ESLint, and

Jared Palmer 10.5k Jan 08, 2023
A command line utility to export Google Keep notes to markdown.

Keep-Exporter A command line utility to export Google Keep notes to markdown files with metadata stored as a frontmatter header. Supports exporting: S

Nathan Beals 85 Dec 17, 2022
gcptree - Like the unix tree command but for GCP Org Heirarchy

gcptree Like the unix tree command but for GCP Org Heirarchy. For a note on coloring, the org node is green, folders and blue, and projects that are n

Ryan Canty 25 Sep 06, 2022
A simple command line tool for changing the icons of folders or files on MacOS.

Mac OS File Icon Changer Description A small and simple script to quickly change large amounts or a few files and folders icons to easily customize th

Eroxl 3 Jan 02, 2023
LSD (Linux Spotify Downloader) is a command line tool for downloading or rather recording content on Spotify.

LSD (Linux Spotify Downloader) is a command line tool for downloading or rather recording content on Spotify.

Jannis Zahn 7 Jun 21, 2022
A Hikari command handler for people who love ducks.

A Hikari command handler for people who love ducks.

Jeremiah 2 Oct 09, 2022
Simple command line tool for text to image generation using OpenAI's CLIP and Siren (Implicit neural representation network)

Simple command line tool for text to image generation using OpenAI's CLIP and Siren (Implicit neural representation network)

Phil Wang 4.4k Jan 09, 2023
ghfetch is ai customizable CLI GitHub personal README generator.

ghfetch is ai customizable CLI GitHub personal README generator. Inspired by famous fetch such as screenfetch, neofetch and ufetch, the purpose of this tool is to introduce yourself as if you were a

Alessio Celentano 3 Sep 10, 2021
Enriches Click with option groups, constraints, command aliases, help sections for subcommands, themes for --help and other stuff.

Enriches Click with option groups, constraints, command aliases, help sections for subcommands, themes for --help and other stuff.

Gianluca Gippetto 62 Dec 22, 2022
Automated CI toolchain to produce precompiled opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless packages.

OpenCV on Wheels Pre-built CPU-only OpenCV packages for Python. Check the manual build section if you wish to compile the bindings from source to enab

OpenCV 3.2k Jan 04, 2023
py-image-dedup is a tool to sort out or remove duplicates within a photo library

py-image-dedup is a tool to sort out or remove duplicates within a photo library. Unlike most other solutions, py-image-dedup intentionally uses an approximate image comparison to also detect duplica

Markus Ressel 96 Jan 02, 2023
A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.

mycli A command line client for MySQL that can do auto-completion and syntax highlighting. HomePage: http://mycli.net Documentation: http://mycli.net/

dbcli 10.7k Jan 07, 2023
Autosub - Command-line utility for auto-generating subtitles for any video file

Auto-generated subtitles for any video Autosub is a utility for automatic speech recognition and subtitle generation. It takes a video or an a

Anastasis Germanidis 3.9k Jan 05, 2023
Textual: a TUI (Text User Interface) framework for Python inspired by modern web development

Textual Textual is a TUI (Text User Interface) framework for Python inspired by

17.1k Jan 04, 2023
Command Line Manager + Interactive Shell for Python Projects

Manage Command Line Manager + Interactive Shell for Python Projects

Python Manage 123 Aug 28, 2022
Color preview command-line tool written in python

Color preview command-line tool written in python

Arnau 1 Dec 27, 2021
A project designed to make taking notes easier than ever - by doing it all on command line

A project designed to make taking notes easier than ever - by doing it all on command line! Yes, all of your files are easily accessible through one command interface, and can be written to at any ti

1 Dec 10, 2021
Hack-All is a simple CLI tool that helps ethical-hackers to make a reverse connection without knowing the target device in use is it computer or phone

Hack-All is a simple CLI tool that helps ethical-hackers to make a reverse connection without knowing the target device in use is it computer

LightYagami17 5 Nov 22, 2022
Tncli - TON smart contract command line interface

Tncli TON smart contract command line interface State Not working, in active dev

Disintar IO 100 Dec 18, 2022