Linux Software
This page lists and comments interesting software on Linux
Image Viewers
New
- Shotwell
- Fotoxx (supports .RAW import)
Reviews
- Comparison of image viewers on Wikipedia
- 10 Best Image Viewers for Linux - TechCityInc
- What is a good image viewer? « Linux Photography
- Recommends Ristretto for simple use case, and gThumb for more advanced uses.
Image Managers
- digiKam is an advanced digital photo management application for Linux, Windows, and Mac-OSX.
- F-Spot is a full-featured personal photo management application for the GNOME desktop
- User comment: Has apparently the bad habit to save files without notice...
- My comment: Extremely bad! Can't browse a complete folder with a simple click on a photo in the folder and can't access the full interface. Very slow. Crappy slideshow with fade-in fade-out that can't be disabled at first sight!
- XnView is a free software to view, organise, convert graphics and photos files or to create slide show, contact sheet, HTML pages.
Middle Solutions
- an image browser that features single click access to view images and move around the directory tree
- gThumb is an image viewer and browser for the GNOME Desktop.
- My comment: Very promising! Fast image viewer, easy browsing, can view all the photos in one folder by clicking a file in Nautilus, and then go back to the full interface (à la ACDSee).
- Gwenview is a fast and easy to use image viewer for KDE.
Simple Viewers
- Comix - GTK Comic Book Viewer
- Comix is a user-friendly, customizable image viewer. It is specifically designed to handle comic books, but also serves as a generic viewer.
- Eye of Gnome - The GNOME Image Viewer
- The Eye of GNOME image viewer is the official image viewer for the GNOME Desktop environment
- My comment: Interesting! Fast simple little image viewer. Default image viewer in GNOME.
- a fast and light Imlib2-based image viewer
- Tool focused on viewing very large collections of images at once, with smooth zooming from thumbnail down to original size
- Picasa from Google
- Picasa is free photo editing software from Google that makes your pictures look great.
- QIV - Quick Image Viewer
- ... is a very small and pretty fast gdk/lmlib image viewer
- user comment: very fast. looks very sparse to begin with, but has everything you need without cluttering up your display.
- My comment: Very interesting! Very fast command-line image viewer. Type
qiv -tf *
to view all photos in current folder in full screen mode and best-fit zoom. Press F1 for help.
- Ristretto is a fast and lightweight picture-viewer for the Xfce desktop environment
- The historical image viewer and editor for Linux
Image and photo editors
DarkTable
- Darktable (recommended by Gilles)
SmillaEnlarger
A magical image zoom utility
http://sourceforge.net/projects/imageenlarger/
sudo add-apt-repository ppa:dhor/myway
sudo apt-get update
sudo apt-get install smillaenlarger
Pinta
A simple yet powerful image editor.
Gimp
The most powerful editor on Linux, lots of feature. Only drawback is that it is quite difficult to master, even for basic operations.
pdfpc
On Ubuntu / Debian, the package is called pdf-presenter-console (just make sure that this package installs David Vilar's fork version).
Impressive
A Python app to display PDF document on screen, with nice transition effects, loop mode...
Web Tools
Web Developer Tools
Web Developer Tools includes
- Dean Edwards Javascript Compressor
- Css Minifier
- Css Button Generator
- Cool Button Generator
- RGB / HEX Color chart
- VTE Terminal
- WYSIWYG HTML 5 Editor
Diff Tools
Some GUI-based tools:
KDiff3
KDiff3 compares and merges 2 or 3 files or directories.
Meld
Meld is a visual diff and merge tool. You can compare two or three files and edit them in place (diffs update dynamically). You can compare two or three folders and launch file comparisons. You can browse and view a working copy from popular version control systems such such as CVS, Subversion, Bazaar-ng and Mercurial.
Diffuse
Diffuse is a small and simple text merge tool written in Python. With Diffuse, you can easily merge, edit, and review changes to your code.
diffuse file1 file2 file3 # Compare a Set of Files
diffuse -m # Review Local Changes or Fix Merge Conflicts
diffuse -r rev1 -r rev2 file # Compare Specific Revisions
diffuse -c rev file # Inspect a Revision
Some command-line based tools:
diff
The standard well-known diff tool.
colordiff
A diff wrapper written in Perl that adds color to diff output.
Search Tools
Links:
- An excellent review on TuxRadar.com on Google Desktop, Beagle, Recoll
See also Search tools on Windows
Beagle
Available in Ubuntu repository (package beagle). Open-source alternative to GD that had a very bad reputation of consuming lots of memory. According to TuxRadar.com's review, beagle is now excellent with complex search options.
Google Desktop
Available here for Linux. Tools from the famous search engine. According to TuxRadar.com's review, very fast but lack some additional filters.
locate / slocate / mlocate
locate (or its equivalent slocate and mlocate) build a database of filename, which can then be browsed rapidly to find files by name. Locate database is usually updated thanks to a cron script.
Mairix
Mairix is a powerful program for indexing and searching email messages stored in maildir, MH or mbox folders.
See Mail Tips on Yobi for setting up Mairix so that it replies to request via IMAP.
Recoll
Available in Ubuntu repository (package recoll). Favorite of TuxRadar.com's review, very very fast, very lightweight. Index can be build manually. Additional filters can be installed to support additional file types, support multiple indexes.
Personal review:
- (+) Quite fast query results
- (+) Can index IMAP Maildir directly, even attachments!
- (+) also return files matching similar keywords (stemming).
- (-) Indexing hangs on some .zip files (with 5G+ memory, and lot of swapping). Removed *.jar, *.zip, *.tgz, *.gz, *.tar from list of files to index.
- (-) Relevance low. Aggravated with the point above. Files with search keywords in the filename, or title, or at beginning of the file are not returned first. Stemming makes it even worse.
- Fix: From the documentation, stemming can be disabled by keyword if they are capitalized (like floor will find flooring, floored, but Floor will only return floor). Stemming can also be disabled from the menu.
- (-) No way to narrow down the results by PDF only or DOC only (both is considered text).
- Fix: Make a new query and add
ext:pdf
to restrict to PDF's.
- Fix: Make a new query and add
The version in Ubuntu universe repository is an old version. Install back-port repositories from launchpad.net as follows::
# This is not necessary anymore...
# gpg --keyserver keyserver.ubuntu.com --recv 9DA85604
# gpg --export --armor 9DA85604 | sudo apt-key add -
# gpg --keyserver keyserver.ubuntu.com --recv A0735AD0
# gpg --export --armor A0735AD0 | sudo apt-key add -
sudo add-apt-repository ppa:xapian-backports/ppa
# Old repository
# sudo add-apt-repository ppa:recoll-backports/ppa
# New repository
sudo add-apt-repository ppa:recoll-backports/recoll-1.15-on
sudo apt-get update
- The following recommended / suggested packages should be installed (to allow indexing office files, etc.)
sudo apt-get install antiword catdoc ghostscript libimage-exiftool-perl poppler-utils \
unrtf python-mutagen xsltproc untex pstotext python-chm
Some examples of queries (see [1]):
"foo bar" foo bar ext:pdf oracle filename:CRYPTO oracle filename:*CRYPTO* # idem filename:photo size>1M author:"john doe" Beatles OR Lennon Live OR Unplugged -potatoes dir:recoll dir:src -dir:utils -dir:common dir:recoll OR dir:src
Miscellaneous
Shutter
A feature-rich screenshot program
Gnome Terminator
A multipane terminal emulator based on Gnome Terminal.
Install it with
sudo add-apt-repository ppa:gnome-terminator # Not needed on Ubuntu Precise (part of Universe repo)
sudo apt-get update
sudo apt-get install terminator
- Terminator on GTK3
- See bug 1030562 (#101) to download package. But you still need to install package dependencies manually.
# Get terminator/gtk3 sources
sudo apt install bzr
bzr branch lp:terminator/gtk3
cd gtk3
# Apply latest patches
sudo apt install bzrtools
bzr patch <(wget -O - https://bugs.launchpad.net/terminator/+bug/1520377/+attachment/4526119/+files/terminator-1520377-stale-tab-title.patch)
bzr patch <(wget -O - https://bugs.launchpad.net/terminator/+bug/1522542/+attachment/4535308/+files/terminator-1522542-rotate.patch)
bzr patch <(wget -O - https://bugs.launchpad.net/terminator/+bug/1520969/+attachment/4633044/+files/terminator-1520969-distribute-evenly-v3.patch)
# Install dependencies
sudo apt build-dep terminator
sudo apt install gir1.2-keybinder-0.0 gir1.2-keybinder-3.0 libkeybinder-3.0-0 build-essential intltool libgtk-3-dev gobject-introspection libgirepository1.0-dev valac terminator
sudo apt install cdbs
# ... and quick fix for python-support
# (a better solution would be to apply https://wiki.debian.org/Python/TransitionToDHPython2)
sudo apt install dh-python
sudo ln -sf dh_python2 /usr/bin/dh_pysupport
# Change version and build
debchange --newversion 1.97~ppa3~local --distribution xenial-proposed "gtk3 branch with patches 1520377, 1522542, 1520969"
dpkg-buildpackage -rfakeroot -b -d
# Install
cd ..
sudo dpkg -i terminator_1.97~ppa3~local_all.deb
- My default configuration
- Tips
- Several solution to get a login shell with X-forwarding thru ssh:
- Either check Run command as a login shell
Start terminator withssh -f -n -q nxl67063ux terminator -f -l green
- Or
ssh -f hostname 'bash -l -c terminator&'
- Or
ssh -f hostname 'terminator -x bash -l&'
- Either check Run command as a login shell
- On Cygwin
- Copy C:\cygwin\bin\run.exe as C:\cygwin\bin\runpython.exe (wrapper, see
man run
). - Create windows shortcut by duplicating e.g. xterm shortcut and changing command to
C:\cygwin\bin\runpython.exe -p /usr/X11R6/bin /usr/bin/terminator --geometry=1435x860+0+0
- There is an icon at /usr/share/icons/hicolors/32x32/apps/terminator.png (convert to .ico with gimp)
- Add a new user environment variable DISPLAY = 127.0.0.1:0.0
- Configuration ~/.config/terminator/config:
[global_config]
[keybindings]
full_screen = <Alt>F11
[profiles]
[[default]]
use_system_font = False
login_shell = True
foreground_color = "#000000"
font = Bitstream Vera Sans Mono 9
background_color = "#ffffdd"
scrollback_infinite = True
[layouts]
[[default]]
[[[child1]]]
type = Terminal
parent = window0
[[[window0]]]
type = Window
parent = ""
[plugins]
4Pane
A multi-pane file manager: Add to /etc/apt/sources.list:
deb http://www.4pane.co.uk/ubuntu/ lucid universe
Add the key and install:
sudo apt-key adv --fetch-keys http://www.4pane.co.uk/4Pane.asc
sudo apt-get update
sudo apt-get install 4pane
Evince
Evince is gnome PDF viewer.
- Troubleshooting
- The following error message is due to apparmor (see bug 1016103) when using unusual location for /home directory (like /home being a symlink to /data/home).
(evince:11710): EggSMClient-WARNING **: Failed to connect to the session manager: None of the authentication protocols specified are supported (evince:11710): Gtk-WARNING **: Attempting to store changes into `/home/beq06659/.local/share/recently-used.xbel', but failed: Failed to create file '/home/beq06659/.local/share/recently- used.xbel.ZHHJ8W': Permission denied (evince:11710): Gtk-WARNING **: Attempting to set the permissions of `/home/beq06659/.local/share/recently-used.xbel', but failed: No such file or directory
- Fix the error by editing /etc/apparmor.d/tunables/home (see [2]), add the custom location for the home directory and restart apparmor (see [3]):
sudo vi /etc/apparmor.d/tunables/home # Edit line as follows:
# @{HOMEDIRS}=/home/ /data/home/
sudo invoke-rc.d apparmor reload # Reload apparmor config
Youtube-dl
Youtube-dl download videos from youtube.com or other video platforms.
To install, first install from the repository (this will install the necessary dependencies such as ffmpeg or avconv):
sudo apt-get install youtube-dl
To get an up-to-date version, download and install from git repository:
git clone https://github.com/rg3/youtube-dl.git
cd youtube-dl
./youtube-dl <link>
Usage:
youtube-dl <youtube-link>
youtube-dl --list-formats <youtube-link> # To view available formats
youtube-dl -f 135+bestaudio <youtube-link> # Download 854x480 video and merge with best audio format available
Disk Usage
Some disk usage report and monitoring tools.
Tools using treemaps:
- Baobab aka Gnome Disk Usage Analyser (package gnome-utils)
- gdmap
- kdirstat, very similar to WinDirStat under windows
Other GUI-based tools:
Command-line tools:
Audio File Tagger
EasyTAG aac
Can edit & download cover art.
Mp3tag
Probably the best audio file tagger under Windows. Works under Wine.
PuddleTag
As referenced on UbuntuGeek, PuddleTag looks like the ultimate choice for audio tagger under Linux. PuddleTag is inspired from Mp3tag.
Download the package from the website, and install it with:
sudo dpkg -i puddletag_0.9.11-1_all.deb
sudo apt-get install python-qt4 python-pyparsing python-mutagen python-configobj python-musicbrainz2
sudo apt-get -f install # Solve automatically unmet dependencies and install pending packages
Audio Players
foobar2000
foobar2000 is an advanced freeware audio player for the Windows platform. It also works on Linux under Wine
Amarok
The Media Player for the KDE desktop
Rhythmbox
Music player and organized for GNOME
Banshee
Media management and playback application for the GNOME desktop
MOC (Music on Console)
A terminal-based music player with an interface similar to Midnight Commander.
Video editors
Openshot
Simple tool for editing, transcoding video. Builtin profile for youtube video editing.
Games
Minecraft
- It is recommanded to use *SUN / ORACLE* java JRE' (see [4]).
- Download Minecraft.jar from download page and copy it into /usr/local/games/minecraft:
wget https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft.jar
- My startup script (note the lowercase to minecraft.jar, unlike what is indicated on the download page):
{{#fileanchor: launch-minecraft.sh}}
#! /bin/bash
# nohup $(dirname $0)/minecraft.jar >/dev/null&
WHICHJAVA=$(readlink -f $(which java))
if [[ $WHICHJAVA == *java-7-oracle* ]]; then
if [ "$(arch)" = "x86_64" ]; then
export LD_LIBRARY_PATH=${WHICHJAVA%%/bin/java}/lib/amd64
else
export LD_LIBRARY_PATH=${WHICHJAVA%%/bin/java}/lib/i386
fi
echo "LD_LIBRARY_PATH set to '$LD_LIBRARY_PATH'"
if ! [ -a "$LD_LIBRARY_PATH" ]; then
echo >&2 "'$LD_LIBRARY_PATH' not found. Is java correctly installed for this machine?"
exit 1
fi
fi
if [ -a /usr/bin/dropbox ]; then
# dropbox found - let's start and wait for it to Idle
# First, start it first if needed
if ! pgrep dropbox; then
dropbox start
for i in seq 1 5; do dropbox status; sleep 1; done
fi
# Wait for Idle state
while [ "$(dropbox status)" != "Idle" ]; do
dropbox status
sleep 2
done
fi
java -Xmx1024M -Xms512M -cp $(dirname $0)/minecraft.jar net.minecraft.LauncherFrame >/dev/null
exit 0
- My desktop script to copy to /usr/local/share/applications:
{{#fileanchor: minecraft.desktop}}
[Desktop Entry]
Version=1.2
Terminal=false
Exec=/usr/local/games/minecraft/launch-minecraft.sh
Icon=/usr/local/games/minecraft/minecraft-icon.png
Type=Application
Categories=Game;LogicGame;
Name=Minecraft
Comment=Play Minecraft !
- Copy minecraft-icon.png icon to /usr/local/games/minecraft.
- BLACK SCREEN after loging, due to LD_LIBRARY_PATH not defined (see [5])
export LD_LIBRARY_PATH=/usr/lib/jvm/java-7-oracle/jre/lib/amd64
Dropbox
- Use dropbox to sync saves, mods... between computers
- Install
sudo dpkg -i dropbox_....deb # pick i386 / amd64 as necessary
sudo apt-get install python-gpgme
dropbox start -i # As user that will play minecraft
Use custom username in offline instead of Player:
One can change the username that appears on multi-player servers as follow (only if they accept offline clients) (see [6]):
export LD_LIBRARY_PATH=/usr/lib/jvm/java-7-oracle/jre/lib/amd64 # adapt as necessary
java -Xms512m -Xmx1024m -cp "$HOME/.minecraft/bin/*" -Djava.library.path="$HOME/.minecraft/bin/natives" net.minecraft.client.Minecraft "$USERNAME"
Toboclic
- Create the following files /usr/local:
#! /bin/bash
TOBOCLIC=$(find /media -maxdepth 2 -path "/media/*/index.swf")
if [ -n "$TOBOCLIC" ]; then
firefox "$TOBOCLIC"
else
TOBOCLIC=$(find /media -maxdepth 2 -path "/media/*/*.swf")
if [ -n "$TOBOCLIC" ]; then
firefox "$TOBOCLIC"
fi
fi
[Desktop Entry]
Version=1.2
Terminal=false
Exec=/usr/local/games/toboclic/launch-toboclic.sh
Icon=/usr/local/games/toboclic/toboclic.ico
Type=Application
Categories=Game;
Name=Toboclic
Comment=Play with Toboclic!
- Note: if /usr/local/share/applications did not exist, it will not be scanned automatically unless reboot.
- The .desktop file requires an icon file at /usr/local/games/toboclic/toboclic.ico
- Mark these files as executable
sudo chmod a+x /usr/local/games/toboclic/launch-toboclic.sh
sudo chmod a+x /usr/local/share/applications/toboclic.desktop
Panda glGo
- Does not work anymore on Ubuntu 11.10 Oneiric 64-bit
- Requires packages
libsdl-image1.2 libsdl-ttf2.0-0
. Also this is a 32-bit package, so on amd64 architecture, it requires package ia32-libs). - Download the package from the website and install:
wget http://www.pandanet.co.jp/English/glGo/downloads/glGo-1.4.1.deb
sudo apt-get install libsdl-image1.2 libsdl-ttf2.0-0 libpython2.6
#on amd64 arch:
sudo ln -s libpython2.6.so.1.0 /usr/lib32/libpython2.5.so.1.0
#on i386 arch:
sudo ln -s libpython2.6.so.1.0 /usr/lib/libpython2.5.so.1.0
sudo dpkg -i --force-architecture glGo-1.4.1.deb
- Start
glGo
, and enter/usr/games/gnugo
for location of gnugo
Development
Oracle / Sun Java
Reference:
- https://help.ubuntu.com/community/Java
- http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html Easiest method to install Oracle Java 7 on Ubuntu Precise 12.04:
- On Oneiric and before:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
java -version
sudo update-java-alternatives -s java-7-oracle # If current java is not oracle's
sudo apt-get install oracle-java7-set-default # To set up env. var by default
sudo apt-get remove oracle-java7-installer # To *REMOVE*
# On Oneiric, we first need to add this repository since
# ... java is no longer in 'partner' repository
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
# Install SUN Java 6
sudo apt-get install sun-java6-jre
# Select SUN java as the default JRE:
sudo update-alternatives --config java
sudo update-alternatives --config javac