This took me a while to get down — given the complexity introduced here in the number of possible locations for things to be configured at a user and global level — but I have been able to create desktop directory entries and have them appear in whiskermenu properly. I highly recommend not to use a tool sure as alacarte or xame, as they may introduce more complexity and complicate your configuration files to the point that they are impossible to edit and produce any results in your menu.
➜ ls /home/nick/.local/share/desktop-directories alacarte-made-1.directory chrome-apps.directory gps-apps.directory alacarte-made.directory development-apps.directory settings-apps.directory chat-apps.directory game-apps.directory
Here’s the contents of
game-apps.directory as an example to be followed for all the category files you create:
[Desktop Entry] Comment= Type=Directory Name=Games Icon=/home/nick/Pictures/icons/IconScanner/png/GameCenter.png
.menu files are stored in a subdirectory called
applications-merged because of the fact that I used various GUI tools to create my entries. Placing your
.menu files in the parent menus directory should suffice.
➜ ls /home/nick/.config/menus/applications-merged chat-apps.menu game-apps.menu theplatform-apps.menu xdg-desktop-menu-dummy.menu development-apps.menu gps-apps.menu user-chrome-apps.menu
The freedesktop .menu file looks as follows, for our games category example:
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd"> <Menu> <Name>Applications</Name> <Menu> <Name>game-apps</Name> <Directory>game-apps.directory</Directory> <Include> <Filename>American Truck Simulator.desktop</Filename> <Filename>steam.desktop</Filename> <Filename>m64py.desktop</Filename> <Filename>desmume.desktop</Filename> <Filename>dolphin-emu.desktop</Filename> <Filename>PPSSPP.desktop</Filename> <Filename>chrome-ikffjkehicicbeijfeneenheeijonfjc-Default.desktop</Filename> <Filename>flightgear.desktop</Filename> </Include> </Menu> </Menu>
*.desktop files must exist in an applications directory:
➜ ls /usr/share/applications | grep steam steam.desktop
and the contents of one should look something like
[Desktop Entry] Name=Steam Comment=Application for managing and playing games on Steam Exec=/usr/bin/steam %U Icon=steam Terminal=false Type=Application Categories=Network;FileTransfer;Game; MimeType=x-scheme-handler/steam; Exec=steam steam://open/friends
Finally, you will need to add an entry to a
.menu file similar to the following. My full menu file’s path is
/home/nick/.config/menus/xfce-applications.menu since I am using XFCE as my desktop environment:
<Menu> <Name>game-apps</Name> <Directory>game-apps.directory</Directory> <Layout> <Merge type="menus"/> <Filename>American Truck Simulator.desktop</Filename> <Filename>steam.desktop</Filename> <Separator/> <Filename>dolphin-emu.desktop</Filename> <Filename>desmume.desktop</Filename> <Filename>m64py.desktop</Filename> <Filename>PPSSPP.desktop</Filename> <Separator/> <Filename>flightgear.desktop</Filename> <Separator/> <Filename>chrome-ikffjkehicicbeijfeneenheeijonfjc-Default.desktop</Filename> <Merge type="files"/> </Layout> </Menu> <Layout> <Merge type="menus"/> <Menuname>game-apps</Menuname> </Layout> </Menu>
Marble is a Virtual Globe app that started as part of the KDE desktop environment that is now currently available for Linux (all flavors), Mac OS X, Windows, and Android. It has tons of features and definitely worth checking out for map and geography lovers out there!
Below we view the globe using a historical map from 1689 centered around North America. Interestly, California is depicted as an island, and the Pacific Northwest region of the United States and Canada, as well as Alaska and eastern Russia, is a big void in the map (not depicted).
A convenient little gui program for linux hardinfo provides several useful views of hardware information as well as benchmarks against some classic CPU models:
Share your results here! My CPU model is a 4th generation i7-4790K @ 4.40 GHz.
I have been unsuccessful in finding a permanent working solution for audio forwarding over NoMachine using an Arch Linux host. I had raised issues on both the Arch Linux Forums as well as the NoMachine Forums. A trouble report was created to track this issue.
I have found a temporary workaround which results in pulseaudio being successfully forwarded over NX, but it must be applied each time a NoMachine connection is established. It requires logging in as the superuser to be able to search through some NoMachine logins which are not viewable as the default user:
➜ su - Password: ➜ ➜ cd /usr/NX/var/log ➜ grep -r -n 'native.socket' . ./nxserver.log:1179:2016-08-18 11:40:53 805.980 14969 NXNODE WARNING! Could not load module native with name: /usr/NX/var/run/nxdevice/D-1001-CCDE160BF6050EDC229A1FDD4CB7FD12/audio/native.socket.
You should see a bunch of entries similar to the one above. The expected audio module at the specified location does not exist, but you can quickly create a symlink at that location pointing to
/run/user/1000/pulse/native assuming your default uid is 1000 using a command such as the follows:
ln -s /usr/NX/var/run/nxdevice/D-1001-CCDE160BF6050EDC229A1FDD4CB7FD12/audio/native.socket /run/user/1000/pulse/native
Check that your audio output isn’t muted or at low volume, and you should now be able to hear audio forwarded from the guest machine.
If anyone knows of a permanent solution, please share.
I’ve been trying to find a good equivalent for the popular iTerm2 app which can be used in place of the default OS X terminal emulator. Konsole is a great option, but it’s split window functionality is pretty bad. While it does allow one to have two different terminal tabs open in the same window, it by default creates a clone view into the current terminal tab, without an easy way to eliminate this duplicate “pointer” (that is a reference to C/C++ pointers, yes). There was a bug filed for getting that behavior fixed back in 2009, and even a fork implementation of Konsole in progress, but as of 2016, that project has all but been abandoned. Locally compiling and running this forked version of Konsole on a non-KDE environment didn’t result in very much (it ran, but it had only very basic terminal emulator functionality, and no way to split windows, which was the entire point).
While reading the thread about that bug on Konsole’s split window behavior, I came across a worthy alternative: Terminator, which was originally known as Gnome Terminal but has now been genericized to be non-GNOME-specific. And it actually works!
You can build it from the source code on launchpad or install via your distro’s package repositories. For Arch:
sudo pacman -S terminator
mate-desktop-1.15-gtk3 was added to the AUR (arch linux user repository) today. Of course, it’s still very experimental, but advanced users may be interested in giving it a test drive. I must say that I am pleased with what I have seen thus far, most notably that the MATE appearance/theme util now finally displays theme previews correctly!
See MATE desktop releases for official downloads.
axel is a command-line utility, similar to
wget. In fact,
axel can be substituted for
wget for the most part, sans the additional options it provides (and vice-versa).
It can be installed on OS X through
brew install axel
An anecdotal example seen in the screenshots below.
axel downloads a
11.38 GB file at a rate of
56.46 MB/sec, compared to
27.3 MB/sec with
wget. Of course, depending on numerous different factors, there may be little difference between the comparative download speeds, or even the opposite pattern.
It certainly does not hurt to have both tools in your toolkit! See also details of package axel on debian.org.
By default, JetBrains products (IntelliJ, WebStorm, etc) products default to a very small minimum (128 MB) and maximum (750 MB) Java Heap Space:
➜ ps aux | grep -i webstorm .. nick 22103 383 2.7 6838044 901056 .. /usr/lib/jvm/default/bin/java -agentlib:yjpagent-linux64=disablealloc,delay=10000,sessionname=WebStorm2016.2 -Xbootclasspath/a:/opt/webstorm-eap/bin/../lib/boot.jar -classpath /opt/webstorm-eap/bin/../lib/bootstrap.jar:/opt/webstorm-eap/bin/../lib/extensions.jar:/opt/webstorm-eap/bin/../lib/util.jar:/opt/webstorm-eap/bin/../lib/jdom.jar:/opt/webstorm-eap/bin/../lib/log4j.jar:/opt/webstorm-eap/bin/../lib/trove4j.jar:/opt/webstorm-eap/bin/../lib/jna.jar -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:MaxJavaStackTraceDepth=-1 -Dawt.useSystemAAFontSettings=lcd -Djb.vmOptionsFile=/opt/webstorm-eap/bin/webstorm64.vmoptions -XX:ErrorFile=/home/nick/java_error_in_WEBIDE_%p.log -XX:HeapDumpPath=/home/nick/java_error_in_WEBIDE.hprof -Djb.restart.code=88 -Didea.paths.selector=WebStorm2016.2 -Didea.platform.prefix=WebStorm com.intellij.idea.Main ..
Depending on the amount of memory (RAM) available on one’s machine, it may be desirable to bump up these values by simply modifying the appropriate *vmargs file. This will depend on one’s installation directory, which will vary by operating system. For me, running sudo vim /opt/webstorm-eap/bin/webstorm64.vmoptions and updating my JVM args as reflected below
-Xms8g -Xmx24g -XX:ReservedCodeCacheSize=1024m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:MaxJavaStackTraceDepth=-1 -Dawt.useSystemAAFontSettings=lcd
My machine has 32 GB of RAM, so much higher values were appropriate. I also bumped up the value for ReservedCodeCacheSize which has a maximum allowed value of 1024m. I will need to re-start WebStorm after making this change to the webstorm64.vmoptions file, but I should now see these parameters reflected in the running webstorm process that I can check as shown above in the initial step.
Webby allows the creation of web apps, similar to “Chrome Apps”, but does not run on Google Chrome or Chromium and uses less resources natively on Linux. It provides a simple interface for creating an viewing your Webby apps:
On Arch Linux, Webby can be installed through the AUR:
➜ yaourt webby 1 aur/webby-browser-bzr r9-1 [installed: r17-1] (2) (0.01) A webapp browser. ==> Enter n° of packages to be installed (ex: 1 2 3 or 1-3) ==> ------------------------------------------------------- ==> 1
See also an external blog on installing Webby on Ubuntu Linux. Note that Webby depends on GTK3+, so this may introduce dependency conflicts on Ubuntu.