summaryrefslogtreecommitdiff
path: root/README.md
blob: 6fae84eb84979ca63c7f608e771955ba1598c28d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

cmdtree
=======

![cmdtree](https://jb55.com/s/cmdtree.png?)

![cmdtree2](https://jb55.com/s/cmdtree2.png?)

cmdtree is a command launcher in the form of a trie. Commands are launched by a
sequence of keys that form a path in this trie.

Configuring cmdtree **will be*** easy (**not yet implemented**, still WIP):

`~/.cmdtreerc` or `~/.config/cmdtree/cmdtreerc`:

    (commands
     (a application
        (b chrome)
        (e emacs))
     (e email
        (f fetch-email)))

Configuring cmdtree currently requires you to edit a C header file, similar to
dmenu. You will need to tweak [cfg.def.h](cfg.def.h) to your liking before
building. This is temporary until the configuration file format is complete, but
it has the benefit of being quite fast to launch!

If you're curious, you can check out [my config here](https://github.com/jb55/cmdtree/blob/my-config/cfg.def.h)

Installing
----------

First customize [cfg.def.h](cfg.def.h) to include your menu items.

libX11 and libXft are required. Once you have those installed, simply type:

    make && make install || sudo make install

To launch `cmdtree` with a key binding, use something like
[xbindkeys](https://wiki.archlinux.org/index.php/Xbindkeys)


Key Bindings
------------

```
ESC         quit
Backspace   go up one level
```