Julius Kaiser
Leipzig, Germany
jkdata@mailbox.org


Title: A Linux Desktop...
Status: Release

Published: 03 Jul 2022
Updated: 11 Nov 2022

A Linux Desktop - Chicago-style

When I stumbled upon Grassmunk’s Chicago95 (a Windows95-style theme for XFCE/ GTK2/ GTK3) earlier this year, it inspired me to set up a Linux-based mobile desktop (notebook) that not only looks and feels like classic Windows - but also integrates well in a modern Microsoft-centric enterprise environment.

This is how the result looks like:

Chicago95 desktop with applications
(XFCE/ Chicago95, Firefox, Thunar, Evince, Xfce4-Terminal, Midnight Commander)
Chicago95 desktop with seamless RDP applications
(Outlook and Visio as seamless RDP applications served from an RDS farm)

Table of Contents

What is this setup made of?

While the graphical concept and aesthetics of this setup are mainly driven by XFCE (xwdm) and the Chicago95 theme, the consistency of the user experience comes from limiting everything to the use of GTK-based applications.

The integration with Microsoft Windows-centric environments is achieved by software components like Samba, CUPS, XfreeRDP and others.

Below you’ll find the essential steps and resources to achieve this setup.

Operating system

I always start with a clean (expert-mode) Debian installation without any additional packages except the base system. On bare-metal I’m usually installing a targeted kernel/ initram.

Consider installing everything on an encrypted file system: If your device gets lost/ stolen/ confiscated for any reason, at least you won’t have to worry about other people accessing your system and data.

Desktop environment

Install the X Window System and the Xfce Desktop Environment:

# apt install xorg xfce4

Chicago95

Chicago95 is available on GitHub as well as packaged for a few Linux distributions. I ended up using a combination of both..

Either way I had to install a few packages myself:

# apt install lightdm-gtk-greeter-settings
# apt install gobject-introspection
# apt install xfce4-whiskermenu-plugin
# apt install qt5-style-plugins
# apt install qt5ct
# apt install wget
ä apt install curl

# wget http://archive.ubuntu.com/ubuntu/pool/universe/x/xfce4-panel-profiles/xfce4-panel-profiles_1.0.10-0ubuntu1_all.deb
# sudo dpkg -i xfce4-panel-profiles_1.0.10-0ubuntu1_all.deb

Install Chicago95 using the package manager:

# echo 'deb http://download.opensuse.org/repositories/home:/bgstack15:/Chicago95/Debian_Testing/ /' | sudo tee /etc/apt/sources.list.d/home:bgstack15:Chicago95.list
# curl -fsSL https://download.opensuse.org/repositories/home:bgstack15:Chicago95/Debian_Testing/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_bgstack15_Chicago95.gpg > /dev/null
# apt-get update
# apt install chicago95-theme-all

Enable Chicago95 for the lightdm-gtk-greeter to get a themed login screen:

# lightdm-gtk-greeter-settings
  • Theme: Chicago95
  • Icons: Chicago95
  • Background: Color #008081
lightdm login screen with Chicago95 enabled
(lightdm login screen with chicago95 enabled)

The GitHub repository contains detailed instructions on how to enable the theme. Being lazy I ended up running the installer available from the Github repository, which redundantly writes some files already written by the package manager, but comfortably runs most of the numerous steps needed to enable the theme, e.g. configure the taskbar, menus, icons etc. pp.

$ chmod +x installer.py
$ ./installer.py

Applications

As mentioned earlier, choosing applications that make use of GTK generally makes for a rather consistent look and feel of the whole environment. These are some of the applications I’m using:

Terminal emulator

Chicago95 did a great job resampling the classic Windows command window, although I opted to not change the prompt to DOS-fashion.

# apt install xfce4-terminal
xfce4-terminal
(xfce4-terminal with midnight commander launched)

By the way: Midnight commander is not only a great file manager, but an excellent SCP-client, too: Use mc’s command prompt to access a remote directory using SCP: cd sh://user@server:port/directory

File manager

Thunar (Xfce’s default file manager) is a good choice. To make it work with SMB-shares and archives, a few additional packages need to be installed:

# apt install libsmbclient
# apt install smbclient
# apt install gvfs-backends

# apt install thunar-archive-plugin
# apt install unrar
thunar with SMB support
(Thunar accessing a SMB share from a Windows-based file server)

github.com/cboxdoerfer/fsearch

From the official repository: “FSearch is a fast file search utility, inspired by Everything Search Engine. It’s written in C and based on GTK3.” As mentioned, there’s a similar tool for Windows called “Everything” from voidtools. They’re pretty handy and something you’ll want to have around once you got used to them: The results you can see in the screenshot below are listed “immediately” - you don’t have to wait for a search-run to take place.

Install build dependencies:

# apt install git build-essential meson libtool pkg-config intltool libicu-dev libpcre3-dev libglib2.0-dev libgtk-3-dev libxml2-utils

Clone the repository:

# git clone https://github.com/cboxdoerfer/fsearch.git

Build and install:

# meson builddir
# ninja -C builddir install
FSearch in action
(FSearch showing results based on the given search string "chic")

By the way: There’s a similar tool for the command line, called fzf (fuzzy finder). It can be used with files, command history, processes, hostnames, bookmarks, git commits, etc.

E-mail/ Groupware

Evolution with Chicago95 looks so old-skool cool - you can’t not use it. It needs “evolutions-ews” to be compatible with Office365 accounts.

# apt install evolution
# apt install evolution-ews
Evolution in action
(Evolution)

Remote Desktop Access

# apt install freerdp2-x11
# apt install freerdp2-2

Get .rdp-Files for applications you need your favourite Remote Desktop Services server (farm) and open them:

$ xfreerdp Outlook.rdp /u:julius.kaiser
Chicago95 desktop with seamless RDP applications
(Outlook and Visio as seamless RDP applications served from a RDS farm)

VMware Remote Console

As you can see, VMware Remote Console uses GTK, too, and aligns well with the overall setup.

Download and Install VMware Remote Console on Linux

VMware Remote Console
(VMware Remote Console)

Network Manager & Client VPN

Network Manager manages network connection and Dialup-VPNs.

# apt install network-manager
# apt instakk network-manager-gnome

# apt install openvpn
# apt install network-manager-openvpn
# apt install network-manager-openvpn-gnome
Network Manager
(Network Manager)

More Applications

GTK- (and some CLI-) based applications for common tasks.

  • PDF Viewer
    • apt install evince
  • Image Viewer
    • apt install geeqie
  • Text Editor/ Simple IDE
    • apt install mousepad
    • apt install geany
  • Menu Editor (freedesktop.org Menu editor)
    • apt install menulibre
  • System Settings Editor
    • apt install dconf-editor
  • Buetooth Device Manager
    • apt install blueman
  • Taskmanager
    • apt install xfce4-taskmanager
  • Screenshot utilities
    • apt install xfce4-screenshooter scrot
  • Password-Manager
    • apt install gnome-passwordsafe
  • IRC-Client
    • apt install hexchat

Tweaks

Windows super key to open the Start menu

Using the XFCE keyboard settings, it is possible to assing an arbitrary command (xfce4-popup-whiskermenu in this case) to the Windows super key. Unfortunately this makes the menu pop up for every key combination that uses the Windows super key as a modifier, too. There is a workaround based on a third-party utility (ksuperkey) for exactly that: to use the Super key both to open the start menu and as a modifier key in keyboard shortcuts.

Install the dependencies:

# apt install git gcc make libx11-dev libxtst-dev pkg-config

Clone the repository and compile from source:

$ git clone https://github.com/hanschen/ksuperkey.git
$ cd ksuperkey
$ make

Optionally install system-wide:

# make install

Configure ksuperkey to launch on login (configure a certain delay for ksuperkey, as the default value of 500ms is not enough):

launch ksuperkey on login
(Launch ksuperkey on login)

Touchpad tapping

To activate touchpad tapping, navigate to the “Mouse and Touchpad” settings dialog, choose the touchpad device and activate “Tap touchpad to click”.

XFCE touchpad settings
(XFCE mouse and touchpad settings)

Games

SimCity 2000

Being able to run SimCity 2000 (for Windows!) is crucial for such a setup. The Wine subsystem needs to be installed for a 32bit architecure too:

# apt install wine winetricks
# dpkg --add-architecture i386
# apt-get update
# apt install wine32

After that it’s just copying your SimCity 2000 CD to a folder and running the SETUP.EXE & SC2000W.EXE.

SimCity2000 for Windows using wine32
(SimCity2000 for Windows using wine32)

See Also

There are many other projects reviving the late nineties computing asthetics on modern platforms - either as their primary objective or alongside higher goals:

  • Redmond97 - A Win9x inspired theme for GTK3 and GTK2 developed for XFCE4
  • WIN98SE Icon theme - Enhanced Classic icon theme (used with Win98 Second Edition, WinME, Win2K systems) from MicroSoft Memphis project for GNU/Linux inspired by Chicago95 theme
  • progman - “[..] a simple X11 window manager modeled after Program Manager from the Windows 3 era.”
  • Not so Common Desktop Environment (NsCDE) - [..] a retro but powerful UNIX desktop environment which resembles CDE look (and partially feel) but with a more powerful and flexible framework beneath-the-surface, more suited for 21st century unix-like and Linux systems and user requirements [..]”
  • SerenityOS - “[..] a love letter to ’90s user interfaces with a custom Unix-like core. [..] Roughly speaking, the goal is a marriage between the aesthetic of late-1990s productivity software and the power-user accessibility of late-2000s *nix.”
  • ReactOS - “is a free and open-source operating system for amd64/i686 personal computers intended to be binary-compatible with computer programs and device drivers made for Windows Server 2003 and later versions of Windows.” (Wikipedia)
  • Simple Classic Theme - A somewhat hacky approach to bring back the classic shell on modern Windows platforms: “Winlogon uses a shared memory section for handling themes. By removing access to this memory section the Winlogon process can no longer manage themes so the default theme is used, the Classic Theme.”

Acknowledgements

Many thanks go out to Tom Fichtner, who came up with ksuperkey and general feedback. To stray even further from god, he was the first to deploy this setup on a MacBook! :-)

Dwarf Fortress; Ubuntu Linux & Chicago95 on a MacBook
(Dwarf Fortress; Ubuntu Linux & Chicago95 on a MacBook)