IBus is considered as retiring, but it’s still the default in MX Linux. Because the only Cantonese IME in Linux that allows me to swear is Andrew Choi’s CAP, which runs on fcitx, I settled for fcitx as my default IME engine.
Languages
Cantonese: Download the debian package for CAP
Japanese: Mozc is already installed
Simplified Chinese: Pinyin is already installed
Shortcuts (Very much like Windows):
Ctrl + Space: turn it on/off
Ctrl + Shift: switch between languages
Shift: in and out of temporary English mode (inactivate) within the language
I’ve moved the contents of setting Fcitx CAP to this page as the release fcitx5 turned this already tricky process into a maze.
Ctrl+Shift+Esc for Task Manager: install gnome-system-monitor first
Thunar file manager has the location/address shown as buttons. Use shortcut Ctrl+L to enable typing.
To move along GUI tabs, use Ctrl+PageUp/Down in Linux instead of Ctrl+(Shift)+Tab in Windows.
To expand/contract GUI trees, use Shift+Left/Right instead of simply Left/Right in Windows
Most Linux come with Samba Client (smbclient) installed that allows you to access Windows shares, the Samba Server is typically not installed by default, therefore you will need to do more work to share Linux folders with Windows. Here are the tools for a more complete experience:
Smb4k for viewing network shares (or use smbtree)
Nemo-share enables right-click to share in Cinnamon’s default file manager (nemo)
For some reason, after installing and uninstalling samba and smbclient a few times, Linux Mint stopped connecting to Windows computer (yet other SMB running MX linux can be accessed fine), despite this worked fine out of the box.
Turns out it’s this flaw (not in MX linux) that it cannot negotiate with newer SMB versions that might have been addressed but it can stuck being unable to negotiate with Windows 7 (it has SMB1 and SMB2 enabled) under certain conditions. After placing “client max protocol = NT1” in smb.conf and reboot, it worked, then I removed the line and reboot and it still worked afterwards. Weird!
Linux Mint 19 also does not resolve local hostnames from DNS right out of the box (also the live CD boot) because it came with systemd-resolve which does not handle local hostnames resolution right away.
I tried Ubuntu on my old laptop, but it was unbearably much slower than that Windows 7 so I was looking for lightweight options. After some shopping, I settled on MX Linux as the drivers worked right of out the box for the hardware and it gave me the best user experience so far.
Other than responsiveness, the deciding factor that moves me away from Ubuntu is the amount work required to get the basic things working out of the box. Internationalization is almost fully configured in MX Linux, while I had to jump a few hoops to get the VL Gothic (Japanese) font in and struggled to get the IME to switch using Ctrl+Space / Ctrl+Shift (or any default shortcut keys) like in Windows. In MX Linux, they are the defaults right away.
I was really turned off by the fact that Ubuntu’s (minimal install) default Archive Manager is half-working out of the box: I get weird errors and partial success extracting RAR files because unrar was not installed by default! It just showed the lack of consideration about user experience.
MX Linux defaults to ibus, which works right out of the box with mozc (Japanese) language support. But I’d like to have a Cantonese IME that allows me to swear (the ibus-table-cantonese package was censored), so I opted for Andrew Choi’s CAP, which runs on fcitx. He used to have an iBus version, but it was a decade ago and I couldn’t get it to install.
Turns out it’s not that MX Linux is not that prepared when you want to use Fctix. None of the languages shows up when I tried to add an IME! After a lot of googling, I realized it requires im-config, and you need to install zenity before installing im-config!
After that fcitx works like a charm: mozc, CAP works in harmony, and I can turn the IME on/off by Ctrl+Space and switch between IMEs using Ctrl+Shift (just like in the old days)
EDIT: After all the praise I have on MX Linux. I noticed it overlooked something very basic! It does not make you configure timezone during setup and it’s not easy to change it! To do it the GUI way, first you have to go to “MX Time Settings”, and you have to type in the EXACT timezone string (TZ database name)! Geeze! It’s so caveman that we still have to do this in 2019!!
How did I noticed that I forgot to change the timezone? I realized the time in my Windows keeps getting changed (suspiciously a time-zone offset like difference) after I booted into MX Linux and boot back to Windows. That’s insidious!
I normally disable “Computer Browser” service in Windows by default because multiple computers having it on causes errors showing up in event log complaining there are multiple masters, and it’s not necessary for my simple home network because I’m just using a workgroup (no domain controller).
However, today I found out that even after setting up MX Linux’s Samba correctly (see below), if none of the computers on my windows network runs “Computer Browser”, my Windows computer name will not show up in “Thunar File Manager” although I can access it with smb://, and linux computers running Samba server shows up fine.
There’s also another twist to get the SMB client to work in Thunar File Manager. Despite smbtree works right out of the box (it detects the Windows shares), I’ll have to add this line in /etc/samba/smb.conf for the file manager to even probe the list of computers (not timeout):
name resolve order = bcast host
The point is to use broadcast lookup BEFORE dns lookup. DNS lookups for my local resources are often temperamental (could it be my router?), and I saw Linux Mint working with Windows briefly without these settings (editing smb.conf and also enabling “Computer Browser” service in Windows), but it failed today even after I re-installed MX Linux from scratch.
The other lines mentioned like client max protocol = NT1 and netbios name mentioned on the forums are not needed.
This is another example that non-commercial (open-source) Linux/Python does not have a feel of a finished product: things break out of the box when installed fresh, in the most simple, expected ways, without any tweaks.
Again, don’t get me wrong, open-source free software are good stuff (more modern concepts and people working on it for free), but it’s never going to beat professional companies (like Microsoft/MATLAB) in how well-funded they are so they can maintain their software and the user experience using their profits. So far, users are still expected to put up with a bunch of unjustifiably unnecessary work to get to where they want to go with community-maintained software like Linux/Python.
This time I’m installing Spyder on MX Linux. Look at how many damn hoops I have to jump to get Spyder 3 to function properly there:
I installed python3-spyder from MX Package Installer
Installed python-rope on MX Package Installer. The complaint still won’t go away
I tried follow the instruction sudo pip3 install rope_py3k and realized pip3 was not installed already with the Python that came with Spyder! (Didn’t have the problem with the Windows counterpart).
Installed python3-pip from MX Package Installer.
Came back and run pip3 install rope_py3k. It choked at "Command 'python setup.oy egg_info' failed with error code 1 in /tmp/pip-build-0nnknjhi/rope-py3k". Again, known problem.
Followed the solution in the comments pip3 install --upgrade setuptools
Then come back and run pip3 install rope_py3k again. It says "Failed building wheel for rope-py3k" in between, but nonetheless I’ll try to move on since it says "Successfully installed rope-py3k-0.9.4.post1"
Then Spyder launch uneventfully.
These are not design decisions (sacrificing one quality for another), but inter-operability wrinkles that nobody are paid enough to do the grunt-work babysitting it. So if your business profits heavily from it, consider sponsoring the developers!
It’s also slightly annoying that the version of Spyder maitained in MX Linux’s most recent repository is a little older than what’s actually available (3.1.3+dfsg1-3 instead of 3.3.4).
At first I followed instructions to have PIP to update it: pip3 install -U spyder, but it doesn’t work. I got a lot of “failed building wheel for (package)” error.
I also realized the Python that came with it is 3.5, not the 3.7(.3) I had in Windows. I checked the MX package manager and indeed it stopped at 3.5. After some searching, I learned the base system package was frozen in 2016! MX Test Repo (at your own risk) has Python 3.7 though.