summaryrefslogtreecommitdiff
path: root/README.md
blob: 9f82d951188cbe33df8f4cfd954b3fac9b42f2d5 (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

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 tree. Commands are launched by a
sequence of keys that form a path in this tree.

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

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


Shout-outs
----------

Thanks to the dmenu developers I was able to reuse and repurpose their drw_
machinery for cmdtree! This project shares dmenu's [LICENSE](LICENSE) as much of
the code was ported from there. Thanks!