Awesome Open Source
Awesome Open Source

neix - a news reader for your terminal

issues forks stars license

neix is a simple, work in progress terminal feed reader for all common RSS/Atom feeds on the web out there. So you can read your news without advertisments or other annoying stuff. Just the informations you need. You can import your existing collection of feeds from an OPML file or just configure them manually. You also have the ability to render the text with w3m, elinks or which program you want. How to configure neix, take a look into the configuration section. You got the full control of your news you want to read!

neix v0.1.3 GIF

📄 Table of Contents

📟 Installation

Before you can install neix make sure you have installed all required packages.
After the successful installation you have to configure the feeds.conf file with the feeds you want to read.
Here you can see the proper format.

📟 Manual installation

Follow the steps below for installing:

$ git clone https://github.com/tomschwarz/neix.git  
$ cd neix  
$ cmake . # to enable unit-tests: cmake -DENABLE-TESTS=ON  
$ make  
$ sudo make install

📑 Requirements

💻 Packaging

neix is available packaged for the following package manager/operating systems:

AUR AUR

$ git clone https://aur.archlinux.org/neix.git
$ cd neix
$ makepkg -si

Zypper zypper

$ zypper install neix

Pkgin pkgin

$ pkgin install neix

For some custom build packages or scripts see the packages section on the wiki.

📟 Uninstall

Follow the steps below for uninstalling:

$ cd neix # should be the same directory where the repository was cloned into  
$ sudo make uninstall

If there is an error during the uninstall process or you don't have the directory anymore following the steps below:

$ sudo updatedb  
$ locate neix # $ locate neix | grep /usr - if the output is to large  
$ sudo rm {PATH}/neix # where {PATH} is the full path to the binary  

✔️ Unit tests

Follow the steps below for unit testing after the installation guide:

$ ./bin/tests    

Hint: you have to be in the main directory of neix!

To run only a specific test follow the steps below:

$ ./bin/tests --gtest_filter=<TEST_CASE>

To list which tests are available follow the steps below:

$ ./bin/tests --gtest_list_tests

For more informations see GoogleTest.

📋 Usage

$ neix

If neix is completely launched you got the following key's to navigate:
| Key | Function | |---------------------------------|--------------------------------------------------------------------------------------------------------| | q | Close the current opened article or quit neix when you on the not reading an article. | | ENTER | Open the selected article to read. | | o | Open the current article in the browser (or with the programm you configured in the main config file). | | j | Select the next article in the current feed list. | | k | Select the previous article in the current feed list. | | Shift + j | Select the next feed of the loaded feed list. | | Shift + k | Select the previous feed of the loaded feed list. |


📋 Command line options

neix has some command line options you can use. See below the available options:

Option Argument Description
-v - Prints the installed version of neix and exits.
-i <path> Import feeds of given OPML file and exits. Path can be absolute or relative.
-e <path> Export feeds to given file or path. Creates an OPML 2.0 file. Path can be absolute or relative.
-f <filename> Use a custom feed configuration file. Have to be located in the default neix config folder.

Usage of option -v:

$ neix -v

Usage of option -i:

$ neix -i ~/Downloads/import.xml

Usage of option -e:

$ neix -e ~/Downloads/export.xml

Usage of option -f:

# Location: ~/.config/neix/custom-feeds.conf
$ neix -f custom-feeds.conf

For more informations see the man-page:

$ man neix

🔧 Configuration

Default directory of the config files: ~/.config/neix/
During the installtion process, neix create's the default directory with the needed configuration files.

neix needs two configuration files. One for itself and one for the feeds which should be loaded.
| File | Description | |------------|----------------------------------------------------------------------------------------| | neix.conf | This is the main configuration. It include's the date format, locale and more options. | | feeds.conf | This is the feed list. An entry represents a single news feed. |

🔩 neix.conf

This is the main config file of neix. | Option | Value | |-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | dateFormat | String which represents the format for the feed date. Here are all possible formats. [REQUIRED] | | locale | Here you can set the locale for your language (see here). Run locale -a to see all locales you got installed. [REQUIRED] | | openCommand | Here you can set which programm should be used to open the article link. Default is xdg-open. You can use what you want. [REQUIRED] | | renderText | You can set here how the text should be formatted. Default is w3m -dump -T text/html. You can use elinks or others. [OPTIONAL] |

🔩 feeds.conf

This file contains the list of feeds you want to read.
This is the required format of an single entry (every entry should be in a seperate line):

TITLE = PROTOCOL://[username[:password]@]DOMAIN.TOP-LEVEL-DOMAIN[/DIRECTORIES[/FILE]]   

📝 Contributing

If you want to contribute check the CONTRIBUTING.md

📚 Libaries in usage

📜 License

GNU GPLv3 © Tom Schwarz

📷 Screenshots

Screenshot 4 Screenshot 5 Screenshot 6 Screenshot 7


Free Software Foundation

I'm a member of the Free Software Foundation. Without GNU/Linux and all the great work from people all over the world producing free software, this project would not have been possible.

Consider joining the FSF, here is why.


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
c-plus-plus (18,930) 
cli (1,826) 
terminal (747) 
rss (183) 
tui (159) 
free-software (62) 
ncurses (56) 
rss-reader (46) 
feed-reader (25)