Git Product home page Git Product logo

matray's Introduction

matray

A Manjaro Linux announcements notification app (successor of mntray)


GitHub release build

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

For Arch-based distributions there is an AUR package available.
The AUR package got removed. A package is available in the Manjaro repositories.
PKGBUILD for the -git version is available here

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": "https://manjaro.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 community for testing and feedback
  • SGS for providing the app logo
  • The ones I forgot to mention here :)

matray's People

Contributors

cfinnberg avatar galeot avatar hanzelm avatar hatchet-mandev avatar maronghappy avatar moson-mo avatar oguzkaganeren avatar photon89 avatar prescott66 avatar strit avatar tomektom avatar xratix avatar zorrototo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

matray's Issues

KDE Plasma notification quirks

On the KDE Plasma desktop, matray notifications are being sent as if they come from something called Plasma Workspace (the desktop itself). Clicking the Configure button next to the Close button opens a popup with different notification types for Plasma Workspace, with the generic Notification type being highlighted automatically (see second image). This explains why notifications from matray use the wrong app name on their headers, and any settings for that type apply to matray as well. For example, if you disable sound for generic Plasma notifications, you won't get any sound the next time a new Manjaro news item arrives.

This does not happen with mntray, which used its own app name in the notification header and had its own app entry in the notification settings.

Screenshot_20210607_161735
Screenshot_20210607_162942

Matray news via http proxy

Hi,

Is there a way to make matray work through a http proxy?

I have proxy environment vars set the way they are used by tools like wget or curl, but they don't make matray sending its http requests via proxy.

Thanks,
Simon

Missing icons when using the "system" icon theme

When using the "system" icon theme the tray icon is not present (just some space is reserved in the panel but no icon is shown). The icon in the notification bubble is broken (a "missing icon" icon is shown).

Make icon display if there're error messages

If "HideNoNews" option is set to true, I will not be able to disable error messages in GUI, because the tray icon will only be displayed if there are some news available. This can be a big problem for inexperienced users.
image

Typo in english, and translation related question

There is a typo in the english language files, it is written 'occured' instead of 'occurred'

Also I was willing to send a french translation file, but I couldn't find a way to test it. I tried to build following the README (and I tried to name the file and the Language line to "fr" and "fr_FR", as well as adding the value to the LINGUAS file too), but when I start the executable it is in english instead of french.

Is there something specific to do?

Language options

I didn't see the language option in the setting. Does it apply language according to system language?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.