kencx / keyb Goto Github PK
View Code? Open in Web Editor NEWCreate and view custom hotkey cheatsheets in the terminal
License: MIT License
Create and view custom hotkey cheatsheets in the terminal
License: MIT License
xdotool can simulate keystrokes from stdin.
Although untested, perhaps keyb could start in a special mode where any selection could be piped into xdotool to simulate the keystroke:
$ keyb --xdotool | xdotool key
like how fzf
is often used.
I test keyboarders since a week and this is certainly a great tool event in its first stages.
I'm on macos with no declared XGD variables and as a result, after installation the source file to add keybindings is at the following directory : $HOME/Library/Application Support/keyb/keyb.yml
I have two questions :
Thanks for the excellent work keyb has already its own keybinding to open it in a tmux popup and send the "/" key to query for a keybinding
go build -go build -ldflags "-s -w -X main.version=v0.3.0-7-g1a92895" -o keyb
go build: when using gccgo toolchain, please pass linker flags using -gccgoflags, not -ldflags
# github.com/rivo/uniseg
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:137:20: error: expected ‘(’
137 | func propertySearch[E interface{ [3]int | [4]int }](dictionary []E, r rune) (result E) {
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:137:23: error: expected ‘]’
137 | func propertySearch[E interface{ [3]int | [4]int }](dictionary []E, r rune) (result E) {
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:137:23: error: expected ‘;’ or newline after top level declaration
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:140:9: error: expected declaration
140 | to := len(dictionary)
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:141:9: error: expected declaration
141 | for to > from {
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:143:17: error: expected declaration
143 | cpRange := dictionary[middle]
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:144:17: error: expected declaration
144 | if int(r) < cpRange[0] {
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:146:25: error: expected declaration
146 | continue
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:147:17: error: expected declaration
147 | }
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:148:17: error: expected declaration
148 | if int(r) > cpRange[1] {
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:150:25: error: expected declaration
150 | continue
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:151:17: error: expected declaration
151 | }
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:152:17: error: expected declaration
152 | return cpRange
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:153:9: error: expected declaration
153 | }
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:154:9: error: expected declaration
154 | return
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:155:1: error: expected declaration
155 | }
| ^
make: *** [Makefile:29: build] Error 2 "-s -w -X main.version=v0.3.0-7-g1a92895" -o keyb
go build: when using gccgo toolchain, please pass linker flags using -gccgoflags, not -ldflags
# github.com/rivo/uniseg
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:137:20: error: expected ‘(’
137 | func propertySearch[E interface{ [3]int | [4]int }](dictionary []E, r rune) (result E) {
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:137:23: error: expected ‘]’
137 | func propertySearch[E interface{ [3]int | [4]int }](dictionary []E, r rune) (result E) {
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:137:23: error: expected ‘;’ or newline after top level declaration
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:140:9: error: expected declaration
140 | to := len(dictionary)
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:141:9: error: expected declaration
141 | for to > from {
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:143:17: error: expected declaration
143 | cpRange := dictionary[middle]
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:144:17: error: expected declaration
144 | if int(r) < cpRange[0] {
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:146:25: error: expected declaration
146 | continue
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:147:17: error: expected declaration
147 | }
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:148:17: error: expected declaration
148 | if int(r) > cpRange[1] {
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:150:25: error: expected declaration
150 | continue
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:151:17: error: expected declaration
151 | }
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:152:17: error: expected declaration
152 | return cpRange
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:153:9: error: expected declaration
153 | }
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:154:9: error: expected declaration
154 | return
| ^
../go/pkg/mod/github.com/rivo/[email protected]/properties.go:155:1: error: expected declaration
155 | }
| ^
make: *** [Makefile:29: build] Error 2
>
I like having esc quit the app. In some apps you can define that as a custom keybinding like in lazygit:
https://github.com/dlvhdr/dotfiles/blob/ea1b3ca38663d7ad56c0c6ffa1581bd0ed010abb/.config/lazygit/config.yml#L36
Currently only q quits the app.
It's needed to add a option to change the counter color...
I like to manage my packages with homebrew.
Fragmenting my packages over different sources is less ideal.
With 1 package manager, I can easily switch computers, or get a list of what I have installed.
keyb: main.go:69: failed to unmarshal keyb file: yaml: line 75: found unknown escape character
As the title suggest, this will help with understand when the search input is focused
I'm on a Mac, but use the XDG dirs.
A lot of apps use these directories even though its not the default mac location.
My suggestion is to use the XDG_CONFIG_HOME env var if it exists and if not fallback to ~/.config
.
If that also doesn't exist, you can fallback to Application Support
.
I've seen that I can use the --config
flag but that means I have to use the app with an alias.
I'd like to be able to change the colors of:
- name: "title"
);
)xremap and keyd are two examples of key remapping tools in Linux.
Both utilize a simple configuration file to declaratively define remapped keys. It would be nice if keyb could export its own keybinds to a xremap or keyd configuration file like so:
$ keyb --export-xremap > ~/.config/xremap/config.yml
Is it possible to clear the command display after closing it? Whenever I leave it, it just remains above my prompt which is not the best.
If it's possible to implement some way of either having it open its own container, or clearing its output when you exit that would be amazing
This should work even if the search input is focused
keyb creates a default config file that contains prefilled configuration. If a new configuration key is added in the future or an existing one is modified, users can easily miss them if they don't read the release notes.
Instead, create a default file in the same location pointing to the documentation.
Setting an entry with an & as the key breaks the loading of the keymap. You can escape it with &, but the slash shows up in the key display.
keyb should be able to read multiple config files in a given directory.
Things to note:
I find it a bit cumbersome to type h:
in order to search for a keybinding related to a specific app.
Can it be done so you search in both the section titles and items by default?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.