/matray

A Manjaro Linux announcements notification app

Primary LanguageValaBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

matray

A Manjaro Linux announcements notification app (successor of mntray)


GitHub release

A small tray application showing announcements and news for Manjaro Linux.
It creates a tray icon with a menu showing the latest announcements from the Manjaro Forum RSS feed & "manjarolinux" twitter account.

This project is the successor of mntray and has been re-developed in Vala.
Gtk serves as a basis for the GUI part.
Main reason for the re-development is that qt library binding used by mntray does not seem to be maintained anymore (last commit in Sep. 2020).

Announcements are retrieved from a http server (see mnserver) via post request.

Why is it connecting to a server application rather then parsing the RSS feed directly?
The RSS feed can be quite large (around 300 to 500 KB).
Instead of downloading this file from the Manjaro forums host on a regular basis, it fetches news from mnserver.
There's much less data to be transferred and less burden on the forum host and client since the data is stripped down to the bare minimum.

How to build

  • Make sure all dependencies are installed
  • Download this package with: git clone https://github.com/moson-mo/matray
  • Change to package dir: cd matray
  • Build: meson build && ninja -C build
  • The binary will be in the build dir

How to install

Binaries are available from the releases page.
Use "install_icons.sh" script in order to install the required icons.

For Arch-based distributions there is an AUR package available.

Configuration

On the first startup, a config file (~/.config/matray/config.json) is created with some default settings. You can either use the GUI to change the configuration (open "Settings" from the menu) or edit the config file.

{
	"Version": "1.0.0"
	"ServerURL": "http://manjaro.moson.eu:10111/news",
	"MaxArticles": 15,
	"AvailableCategories" : [
        "Testing Updates",
        "Stable Updates",
        "Stable Staging Updates",
        "Unstable Updates",
        "Twitter",
        "News",
        "Announcements",
        "Releases",
        "ARM News",
        "ARM Releases",
        "ARM Stable Updates",
        "ARM Testing Updates",
        "ARM Unstable Updates"
    ],
	"Categories" : [
        "Stable Updates",
        "News",
        "Announcements",
        "Releases"
    ],
	"AddCategoriesBranch" : [
        "News",
        "Announcements",
        "Releases"
    ],
	"RefreshInterval": 600,
	"HideNoNews": false,
	"Autostart": true,
	"ErrorNotifications": true,
	"DelayAfterStart": 15,
	"SetCategoriesFromBranch": true,
    "IconTheme" : "Bright"
}
Option Description
Version Version number. Do not change!
URL WebSocket URL of the mnservice server
MaxArticles The maximum number of articles to retrieve / show in the menu
AvailableCategories The categories that available for subscription. Do not change!
Categories The categories you want to get announcements for
Remove unwanted categories if needed

*note: Is ignored when SetCategoriesFromBranch is "true"
AddCategoriesBranch The categories you want to get announcements for
additional to the branch you are using

*note: Is ignored when SetCategoriesFromBranch is "false"
RefreshInterval The interval (in seconds) in which matray will check for new articles
Autostart Places a .desktop file in the users autostart folder when "true"
HideNoNews When set to "true", the tray icon is hidden when all news have been read

*note: Does not work reliably on GNOME & KDE. See "Known issues"
ErrorNotifications Show a notification in case articles can not be retrieved (f.e. network down)
DelayAfterStart Delays checking for news articles after startup (in seconds), f.e. wait for network to be up.

*note: This setting only takes effect when matray is started with parameter "--delay"
SetCategoriesFromBranch If "true", it auto-detects the Manjaro branch and filters categories accordingly (f.e. "Stable Updates" & "Announcements")

IconTheme The color of the tray icon. Can be "Bright", "Dark", "Colorful" or "System"


Dependencies

  • gtk3
  • glib2
  • json-glib
  • libappindicator-gtk3
  • libgee
  • libsoup

Build dependencies

  • meson
  • ninja
  • vala

Screenshots

Tray icon / menu

xfce menu kde menu gnome menu

Notifications

xfce notification kde notification gnome notification

Settings dialog

xfce settings kde settings gnome settings

Thanks to

  • The Manjaro Team for the great distro
  • The Manjaro community for testing and feedback
  • SGS for providing the app logo
  • The ones I forgot to mention here :)