neix - a news reader for your terminal
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!
📄 Table of Contents
- Installation
- Uninstall
- Unit tests
- Usage
- Configuration
- Contributing
- TODO / Roadmap
- Issues / Bugs
- Libaries in usage
- License
- Screenshots
📟 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
$ git clone https://aur.archlinux.org/neix.git
$ cd neix
$ makepkg -si
Zypper
$ zypper install neix
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
- rapidXML is used for XML parsing
- GoogleTest is used for TDD
📜 License
📷 Screenshots
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.