nvPY on Gentoo

nvPY is a fast, simple to use, no fuss, cross-platform note taking application. One of the big benefits is that all your notes are stored somewhere on the cloud – so you don’t need to worry about them!

Unfortunately we can not simply use emerge to install nvPY, so there are a few prerequisites prior to installation.


There are not many prerequisites to nvPY but here they are all the same.

Simplenotes Account

In order to use nvPY, you will first need to create yourself a simplenotes account at simplenote.com. Now armed with your simplenotes login credentails, you can begin to install.


Because vnpy is not available through the Gentoo package manager, we first need to make sure we have the git client installed so that we can download the source code.

emerge --ask git


At the time of writing, nvpy works best with python version 2.7.x and it currently does not work very well yet with python 3.x. Also, nvpy requires that the python version to be used is compiled with support for TkInter.

I already have dev-lang/python-3.3.2-r2:3.3 install as my default. To install a lower version, like 2.7.x but keep 3.x as your default, do. Note, you will need to be root.

emerge -av python:2.7

If, like me, you already have python 2.7.x installed, make sure it is compiled with TkInter support. If not, as root, do the following.

echo "=dev-lang/python-2.7.5 tk" >> /etc/portage/package.use
emerge --ask --newuse =dev-lang/python-2.7.5-r3


You should now be able to simply follow the instructions on github. To summarise (copy really I guess), see below. Make sure you do this as a normal user.

git clone git://github.com/cpbotha/nvpy.git
cd nvpy
python nvpy

Launch nvPY

In order to run nvPY, it first needs to be able to connect to your SimpleNotes account. So before you first try to run nvPY, create the following file, making sure only your normal user can read it.

nano ~/.nvpy.cfg

Populate it with only the following information. Obviously, replace the values on the right hand side of the equals sign with your SimpleNotes login credentials.

sn_username = your_simplenote_username
sn_password = your_simplenote_password

Make sure only you can read it.

chmod -v 600 ~/.nvpy.cfg

Finally, try running it.

python2.7 nvpy &

Hopefully that worked!!

nvPY installed on Gentoo

Yay!! Job done!


The Official Site – GitHub:

How to install Python Tkinter in Gentoo Linux:

How to choose python version to install in gentoo:

Shutter with XMonad

For me, Shutter is the best open-source screenshot program available for Linux. When I used Windows, I really liked Snagit – Shutter is a good alternative.

Installing Shutter

Installing Shutter is straight forward enough. However, before doing so, I added a couple of use flags to enable the drawing tools and afford the functionality of taking screenshots of websites. This needed if you want similar functionality to Snagit where you can easily take a screenshot and then quickly and easily edit it. Such as highlighting an area or blurring-out sensitive information.

echo "x11-misc/shutter drawing webphoto" >> /etc/portage/package.use

To install, simply type.

emerge --sync
emerge --ask shutter

Configuring XMonad

If you’re using XMonad and you are unable to use Shutter due to error messages similar to the one below, you’ll need to make sure your xmonad.hs file is configured to use EWMH Hints, which is required by Shutter.

Error while taking the screenshot: Maybe mouse pointer could not be grabbed or the selected area is invalid.
Error while taking the screenshot: Maybe mouse pointer could not be grabbed or the selected area is invalid.

Open up ~/.xmonad/xmonad.hs with a text editor.

nano ~/.xmonad/xmonad.hs

We need to import the following package.

import XMonad.Hooks.EwmhDesktops

You’ll also need to define the handleEventHook and logHook properties as show below.

handleEventHook = ewmhDesktopsEventHook,
logHook = ewmhDesktopsLogHook,

Don’t forget to recompile XMonad by pressing the modification key (Windows key on my system) with q.

WinKey + q


Shutter – Screenshot Tool: Official site.

Gentoo Browse: x11-misc/shutter

Wikipedia: Extended Window Manager Hints

Github.com: ahitrin / xmonad-config

Gentoo: Temporarily Configure Networking

This can be useful if your working from a LiveCD or testing the network. Note, “temporary” means it will not survive a reboot! To configure networking, adjust the below command for your own environment.

ifconfig eth0 broadcast netmask up
route add default gw

The above commands assign the static IP address of to the eth0 interface and defines the default gateway as

You might also need to add some nameservers to your /etc/resolv.conf configuration file.


Again, this configuration will be lost after a reboot. To permanently create these rules, use the /etc/conf.d/net configuration file.

Installing Xorg on Gentoo with the nouveau Driver

I configured my kernel as shown here. That was based on the information found here and here. Check out the resources section at the bottom.

Because my kernel is good-to-go, I should just need to make the following changes to my make.conf file before installing xorg-server.

nano /etc/portage/make.conf

These are the changes I made.


Make sure you have the following USE flag.

echo "x11-base/xorg-server" >> /etc/portage/package.use

Before installing xorg-server.

emerge --ask xorg-server

Now refresh your environment.

source /etc/profile

I choose to reboot here.

Starting X

Xorg “should” work out-of-the-box so there “should” be no need to manually create and edit configuration file in the /etc/X11/xorg.conf.d/ directory. Here goes…


The Necessary Troubleshooting

Obviously that didn’t work because that would be too easy!! The output showed xauth complaining about a few things, namely stuff like.

hostname Unknown host
xauth: file /root/.serverauth.4170 does not exist

Then Xorg tries to start but fails with this.

/etc/X11/xinit/xinitrc: line 59: twm: command not found
/etc/X11/xinit/xinitrc: line 60: xclock: command not found
/etc/X11/xinit/xinitrc: line 61: xterm: command not found
/etc/X11/xinit/xinitrc: line 63: exec: xterm: not found
/etc/X11/xinit/xinitrc: line 62: xterm: command not found
xinit: connection to X server lost

waiting for X server to shut down Server terminated successfully (0). Closing log file.

The Fix

Funnily enough, it was the hostname Unknown host message that bothered me the most as this indicates a general networking issue. Turned out I hadn’t associated my hostname with the localhost. This was easily solved by editing /etc/hosts and amending the below line. This removed that particular error but did not get Xorg working.            localhost storm

Now I have a fairly good idea what might be up here but if all this is new to you and your Xorg is failing with similar messages, there a few clues in errors.

One thing to bear in mind is that users of X must be part of the video group. I thought this might explain the xauth warnings. However this can be easily checked with.

storm ~ # groups andy
root bin daemon sys adm disk wheel floppy tape video

Lastly, as per the docs, I believe twm and xterm should be installed. This certainly fits with the last few errors.

emerge --ask twm xterm xclock

This will pull in a few extra packages but hopefully Xorg should work now. Although not strictly necessary, I install xclock here too.

xterm screen shot



Gentoo Wiki – Xorg/Configuration

Gentoo Wiki – X server

Gentoo Wiki – X without Display Manager

Linux Reviews – Screenshot grabbing


Gentoo Wiki Archives – Dell_2407WFP_LCD

Gentoo Wiki – xorg.conf

Gentoo – X.Org/xsession

Gentoo Wiki – Fontconfig

Gentoo Wiki Archives – HOWTO_Xorg_and_Fonts

Gentoo.org – rxvt-unicode

ArchLinux – Multihead

ArchLinux – Nouveau

ArchLinux – Xorg

ArchLinux – X resources

ArchLinux – rxvt-unicode


How-To Geek – How to Quickly Resize, Convert & Modify Images from the Linux Terminal

geom.uiuc.edu – Manipulating Images

Redhat.com – Doing more with…more: Dual-head display

Gentoo – X.Org/Dual Monitors

ArchLinux – Configuring keyboard layouts in X

Connect to a NFS Share with Gentoo

Install NFSv4

The below command will install with the default USE flags of ipv6, tpcd and nfsv4.

emerge --ask nfs-utils

Find NFS Shares

If you don’t know or can remember the name of your NFS shared drives, you can use the below command to list the exports.

storm ~ # showmount -e ""
Export list for
/personal shared
/Network Recycle Bin 1
storm ~ #

I want to connect to “/personal shared“, but note the space in the share name.

mount -t nfs " shared" ~/nfs/

To mount a share like this you will need to encase it in double quotes.

If you get a message like this…

mount.nfs: rpc.statd is not running but is required for remote locking.
mount.nfs: Either use '-o nolock' to keep locks local, or start statd.
mount.nfs: an incorrect mount option was specified

…you need to start the statd daemon.

storm ~ # /etc/init.d/rpc.statd start
 * Caching service dependencies ...                                                                                                                               [ ok ]
 * Starting rpcbind ...                                                                                                                                           [ ok ]
 * Starting NFS statd ...                                                                                                                                         [ ok ]
storm ~ #

To make this change permanent, you need to add statd and other NFS related daemons to the default runlevel.

rc-update add nfsmount default

You should not be able to run the above mount command even after a reboot. To un-mount.

umount -v ~/nfs

Auto-Mount NFS Shares

Now to auto-mount, provided nfsmount is on the default runlevel, you just need to add an entry to your /etc/fstab file.\040shared     /root/nfs     nfs      rw,_netdev,auto,sync    0 0

Note the \040\ where the space should be in “personal shared“. Using double quotes or the like does not appear to work in fstab.


Gentoo Wiki – NFSv4

Gentoo: Installing a File Manager

After a little research I have decided to install krusader as my file manager. Installing it should be fairly simple.

emerge --ask krusader

After seeing the below output…


storm ~ # emerge --ask krusader

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild N ] kde-base/libkonq-4.10.5 USE="(-aqua) -debug {-test}"
[ebuild N ] kde-base/keditbookmarks-4.10.5 USE="(-aqua) -debug {-test}"
[ebuild N ] kde-misc/krusader-2.4.0_beta3 USE="bookmarks handbook (-aqua) -debug" LINGUAS="-bg -bs -ca -ca@valencia -cs -da -de -el -en_GB -eo -es -et -fi -fr -ga -gl -hr -hu -it -ja -ko -lt -mai -nb -nds -nl -pa -pl -pt -pt_BR -ro -ru -sk -sl -sr -sr@ijekavian -sr@ijekavianlatin -sr@latin -sv -tr -ug -uk -zh_CN -zh_TW"

Would you like to merge these packages? [Yes/No]


…I run the below to make use of the English/British USE flag. I install both en_GB and uk USE flags.

echo "kde-misc/krusader en_GB uk" >> /etc/portage/package.use

For some reason the change in USE flags were not picked up. However, I proceeded and installed it anyway. The below was the output.


-- Installing: /var/tmp/portage/kde-misc/krusader-2.4.0_beta3/image/usr/share/locale/ja/LC_MESSAGES/krusader.mo
>>> Completed installing krusader-2.4.0_beta3 into /var/tmp/portage/kde-misc/krusader-2.4.0_beta3/image/

strip: x86_64-pc-linux-gnu-strip --strip-unneeded -R .comment -R .GCC.command.line -R .note.gnu.gold-version
ecompressdir: bzip2 -9 /usr/share/doc

* QA Notice: Package triggers severe warnings which indicate that it
* may exhibit random runtime failures.
* /var/tmp/portage/kde-misc/krusader-2.4.0_beta3/work/krusader-2.4.0-beta3/iso/kiso.cpp:261:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
* /var/tmp/portage/kde-misc/krusader-2.4.0_beta3/work/krusader-2.4.0-beta3/iso/kiso.cpp:261:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
* /var/tmp/portage/kde-misc/krusader-2.4.0_beta3/work/krusader-2.4.0-beta3/iso/kiso.cpp:318:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
* /var/tmp/portage/kde-misc/krusader-2.4.0_beta3/work/krusader-2.4.0-beta3/iso/kiso.cpp:319:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
* /var/tmp/portage/kde-misc/krusader-2.4.0_beta3/work/krusader-2.4.0-beta3/iso/kiso.cpp:325:90: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

* Please do not file a Gentoo bug and instead report the above QA
* issues directly to the upstream developers of this software.
* Homepage: http://www.krusader.org/

>>> Installing (3 of 3) kde-misc/krusader-2.4.0_beta3
* QA Notice: Symbolic link /usr/share/doc/HTML/pt_BR/krusader/common points to /usr/share/doc/HTML/pt_BR/common which does not exist.
* QA Notice: Symbolic link /usr/share/doc/HTML/uk/krusader/common points to /usr/share/doc/HTML/uk/common which does not exist.
* QA Notice: Symbolic link /usr/share/doc/HTML/pt/krusader/common points to /usr/share/doc/HTML/pt/common which does not exist.
* QA Notice: Symbolic link /usr/share/doc/HTML/sv/krusader/common points to /usr/share/doc/HTML/sv/common which does not exist.
* Updating icons cache ... [ ok ]
* Updating desktop mime database ...
* Updating shared mime info database ...

* WARNING! Your system configuration contains neither "kde-base/kdebase-runtime-meta"
* nor "kde-base/kdebase-startkde". You need one of above.
* With this setting you are unsupported by KDE team.
* All missing features you report for misc packages will be probably ignored or closed as INVALID.

>>> Recording kde-misc/krusader in "world" favorites file...

* Messages for package kde-misc/krusader-2.4.0_beta3:

* WARNING! Your system configuration contains neither "kde-base/kdebase-runtime-meta"
* nor "kde-base/kdebase-startkde". You need one of above.
* With this setting you are unsupported by KDE team.
* All missing features you report for misc packages will be probably ignored or closed as INVALID.
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

* GNU info directory index is up-to-date.
storm ~ #


This seems to have worked anyway.

Krusader file manager
Krusader file manager


Tech Republic – 10 Linux file managers worth checking out

Krusader.org – Twin panel file management for your desktop

Konqueror.org – What is Konqueror?

Wikipedia.org – Comparison of file managers

Linux Links – 14 of the Best Free Linux File Manager


A collection of Gentoo specific information.

Installing Gentoo

Gentoo: List of Issues After an Installation
Gentoo: Making Sense of Portage
Installing Xorg on Gentoo with the nouveau Driver


Fix a Broken Gentoo Installation
Recompile the Gentoo Linux Kernel
Gentoo: Upgrade the Linux Kernel
Required Kernel Options
Gentoo: Amend Global USE Flags


Firefox on Gentoo
Installing a File Manager
Connect to a NFS Share with Gentoo

Firefox on Gentoo

I recently setup Firefox sync on my work machine which runs Ubuntu, then did the same on my home desktop which runs Gentoo. Before I knew it, all my work add-ons appeared on my home desktop. This was a cool feature that I didn’t know Firefox sync had. However, upon closer inspection, I noticed that only half off my add-ons were working, the other half disabled with.

... is incompatible with Aurora 17.0.9

For those that don’t know, Aurora is the bleeding-edge beta version of Firefox. I knew I was using this but until now it had not been a problem and I experienced no issues with stability.

Replace Aurora with Firefox

To replace Aurora with Firefox, we need to recompile it after disabling the bindist USE flag.

To see what USE flags a program was compiled with, use the following command.

emerge --info firefox

This will show you information like this (and a lot more besides).

                        Package Settings

www-client/firefox-17.0.9 was built with the following:
USE="alsa bindist dbus gstreamer jit libnotify minimal (multilib) startup-notification -custom-cflags -custom-optimization -debug (-pgo) (-selinux) -system-sqlite -wifi" ABI_X86="64" LINGUAS="-af -ak -ar -as -ast -be -bg -bn_BD -bn_IN -br -bs -ca -cs -csb -cy -da -de -el -en_GB -en_ZA -eo -es_AR -es_CL -es_ES -es_MX -et -eu -fa -fi -fr -fy_NL -ga_IE -gd -gl -gu_IN -he -hi_IN -hr -hu -hy_AM -id -is -it -ja -kk -km -kn -ko -ku -lg -lt -lv -mai -mk -ml -mr -nb_NO -nl -nn_NO -nso -or -pa_IN -pl -pt_BR -pt_PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv_SE -ta -ta_LK -te -th -tr -uk -vi -zh_CN -zh_TW -zu"
CFLAGS="-pipe -march=native -mno-avx"
CXXFLAGS="-pipe -march=native -mno-avx"

storm ~ # 

Here you can see bindist included. To disable this for Firefox.

echo "www-client/firefox -bindist" >> /etc/portage/package.use
emerge --ask --update --deep --with-bdeps=y --newuse world
emerge --ask --depclean

This worked! Kind of.

I now have Firefox and not Aurora, but the same add-ons are still disabled.

Incompatible Firefox Extensions
Incompatible Firefox Extensions

This time with the message.

... is incompatible with Firefox 17.0.9

After some digging, it appears that version 17.0.9 is the current stable release. The three disabled plugin seem to be for more recent versions of Firefox.

Stable or Unstable?

As you can see from gentoo.org, version 17.0.9 is the current stable release and version 24.0-r1 is the current unstable release. If I want to get my add-ons working, I would need to do something like the below.

echo "www-client     ~amd64" >> /etc/portage/package.keyword
emerge --ask --update --deep --with-bdeps=y --newuse world
emerge --ask --depclean

Note, currently I’m not too fussed about these add-ons so will stick with the stable release for now.

Fix a Broken Gentoo Installation

Here is how I gain access to my broken environment…

mount /dev/mapper/vg--ssd-lv--root /mnt/gentoo/

mount -v /dev/mapper/vg--ssd-lv--boot /mnt/gentoo/boot/
mount -v /dev/mapper/vg--hdd-lv--home /mnt/gentoo/home/
mount -v /dev/mapper/vg--hdd-lv--var /mnt/gentoo/var/
mount -v /dev/mapper/vg--hdd-lv--usrportage /mnt/gentoo/usr/portage/
mount -v /dev/mapper/vg--hdd-lv--vhdd /mnt/gentoo/vhdd/
mount -t proc none /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev

ls /mnt/gentoo/ /mnt/gentoo/boot/ /mnt/gentoo/home/ /mnt/gentoo/var/ /mnt/gentoo/usr/portage/ /mnt/gentoo/vhdd/ /mnt/gentoo/proc /mnt/gentoo/sys /mnt/gentoo/dev

swapon -p 1 /dev/sdc1 && \
swapon -p 1 /dev/sdd1 && \
swapon -v -s

chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"

Fix what your gonna fix, un-mount and reboot. Fingers crossed!

umount -lv /mnt/gentoo/dev{/shm,/pts,}
umount -lv /mnt/gentoo{/boot,/proc,}

Gentoo: List of Issues After an Installation

Pretty much every time I install Gentoo I hit a new minor issue that requires my attention. Sometimes its caused by a new version of a particular package, sometimes I’ve simply forgot to configure something correctly. Either way, here is an on-going list of issues that I’ve faced after a new installation.

Networking Interfaces Renamed

The networking interfaces were renamed from eth0 to enp10s0 and enp09s0. While this did not make any difference as to whether or not they work, it is annoying!

storm ~ # ifconfig
enp10s0: flags=4163  mtu 1500
        inet  netmask  broadcast
        inet6 fe80::223:8cff:fe7b:5f0g  prefixlen 64  scopeid 0x20
        ether 00:23:8c:7b:5f:0g  txqueuelen 1000  (Ethernet)
        RX packets 2161  bytes 226082 (220.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 96  bytes 16270 (15.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp9s0: flags=4099  mtu 1500
        ether 00:21:7c:7b:60:ff  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


To fix, just run the following command (as root) and then reboot.

storm ~ #  touch /etc/udev/rules.d/80-net-name-slot.rules 

RAID Devices Renamed

The RAID devices work renamed from /dev/md0, /dev/md1 and /dev/md2 to /dev/md126, /dev/md127 and /dev/md128. Again they work, but quite annoying!


If you are affected by this issue (and it bothers you), you may need to alter your /etc/mdadm.conf file to include a map between the UUID and the device name. In which case you first need to make a note of the UUID, which you can find with mdadm --detail /dev/md126 and then add an entry similar to the below.

Obviously you need to make sure the right UUID matches the right device name!

nano /etc/mdadm.conf

ARRAY /dev/md0 uuid=bffb1668:11863a10:bf3af795:0aa37b76
ARRAY /dev/md1 uuid=147ec32e:2721ff1a:3769d3d6:285e5546
ARRAY /dev/md2 uuid=0a3417f5:885e6352:c56063cf:7cc765e3

You may also need to edit the /etc/genkernel.conf file.

nano /etc/genkernel.conf

And add the following if needed.


You still need to run the following. Pay close attention to the output to make sure it is picking up and using the /etc/mdadm.conf file.

genkernel --lvm --mdadm initramfs
grub2-mkconfig -o /boot/grub2/grub.cfg

Hopefully that worked! If you get strange output from watch cat /proc/mdstat, make sure you give it long enough time to sync.