NofyHist is a Linux GUI - program, written in Python and using the wxWidgets cross-platform Gui-library.
With NofyHist you can collect and show recent notifications, set exclude filters to suppress unwanted senders, search for entries in the notifications history and write all notifications to a log file. You should place NofyHist in your startup folder.
My computers run Linux Mint with the XFCE desktop. The motivation to write NofyHist was the fact, that I often missed notifications. In XFCE notifications pop up for a while on the screen and then vanish away. I have not found a way to get back and look at recent notifications. To help me in this situation, I wrote this little program.
To run NofyHist, you need Python >= 2.7.0 (not 3.x) and wxPython >= 3.0.x.x (package python-wxgtk3.0 on Mint, Ubuntu) or better installed on your computer. NofyHist is compatible with Python 3.x. But if you want to run the program with the Python 3.x interpreter, you have to make sure, that the used libraries (wxPython, dbus, ...) have Python 3 compatible code too.
NofyHist assumes that the following software packages are installed on your system:
- configobj: package python-configobj (Mint, Ubuntu)
- dbus: package python-dbus (Mint, Ubuntu)
- gobject: package python-gobject (Mint, Ubuntu)
NofyHist has been tested on computers running Mint 17.2 XFCE, 18.1 XFCE
- NofyHist.ini, which holds all program setting information (i.e. window size and position, column widths, defined exclude masks and so on) and
- NofyHist-Action.log, which is a protocol of all actions (create exclude masks, problems with directories and notification messages) performed by the program
Later you can decide to store these files elsewhere on your computer (see Misc).
The NofyHist GUI has a main window with thre columns: Sender, Header and Message body.
The main window includes a menu- and statusbar. With a right click in the notifications list window you can activate a context subwindow (see screenshot below) for the selected enty. The newest entry is always at the top of the list.
And finally, the main window contains the mentioned statusbar, divided into 3
fields. From left to right they are:
- quick help
- Exclude filter list
The status is in the form M: xx | F: xx. M: is the number of entries not suppressed by the
exclude filter and F: is the number of entries found by the search sub(string).
...back to Contents
Add / Edit exclude masks
In the Add / Edit exclude sender masks dialog you enter all information needed for an exclude string. The combobox contains useful suggestions.
Common program setup is done via the Preferences menu. To get to the
menu, use 'Options', 'Preferences', type CTRL-F or use the context menu.
The Preferences notebook dialog has 2 tabs.
- With grid: when checked, the notification list window will have light horizontal and vertical lines between the rows and columns. Default: checked
- Font family: you can select from a list of all fonts, installed on your machine. Default: your selected system font
- Font size: you can select sizes from 6 to 12 points. Default: 9 points
- Language: you currently can select Default, English or German. Default: English
- Highlight colour: you can select a highlight colour with a colour chooser for the searched / found notifications. Default: kind of green
- Button align: if checked, buttons are aligned as it is default in XFCE, GNOME or KDE. If unchecked they are centered und streched to fill the width of the dialog. Default: checked
- NofyHist ini path (read only control): Preferences are stored in a readable file called
NofyHist.ini. Ini-file default directory is the users homepath, i.e. /home/your_username
on Linux. You can change this location by starting the application with the command line
Example: encfsman.pyw -i=/tmp. Now the ini file is stored as '/tmp/NofyHist.ini'.
- History limit: You can limit the number of notification lines in the list control. The range goes from 1 to 99. Default: 25 entries
- Delete after: Here you can define how long a notification is displayed. Selections are possible from 1 to 240 hours. Default: 24 hours
- Start minimized: if checked, the application won't start with a popping up main window. There will be a small icon in the system tray instead. This Icon has a context menu, where you can restore the application and so on. Default: not checked
- Stay in systray: If checked, NofyHist will minimize to the system tray when the close button is pressed. In this configuration, exiting the application is possible by selecting 'File', 'Exit' or by pressing the shortcut CTRL-X. Default: checked
- Update check: NofyHist can automatically check the website on startup if a new program release is available. If so, you will be informed. Default: not checked
- Action log: If checked, all notifications and all program actions are written to the logfile. The logfile is placed in the users homedir. The name of the logfile is NofyHist-Action.log. Default: checked (see Logfile remark below)
Logfiles are written by a RotatingFileHandler with a maxBites size of 64 kB and a backupCount of 4 backups. Rollover occurs whenever the current log file is nearly maxBytes in length. If backupCount is >= 1, the system will successively create new files with the same pathname as the base file, but with extensions ".1", ".2" etc. appended to it. For example, with a backupCount of 4 and a base file name of "app.log", you would get "app.log", "app.log.1", "app.log.2", ... through to "app.log.4". The file being written to is always "app.log" - when it gets filled up, it is closed and renamed to "app.log.1", and if files "app.log.1", "app.log.2" etc. exist, then they are renamed to "app.log.2", "app.log.3" etc. respectively. This is the same technique as you might have seen in the /var/log dir of Linux systems.
The format of a logfile line is: date time -- message i.e.
...back to Contents
Nearly all screenshots shown in this document are taken from NofyHist 0.10 running on Linux Mint (Rosa 17.3, Serena 18.1, XFCE).
If you like the software, use it (at your own risk). If you have
suggestions or encounter bugs - please send me an email. If you do not
like the software - throw it away.
Thanks go to
- Guido van Rossum for the great Python programming language
- the wxWidget team for their cross-platform GUI Library
- the wxPython team for their Python wx wrapper, used to create the GUI of NofyHist
- Michael Foord and Nicola Larosa for their excellent configobj module, used to read / write the program settings
NofyHist was designed and coded by Frank Mersmann (firstname.lastname@example.org).
Beta tests where conducted and hints were made by Wolfgang Bredow (email@example.com).