Tag: solved

I've been doing a lot of writing in Microsoft Word lately (there are others working on the same document and LibreOffice Writer can't seem to get it right), so I've been living in Windows-world. Yesterday I needed to access an R package that is UNIX-only apparently (heR.Misc - really? No Windows binaries?) and was greeted by Scientific Linux with some updates to take care of. Most of the updates installed fine, but five did not. The five that did not were all related to Qpid (packages like qpid-cpp-client). These could not be installed because yum could not resolve some dependency issues. Apparently the issue was that these updates were related in some way to the matahari package, which was deprecated by Red Hat (according to this forum post at least). A quick sudo yum remove matahari in the terminal and the updates installed correctly.

I figured while I was updating software that I would try to get an Aero Snap-like feature working in Linux. As much as I like the stability of Linux, I dislike the lack of some should-be-standard features in GNOME. In Windows 7, there are some great features like Aero Snap (automatically half-maximize windows) and windows grouped on the taskbar. CompizFusion can... somewhat perform these features, but not with the polish and consistency that I've come to expect.

I just care about my computer supporting my productivity, and I am therefore not attached to any particular window environment. KDE 4 seems to have implemented some of these features without the use of add-ons, so I figured that I would give it a try. However, installing KDE using YUM wasn't immediately obvious. Searching for "kde" resulted in tons of packages, but none seemed to be a wrapper for the entire environment. Eventually I went to the command line and executed (as root):

yum groupinstall "KDE desktop"

However, I should have realized that Scientific Linux doesn't have the latest, greatest packages. The KDE that was installed was version 4.3 and... didn't do what I wanted it to. I promptly switched back to GNOME and started playing around with CompizFusion.

Long story short, I got frustrated and gave up for the time being. I am determined to get this to work, but I don't have the time to devote to it right this second. I think this is where things went wrong: I wanted to uninstall KDE and did

yum groupremove "KDE desktop"

which uninstalled all KDE-related packages and not just the ones that had been installed above (I had previously installed some packages like kdegraphics which contains Okular (a great PDF reader)). While I would like to figure out how to remove an entire group except for certain packages, that's something to solve later. No big deal, I didn't use them much and could always add them back later. I rebooted my computer to complete some updates and...

No internet when it came back. The GNOME panel icon was just... gone. Now, my first instinct was to search the internet for related issues. I was able to get online by plugging in an ethernet cable and running, as root,

ifconfig eth0 updhclient eth0

This gave me wired internet, though Yum Extender didn't want to believe it had internet. I ended up having to run from the terminal

yumex --root

to be able to install packages.

Most of the resources I found related to Ubuntu which can be rather different from Scientific Linux/CentOS/RHEL. I tried to see if the network manager was still installed by running

I spent way too long reinstalling NetworkManager when that was never my issue. What it turned out to be was the program nm-applet was missing (uninstalled at some point), and I just needed to (re)install the package NetworkManager-gnome.

That was a headache that was mostly my fault, but the lack of solid documentation (and vague search terms like "gnome internet icon missing") made this difficult to figure out. Maybe putting all of these search terms in one place will help other people.

As an aside, my school (UF) now offers Red Hat Enterprise Linux to students... and I am toying with the idea of switching from Scientific Linux to RHEL. However, UF is running RHEL 6.1 and I'm running SL 6.2, and I would prefer to not do a clean install. Unsurprisingly, Red Hat does not support cross-grading (I asked), and I don't want to fiddle with a simultaneous cross/downgrade. Though I must say, the support would be nice for situations like this...

In an earlier post I had mentioned that I didn't know how to highlight source code in blog posts (syntax highlighting) or even offset code with a monospace font/typeface. Apparently, this is a feature of WordPress.com that I didn't know about, and is available as a plugin called SyntaxHighlighter Evolved for WordPress.org. I installed it, and it seems to do what I want. It supports a variety of languages, but not all that I use (for instance R is supported but not SAS). I'll keep my eyes open for a different plugin, but this works for now.

Of course, if one doesn't want or care about the syntax highlighting, then <pre> and <code> tags should suffice. A useful post from StackOverflow concerning some subtleties of the tags is here.

While I've used Windows since the DOS era, I've also used Mac OS and Unix-like systems for nearly as long. One of the biggest features from Unix-like systems that I miss in Windows is Focus Follows Mouse (FFM).

Essentially, FFM is this: whichever window the mouse pointer is over is the window that the mouse can interact with, irrespective of whether the window is the active window for the keyboard or not. This is really useful when using two (or more windows), one of which requires scrolling and the other is used for typing. If your system has FFM, then you can type in one window and scroll the other with no need to switch between them. It may seem like a subtle feature (and it is), but it is also a boon for productivity.

Under Windows XP, I had enabled FFM using the TweakUI PowerToy. This same solution is unavailable in Windows 7.

For Windows 7, there seem to be three solutions available: using Windows 7's accessibility options, changing the registry, and a small, open source tool.

Ease of Access Center in the Control Panel

If one goes to the Ease of Access Center in the Control panel and selects "Make the mouse easier to use", there is an option labeled "Activate a window by hovering over it with the mouse." If this option is selected, an FFM-like use is enabled.

Cons: This method is pretty far from true FFM. When the mouse hovers over a window, not only does it become the active window as far as the keyboard is concerned, but it is also brought to the front of all other windows. This is not always desirable, and is not what I want.

Registry Hack

While looking for a solution to enabling FFM on Windows, I came across a blog post detailing the use of a registry hack as a work-around. I won't detail the steps here as they are available through the link, and I think this solution is inferior to the one below. (That page also talks about TweakUI for Windows XP, but I had used that before finding the above blog.)

Pros: Hovering over a window with the mouse makes it the active window (not exactly what we want) but without bringing the window to the front (closer to what we want).

Cons: This still changes the active window with respect to the keyboard in addition to the mouse, so typing in the original window isn't possible while the mouse is in the window we want to scroll. Moreover, editing the registry is somewhat complex and may deter some users from using this approach. Rebooting is also required for the changes to take effect.

X-Mouse Controls

The best solution that I've found is a program called X-Mouse Controls. It is a stand-alone program that allows one to enable hovering the mouse and select a delay (in milliseconds) without having to fiddle with the registry. There is no install necessary, and it gets the job done. Bonus points for the program being open source (GPL version 3).

Pros: Hovering over a window with the mouse makes it the active window (not exactly what we want) but without bringing the window to the front (closer to what we want). The open-source tool is easy to use, and rebooting the system isn't required.

Cons: This still changes the active window with respect to the keyboard in addition to the mouse, so typing in the original window isn't possible while the mouse is in the window we want to scroll. (This is the same con as the Registry Hack.)

X-Mouse Controls seems like the best solution thus far, but it is certainly not true Focus Follows Mouse: each of these solutions makes the window the mouse is in active, so the keyboard will type in that window. In Linux, the mouse can scroll a window while the keyboard types in a separate window. The pseudo-FFM solutions here work pretty well with dual monitors, but it bears mentioning that this behavior is sometimes erratic (I've noticed this mostly when using multiple Java windows of different sizes stacked on a single monitor). Fortunately, with X-Mouse Controls enabling/disabling the pseudo-FFM is a breeze.

It's no secret that Linux doesn't have the same level of hardware support as Windows. In some cases, Linux systems can be run where Windows wouldn't dream of being installed. On the other hand, Windows has great support for many recent devices that Linux doesn't support (either in full or in part). The wireless device on my ThinkPad is:

The appropriate driver for this (found from ELRepo.org) is kmod-r8192ce. I followed the instructions on the website to add ELRepo as a repository and then had it install kmod-r8192ce. After a restart, things seem to be looking good:

While this got the basic wireless working, things were not perfect. After connecting to any network, either secured or unsecured, I would be able to surf the web for a few minutes.... followed by nothing. The connection would just die after a few minutes (or seconds). When the connection would drop, my computer would still think I was connected, and disabling and re-enabling the network or disconnecting and reconnecting would not solve the problem. I had read that IPv6 sometimes can interfere with the network connectivity if it isn't being used (I am still on IPv4), so I appended ipv6.disable=1 to the kernel in my /etc/grub.conf file. Still not working great, but marginally better. Eventually, I began using a kernel from the 3.5 branch as opposed to the Scientific Linux 2.6 kernel. Together with the ipv6.disable=1, this seems to result in a solid connection.

Future goals

Whenever I update my kernel (and thus grub.conf file), a new kernel becomes the default... which is sometimes a 2.6 branch kernel. When I don't interfere with the start up, it can be frustrating when my internet dies again. I would like to have grub not change the kernel that I am running from 3.5 to 2.6. [Edit 2: For the time being, I am manually updating grub.conf after each kernel update.]

I need to check if ipv6.disable really offers benefits when used with the kernel version 3.5.

I'd like to figure out a way to display code snippets on wordpress. [Edit: It seems that this functionality is possible through wordpress plugins, but as my blog is currently hosted on wordpress.com it is not possible to use any. A medium-term goal of mine is to create a new website that includes this blog as a feature, so when that happens I'll re-edit this post to add in code snippets.] [Edit 3: I installed the SyntaxHighlighter Evolved plugin after moving to WordPress.org. Apparently, though, this feature is available on WordPress.com, though I didn't figure that out at the time. Of course, one could just use <pre> tags, which I had forgotten about.]