aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 790ec397ed7dcc58efb8284f9b0b2c058421cf1e (plain) (blame)
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
*lead* provides hot-corners for your desktop, notably for openbox, awesome, i3 and other window managers.

This fork adds support for specifying an interval to wait before the action is triggered. There may be more improvements in the future.

![Screenshot of lead](https://github.com/mlde/lead/blob/master/screenshot.png)
> Despite the screenshot, the sensors are only 1px in size and invisible.


### Features
- hot corners: sensors in the corners of the screen
- hot sides: sensors on center/middle edge of the screen
- freely configurable action for each sensor
- each screen is individually configurable


# Get it

- clone the repository with `$ git clone https://github.com/mlde/lead`

**or**

- download as zip and extract it


# Build it

*lead* uses [clang](http://clang.llvm.org/) as compiler, [g++](https://gcc.gnu.org/) as linker and [make](https://www.gnu.org/software/make/) as build-tool. 

To build *lead* open a terminal in the root folder of the repository and:

    $ make

### Dependencies
- Qt5Widgets 
- Qt5Gui 
- Qt5Core


# Install it

To install *lead* open a terminal in the root folder of the repository and:

    $ sudo make install


# Configure it

On the first run lead will look into these dirs for a conf-file. The first one found will be used.

    ~/.config/lead/lead.conf
    /etc/xdg/lead/lead.conf

If none of these exists, it will create `~/.config/lead/lead.conf` with default values for each screen, ie:

    [eDP1]
    bottom=
    bottomLeft=
    bottomRight=
    left=
    right=
    top=
    topLeft=
    topRight=

Sensors have their own sections in the configuration, so if you want to add an action to a corner you can do so:
    [eDP1]
    bottomLeft=SensorName

    [SensorName]
    enterAction=chromium
    exitAction=firefox
    enterDelay=5000
    exitDelay=1000

Delays are configured in miliseconds and dictate the amount of time the mouse has to be in the sensor to trigger the specific action.
In the case of exitDelay, this delay affects how much time the mouse has to be in the sensor for it to trigger the exitAction when the mouse moves out of the sensor.

The configuration file is monitored and changes are applied automatically.


# Use it

*lead* provides the binary `lead` which creates sensors for each configured corner or side.

Start *lead* as background process:

    $ lead &

# Uninstall it

To uninstall *lead* open a terminal in the root folder of the repository and:

    $ sudo make uninstall

# Drawbacks

I didnt want to poll the mouse, so i created sensors which works with events. The sensors are transparent, but need a running compositor like compton for that. Without a compositor, they are black.

# TODO

Improvements that need to be made:

- Error checking of the conf file; e.g. check that an integer was set for the interval

Possible new features:

- Custom regions