Posts Tagged ‘graphical environment’

deb Linux: How to add support for Bulgarian, Russian, Belarusian, Ukrainian, Serbian, Macedonian, Bosnian language cyrillic localization to Xfce, GNOME, KDE Desktop

Monday, March 18th, 2013

If just installed Ubuntu or Xubuntu and choose as a default language English by mistake and you happen to live in Bulgaria, Russia, Ukraine, Belarus or any other cyrillic speaking / writting country and you want to make the desktop graphical environment to display menus in mother language Cyrillic. Here is how;

To add cyrillic localization, native support in GUI environment for major Dsektop Graphic Environments (XFCE, GNOME, KDE …) run in terminal:

For Bulgarian Cyrillic language Desktop support:

linux:~# apt-get install language-pack-bg

Четене на списъците с пакети… Готово
Изграждане на дървото със зависимости      
Четене на информацията за състоянието… Готово
Следните допълнителни пакети ще бъдат инсталирани:
  firefox-locale-bg language-pack-bg-base
Следните НОВИ пакети ще бъдат инсталирани:
  firefox-locale-bg language-pack-bg language-pack-bg-base
0 актуализирани, 3 нови инсталирани, 0 за премахване и 2 без промяна.
Необходимо е да се изтеглят 0 B/1048 kB архиви.
След тази операция ще бъде използвано 3533 kB допълнително дисково пространство.
Искате ли да продължите [Y/n]? Y
Selecting previously unselected package language-pack-bg-base.
(Reading database … 287291 files and directories currently installed.)
Unpacking language-pack-bg-base (from …/language-pack-bg-base_1%3a12.04+20130128_all.deb) …
Selecting previously unselected package language-pack-bg.
Unpacking language-pack-bg (from …/language-pack-bg_1%3a12.04+20130128_all.deb) …
Selecting previously unselected package firefox-locale-bg.
Unpacking firefox-locale-bg (from …/firefox-locale-bg_19.0.2+build1-0ubuntu0.12.04.1_i386.deb) …
Processing triggers for software-center …
Updating software catalog…this may take a moment.
INFO:softwarecenter.db.pkginfo_impl.aptcache:aptcache.open()
Software catalog update was successful.
Инсталиране на firefox-locale-bg (19.0.2+build1-0ubuntu0.12.04.1) …
Инсталиране на language-pack-bg (1:12.04+20130128) …
Инсталиране на language-pack-bg-base (1:12.04+20130128) …
Generating locales…
  bg_BG.UTF-8… up-to-date
Generation complete.
 

Two packages language-pack-bg and language-pack-bg-base packages add to system localization files which in Linux are in the format of .mo files. Here is list of 2 packs file content:

 

linux:~# dpkg -L language-pack-bg

/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/language-pack-bg
/usr/share/doc/language-pack-bg/copyright
/usr/share/doc/language-pack-bg/changelog.gz
/usr/share/locale-langpack
 

 

linux:~# dpkg -L language-pack-bg-base

/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/language-pack-bg-base
/usr/share/doc/language-pack-bg-base/copyright
/usr/share/doc/language-pack-bg-base/changelog.gz
/usr/share/locale-langpack
/usr/share/locale-langpack/bg
/usr/share/locale-langpack/bg/LC_MESSAGES
/usr/share/locale-langpack/bg/LC_MESSAGES/Linux-PAM.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/pidgin.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/findutils.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/mutt.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/help2man.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/pppconfig.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/jade.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/recode.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/wdiff-gnulib.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/software-properties.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/grub.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/cracklib.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/ggzcore.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/libapt-inst1.4.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/system-service.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/gwibber-service-sohu.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/mlocate.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/lynx.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/dnsmasq.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/apparmorapplet.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/gettext-tools.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/binutils.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/hello.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/quota.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/ld.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/libvisual-0.4.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/friendly-recovery.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/gnupg2.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/git-gui.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/bash.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/apturl.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/sharutils.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/ubuntuone-control-panel.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/pulseaudio.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/hello-debhelper.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/hunspell.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/dctrl-tools.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/gwibber-service-sina.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/popt.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/powertop.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/xdiagnose.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/ubuntuone-client.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/gettext-runtime.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/debian-tasks.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/nano.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/lvm2.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/ecryptfs-utils.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/duplicity.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/ubuntu-wallpapers.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/dselect.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/debconf.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/mountall.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/JabberBot.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/net-tools.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/apport.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/libidn.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/newt.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/tar.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/gnupg.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/coreutils.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/make.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/libapt-pkg4.12.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/kerneloops.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/ldm.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/ufw.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/pidgin-libnotify.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/pppoeconf.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/acl.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/python-apt.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/gutenprint.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/MoinMoin.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/usbcreator.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/launchpad-integration.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/example-content.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/avahi.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/transmission-gtk.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/xkeyboard-config.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/dpkg-dev.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/libgpg-error.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/human-theme.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/grep.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/sane-backends.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/NetworkManager.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/libvirt.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/ubuntu-sso-client.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/app-install-data.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/dpkg.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/whois.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/system-config-kickstart.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/gprof.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/zeitgeist.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/shared-mime-info.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/virt-manager.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/bison-runtime.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/wget.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/quilt.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/command-not-found.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/jockey.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/attr.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/ltsp-login.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/kcm_gtk.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/alsa-utils.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/aspell.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/fetchmail.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/man-db-gnulib.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/devscripts.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/xscreensaver.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/unity-2d.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/compiz.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/apt.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/gODBCConfig.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/libc.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/plasma_applet_menubarapplet.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/update-manager.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/psmisc.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/screen-resolution-extra.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/unattended-upgrades.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/adduser.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/sysstat.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/checkbox.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/apt-listchanges.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/ubuntuone-installer.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/upstart.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/upower.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/tasksel.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/byobu.mo
/usr/share/locale-langpack/bg/LC_MESSAGES/language-selector.mo
/var
/var/lib
/var/lib/locales
/var/lib/locales/supported.d
/var/lib/locales/supported.d/bg
 

 

Above .mo files are  binary files, generated from plain text .po / .pod files. In free software OS .po files are the most common language translation files, where for each different language a set of .po files exist. Translators usually translate from English to respective language using a GUI text editor called poedit. Once translation is made from those .po files .mo binaries are generated and shipped as localizations for program or group of programs. Below is edit of one of Polish translation of lang file belonging to CUPS Printing service.

poedit gnu linux xubuntu screenshot editing cups .po language plain text file

Once .po files are created, generation of .mo files can be done in various way, however usually Linux system uses msgfmt - (compile message catalog to binary format). In order to generate .mo file out of lets say cups_pl.po;

hipo@linux:~$ msgfmt cups_pl.so
hipo@linux:~$ ls -al *.mo
-rw-rw-r-- 1 hipo hipo 31988 Mar 18 12:38 messages.mo

Anyways, here is how to add Cyrillic support for rest of Major cyrillic speaking countries, issue;

For Russian Cyrillic language Linux Desktop env support;

linux:~# apt-get install --yes language-pack-ru
...

For Belarusian Cyrillic Linux Desktop;

linux:~# apt-get install --yes language-pack-be

For Linux Desktop in Ukrainian;

linux:~# apt-get install --yes language-pack-uk

For Linux Desktop in Serbian language;

linux:~# apt-get install --yes language-pack-sr
...

For Graphic Environment in Macedonian;

linux:~# apt-get install --yes llanguage-pack-mk
...

For Linux GUI in Bosnian;

linux:~# apt-get install --yes language-pack-bs
...

For Kyrgyz language Linux localization;

linux:~# apt-get install --yes language-pack-ky

Whether, you are using Linux Desktop internationalization on some other Cyrillic related language, which I'm missing here please feel free to drop me a comment how you install it? I

 

Share this on

How to fix “ERROR 1577 (HY000) at line 1: Cannot proceed because system tables used by Event Scheduler were found damaged at server start”

Saturday, May 12th, 2012

After migrating databases data from FreeBSD MySQL 5.0.83 server to a Debian Squeeze Linux MySQL version 5.1.61, below is a mysql –version issued on both the FreeBSD and the Debian servers

freebsd# mysql --version
mysql Ver 14.12 Distrib 5.0.83, for portbld-freebsd7.2 (i386) using 5.2

debian:~# mysql --version
mysql Ver 14.14 Distrib 5.1.61, for debian-linux-gnu (i486) using readline 6.1

The data SQL dump from the FreeBSD server was dumped with following command arguments:

freebsd# mysqldump --opt --allow-keywords --add-drop-table --all-databases -u root -p > complete_db_dump.sql

Then I used sftp to transfer complete_db_dump.sql dump to the a brand new installed latest Debian Squeeze 6.0.2. The Debian server was installed using a "clean Debian install" without graphical environment with CD downloaded from debian.org's site.

On the Debian machine I imported the dump with command:

debian:~# mysq -u root -p < complete_db_dump.sql

Right After the dump was imported I re-started SQL server which was previously installed with:

debian:~# apt-get install mysql-server
The error I got after restarting the mysql server:

debian:~# #/etc/init.d/mysql restart

was:

ERROR 1577 (HY000) at line 1: Cannot proceed because system tables used by Event Scheduler were found damaged at server start
ERROR 1547 (HY000) at line 1: Column count of mysql.proc is wrong. Expected 20, found 16. The table is probably corrupted

This error cost me a lot of nerves and searching in google to solve. It took me like half an hour of serious googling ,until I finally found the FIX!!!:

debian:~# mysql_upgrade -u root -h localhost -p --verbose --force
Enter password:
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/var/run/mysqld/mysqld.sock' '--host=localhost'
Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/var/run/mysqld/mysqld.sock' '--host=localhost'
bible.holy_bible OK
bible.holybible OK
bible.quotes_meta OK

Afterwards finally I had to restart the mysql server once again in order to finally get rid of the shitty:

ERROR 1547 (HY000) at line 1: Column count of mysql.proc is wrong. Expected 20, found 16. The table is probably corrupted error!

debian:~# /etc/init.d/mysql restart
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..

This solved the insane Column count of mysql.proc is wrong. Expected 20, found 16 once and for all!

Before I came with this fix I tried all kind of forum suggested fixes like:

debian:~# mysql_upgrade -u root -p
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
This installation of MySQL is already upgraded to 5.1.61, use --force if you still need to run mysql_upgrade

debian:~# mysql_upgrade -p
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
This installation of MySQL is already upgraded to 5.1.61, use --force if you still need to run mysql_upgrade

And few more, none of them worked the only one that worked was:

debian:~# #mysql_upgrade -u root -h localhost -p --verbose --force

I have to say big thanks to Mats Lindth wonderful blog post which provided me with the solution.

It seems, since Oracle bought the Community edition of MySQL thinks with this database server are getting more and more messy and backwards incompatible day by day.
Lately, I'm experiencing too much hassles with MySQL version incompitabilities. Maybe I should think for migrating permanently to Postgre …

By the way the ERROR 1547 (HY000) at line 1: Column count of mysql.proc is wrong. is most probably caused of some kind of password hashing incompitability between the password hashing between the BSD and Debian SQL versions, as mysql -u root -p < dump.sql, does override default stored user passwords in the mysql database tables… Such password, hashing issues were common in prior MySQL 4 to MySQL 5 migrations I've done, however since MySQL 5+ is already storing its password strings encrypted with md5 encryption I wonder why on earth this mess happens ….
 

Share this on

Browse the web graphically in text console TTYs with w3m-img and links2 on Debian, Ubuntu, Fedora and CentOS Linux

Sunday, May 6th, 2012

links2 (links console graphics) www browser logo picture

Lately, I'm starting to use my tty consoles more and more. Most of the people should be probably aware of the existence of lynx, elinks and w3m text browsers enabling the console geeks to browse or debug web pages in plain text mode.

Anyhow, for people who did not used one of the aforementioned browsers to text brose the net I warmly suggest you give them a try. A good review on 'em is in one of my  previous post – Text mode console browsing with lynx, elinks, w3m and links text browsers

For people dedicated to only use console and text mode console on their Personal Computer, simply installing and using this text browsers will not allow you to view any images tags in the html.

Nowdays one of the reasons many people would decide not to use console for web is because they want to see pictures. Hence I believe by having the opportunity to have almost fully functional text browsing in Linux cosnole /  terminal many might choose not to bother with heavy resource consuming desktop browsers like Firefox, Google Chrome, Opera etc..

Another good reason why you might want to use a console browser instead of its Desktop resource monsters, would be improved efficiency of work. It is a well evident fact keyboard access to commands is always faster than mouse and GUI!

Besides that, I'm convinced there should be many hard core geeks out there, who still can happily live without Macromedia Flash ads and Videos in Web. For this group of users having support for graphical browsing in console is also a must.
Following my previous thoughts there should be many people who doesn't have a specific requirement for GUI programs but still use (mutt, ssh, vim, mpg321, zgv etc.).

I'm sure there are plenty of this people who do most of their work in text console and use the X windows server in conjunction with mimalistic graphical environment like (DropBox, XFCE …) for the one and only reason to view  pictures embedded in web pages.

I'm one of all this guys prior mentioned, keen on console tty browsing. Therefore while checking the available console browsers few days ago, I've stumbled on a text console w3m browser capable of displaying website with images in console called w3m-img.

w3m-img is displays pictures in web over a plain console tty or in X terminals (mlterm, xterm etc.).

Here is the description returned by apt-cache show w3m-img

debian:~# apt-cache show w3m-img|grep -i description -A 3
Description: inline image extension support utilities for w3m
w3m-img provides some utilities to support inline images for w3m
on terminal emulator in X Window System environments and Linux
framebuffer.

w3m-img doesn't rely on svgalib for displaying the pictures, but comes with its own written console image display & rendering library called w3mimgdisplay. – /usr/lib/w3m/w3mimgdisplay.

One w3m-img pre-requirement in order to be able to display pictures in plain text console ttys is to have the Linux kernel framebuffer enabled..

Actually, framebuffer is enabled by default on latest stable Debian and derivatives as well as on most other Linux releases as of time of writing.
Framebuffer is also active on other RPM based distros (Fedora, CentOS, SuSE) etc.

The Frambebuffer on or off is controlled via some directives added in grub or lilo configuration files – (depending on the installed boot loader).

Some people can only boot their PCs with the framebuffer kernel support switched off at boot time or the system will not boot Linux at all.
Unfortunately this unlucky ones, would not be able to use the picture rendering w3m-img capabilities but don't be desperate, there is hope :)

For people who can't run their Linux distro with a framebuffer kernel support enabled there is a custom hacked version of linksconsole text browser called links-graphic. links-graphic supports both console graphical text browsing using the framebuffer or alternatively svgalib as a console graphics render machine.

I used to be actively using links-graphics WWW browser quite often about 8 years ago and just remembering it brings me good memories of the good old console "hacking" years :)

Anyways, w3m-img packaged version is currently available for both rpm and deb based Linux distributions. Here is how to install on both.

1.Install and use w3m-img on Debian, Ubuntu, Mint Linux-es

debian:~# apt-get --yes install w3m-img
....

This should install w3m-img, if of course there is already no previous install of w3m package on the system.

In case you have the w3m deb installed, you will have to first remove the existing w3m installed version before installing the w3m-img package, otherwise you will probably end up with an installation conflict (at least I got such a dependency conflict while apt-getting). Probably the conflict would never occur if aptitude install w3m-img is used instead of apt ….

Usage of w3m-img is exactly the same as using the w3m text only browser version. Below is a screenshot example of w3m-img in action:

debian:~# w3m http://images.google.com

w3m-img text (console) browsing images.google.com screenshot

Jesus Christ Pantocrator Orthodox icon google image search screenshot Debian Squeeze Linux

As you can see in the upper screenshots w3m-img displays pictures pretty nice, whether even images.google.com search functionality works fine.

Generally IMHO a lot of pages looks cool with w3m-img.
Some elements placement during rendering, comes at odd positions but this is normal, since original w3m text browser doesn't have any support for Javascript 1 / 2.

For those people who would like to have both javascript basic support and images in a plain text console browsing you, again you will have to compile links2 WWW browser from source manually with svgalib support enabled.

2. Installing w3m-img to text-browse with images on Fedora, CentoS, RHEL, Redhat etc.

[root@centos ~]# yum -y install w3m-img
....

A very cool thing of w3m graphical console browser is it support  most major image formats including animated GIF files :)

The way animated GIFs are viewed is very old school, here is a notice extracted from README.img contained in the pack.
 

Notice
If you want to see GIF animation, please hit a suitable key, such
as 'h', 'l', etc., repeatedly, because a frame is rewritten
according to the re-drawing demand from w3m.
Some code in w3mimg/fb/fb.c was originally written by Mr. Yamasaki.

http://www.sainet.or.jp/~yamasaki/download/fb-sample.tar.gz

As one can read in order to see an animated GIF file with w3m you will have to keep pumping the h or l key or Enter key :D :D :D (like a nintendo game ain't it?)

Here is the also the complete list of Supported browser features mentioned in README.img
 

Support

* Display inline image (GIF,PNG,JPEG, etc.) on terminals
(xterm,rxvt, etc.) of X11 or Linux framebuffer device.
* Support inline image of img tag.
Support of attributes "width", "height", and "align".
* Direct display of image file which header is "Content-type: image/*"
* Support of
tag.
Support of attributes "shape" and "coords" of
tag.
* Support of an attribute "ismap" of img tag.
"w3m" adds coordinate of the cursor as ?, to url, and sends url.
* Support of an attribute "type=image" of img tag.
"w3m" sends coordinate of the cursor as .x=&.y=.
* Asynchronous loading of image files.
* Using cache of image file as pixmap.
* Support of GIF animation when use GdkPixbuf.

Something else which I find worthy to mention is the browser behaviour, whether a webpage has Adobe Flash .swf or .flv files embedded. If such files are contained in website source code, they will be simply ignored and the w3m keeps running stable (no strange flash crashes! hooray!).

While website with flash is opened in w3m, Adobe Flash's field on the screen shows either a blank rectangle or an empty square (depending on the site embedded flash banner dimensions and form).

W3m-Img text web browser with picture viewing support adobe flash enabled youtube.com opened screenshot

Stability of w3m in opening flash website is something really nice. I say this because I still remember how terrible the situation with links with svgalib support compiled in used to be. I remember back in the day with links2 most "flash enabled" websites lead the browser to a ugly core dump.

3. Install and use links2 on Debian and derivatives Linux to browse in console graphically with javascript support

As aforementioned, there is a hacked version of links browser called links-graphics
This hacked version is available as a package within Debian, Ubuntu and presumably most if not all of the rest deb based Linux repos.

On Fedora and the other RPM family Linuces links-graphics, should be downloaded separately as rpm and installed and is inavailable through default rpm repositories.

On Debian distros links-graphics is available by installing links2.
debian:~# apt-get install --yes links2
....

Later to start links2 in graphics mode in lets say tty1 on a machine booted its kernel with framebuffer support, type:

debian:~# links2 -driver fb http://images.google.com

Actually links2 looks, way better in console than w3m but this is quite normal, as links is way more "user friendly GUI text browser".

For those, using their console ttys without framebuffer enabled you can alternatively run links2 with its svgalib graphics support like so:

debian:~# links2 -driver svgalib -mode 320x200x16 http://images.google.com

links graphics / xlinks images in X window on Debian GNU / Linux screenshot

Note that the svgalib driver is not working on my machine, as my Linux kernel framebuffer is already enabled. Probably if I want to use links2 through  svgalib I will have to reboot and boot machine with framebuffer kernel support switched off…

links2 also supports X window graphics and is a great for Graphical environment WWW browser substitute to CPU intensive Iceweasel / Firefox or Google Chrome.

Links2 can be also used as a default browser in X windows (GUI) with any graphic manager. In my view it is   perfect web browser  for scientists and people who does not need support for Adobe Flash Player or HTML5 standards.

To use links in XFCE or GNOME Desktop env, the quickest way is to prepare new Application Launcher to run command:

debian:~# links2 -g

Google Images links2 graphics in GNOME desktop env screenshot

It is useful to use a quick alias to links -g in my ~/.bashrc in order to allow easier browsing from console by typing xlinks someurladdress.com

If you want to add this xlinks shell alias  exec:

debian:~# echo 'alias xlinks='links2 -g $1' >> ~/.bashrc

4. Install links with graphics console support on Fedora, CentOS and RHEL

[root@fedora ~]# cd /usr/local/src
[root@fedora src]# wget -q http://jakub.horky.net/rpm/links/links-2.1pre15-2/links-2.1pre15-2.i386.rpm
[root@fedora src]# rpm -ivh --nodeps links-2.1pre15-2/links-2.1pre15-2.i386.rpm
Preparing... ########################################### [100%]
Installing... ########################################### [100%]

If you get some errors with missing libraries after installing and launching links2, try to resolve them by manually linking them with ln cmd or look for the library package rpm versions and install them via yum. Another way is to fetch the links2 source from Links2 official website links.twibright.com and build from source.

Since the last time in 8 years ago I used links2,  it evolved a lot. The version now did not crash as before with flash websites are viewed.  Generally Links2 now is way more  stable.
To sum it up most people, will probably want to use Links2 for console graphical browsing as the speed and support for HTML and Javascript and web site formatting is way advanced than w3m-img

I haven't compared the speed of opening pages, but since w3m-img is html and graphics render is more simple than xlinks I suppose at some occasions w3m-img will be faster in site rendering.
However still links2 performs really light fast and its web page opening time is swift and more than good.. If xlinks opening performance is compared to most (if not all) traditional desktop browsers used nowdays Links2 will definitely beat them.

A good links2 application instead of a traditional desktop browser is also for people who aim at  improving website browsing time.

I haven't thoroughfully enough, researched on other text console grahic browser alternatives programs. If I miss something and you know amy other better ones please let me know.

Wish you a Happy Browsing ;)

Share this on

How to make screenshot in /dev/tty console on GNU / Linux – Taking picture JPEG / PNG snapshot of text console in systems without graphical environment

Monday, April 30th, 2012

I'm used to making picture screenshots in GNOME desktop environment. As I've said in my prior posts, I'm starting to return to my old habits of using console ttys for regular daily jobs in order to increase my work efficiency. In that manner of thoughts sometimes I need to take a screenshot of what I'm seeing in my physical (TTY consoles) to be able to later reuse this. I did some experimenting and this is how this article got born.

In this post, I will shortly explain how a picture of a command running in console or terminal in GNU / Linux can be made

Before proceeding to the core of the article, I will say few words on ttys as I believe they might be helpful someone.
The abbreviation of tty comes after TeleTYpewritter phrase and is dating back somewhere near the 1960s. The TTY was invented to help people with impaired eyesight or hearing to use a telephone like typing interface.

In Unix / Linux / BSD ttys are the physical consoles, where one logs in (typing in his user/password). There are physical ttys and virtual vtys in today *nixes. Today ttys, are used everywhere in a modern Unixes or Unix like operating system with or without graphical environments.
Various Linux distributions have different number of physical consoles (TTYs) (terminals connected to standard output) and this depends mostly on the distro major contributors, developers or surrounding OS community philosophy.
Most modern Linux distributions have at least 5 to 7 physical ttys. Some Linux distributions like Debian for instance as of time of writting this, had 7 active by default physical consoles.
Adding 3 more ttys in Debian / Ubuntu Linux is done by adding the following lines in /etc/inittab:
 

7:23:respawn:/sbin/getty 38400 tty7
8:23:respawn:/sbin/getty 38400 tty8
9:23:respawn:/sbin/getty 38400 tty9

On some Linux distributions like Fedora version 9 and newer ones, new ttys can no longer be added via /etc/inittab,as the RedHat guys changed it for some weird reason, but I guess this is too broad issue to discuss ….

In graphical environments ttys are called methaphorically "virtual". For instance in gnome-terminal or while connecting to a remote SSH server, a common tty naming would be /dev/pts/8 etc.

tty command in Linux and BSDs can be used to learn which tty, one is operating in.

Here is output from my tty command, issued on 3rd TTY (ALT+F3) on my notebook:
 

noah:~# tty
/dev/tty3

A tty cmd output from mlterm GUI terminal is like so:
 

hipo@noah:~$ tty/dev/pts/9

Now as mentioned few basic things on ttys I will proceed further to explain how I managed to:

a) Take screenshot of a plain text tty screen into .txt file format
b) take a (picture) JPG / PNG screenshot of my Linux TTY consoles content

1. Take screenshot of plain text tty screen into a plain (ASCII) .txt file:

To take a screenshot of tty1, tty2 and tty3 text consoles in a txt plain text format, cat + a standard UNIX redirect is all necessery:
 

noah:~# cat /dev/vcs1 > /home/hipo/tty1_text_screenshot.txt
noah:~# cat /dev/vcs2 > /home/hipo/tty2_text_screenshot.txt
noah:~# cat /dev/vcs3 > /home/hipo/tty3_text_screenshot.txt

This will dump the text content of the console into the respective files, if however you try to dump an ncurses library like text interactive interfaces you will end up with a bunch of unreadable mess.
In order to read the produced text 'shots' onwards less command can be used …
 

noah:~# less /home/hipo/tty1_text_screenshot.txt
noah:~# less /home/hipo/tty2_text_screenshot.txt
noah:~# less /home/hipo/tty3_text_screenshot.txt

2. Take picture JPG / PNG snapshot of Linux TTY console content

To take a screenshot of my notebook tty consoles I had to first install a "third party program" snapscreenshot . There is no deb / rpm package available as of time of writting this post for the 4 major desktop linux distributions Ubuntu, Debian, Fedora and Slackware.
Hence to install snapscreenshot,I had to manually download the latest program tar ball source and compile e.g.:
 

noah:~# cd /usr/local/src
noah:/usr/local/src# wget -q http://bisqwit.iki.fi/src/arch/snapscreenshot-1.0.14.3.tar.bz2
noah:/usr/local/src# tar -jxvvvf snapscreenshot-1.0.14.3.tar.bz2

noah:/usr/local/src# cd snapscreenshot-1.0.14.3
noah:/usr/local/src/snapscreenshot-1.0.14# ./configure && make && make install
Configuring…
Fine. Done. make.
make: Nothing to be done for `all'.
if [ ! "/usr/local/bin" = "" ]; then mkdir –parents /usr/local/bin 2>/dev/null; mkdir /usr/local/bin 2>/dev/null; \
for s in snapscreenshot ""; do if [ ! "$s" = "" ]; then \
install -c -s -o bin -g bin -m 755 "$s" /usr/local/bin/"$s";fi;\
done; \
fi; \
if [ ! "/usr/local/man" = "" ]; then mkdir –parents /usr/local/man 2>/dev/null; mkdir /usr/local/man 2>/dev/null; \
for s in snapscreenshot.1 ""; do if [ ! "$s" = "" ]; then \
install -m 644 "$s" /usr/local/man/man"`echo "$s"|sed 's/.*\.//'`"/"$s";fi;\
done; \
fi

By default snapscreenshot command is made to take screenshot in a tga image format, this format is readable by most picture viewing programs available today, however it is not too common and not so standartized for the web as the JPEG and PNG.
Therefore to make the text console tty snapshot taken in PNG or JPEG one needs to use ImageMagick's convert tool. The convert example is also shown in snapscreenshot manual page Example section.

To take a .png image format screenshot of lets say Midnight Commander interactive console file manager running in console tty1, I used the command:
 

noah:/home/hipo# snapscreenshot -c1 -x1 > ~/console-screenshot.tga && convert ~/console-screenshot.tga console-screenshot.png

Linux text console tty mc screenshot with snapscreenshot terminal / console snapshotting program

Note that you need to have read/write permissions to the /dev/vcs* otherwise the snapscreenshot will be unable to read the tty and produce an error:
 

hipo@noah:~/Desktop$ snapscreenshot -c2 -x1 > snap.tga && convert snap.tga snap.pngGeometry will be: 1x2Reading font…/dev/console: Permission denied

To take simultaneous picture screenshot of everything contained in all text consoles, ranging from tty1 to tty5, issue:
 

noah:/home/hipo# snapscreenshot -c5 -x1 > ~/console-screenshot.tga && convert ~/console-screenshot.tga console-screenshot.png

Here is a resized 480×320 pixels version of the original screenshot the command produces:

All text Consoles tty1 to tty5 merged screenshot png image with snapscreenshot taken on Debian GNU / Linux

Storing a picture shot of the text (console) screen in JPEG (JPG) format is done analogously just the convert command output extension has to be changed to jpeg i.e.:
 

noah:/home/hipo# snapscreenshot -c5 -x1 > ~/console-screenshot.tga && convert ~/console-screenshot.tga console-screenshot.jpeg

I've also written a tiny wrapper shell script, to facilitate myself picture picture taking as I didn't like to type each time I want to take a screenshot of a tty the above long line.

Here is the wrapper script I wrote:
 

#!/bin/sh
### Config
# .tga produced file name
output_f_name='console-screenshot.tga';
# gets current date
cur_date=$(date +%d_%m_%Y|sed -e 's/^ *//');
# png output f name
png_f_name="console-screenshot-$cur_date.png";
### END Config
snapscreenshot -c$arg1 -x1 > $output_f_name && convert $output_f_name $png_f_name;
echo "Output png screenshot from tty1 console produced in";
echo "$PWD/$png_f_name";
/bin/rm -f $output_f_name;

You can also download my console-screenshot.sh snapscreenshot wrapper script here

The script is quite simplistic to use, it takes just one argument which is the number of the tty you would like to screenshot.
To use my script download it in /usr/local/bin and set it executable flag:
 

noah:~# cd /usr/local/bin
noah:/usr/local/bin# wget -q http://www.pc-freak.net/~bshscr/console-screenshot.sh
noah:/usr/local/bin# chmod +x console-screenshot.sh

Onwards to use the script to snapshot console terminal (tty1) type:
 

noan:~# console-screenshot.sh

I've made also mirror of latest version of snapscreenshot-1.0.14.3.tar.bz2 here just in case this nice little program disappears from the net in future times.

 

Share this on

How to make screenshots on Slackware Linux with XFCE graphical environment

Thursday, February 23rd, 2012

1. Install the slackware binary package xfce4-screenshooter.

For the latest Slackware Linux release which as of time of writting is 13.37 xfce4-screenshooter-1.7.9-i486-3sl.txz can be download from here

Install of xfce4-screenshooter-1.7.9-i486-3sl.txz is done with slackware's usual installpkg package manager command:

bash-4.1# /sbin/installpkg xfce4-screenshooter-1.7.9-i486-3sl.txz

By the way, I haven't used slackware for a long time so in the mean time since Slackware 13, the default slackware packages format .tgz is now substituted with the newer .txz (better compressed .txz). The old .tgz was simply a tar archive with DEFLATE gzip. The newer .txz packages bundled with newer slackware releases are using the LZMA2 (XZ) chain algorithm for compression. LZMA implies higher compression than even bzip2 and this is the reason why Patrick Volkerding – the one man army man behind Slackware decided to use it.
The reason Vollerding choose using .txz is slackware network distribution will load up less the networks and will take less time for downloading extra slackware packages via the internet. The .txz also reduces slackware main CD size so more packages can be contained in the same 700MB sized slack install CD.

Anyways now back to the installation of xfce-screenshooter.

Once installed to runit use the Xfce menus:

Xfce Menu -> Accesories -> Screenshot

Next you will see the xfce-screenshooter program to pop-up:

To take a snapshot of the screen use:

Entire Screen -> Save

XFCE screenshooter Slackware Linux take a screenshot dialog

XFCE screenshooter Slackware Linux action Save
 

Share this on

How to set applications (programs) Autorun on XFCE in Xubuntu Linux

Monday, January 16th, 2012

I needed to set TeamViewer to autorun, each and every startup on one Xubuntu Linux

Xubuntu is running by default with Xfce 4 . Xfce is a sort of a very liteweight GNOME like graphical environment.

In Gnome the way that is through invoking the gnome-session-manager .

In Xfce the command is almost analogous doing changes is done by running:

user@xubuntu:~$ xfce4-session-manager

XFce session manager Xubuntu Linux screenshot
Further on simply use the Add button to add applications to load each time user (opens xfce session) / logs in.
Cheers ;)

Share this on

How to mount ISO image files in Graphical Environment (GUI) on Ubuntu and Debian GNU/Linux

Saturday, January 14th, 2012

Mounting ISO files in Linux is easy with mount cmd, however remembering the exact command one has to issue is a hard task because mounting ISO files is not a common task.

Mounting ISO files directly by clicking on the ISO file is very nice, especially for lazy people uninitiated with the command line ;)

Besides that I'm sure many Windows users are curious if there is an equivallent program to DaemonTools for Linux / BSD*?

The answer to this question is YES!
There are two major programs which can be used as a DaemonTools substitute on Linux:

These are FuriousISOMount and AcetoneISO
AcetoneISO is more known and I've used it some long time ago and if I'm correct it used to be one of the first ISO Mount GUI programs for Linux. There is a project called GMount-ISO / (GMountISO) which of the time of writting this article seems to be dead (at least I couldn't find the source code).

Luckily FuriousISOMount and AcetoneISO are pretty easy to install and either one of the two is nowdays existing in most Linux distributions.
Probably the programs can also be easily run on BSD platform also quite easily using bsd linux emulation.
If someone has tried something to mount GUIs in Free/Net/OpenBSD, I'll be interesting to hear how?

1. Mount ISO files GUI in GNOME with Furius ISO Mount

FuriousISOMount is a simple Gtk+ interface to mount -t iso9660 -o loop command.

To start using the program on Debian / Ubuntu install with apt;

debian:~# apt-get install furiusisomount
The following extra packages will be installed:
fuseiso fuseiso9660 libumlib0
The following NEW packages will be installed:
furiusisomount fuseiso fuseiso9660 libumlib0

To access the program in GNOME after install use;

Applications -> Accessories -> Furious ISO Mount

Screenshot ISO Mount Tool Debian GNU/Linux Screenshot
 

When mounting it is important to choose Loop option to mount the iso instead of Fuse

After the program is installed to associate the (.iso) ISO files, to permanently be opened with furiusisomount roll over the .iso file and choose Open With -> Other Application -> (Use a custom command) -> furiusisomount

GNOME Open with menu Debian GNU / Linux

2. Mount ISO Files in KDE Graphical Environment with AcetoneISO

AcetoneISO is build on top of KDE's QT library and isway more feature rich than furiousisomount.
Installing AcetoneISO Ubuntu and Debian is done with:

debian:~# apt-get install acetoneiso
The following NEW packages will be installed:
acetoneiso gnupg-agent gnupg2 libksba8 pinentry-gtk2 pinentry-qt4
0 upgraded, 6 newly installed, 0 to remove and 35 not upgraded.
Need to get 3,963 kB of archives.
After this operation, 8,974 kB of additional disk space will be used.
...

Screenshot Furius ISO Mount Tool Debian GNU/Linux ScreenShot

AcetoneISO supports:
 

  • conversion between different ISO formats
  • burn images to disc
  • split ISO image volumes
  • encrypt images
  • extract password protected files

Complete list of the rich functionality AcetoneISO offers is to be found on http://www.acetoneteam.org/viewpage.php?page_id=6
To start the program via the GNOME menus use;

Applications -> Accessories -> Sound & Video -> AcetoneISO

I personally don't like AcetoneISO as I'm not a KDE user and I see the functionality this program offers as to rich and mostly unnecessery for the simple purpose of mounting an ISO.

3. Mount ISO image files using the mount command

If you're a console guy and still prefer mounting ISO with the mount command instead of using fancy gui stuff use:

# mount -t iso9660 -o loop /home/binary/someiso.iso /home/username/Iso_Directory_Name

 

Share this on