aboutsummaryrefslogtreecommitdiff
path: root/README.adoc
blob: 06b7c26d34f4aad1b25ec216461d55be63ecc208 (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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
desktop-tools
=============
:compact-option:

'desktop-tools' is a collection of tools to run my desktop that might be useful
to other people as well:

 - 'wmstatus' does literally everything i3/sway don't but I'd like them to.
   It includes PulseAudio volume management and custom-made NUT and MPD clients,
   all in the name of liberation from GPL-licensed software, of course
 - 'paswitch' displays a list of all PulseAudio sinks and ports and allows
   switching between them, moving all playing inputs
 - 'brightness' allows me to change the brightness of w/e display device I have
 - 'input-switch' likewise switches the input source of external displays
 - 'fancontrol-ng' is a clone of fancontrol that can handle errors on resume
   from suspend instead of setting fans to maximum speed and quitting;
   in general it doesn't handle everything the original does
 - 'priod' sets process CPU, I/O and OOM killer priorities automatically
   according to configuration
 - 'shellify' is a simple script that sets up a shell for commands like vgdb
   and nmcli that are painfully lacking it
 - 'iexec' runs a program and attempts to restart it cleanly when the
   executable file is replaced on the disk
 - 'gdm-switch-user' tells the running GDM daemon, if any, to show the switch
   user screen
 - 'siprandom' uses the SipHash 2-4 algorithm to produce a stream of
   pseudo-random data; it should be fast enough to saturate most devices
 - 'big-brother' tracks the title of the active window and the idle state of
   the user and writes these events to standard output.
 - 'elksmart-comm' interfaces with ELK Smart infrared dongles,
   partially reimplementing the Ocrustar mobile app.

Few of them are useful outside of Linux.

Packages
--------
Regular releases are sporadic.  git master should be stable enough.

Building
--------
Build dependencies: CMake, pkg-config, liberty (included) +
Runtime dependencies: libpulse, libx11, dbus-1 +
Optional runtime dependencies:
libusb-1.0 (elksmart-comm), libgdm (gdm-switch-user)

 $ git clone --recursive https://git.janouch.name/p/desktop-tools.git
 $ mkdir desktop-tools/build
 $ cd desktop-tools/build
 $ cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug
 $ make

To install the applications, you can do either the usual:

 # make install

Or you can try telling CMake to make a package for you.  For Debian it is:

 $ cpack -G DEB
 # dpkg -i desktop-tools-*.deb

Contributing and Support
------------------------
Use https://git.janouch.name/p/desktop-tools to report bugs, request features,
or submit pull requests.  `git send-email` is tolerated.  If you want to discuss
the project, feel free to join me at ircs://irc.janouch.name, channel #dev.

Bitcoin donations are accepted at: 12r5uEWEgcHC46xd64tt3hHt9EUvYYDHe9

License
-------
This software is released under the terms of the 0BSD license, the text of which
is included within the package along with the list of authors.