I've been running Linux (or, if you prefer, GNU/Linux) as my main desktop OS for more than a decade. It's now my main, and really my only, OS.
Like a lot of people in the late 90s, I was having very frustrating experiences with Windows. A friend recommended I try Linux. It failed miserably (it wouldn't even recognize my mouse, and failed to install), but a couple years later, she recommended I try again. This time it worked; I was soon hooked.
Although I still have occasional annoyances with Linux, they pale in comparison to problems I've had with other OSes. Last time I tried Windows (7), it still wasn't very stable; last time I used OS X, it had a bunch of annoying behaviors that made getting anything done difficult. Linux has the right combination of freedom, low expense, control and privacy for me. At this point, I've grown quite used to Linux, and I only run anything else when I have to.
The purpose of this page is to share some resources and insights I've found about Linux over the years.

Back to the top of the page or back to
Distros
There are so many dang distributions of Linux, it's hard to keep track of them all. There's Red Hat, Debian, Slackware, Knoppix... the list goes on. The one I use (as of early 2016) is Linux Mint.
I've tried a lot of other distros over the years, including Red Hat, Mandrake, Mandriva, Ubuntu and Xubuntu. They all had their advantages.
I currently use Linux Mint because I generally like Ubuntu's implementation of the Debian APT package management system, and its superb avoidance of the dependency hells I so often got dragged into by RPM-based package management. However, though I generally like Ubuntu's software management, I prefer the classic Gnome 2 style desktop (now, in its MATE incarnation), and some of the commercialized direction of Ubuntu has been troubling. I also generally like the Linux Mint community, which is fairly helpful and friendly.
One advantage of Linux is that you can easily try different distros if you want. Download a disc image (ISO), burn it to a disc, then reboot your computer with the disc in the drive. You should be able to boot into the new distribution on a trial basis. No need to pay for a new OS. Plus, it's handy to have Linux on a disc for recovery purposes.
Of course, actually installing a new distro is just as much of a pain as installing any OS. It can be a confusing, frustrating, hair-pulling experience. But by the time you're done, you've got a free, private, controlled-by-you OS that does pretty much what you tell it. And if you decide you don't like it, you can always create a boot disc for another distro and see if it's more to your taste.

Back to the top of the page or back to
Help for newbies
Am I still a newbie to Linux? After ten years, it still feels that way a lot of the time. I still encounter problems I don't know how to fix, because Linux and alls its associated programs keep growing and changing. Also, because the 'wiring under the board' is so much more exposed in Linux than it is in other OSes -- it's much easier to look under the GUI and see what's actually going on. So it's always good to keep help close at hand.
-
Linux Questions.org.
This has been a lifesaver many, many times. There are forums for everything, and extremely helpful people who give advice just because they're nice people. It's amazing.
-
Linux Mint Forums.
Mostly quite good. Lots of good answers and nice people.
-
Ubuntu Forums.
Also very useful. Because Linux Mint is built on top of Ubuntu, many answers here are also applicable to Linux Mint.
-
Open Office.org Resource Kit, by Solveig Haugland & Floyd Jones.
This book has proven invaluable many times over; well worth the expense.
My main office suite is LibreOffice, which comes with Linux Mint. It is really, really good. My favorite thing about it is the implementation of styles: the Writer (word processor) app treats styles much like expensive DTP programs do -- as an important tool for creating a unified, beautiful document. MS Word, on the other hand, tends to treat styles as something to be avoided. MS certainly make styles inconsistent and useless enough to avoid, that's for sure.
LibreOffice also does a good job with templates, and its handling of tables and columns is far less ridiculous than Word's. (How many times have you inserted a table in Word then tried to put text before or after it, only to discover that Word has decided the table should exist on its own separate level of existence? LO has none of those problems.) File sizes for LibreOffice files are also tiny, and the program does a great job of making PDF files, and even creating entire books.
That's not to say there are no problems, however. There are memory leaks, paging through the font list takes forever, and the Writer doesn't deal with complex page layout very well (try combining images, two-column layout and tables if you feel like having a major headache). Most important, LibreOffice's built-in documentation is pretty bad. The OpenOffice.Org forums (down as of this writing, but hopefully back up eventually) and Apache OpenOffice forums go a long way towards making up for this, but still, there are tons of things they can't cover. For all those questions, so far at least, the Open Office.org Resource Kit has been the answer to my prayers.
Haugland & Jones' book also has a great index. There are great sections on macros, customizing toolbars, exporting PDF and linked frames. They also have tons of things I don't need yet or haven't wanted yet like vector graphics (Draw looks almost as good as the program of the same name from Corel), mail merges and complex formulae. A very good book.

Back to the top of the page or back to
Chinese input systems
One of my original motivations in running Linux was to access a BBS in Chinese. At that time, that meant either buying a new copy of Windows in Chinese, or trying Linux. Nowadays, getting Chinese running on a desktop computer is pretty simple, regardless of OS, but it's still useful to keep some resources in mind.
-
What input method engines are available?
An IME is the basic program that allows you to switch input languages. If you've ever hit
ctrl + spaceto switch from English into Chinese input mode, you've used an IME. Different IMEs have different abilities and modules; some are specifically for one language, some can allow many languages. There are a lot of IMEs available for Unix-like OSes (such as Linux). I mainly use Ibus (see below), but try other ones and see what works for you. -
How do you input umlauted u's?
In most Pīnyīn input systems, an umlauted u, that is a ü (necessary if you want to distinguish between 女 and 怒, for example), is produced by typing 'v'. So, if you want to input 女, type 'nv'.
Some systems may use other shortcuts. Chinput (apparently now defunct), for example, uses 'uu' to produce an umlauted u.
-
How do you switch between traditional and simplified characters?
This unfortunately depends on the IME that you're using. In Ibus' Pinyin module, for example, the switch is
ctrl + shift + f. In SCIM, last time I used it, the switch wasctrl + /; getting to the right mode meant cycling through two useless modes (EN and ZH), then through simplified 简 and traditional 繁 until you are where you want. -
Smart Common Input Method
As of a few years ago, the best IME for Linux was the Simple Common Method Engine, or SCIM. It allows for easy extension (adding a Japanese IME or a variety of different Chinese IMEs or Arabic or whichever IME you want). However, it has drawbacks. It tends to be a bit unstable; it doesn't work very well in every program; other things I no longer remember.
However, SCIM is still a pretty good input method. If I weren't using Ibus (see below), I'd probably be using SCIM. So if for whatever reason you can't get Ibus installed on your system, SCIM is a good second choice.
Installing SCIM under Mandrake Linux 9.1
Many years ago, when I was running Mandrake Linux, getting SCIM installed was a real feat. It gave me a lot of headaches, but when I finally got it done, it felt like a great accomplishment.
There used to be a lot of documentation out there for SCIM, but it seems that most of it has now suffered from link rot. But once, long ago, when I managed to install SCIM on Mandrake, I wrote up the process here. In the interest of not contributing to link rot, I'm keeping up here.
This little howto is increasingly irrelevant -- really, no one should be trying to install Mandrake Linux these days, except perhaps as a historical artifact -- but it's interesting to keep around anyway, and perhaps one of you wants to keep a desktop circa 2006 running. So, here it is:
- First, make sure you're in traditional Chinese localization. If you weren't already, run LocaleDrake, which should be in Gnome > Configuration > Other. It's possible to run SCIM without having Chinese localization, but I don't know how. If necessary, you might want to create another user account that you only use for Chinese, such as
me_chineseor whatever. Next, install SCIM from RPM's. You can install it yourself, but why bother? If you're installing SCIM to do Chinese input, that means that you have to install four packages:
- The main program itself. As of February 2004, this was scim-0.9.0-1.i586.rpm.
- The Chinese tables, which contain all the characters. Currently, this is scim-tables-zh-0.3.1-1.noarch.rpm.
- The actual Intelligent Pinyin part of the program. This is scim-chinese-0.2.7-1.i586.rpm, currently.
- The thing that lets it all work under Gnome: scim-gtk2-immodule-0.8.2-1ul1.i386.rpm.
All these packages are available at the SCIM homepage. Naturally, if more current versions are available, it's probably a good idea to use them instead.
The only configuration file -- the only one -- you should need to change to get SCIM working in Mandrake 9.1 is
~/.i18n. If you didn't know (I didn't before a very kind person told me),~/means whatever your home directory is:/home/me/or whatever. Check your home directory, and make sure hidden files are shown; any file that starts with a dot, such as .i18n, will be hidden until you do so. If you already have a file called .i18n, modify it; if not, create it.If you check on the Net for how to configure SCIM, you'll probably see a lot of mentions of
/etc/sysconfig/i18n,/etc/X11/xinit/xinitirc,/etc/X11/xinit/XIMor~/.xinitrc. Under Mandrake, you do not need to change any of these; the .i18n file in your home directory is enough.Change .i18n to read as follows:
LANGUAGE=zh_TW.UTF-8:zh_TW:zh_HK:zh LANG=zh_TW.UTF-8 LC_ADDRESS=zh_TW.UTF-8 LC_COLLATE=zh_TW.UTF-8 LC_NAME=zh_TW.UTF-8 LC_NUMERIC=zh_TW.UTF-8 LC_TIME=zh_TW.UTF-8 LC_MEASUREMENT=zh_TW.UTF-8 LC_MESSAGES=zh_TW.UTF-8 LC_IDENTIFICATION=zh_TW.UTF-8 LC_CTYPE=zh_TW.UTF-8 LC_TELEPHONE=zh_TW.UTF-8 LC_MONETARY=zh_TW.UTF-8 LC_PAPER=zh_TW.UTF-8 CONSOLE_NOT_LOCALIZED=yes ENC=utf8 XIM_PROGRAM=scim XIM=scim GTK_IM_MODULE=xim XMODIFIERS="@im=SCIM"
If you were using KDE, you'd be home by now; that's all you need to get SCIM running in KDE. However, Gnome requires a couple more steps.
- You now have get GTK (the basis of the Gnome interface) working correctly with SCIM. Open a terminal and do this command:
gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules. - Next, re-start Gnome. SCIM should now be your Chinese input system.
- Some programs may give you trouble with SCIM, however. The biggest one is OpenOffice.org; when using SCIM, you may find that the cursor suddenly starts jumping around to places it shouldn't be. The way to deal with this is to turn off On-The-Spot mode; go into the SCIM configuration menu, then XIM, and turn off OnTheSpot (in Chinese, 在遊標處顯示輸入狀態. You'll then need to re-start SCIM, which may mean restarting Gnome.
- Every once in awhile, SCIM will stop working for whatever reason. (It's not perfectly stable, but it's still much better than XCIN.) So far, the only remedy for this that I've found is to login again, although sometimes killing the SCIM processes with
kill -9and then restarting SCIM in a terminal withscimworks, too. - Also, on my system, SCIM sometimes doesn't respond very fast. It may takes several seconds to display characters you've input. Unfortunately, the only thing to do here is to wait; it is processing the characters, just slowly.
Update, May 2004: Since coming back to the US, I've been using Chinput on my machine because, for some reason, SCIM wasn't working. I recently got fed up with the inability to do simplified Chinese as well as traditional characters in Chinput, though, so I tried SCIM again. It worked very smoothly. There were no complaints about missing/incorrect dependencies at all. And, as an added bonus, you can disable input methods from with the configuration program:
- Right click on the SCIM icon in your system tray.
- Click on "configure", aka 設定
- Click on "function", aka 功能
- Click off/on the input types you want.
- Restart SCIM. This usually means logging in again, aka restarting Gnome, because SCIM doesn't die very gracefully.
Now that's good interface design! James is doing good work on SCIM.
Update, November 2006: I've now been using Ubuntu for a month or so and it works beautifully. I've actually set Ubuntu to load into English but also load SCIM so I can do Chinese input any time I need. (Weird finally being able to read what all the sub-menus in the GIMP say in English!)
Another problem I used to have with SCIM was that it would dump core, leaving huge files on my desktop. I haven't had this problem for a very, very long time, but again, I'll leave my research here in case it's relevant to anyone else.
Get SCIM to stop dumping core
SCIM is a great input system for Chinese (and, it seems, many other languages as well). However, it doesn't play very nicely with many other apps. Firefox in particular simply won't run with SCIM as my default input system. I therefore have to go into every update of Firefox and change the shell script by adding the following to the beginning of the file:
scim -f x11 -c simple -ns socket -d export LC_CTYPE=en_US.UTF-8 export XMODIFIERS=@im=SCIM export GTK_IM_MODULE=xim
This allows programs like Firefox, Xara LX, etc. to run. However, it also makes them dump core every time I start them up. I end up with hordes of little core dumps all over my desktop and wherever else they feel like plopping down. This is highly annoying, and I want to fix it, but I don't yet know how to. I'm pretty certain it has something to do with the
export GTK_IM_MODULE=ximline, but I don't know specifically what to fix about it.Update, November 2006: Since moving to Ubuntu, I haven't had this problem at all. Gotta love that.
Update, May 2007: Apparently, installing the otherwise astoundingly cool Beryl causes this Firefox-no-worky problem again. Grr. Entering
export GTK_IM_MODULE=scim(note SCIM, not XIM) in a terminal before starting Firefox seems to get rid of this problem, though, and it's possible that puttingexport GTK_IM_MODULE=scimin the Firefox startup script will do the trick, or maybe just putting it in your .bashrc.How to get onto a Chinese-language BBS -- outdated version
One of the big things that drove me to install Linux in the first place was the ability to browse the internet fully in Chinese. Even with external Chinese input systems available at the time, Windows couldn't handle going on a Chinese-language BBS. I had some gaming contacts on Taiwanese BBSes, and didn't want to either a) always go to an Internet cafe to use their BBS systems or b) hook up my new computer to the Internet (I liked to use it for computer games and 3D CGI only). So I installed Mandrake 9.1 in Taiwanese Chinese/Mandarin.
Nowadays, the process is much simpler; I'll write it up in more detail in the next section. However, I'm leaving my original explanation here for historical purposes, and perhaps it'll be useful to someone not running a more current distro of Linux.
How did I get onto the BBS? This information may not be available elsewhere in English, so I should keep it up here, as out of date as it is.
- Get Mandrake 9.1 installed with Chinese/Taiwan as the locale. If you're doing something different, I don't know how to help you -- sorry.
- Open the file /usr/bin/X11/crxvt.
- Go to line 209. Change the contents to read something like
@im=$XIM-zh_TW. - You may also need to change line 65 to read
XIM=xcin-zh_TW, although this may already be set up. - To actually telnet into a BBS, go into CRXVT (a Chinese-compatible terminal). Type
telnet -L address.of.the.bbs. For example, with the BBS I always go onto, it would betelnet -L vip.kkcity.com.tw. - Your terminal should then connect to the BBS, and you should be able to do Chinese input by starting XCIN (or whatever your input system is) and hitting ctrl+space.
I would never have been able to figure this out were it not for a post on a Chinese Usenet group. If you're still unable to get onto a BBS, there may be other reasons I haven't gone into. Check the other Chinese howto pages for more on this, or do a search on Google Groups for the relevant terms.
How to get onto a Chinese-language BBS -- more current version
Mandrake Linux, kkcity.com.tw and various other parts of the above process have all gone away in the past decade. But there are still major BBSes out there in Chinese. The famous PTT 批踢踢 BBS (Wikipedia page about PTT), for example, is very popular. (And note that it's not a web forum; it's a BBS in the original sense of the term, where primary access is via a terminal, not a web browser.) How do you get onto it, using 2016-era Linux programs?
- One way is to just go through the web, if the BBS makes such available. PTT, for example, keeps WWW versions of the various sub-boards, browsable by regular web browsers such as Firefox.
- Try directly telnetting into the BBS using your terminal:
telnet -L ptt.ccor whatever. However, in my experience, even supposedly UTF-8 and Big5-aware terminal clients like Crxvt can't handle the encoding of PTT, showing the characters as mojibake (garbage characters), so I usually go to the next step. - If that doesn't work, or you want the fuller BBS experience, try a dedicated BBS client. The main one for Linux seems to be PCManX, which is hopefully available from your software installation program or terminal.
- Once you have PCManX installed, open it up and then either use the Connect > Site List menu to find the BBS you want to connect to, or just enter the URL of the BBS in the upper-right "Address:" bar. For PTT, the address is
ptt.cc(note: no HTTP or whatever, because it's not hypertext!); and PTT is located in the 臺灣學術網BBS_TANet > 暫時無法連接 sub-menu. - Now, register for PTT! This is currently rather difficult -- they require proof of Taiwanese citizenship or residence, and lots of employment/school information that is thorny for me to provide. So for now, for me, getting onto the actual PTT BBS is just an eventual plan.
IBus
IBus (the Intelligent Input Bus) is, as I said above, pretty much the standard IME in Linux these days. Lots of distros, including Linux Mint, come with it installed as the default for multi-language input.
IBus is generally pretty great. It comes with lots of language capacity, including easy installation of various Chinese input methods. In my experience, it's far less crashy than SCIM, and it cooperates much better with other programs.
That's not to say that it's without quirks, though. As of early 2016, there are two big problems for me with Ibus' Intelligent Pinyin input method:
- First, there's a huge bug regarding its interaction with Firefox and Thunderbird; when I have Intelligent Pinyin selected, trying to select text in any text box (URL bar, search bar, text composition window, etc.) within these Mozilla programs instead deletes the text! And the text never enters the buffer, so it can't be reconstructed by hitting
ctrl + vor middle mouse button. So when I'm trying to compose email messages in simplified Chinese, for example, I've taken to first composing them in a test editor, and then pasting them into Thunderbird. Not a good thing to have to do. Weirdly, this problem doesn't occur with other Ibus methods, such as Anthy (Japanese) or hanyu pinyin (m17n). So it seems to be a specific problem with Intelligent Pinyin, not with Ibus as a whole. - Second, the traditional character mode of Ibus' Intelligent Pinyin system is pretty hostile. It has a terrible dictionary, compared to the simplified one; many, many basic, common phrases aren't present in the dictionary. In addition, many extremely common semi-simplified characters used in Taiwan aren't in the traditional dictionary, so entering (for example) 台灣 or 里長 requires switching back and forth between simplified and traditional -- and doing so means that the input system doesn't learn the 'new' vocabulary. And I've even had spotty experience with Ibus' Intelligent Pinyin traditional mode refusing to learn new phrases.
All of that means that even Ibus has some tips, tricks and workarounds worth noting.
How to do decent traditional character input under Ibus?
One thing that Ibus doesn't do particularly well, as mentioned above, is traditional Chinese character input. At least, not with the native Intelligent Pinyin input method.
However, one advantage of Ibus' easy extensibility is that talented people have created their own input methods. And there are already a bunch of workarounds for the Intelligent Pinyin method's limitations.
One popular method is the 'chewing' (kind of a pun on Zhùyīn ㄓㄨˋ ㄧㄣ) method. This uses MPS, also called Bopomofo or Zhùyīn Fúhào, the most common phonetic script for Chinese in Taiwan. ibus-chewing apparently allows you to choose Pinyin as the input system instead of MPS, and apparently its dictionary of Taiwanese-variant characters is better than Intelligent Pinyin's. However, chewing also apparently requires entering every single syllable's tone, which makes it a non-starter for me.
So what do I use? As of early 2016, my favorite Ibus input method for traditional Chinese is Rime 中州韻。(See also the GitHub page for Rime.) It is just as intelligent as Intelligent Pinyin, learning phrases quickly, and it has a great built-in dictionary of traditional Chinese words and phrases. It also natively includes Taiwanese simplifications like 台灣 and 里長, which is pretty huge.
However, even Rime isn't immune from problems. To start, it gives way, way too many near-homophonic candidates before getting to single-character options. For example, when I enter 'shijian', it gives me 世家 ('shijia') as a candidate before it starts showing individual 'shi' and 'jia' candidates. So it presents misspellings before it presents possible accurate components! This makes for confusion and easy typos.
Here's a problem that already has a solution: The list of candidates (the little menu of however-many similarly spelled words and phrases that pops up when you enter a given string) is by default very short -- only five candidates. How do you fix that?
As the Rime with Schemata and Customization Guide pages on GitHub explain (in Chinese), the trick is to go into
~/.config/ibus/rime/(that is, the .config/ibus/rime/ subdirectory within your home/ partition) and add a file calleddefault.custom.yaml, and then create the contents as follows:patch: "menu/page_size": 9
Following that, restart Ibus. Rime should now have 9 candidates in the selection menu. You can apparently set the number (in place of '9' in the .yaml file) to anything between 1 and 9 (inclusive).
Another problem that already has a solution: by default, Rime uses the 朙月拼音·語句流 Míngyuè Pīnyīn Yǔjù Liú mode. (Or at least it did on my install.) This requires hitting the space bar after entering the number to select a given string, adding a full keystroke to every word. Although this sometimes adds to accuracy, it always cuts down on speed. How to solve this problem?
As the main Rime page explains, hitting
Ctel + `enters the input method menu within Rime. Here, you can choose Cangjie, simplified, half-width and many other methods and options. The thing to do is choose 朙月拼音 method, without the 語句流 option. Now, hitting the number to select a candidate instantly enters it -- no further keystrokes required. Nice!How to do Chinese input in Skype chat windows under Ibus?
Skype has frequently, over the years, not cooperated well with Linux. Since Skype was purchased by Microsoft, it's probably gotten worse. One frequent problem is that Skype's chat windows don't play well with Ibus; over the years, I've frequently had periods where I had to type all my Chinese in a text editor and then copy-and-paste it into the chat window. Not a frequent need, but when you need it, you need it! How to solve this problem?
This page on the Ask Ubuntu website has the current answer. First, make sure you have the following text
export GTK_IM_MODULE=ibus export XMODIFIERS=@im=ibus export QT_IM_MODULE=ibus export XIM_PROGRAM=/usr/bin/ibus-daemon
in an appropriate place. One place you can put this is your
.bashrcfile, a little text file that sits in your home directory and can specify a bunch of preferences you have: behavior of the caps lock key (such as turning that sucker off entirely!), shortcuts to use in terminals, and how you want Ibus to work with other programs.If you don't already have a .bashrc file, open your favorite text editor, then copy those lines above ("export GTK... ibus-daemon") into it, just as I show them, then save the file in your home directory as
.bashrc. Log out, log back in, and they should have taken effect.However, just putting that in your .bashrc isn't enough, as that Ask Ubuntu page shows; you also need to make sure Ibus starts with the
-xflag. Rather than logging out and back in, I've created a little Ibus I have a little Ibus restart script that hopefully accomplishes the same thing:ibus exit export XMODIFIERS="@im=ibus" export GTK_IM_MODULE=ibus export QT_IM_MODULE=ibus ibus-daemon -d -x
I save that stuff into a file in my home directory, call it
ibus_restart_script, then make that file executable by going into a terminal, navigating to my home directory, then typing inchmod +x ibus_restart_script. Now, the script is executable.To actually activate such a script, you can do two things: one, go to the appropriate directory in a terminal and type
./ibus_restart_script; or two, create a Custom Application Launcher on your desktop, then put insh /home/me/ibus_restart_scriptas the Command. Now, when you click on that Launcher, it will launch the script you just created and restart Ibus, hopefully in a state that will cooperate well with Skype.How to input Hànyǔ Pīnyīn with tones in Ibus?
Sometimes, you don't want to enter 漢字 or 汉字; sometimes, you want to enter Hànyǔ Pīnyīn, the actual Latin script with tone marks. How do you do that under Ibus?
The method you want is called "Chinese - hanyu pinyin (m17n)" in the Input Method menu; the icon is ā with the other tone marks next to it. Once this is activated, it's quite easy to type Hànyǔ Pīnyīn with tone marks. Just type the spelling (for example, "han"), then type the number of the tone (for example, "4"). It instantly puts the tone mark over the appropriate vowel -- no additional keystrokes needed. If you want to enter ü (a u with umlauts), use the old "v" trick.
This is one of the things I like most about Ibus -- it has probably the single best input method for Hànyǔ Pīnyīn that I've seen. I've used input systems where I had to hunt through a menu to find the appropriate tone mark, systems where I had to memorize a bunch of weird keystrokes for each tone, systems that required a bunch of extra keystrokes after entering each syllable... but none as fast and easy as Chinese - hanyu pinyin (m17n). It's definitely superb, and a great reason to use Ibus.

Back to the top of the page or back to
More projects
There are many other things I have tried to attempt (or still want to accomplish) in Linux. Here are some of the projects I've dabbled with.
-
More games
Compared to when I started, the selection of games for Linux is pretty amazing. Go into the package manager for your distro and you'll likely find dozens of different great games, of every genre and style.
Still, the selection pales in comparison to what's available for Windows. This is probably the one thing that still makes me want to boot into Windows occasionally.
Over the years, various publishers have tried to either create games for Linux, or port things over to it. Loki games tried to publish big, high-production games to Linux; they ended up going out of business, but they produced a bunch of neat games before that happened, and some of the games still show up on eBay from time to time. I never managed to get one working; part of the trouble with porting games to Linux is that different distros are just too different to reliably guarantee games would install well. Other intermediaries like Cedega tried to do the same thing.
DOSBox allows for playing tons and tons of older games on Linux. I've spent probably hundreds of hours playing Darklands this way.
The future of gaming in Linux seems to be in the same sort of direction as DOSBox: emulation, or near-emulation, to play games that are compatible with Windows or whatever else. GoodOldGames, aka GOG.com, operate on much this principle, with a nice mix of new and old games that work with Linux in one way or another.
Valve, the creators of Half-Life, Portal and other influential games, have recently created SteamOS, another sort-of emulator that runs within your main OS. This allows a lot of different games to run within Linux, and as of early 2016, it is my biggest hope for games like Bethesda's RPGs to come to Linux. (And really, that is one of my big goals: to play an Elder Scrolls game directly in Linux, without hammering my system, at decent framerates and with decent graphics.)
In the meantime, there are lots of other great games that are being developed either for SteamOS, or GOG, or for other cross-OS platforms. I can already play things like Kerbal Space Program, World of Goo and Waking Mars directly in Linux. It's looking like more and more companies will either be developing for cross-OS platforms, or developing directly for Linux. Websites like Gaming on Linux keep close track of gaming news, and encourage more developers to create Linux-compatible games. And of course there are already hundreds of pretty good to great games available completely free from the distro software managers. The future of gaming in Linux looks hopeful.
-
Perfect HTML editor
I've used a lot of different HTML editors over the years: Quanta, Screem, Bluefish, Peacock and others. They all have different advantages: different ways of highlighting, customatization of menus, auto-completion of open tags, compatibility with Unicode text (important if you want to enter 漢字). I've never found an HTML editor that had a perfect combination of advantages.
For now, I mostly just use whatever the default GUI text editor for my distro is; as of early 2016, that's Pluma.
-
Font browser program
In Windows, I used a nifty little program called Font Wrangler, which lists all the fonts on my system. It allows me to create a list of samples of every font, with a text string I specify -- so, for example, if I want to see how "Linux" looks in twenty different fonts, it's quite easy.
I haven't yet found a Linux program that does this. Gnome Font Viewer, as of early 2016, allows an on-screen preview of just the character "A" in every different font; but it doesn't allow changing the preview text string, nor does it seem to allow printing! So not really very useful at all. Font Manager gets closer, in that it actually shows the names of the fonts in the fonts, giving a slightly more useful preview. But the sample export doesn't seem to work (nothing gets exported, on my system), and there doesn't seem to be a way to either choose the sample text string or to print the output. Gnome Specimen seems to get closest, in that it allows specifying the text string for previews, but it doesn't allow printing or showing more than one font at once.
For now, this is an incomplete goal.
-
Multiple clocks for my Gnome taskbar
I definitely prefer Gnome 2 over the available alternatives. I like the simplicity and particular flexibility of classic Gnome. (Sorry, Linus.) Gnome 3 is way too much like OS X for my taste. As one example, I like having a nice linear window list at the top of my screen; it's nice to see at a glance all the windows I have open. During years of using OS X at work, I ended up losing track of open windows many, many times, causing a lot of hair-pulling frustration. Just having a little triangle indicating "this app is open" doesn't help when, for example, you're composing multiple emails. And I don't really have any desire to have my desktop more greatly resemble my cell phone interface. KDE, Unity and other desktop environments are just not to my taste.
Wanting to keep the classic Gnome 2 style interface is a big part of why I'm running Linux Mint. MATE, the LM incarnation of Gnome 2, is pretty great. It allows me to keep my old, much-loved styles and themes; it makes it easy to open apps and add shortcuts I want to my panels; it generally just works in a way that I'm used to./p>
One thing MATE (or Gnome 2) doesn't do, however, is make it easy to add clocks with different timezones to the panels. It's very easy to add a clock; and it's easy to set the system time to a particular timezone. But there appears to be no way to add one clock for one timezone, and then another clock for another timezone. I'd like to have the clocks on my panels display the current time in eastern Australia, Taiwan, and the Central timezone of the US.
The clock applet does allow adding different locations. (Right click on the clock applet > Preferences > Locations > Add.) But to actually access the other times, you have to 1) click on the clock app, and 2) click on the "Locations" drop-down. That is two keystrokes more than I want to do. And while I've tried things like desklets and browser extensions in the past, those all add a bunch of complexity that I don't want.
It's easy enough to add weather applets for two different locations; but doing this for two different clocks still seems impossible.
-
Getting my Wacom Graphire tablet to work
Many years ago, getting my tablet to work in Linux was something of a pain. It took a lot of research and work and poking around in configuration files.
Nowadays, tablets pretty much just work -- like most other input devices. However, I'm going to keep this up, in case it's useful for you.
How to get a Wacom Graphire tablet working in Linux -- for historical reference
This project took forever. I thought I'd never be able to get it working, so I didn't even bother to list it here as a project. I just got it to work, however!
I looked over the Linux Wacom Project a lot. And there's also Wacom input drivers for XFree86. However, none of it ever really made sense. For example, those pages seemed to indicate that I'd actually have to mess around with my kernel to get my Wacom tablet working. That seemed insane, especially since I'd seen mention on the Web that Mandrake 10.1 (which I am using as of June 2005) should work out of the, um, DVD case with Graphires.
One page that helped me a lot in figuring this gnarly problem out was Will Henney's Wacom Tablet: Re-install of drivers after upgrade to FC3. A lot of what he said there applied to my situation.
Part of the deal was finding an RPM of the Wacom drivers and stuff. The one I'm currently using is 6.6.1, I think. It seems to be working fine.
A real trick, one that I didn't find during my confused looks through the Linux Wacom Project, was how to know which
/dev/input/event-thingymy tablet was operating on. I eventually found a hint on the net. Become root in a terminal and then typecat /dev/input/event0, then drag the stylus around on the tablet. If the tablet is plugged in correctly, and if it's on event0, you should see a bunch of data cascade down the screen every time you move the stylus. If not, nothing will happen. If nothing happens, close the terminal and trycat /dev/input/event1, thencat /dev/input/event2, etc. until you find acatthat produces data when you move the stylus. When you find whicheventthe stylus is on, you know how to modify your XFree86. (XFree86 is, by the way, located at/usr/X11/on my system, and, I suspect, on all Mandriva 2006 systems.)Modifying your XFree86 file can fill you with apprehension, but it's not that bad. Just make sure to save a backup (XFree86_backup or whatever) before you start messing around with it. Here's what the main Wacom section of my XFree86 file currently looks like:
Section "InputDevice" Identifier "Eraser1" Driver "wacom" Option "Device" "/dev/input/event2" Option "Type" "eraser" Option "Mode" "Absolute" Option "USB" "on" EndSection Section "InputDevice" Identifier "Cursor1" Driver "wacom" Option "Device" "/dev/input/event2" Option "Type" "cursor" Option "Mode" "Absolute" Option "USB" "on" EndSection Section "InputDevice" Identifier "Stylus1" Driver "wacom" Option "Device" "/dev/input/event2" Option "Type" "stylus" Option "Mode" "Absolute" Option "USB" "on" EndSectionAnd here's the end of the file, the Server Layout section:
Section "ServerLayout" Identifier "layout1" InputDevice "Keyboard1" "CoreKeyboard" InputDevice "Mouse1" "CorePointer" InputDevice "Eraser1" "AlwaysCore" InputDevice "Cursor1" "AlwaysCore" InputDevice "Stylus1" "AlwaysCore" Screen "screen1" EndSectionI'm still not entirely sure how I did it, but somehow I prevailed.
Update, November 2006: I recently moved to Ubuntu. Getting a Wacom installed under Ubuntu is dead easy, at least compared with Mandriva. One of many reasons I prefer Ubuntu, at least so far.
Update, May 2007: A couple important notes:
- In Ubuntu, xorg.conf is located at
/etc/X11/xorg.conf. - Also, an important note for people using tablets on USB ports: your default xorg.conf should say something about
Change to /dev/input/event for USB. Ignore this; it's wrong. The correct phrasing should beOption "Device" "/dev/input/wacom". Without it, your tablet will not respond to pressure, you won't be able to use the entire area of it, and GIMP and Inkscape and other apps will tell you there are no extended input devices installed.
Perfect astronomical observing program
I'm fairly interested in astronomy. This involves trying to find my way through the night sky, wanting to find out information about deep sky objects, and keeping track of what I've observed. Naturally, I went looking for the various astronomy programs that are available for Linux.
The ideal observing program should have a bunch of features:
- Allows navigation at a variety of zoom levels of the night sky.
- Shows a highly realistic view of the field of view, regardless of zoom level.
- Zooms in and out smoothly.
- Gives additional information about every object possible, including catalog numbers (multiple numbers where appropriate), rise and set times, magnitude, distance, type, etc. etc.
- Allows tracking of Jovian moons, prediction of eclipses, notification of meteor showers, etc.
- Allows for multiple grids to overlay the night sky: equatorial, ecliptic, etc.; and makes it easy to designate particular fields of view so you can simulate the view through specific eyepieces or lenses.
- Makes for easy setting of viewing location, to simulate the sky from Singapore or Banff.
- Allows screen dimming to the point where looking at the screen doesn't damage night adaptation.
- Gives easy ways to step through different times, whether you want to see the sky an hour from now, or twenty years from now.
- Makes it easy to keep lists of objects: objects to check out tonight, objects seen in the past year, globular clusters to compare, etc.
- Makes it easy to add new objects, so things like the 2015 nova in Sagittarius can be tracked easily.
- Allows all this in an easy-to-use format in the field.
Really, so far as I can tell, there is no open-source, Linux-native app that does all this. There are a few that get close, though.
- My current favorite desktop astronomy program is Cartes du Ciel (aka Skychart). It has quite a nice interface, gives a decent impression of what a given field of view looks like, does fairly good printing, has good time controls, etc.
- Xephem has a very quirky interface but is quite powerful.
- Kstars is very comprehensive but has printing problems and doesn't allow for easy modifiction of magnitude limits.
- Stellarium, which is very pretty (and a pretty good simulation of a planetarium experience) but doesn't give much information at all about objects, do printing, or otherwise do things required for an in-the-field observing program.
- Celestia isn't a star observing program; it's more of a star travel program. It allows virtual 3D travel through the stars, so you can travel outside the Solar System to, say, Antares and see what the night sky might look like from there. Celestia hasn't been updated in a while, but is hopefully still good fun.
- StarPlot is a really cool looking 3D star-viewer, allowing manipulation of different zoom levels of stars, with good accuracy of stars' relative positions. It's a good way to get a sense of what the relative positions of nearby stars are. It's not at all an observing program, though. I made an icon for StarPlot; see below.
Although Cartes du Ciel is pretty good, it still leaves a lot to be desired. Zooming is jerky, meaning it's easy to lose track of what you're looking at (critical when you're sitting at the eyepiece); it doesn't give very much information about each object, and selecting objects can be hit and miss; some really important buttons (such as magnitude limits) are tiny and hard to hit; and its red option, for night viewing, is still way too bright. No other open source app is as good, but it still isn't really suited for use in the field.
So, for now, astronomical observing is one area where I still resort to non-free apps. Once I got a chance to try Sky Safari on a tablet, not only was I sold on the app, I was sold on the concept of tablets, too. The ability to pinch-zoom smoothly when looking at the night sky is huge. It also has easy dynamic magnitude limits, great handling of observing lists, tons of useful data about almost every interesting object in the sky, and a bunch of other hugely valuable features.
A perfect vector graphics editor
Most of the time, when I need to edit vector graphics files, I use Inkscape. It's really a pretty great program. Especially when you remember that you can copy and paste styles (
ctrl + cand thenCtrl + Shift + V), it can do some very, very powerful things and create very nice images.However, as of early 2016, it's still a huge resource hog. Opening images with more than a few layers quickly starts eating many gigabytes of memory. Introducing more than one or two layer transparencies other than 100% can quickly make the whole program slow to a crawl.
I've also used Xara, but its interface is clunky and weird, and the program apparently hasn't been updated in more than five years. It looks like the future of open source vector graphics is Inkscape, at least for now.
A perfect 3D graphics package
Although I've attempted to use Blender in the past, every experience has been painful enough to turn me off of 3D on Linux for a few years. It's clearly a very, very powerful program, but the documentation I've seen and the interface itself are both very lacking -- rather user-hostile, in fact. It continues to improve, but it hasn't drawn me back in, yet.
I still own one seat of LightWave 7.5 for Windows. When I've very occasionally needed to create 3D images in the past few years, my best choice has been to boot into Windows and fire up LightWave.
A perfect music player
Another type of program where I have pretty particular desires, and have rarely found a program that meets them, is music players. Since I'm doing it with other types of programs, I'll list my requirements for a music player here. My ideal Linux music player must:
- Handle playlists well, including easy input and output of playlists (in easily-transferrable formats such as .m3u or .pls), and
- Handle Chinese and other two-byte characters in titles and tags well, without corrupting file names, song names, tags, etc. etc.
- Allow easy editing of tags.
- Make it easy to search for, and sort by, specific music (by artist, album, playlist, song title, etc.).
- Has reasonable random/shuffle modes.
- Have a useful tray icon (ideally, with easy pause/play access).
- Not use excessive CPU time or RAM.
- Not include excessive 'features' that make the program slow or invasive.
Music players are another area where Linux has seen dozens of projects come and go over the years. At one time, I used XMMS a lot; it did a good job with playlists, but didn't handle Chinese titles very well, and the tiny little interface was hard to operate. I used Listen Music Player (once located at http://www.listen-project.org/ , but now abandoned) for several years; it also had relatively good handling of playlists, and a much more sensible interface. But its developer didn't have time to keep it working, so it became increasingly unstable and unusable. Other players like gmusicbrowser and Exaile have been near-miss candidates for me.
For the past couple years, I've mostly used Quod Libet. It has lots of good features: rather sensible handling of playlists, good handling of Chinese titles, a nice tray icon (once the built-in plugin is activated), a very nice browser (especially in View > Paned Browser format), and a relatively sensible shuffle function. Quod Libet uses a very reasonable amount of system resources, and doesn't include annoying things like a web browser or movie player (like so many players these days seem to expand towards). I have my little complaints, but it's my main player for now.
Lots of other 'perfect apps'
There are a lot of other areas where I'm still on the lookout for better programs. gcalctool is okay, but it's far from my perfect calculator; it'd be nice if there was a really strong, really stable program for editing RAW camera files; a stable, powerful, Linux-native astro-stacking app would be nice; I'd like a stable, gtk-native RSI avoidance app; it would be nice to edit the Gnome menus in a non-frustrating way (and the native Gnome menu editor is not that, with its hard-to-place icons and tendency to leave icons in two different places when moving them). A stable, powerful movie editor would be nice; a stable, non-memory-eating RSS reader would be nice; a Linux-native, powerful, intuitive panorama composer would be amazing; consistent support for videos in Firefox would be good; and I have various other wishlists for Linux. But for now, and for free, what's already out there is pretty good.

Back to the top of the page or back to
Other Linux things
Here are some other things that are interesting or amusing and Linux-related:
-
Some icons by me.
I've made a few icons for my Linux apps. Here they are:
An icon for weiqi/go games.
An icon for Pente.
An icon for Firestarter. The biohazard background is by Jakub 'jimmac' Steiner.
Another icon for Firestarter.
An icon for Firefox. Cute but smart.
Another version of the same icon. The world in the background makes it a bit more cheery and colorful.
Yet another version of the same icon. More shadows than the one above.
I recently got SETI@home working again on my system. Linux doesn't seem to have many SETI@home icons, so I made some.
Here's another one. You can't see it here, but it has a shadow behind the main icon.
And another. This one looks good against a darker desktop background.
An icon for anticapslock measures. I use this as an icon for the script
xmodmap -e "remove lock = Caps_Lock", which turns off that annoying capslock key.
Another anticapslock icon. This one more closely approximates a keyboard key.
A general icon for astronomy programs.
A general oscilloscope-type image. I use it for audio editing programs.
An icon for the program Starplot.
A generic icon for pinball games or anything that involves a steely sphere of some sort.
These icons are free for non-profit downloading and redistribution as long as you acknowledge my authorship and give a link back to this site.
-
A quick way to switch sound outputs
On my desktop, I have both desktop speakers and headphones, for different purposes. And while the sound applet allows switching which device is active, it takes a few keystrokes. Is there a faster way?
Indeed there is! After discovering a very relevant Ask Ubuntu question, I was able to create a little script:
#!/usr/bin/env bash sinks=($(pacmd list-sinks | grep index | \ awk '{ if ($1 == "*") print "1",$3; else print "0",$2 }')) inputs=($(pacmd list-sink-inputs | grep index | awk '{print $2}')) [[ ${sinks[0]} = 0 ]] && swap=${sinks[1]} || swap=${sinks[3]} pacmd set-default-sink $swap for i in ${inputs[*]}; do pacmd move-sink-input $i $swap &> /dev/null; done if [ "$swap" = "0" ]; then notify-send -u normal -i audio-volume-medium-symbolic "Sound output changed. Now using: Headphones" else notify-send -u normal -i audio-volume-medium-symbolic "Sound output changed. Now using: Built-in Audio Analog Stereo." fiIt works great, and has saved me a huge number of mouse clicks and pain over the years.
So, that's pretty much it. Hopefully some of this has been useful to you. Let me know if you have suggestions or other things to contribute.

Back to the top of the page or back to
This page (http://www.jiawen.net/ linuxbits.html) designed and ©2000-2016 by Rachel Kronick. All rights reserved. Last updated January 31, 2016. - In Ubuntu, xorg.conf is located at
- First, make sure you're in traditional Chinese localization. If you weren't already, run LocaleDrake, which should be in Gnome > Configuration > Other. It's possible to run SCIM without having Chinese localization, but I don't know how. If necessary, you might want to create another user account that you only use for Chinese, such as
