Skip to content
A notification system for tiling window managers
C++ QMake
Branch: master
Clone or download

Latest commit

Latest commit 861a323 Sep 17, 2019

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Add Disk Usage Notifier Example Aug 16, 2015
init/systemd Update twmnd.service May 22, 2017
twmnc added version number Nov 22, 2016
twmnd Merge pull request #79 from ya-isakov/master Sep 17, 2019
.gitignore Add Disk Usage Notifier Example Aug 16, 2015
LICENSE LICENCE -> LICENSE Aug 26, 2011
README.md removing shortcuts Nov 1, 2018
TODO previous and next key bindings working Aug 24, 2011
screencast.gif Screencast. Fixed compilation error Sep 19, 2014
twmn.pro Compilation template. qmake based Aug 16, 2011

README.md

twmn

A notification system for tiling window managers. twmn is two things:

twmnc: command line tool to send notifications to twmnd. You can also use notify-send for a similar purpose, but twmnc is more powerful. See twmnc --help for more information.

twmnd: daemon listening to notification requests and showing them one after another. Configure it at ~/.config/twmn/twmn.conf. The file is generated the first time twmnd is launched.

Notifications are shown in a one-line bar called the notification slide. They can be navigated through and activated with shortcuts.

See twmn.conf for more information.

About twmn.conf

[gui]
; Screen number to display notifications on when using a multi-head desktop.
screen=  ; 0 indexed screen number

; WARNING: Deprecated by "screen"
; Absolute position from the top-left corner of the slide. You may need it for a multi-screen setup.
; You still have to set position in order to choose the slide animation. If empty, twmnd will try
; to figure out where to display the slide according to your desktop size and the slide position.
absolute_position=  ; Supported format: WxH. Width and Height being integers.

; Background color.
background_color=black  ; RBG hex and keywords (eg. lightgray) are supported.

; An icon for the layout. Useful only for a layout file.
icon=  ; Path to image file. Optional.

; Font family.
font=Sans

; Font size.
font_size=13  ; In pixel.

; Font variation.
; accepted values are:
; oblique, italic, ultra-light, light, medium, semi-bold, bold, ultra-bold, heavy, ultra-condensed,
; extra-condensed, condensed, semi-condensed, semi-expanded, expanded, extra-expanded, ultra-expanded.
font_variant=medium

; Text color.
foreground_color=white  ; RBG hex and keywords (eg. lightgray) are supported.

; Height of the slide bar. Useful to match your tiling window manager's bar.
height=18  ; In pixel.

; Position of the notification slide.
position=top_right  ; Accepted values: top_right (tr), top_left (tl), bottom_right (br),
                    ; bottom_left (bl), top_center (tc), bottom_center (bc), center (c).

; moves the position of the slide in +/- pixels on the x or y axis (e.g. "+50" or "-100")
offset_x=+0 ; default is 0
offset_y=+0 ; default is 0

; The animation to use when the slide appear
in_animation=38 ; see https://doc.qt.io/qt-5/qeasingcurve.html#Type-enum for types

; The in animation's duration
in_animation_duration=1000 ; in milliseconds

; The animation to use whe the slide is closing
out_animation=13

; The out animation's duration
out_animation_duration=1000 ; in milliseconds

; Enable or disable notification bounce when changing notification
bounce=true  ; true or false

; Change bounce duration
bounce_duration=500 ; in milliseconds

; If the character length is more then max_length the text is cut off and "..." is appended
max_length = -1 ; default is -1 (which means: don't cut off)

[icons]
; An icon. You can add as many as you want.
NAME=  ; Path to image file. NAME being the icon's custom name.


[main]
; Program/command to be executed on notification activation.
activate_command=  ; Path to command.

; Time each notification remains visible.
duration=3000  ; In millisecond.

; Host address to listen on for notifications.
host=127.0.0.1

; UDP port used for notifications.
port=9797

; Program/command to play sound with.
sound_command=  ;  Path to command. Leave empty for no sound.

Installation

For Arch Linux users, twmn is on the AUR.

Otherwise you can install twmnd and twmnc manually:

  1. install boost and qt if they weren't before, including the widgets and x11extras qt libraries
  2. git clone https://github.com/sboli/twmn.git to get twmn
  3. cd twmn/
  4. qmake to generate a Makefile
  5. make to compile
  6. sudo make install to install twmnd and twmnc in /usr/local/bin. Make sure this folder is in your $PATH environment variable. (export PATH=$PATH:/usr/local/bin)
  7. for twmnd to be always running, add it to your .xinitrc, rc.conf or else

The storage_notifier example requires dbus-python to be installed. The mpd_notifier example requires python-mpd to be installed and running.

You can’t perform that action at this time.