Wed, 18 Nov 2009
The GDM Fiasco
A short trip to the history: for GNOME 2.22 (two years ago, in the Fedora 9 timeframe) someone decided that it would be nice to completely rewrite the GNOME display manager. So far so good, but they have decided to include this partially rewritten piece of crap without many important features (a display manager without XDMCP, WTF?) to the official GNOME and thus Fedora releases.
Fast forward to the present time: basically, for two years, GDM has not been usable for anything beyond a single-user desktop (I use xdm on my home dual-seat desktop, and we have replaced Fedora altogether in some of our computer labs partly because of GDM).
- It did not handle XDMCP (at least this one got fixed).
- There is still no way of setting the X server command line, making GDM unusable in multiseat configurations.
- It cannot be configured as XDMCP-only daemon without starting the local X server.
- The login window cannot be configured, and the way it works it is usable on a personal desktop, but definitely not in a computer lab with ~2200 accounts and users logging in on random hosts.
Apparently, somebody has started to work on solving at least some of the problems after all. But guess what? Instead of backing off quickly (say, before the Fedora 10 has been released), Fedora maintainers has ignored the problem despite many polite and even some profane requests to provide an upgrade to the latest working version (i.e. the Fedora 8 one). And now the answer is "wait for Fedora 13 (another half a year), we are probably going to fix it there". Without any hint of being sorry for forcing an utterly broken package to the users for two years and counting.
Tue, 31 Mar 2009
Is Ekiga Doomed?
I am more-or-less happy user of ekiga. However, with the latest GNOME release (or two), I am not sure about its future. The new GNOME contains a new instant messaging and voice-over-IP application, Empathy.
I have not tested Empathy yet, but the list of supported protocols look impressive. I wonder how complete this support is, however (like GPG in Jabber/XMPP, SIP call redirection, SIP from behind of NAT using STUN or proxy, etc). I am trying hard not to be a skeptic, but maybe ekiga will join the following list of doomed applications:
- GDM 2.1x
- The rewrite of GDM in Fedora 8 (not sure about version numbers now) took away most of the options (such as the X server command line, automatic login for single-user systems, XDMCP(!)), most of the features are not restored even now, year and half later.
- Sawmill/Sawfish
- It has been deprecated in favor of Metacity, which still cannot do such a simple thing like sending a window to the different workspace using
Ctrl+Alt+Rightand return back by releasing bothAltandRight, and pressing theLeftkey while still holding theCtrlkey. Metacity still requires theCtrlkey to be released first. - Galeon
- Has been deprecated in favor of Epiphany, which still plays catch up
with Galeon feature set (even with its
epiphany-extensionspackage, and despite of the fact the development of Galeon has been dormant for several years now).
I could probably name several other projects. May be this is a trend in GNOME: replace the existing full-featured apps with half-retarded new ones, just because you do not agree with architectural decisions of previous developers, or because (in the GDM case) you need one more feature (fast user switching) which is hard to do in the present code base. And then promise to implement all other features users are used to, and fail to fulfill the promise in several years. In the meantime, get your code merged to the GNOME code base, kicking the previous full-featured application out of it, making the life of its developers harder, and thus cause the development of it to slowly die off.
Mon, 30 Mar 2009
Firefox File Input
The daily user-interface annoyance award herby goes to the Firefox (or rather XULRunner,
which means this is present also in Galeon). The problem is in forms
in the <input type="file"> fields. It looks like this:
In Firefox and Galeon, it is impossible to write directly to this field. Which means that even if I already know the file name and can type it really fast, I have to click to the input field, wait for the file input dialog to pop up and get focus, and only then I can type the text in.
Is it possible to disable the pop-up (or make it appear only after clicking
on the Browse button)?
Wed, 28 May 2008
Browsers: Back to Square One
On Oct 15, 2005 i wrote about Galeon development slowing down, and I speculated that I would have needed to choose a new browser. With recent problems of Galeon in Fedora 9, I have decided to look at the current state of browsers again.
Firstly, Firefox: it is not a bad browser, the Firefox 3.0beta in Fedora 9 even feels much faster than Galeon. With some essential extensions it is almost usable: TreeStyleTab allows to have tabs vertically on the right side, and NewTabURL allows something other than a blank page to be displayed in newly opened tabs (I wonder why these two features are not included in the Firefox itself). FireGestures are even better than in Galeon: more configurable (not that I need that), but also the plugin displays the gesture. It also does not have a long-standing Galeon bug, where gestures do not work over an empty tab.
Now the bad part: I need a "middle button pastes the URL in new tab" functionality. It is much faster to have it on one click instead of having to open new tab manually beforehand. Another problem is that newly opened tabs do not inherit parent's history, so you cannot do Back in them. There is no way how to create a "smart bookmarks" toolbar (i.e. bookmarks with a wildcard in their URL, which are then displayed as input boxes). In Galeon, it is very convenient to have things like dictionaries, IS MU people search, Wikipedia, etc., each with separate input box. Moreover, in Galeon you can open the search results in a new tab by pressing Ctrl+Enter instead of Enter. The Firefox search inputbox is really a bad joke: the text entered there remains there, for example. So when you want to look up a new dictionary word, instead of just pasting it there you have to clear the previous search contents. Sometimes the NewTabURL stops working, so after opening a new tab I wait whether my home page gets loaded or not. Unread tabs are not displayed in a different color in the tab list. And finally, there is this bug, which makes saving and restoring session with multiple authenticated tabs next to impossible. Reported almost two years ago, and still unfixed.
As for Epiphany, it is a bit better: smart bookmarks are there, there is an extension for moving tabs to the right side (left side actually, but it can be trivially modified for the right side; I wonder why this is not in the main distribution - having two line Python plugin instead of a configuration option is really ugly). However, the gestures use a middle mouse button, and it clashes with possible future "paste URL in the new tab" functionality. Also the cookie manager is not as flexible as in Galeon and Firefox.
So after much experimenting and testing, actually using both Firefox and Epiphany for several days, I have decided to downgrade Galeon in my Fedora 9 to the one from Fedora 8, and I am back to square one. Galeon is still the best browser available, despite being in pure maintainance mode for two years. Both Firefox and Epiphany are getting better, but they still lack some functionality, not to mention having real bugs.
Fri, 07 Dec 2007
Ekiga, PulseAudio, and D-Bus
It seems that more and more applications start using D-Bus for communication, so it is time to get ones feet wet with the D-Bus programming. Fedora 8 has PulseAudio enabled by default, which conflicts with Ekiga because of this ALSA bug (see also the related PulseAudio issue).
My solution is to suspend the PulseAudio server temporarily when the call is being made. This has an additional effect that you don't need to find where the music player window is hidden in order to mute it (so something similar would be usable even later, after the above two issues are fixed).
Anyway, here is my Ekiga PulseAudio suspender.
Written in Perl, needs Net::DBus from CPAN,
and the pacmd(1) and notify-send(1) commands.
Run it on background from your session startup script (or even from the
terminal inside your desktop session). It will mute your PulseAudio server when the call is being received (or when an outgoing
call is being made), and enables it back after the call is finished.
Beware that ekiga is not compiled with D-Bus support in
Fedora 8. New source
and x86_64 binary
packages are available, problem reported as
bug #410471.
Comments are welcome.
Tue, 06 Nov 2007
XRandR
I have installed Fedora 8 on my
workstation. Everything works as expected, except the multihead support.
I am getting the "Requested Entity already in use!" error message.
The problem is that my xorg.conf uses two separate screens,
instead of one screen merged by XRandR extension (which is
apparently
the preferred way of doing dual-head now).
While not a bad thing per se, XRandR seems to be unusable for my dual head setup: I want the workspace switcher work separately for each head. With XRandR, there is only one big virtual screen area, so the workspace switcher switches both heads at once.
I think XRandR would be useful for my laptop which has 16:10 screen, so the aspect ratio for the external beamer would be different. Also, it could allow to see the lecture notes together with slides when doing a presentation. Here is a little RandR dualhead howto.
My dear lazyweb, does anybody know how to do a multi-screen setup (as opposed to one virtual screen area) in XRandR? For now, I have downgraded to the Fedora 7 version of the ATI driver, which works the way I want. Bug reported as #368531.
Mon, 17 Sep 2007
Command of the Day
I will probably show my own level of ignorance here, but let me show you an useful utility which can improve the integration of the command line and desktop:
Meet xclip,
a command-line utility for manipulating X11 selections from the command line.
If you wondered how text with tabs (such as diff(1) output)
could be copied and pasted using X11, here it is:
diff -u old.file new.file | xclip
There are more options (such as reading the selection from the command line). Hope this helps (seen in this article at KernelTrap).
Wed, 16 May 2007
Gnome Terminal
A command of the day is the following one:
gconftool-2 --set -t string /apps/gnome-terminal/keybindings/help disabled
From the usability point of view it is pretty annoying, when
gnome-terminal interprets the F1 key as
a command for opening the help window.
Firstly, a pretty straightforward application like this one
does not need any help for basic usage. And for the advanced usage,
the help is already accessible from the menu bar. And the second reason is
that the F1 key (which is rarely used itself) is located too
close to the often-used Escape key on most laptop keyboards.
It was rather annoying when in vim I've got the help window
instead of the Escape key.
Wed, 21 Feb 2007
Device Event Handler
An useless but nice hack of the day:
I have explored the udev rules a bit further - with udev, it is possible even to run a script when the device is created.
I wrote two simple scripts - one at home, where it loads images from
my camera after I plug the camera in, and stores them into my image repository.
The other at work - around 6:30pm, I download the main daily news from the
Czech radio station Radiožurnál, encode it to OGG/Vorbis, and when my Palm
is plugged in, the script started by udev copies the audio file
to the Palm. The rule itself is pretty simple:
$ cat /etc/udev/rules.d/60-palm-news.rules
KERNEL=="sd*1", SYSFS{serial}=="50xxxxxxxxxxxxxxxxxxxx39", \
SYSFS{product}=="palmOne Handheld", \
SYSFS{manufacturer}=="palmOne, Inc.", \
RUN+="/usr/local/sbin/news-to-palm"
The tricky part was to not interchange double "==" with the single "="
by accident, and using the "KERNEL" parameter (otherwise,
the script would be run for every virtual device along the path
(USB device, virtual SCSI controller of the mass storage device,
the whole USB disk, and finally every partition on that disk).
Another tricky part is to use device nodes from /dev/disk/by-uuid
in the mount(8) command, so that the device path remains the same
no matter which USB port I plug my PDA into, or what other mass storage
devices are currently plugged in.
As an user-friendly bonus, the "news-to-palm" script
uses notify-send to send a completion message over
D-bus
to inform me that I can unplug the PDA.
Update - Thu, 22 Feb 2007: More details
I forgot to mention some important tips:
- Sending a notification is done with the following command:
su kas -c 'DISPLAY=:0 notify-send "News" "News copied to Palm."'
This of course requires that the notification is being sent to user "kas", logged in at the ":0" display. In theory it should be possible to send the notification over the system d-bus (dbus-0), but I did not found a suitable parameter fornotify-send(1). - The parameters for the udev rule are easy to find. Just plug the device
in, find (looking at the
dmesg(8)output) the name of the special file the device currently uses (for example,/dev/sdb), and run the following command:$ udevinfo -a -p `udevinfo -q path -n /dev/sdb`
You can use theSYSFS{}parameters not only from the leaf (top-most) node, but from all nodes along the path.
Mon, 11 Dec 2006
3D Desktop
The Linux weekend was interesting even for me, altough the intended audience was people who are not familiar with Linux (I think this was an organizational mistake). One of the most interesting presentations was about the window manager named Beryl. At first I thought it was an interesting but useless eye-candy, but after discovering that there are Beryl packages in Fedora Extras, I have decided to give Beryl a try.
I have installed it on my laptop, which has a GPU supported by X.org even with 3D acceleration. It took me a nontrivial amount of time to configure it to do exactly what I want, but I was pretty surprised that things I want from a window manager are either doable with Beryl, or even are the Beryl's default behaviour. For example, I want to have a "maximize" button in the window decoration, which when pressed by the left mouse button maximizes the window, the middle button does a vertical maximize, and the right button does a horizontal maximize - this is exactly what Beryl does by default.
Beryl surely needs a further development: with the virtual desktop plane (as opposed to the desktop cube) there is no keyboard shortcut for "switch to the virtual desktop on the left and bring the currently focused window with me". Or the communication with the GNOME desktop switcher (the panel applet) is weak both with desktop cube and desktop plane.
I find it hard to think about the virtual desktops as "the desktop #1", "the desktop #2", etc. I have a 3x3 plane instead, and I think about the desktops as "the upper left desktop", or "the desktop on the left from the current one". So the desktop cube is not very usable for me, as I need many desktops (in fact I use virtual desktops instead of minimizing windows). On my primary workstation, I have 3x3 virtual desktops on each of my two monitors. However, on my home computer or on my laptop, where I don't work permanently, the desktop cube with four sides is pretty usable, and I went for Beryl on these two computers. On my primary workstation, Sawfish remains as the WM of choice.
So if you don't need many virtual desktops and have a supported GPU, give Beryl a try. I find it to be more than an eye-candy. Animated menus, for example, can simplify navigating on the desktop - it is immediately clear (by animation) where the !@$# pop-up menu came from.
Thu, 10 Aug 2006
Bluetooth File Transfer
Today I have spent some time trying to upload an image to Pavlína's phone - SonyEricsson T68i. I have succeeded, but it was not straightforward:
The positive side is, that on Fedora Core 5, the bluepin with D-Bus actually works, so it is possible to pair the devices inside the desktop environment, without writing the PIN to a config file. I have then tried gnokii to upload and download files, but without success. Gnokii supports T68i, it can identify it over Bluetooth (via a rfcomm link), but getting the list of files is not supported.
So I have tried OBEX file transfers. After some time I was able
to connect via obex_test, and receive an empty file
telecom/pb/0.vcf (from the examples found in the Web).
However, I still did not know how to send files, and under which names
(to which directories).
The next step was to use obex_push. I have misread the manpage,
and I thought the "channel" parameter is compulsory. But I did not know
the correct channel number. After a while, running obex_push
without any argument helped: it prints that it sends/receives files
on the channel #10. obex_push 10 phone:mac:addr /tmp/file.jpg
then did what I expected.
The phone did receive the image, but refused to display it. After some more googling, I have found the list of T68i supported image formats - the JPEG I sent to the phone was bigger than 640x480 pixels...
I have then moved on to explore the desktop features of Bluetooth.
gnome-bluetooth-manager can discover available devices
(one of my neighbors has a laptop and Nokia 6230i in visible mode ;-),
but did not do anything else, even when choosing "Properties" from the
menu. gnome-obex-send allows to choose the device to which
files are to be sent, but then unsuccessfully attempts to install an icon
and exits. Later I have found, that with
nautilus-sendto-bluetooth it is possible to send files with
Nautilus' right-click menu.
On the other hand, I managed to get the receiving side,
gnome-obex-server, working. It is just necessary to
set up the directory
to which files are to be uploaded.
So I think bluetooth file transfer more-or-less works, but the desktop part still needs to be improved.
Mon, 05 Jun 2006
Usability tests
Apparently Novell did usability tests of their GNOME desktop (I think I have already read about it in the Linux Journal or somewhere). Today I have managed to browse their results: interesting work, I must say. However, there was one thing that surprised me, and I wondered whether the researchers did have any basic knowledge of how UNIX works at all:
In the "Set time and date"
test, the test subjects' task was to adjust the date and time on the local
system. One of the main problems was that they were confused when the
time setting application prompted for the root password - they incorrectly
supposed that they have to log out from the whole session and then login back
as a superuser. So far OK, I would say "fix the appearance of the
password dialog of pam_timestamp (or whatever the responsible party is)".
However, the researchers' recommendation was: "Fix time and date settings to not require root access". WTF? This can be easily translated to "Make users log in as root by default", which is a behaviour of The Other OS, Which Should Not Be Named Here, and the behaviour which is often refered to as one of the main problems in the security of that OS. Bleeeh.
Wed, 26 Apr 2006
Japanese input methods
Yesterday I did some experiments with writing Japanese in Linux/GNOME. It turned out it was pretty straightforward and Fedora is well prepared for writing Japanese.
I have installed Fedora without Japanese support, and in order to be able to write Japanese texts, I had to install the following packages:
anthy Canna Canna-libs scim scim-anthy scim-libs
Then I have added Cannaserver to my system init scripts
(chkconfig canna on), added a Smart Common Input Method
server/applet to my .xsession (as scim -d),
and instructed X11 libs to use SCIM (in my .xsession):
export XMODIFIERS="@im=SCIM" export GTK_IM_MODULE="scim" export QT_IM_MODULE="scim"
Now, when I choose Japanese from the SCIM applet on my GNOME Panel, I can do the following:
- write Japanese pronnouncation in Latin, and get them transformed to Hiragana (the first screenshot)
- transform words in Hiragana to Kanji (using the spacebar)
- switch between Latin and Japanese using
Ctrl+j - switch between Hiragana, Katakana, half-width Katakana, and Latin using
Ctrl+<andCtrl+>
The input methods can surely do more, but for now it is sufficient for basic Japanese (definitely better than using the Character map tool :-).
Wed, 19 Apr 2006
Gnome User Share
In order to explore Avahi a bit further I have decided to find out how the file sharing with Avahi works. I was surprised how simple, elegant, and UNIXish it is:
There is only one simple app needed, the gnome-user-share package (already available in Fedora Core 5). It is then possible to enable and disable sharing (System -> Preferences -> Personal File Sharing), set up a password for reading and/or writing to the share, and that's it. Shared files should be put to the ~/Public directory, and they are immediately visible by other clients (either with Apple systems, or with Linux, using Computer -> Network in Nautilus).
It works the following way: gnome-user-share (which is a very tiny application - 80KB including several message catalogs), has its own minimal Apache configuration file, and it simply starts Apache on a random unprivileged port, with DocumentRoot in the user's ~/Public directory, and with only WebDAV supported. It then publishes the information about the share (name and port number) using Avahi. So the other users can see a new WebDAV share, and can read (and, if needed, also write) this directory. Nothing special, but it is very smart and elegant way to glue existing tools (Apache and Avahi) to do something completely new.
That said, it surely can be improved: the ~/Public directory (if not present) should be created on demand when user enables the sharing, and probably its icon should be placed on a desktop. The directory could also have a special item for disabling/enabling the share in its Properties, and maybe even two alternative icons showing the current state. Also the name of the share can be something better than login's public files (at least use the full name/GECOS field instead of the login name here).
Mon, 26 Dec 2005
Running tasks' icons
Yet another article from my "Desktop Rants" series. In the Good Old Days(tm) when there were no "desktop environments" per se, just a window manager with a bunch of apps, the window manager used on-desktop "icons" for minimized applications. Nowadays, probably inspired by MacOS, the icons on the desktop are used for files, directories, and application shortcuts instead. Minimized (or all?) applications were moved to a window list applet on the panel.
With this approach, minimized applications are not usable anymore. With the old-style on-desktop icons of minimized apps, user could distinguish between the icons of the same type from their location on the screen, something that is not possible anymore. Can you tell which terminal runs vim on my .profile?
In GNOME, I can no-longer minimze the applications in a sane way. So I have a huge virtual desktop (3x3 desktops on each of my two screens), and I just move to the next virtual desktop when starting a different work.
And there is another serious problem - some apps used to display an important status information in their icons and/or icon title (the song being played, availability of new security updates, etc.). In fact, some of those applications are designed to run minimized most of the time, and just display their status in the icon image or name. Only when the user action is needed (choosing a different album to play or actually installing a new security update), they can be unminimized, and their window appears.
So the desktop environments went one-step furher and one-step back at the same time - they introduced a "panel notification area", where some applications (such as rhn-applet or various music players) display their status. This is essentially an icon-box from older window managers, except that it isn't. Those icons are not first-class citizens anymore: not every application can have an icon there, it has to be explicitly written for it. Why something different than the old-style X11 window icon has to be chosen is beyond my reach. Fortunately, there is at least a freedesktop.org specification for these "almost-icons", so KDE apps can use mini-icons in the GNOME notification area and vice versa.

