Linux Machines

Back

Servers

Work in progress.

KiwiOS

Linux/GNU

I love Linux/GNU, it is extremely customizable and can also be for perfect for purpose-built systems. Some distributions of Linux/GNU are extremely lightweight and have very little battery usage. I decided that after using Fedora and Ubuntu for a long time on various systems in the past, I would create my own distributions/OS - KiwiOS.

KiwiOS is a purpose built distribution that I extensively use for a lot of my programming work as Linux is a Unix-like system. Programming in a UFS is very easy to do and is loved by many programmers across the world (even Apple runs on a Unix-like approach)! KiwiOS is also designed to be as minimal/lightweight in design as possible and easy to use to accomplish many tasks.

I also use a few available GUI toolkits such as GTK for running applications like Blender for my 3D Modelling. A lot of the software runs on an open-source mindset with very little proprietary software. This allows me to build KiwiOS by customizing all the software I install with it by changing the original source code.

KiwiOS desktop image

What is KiwiOS running?

KiwiOS is a custom Operating System running on the Linux Arch Distribution. Arch is perfect as its philosophy ps to be as minimal and as simple as possible. Even booting to Arch takes you straight to a terminal interface with no GUI at all!

I have installed various software and customized them for my workflow. It contains a standard X11 display interface with suckless's DWM as my window manager.

It also has all the basic commands required for acquiring software such as Git along with AUR because it runs off Arch. The AUR has many tools and software for me to create my OS from scratch. I used this to install/compile software to my system. Moreover, some software was acquired from third party repositories such as: https://git.suckless.org/

The programs for the GUI aspect of the OS:

  • X11 - Display Manager
  • DWM - Window Manager
  • DMenu - A CMD menu
  • GTK2/3 - Gnome Graphical Interface

The programs used for basic navigation of the OS:

  • ranger - File Explorer
  • htop - System Resource Monitor (Task Manager Equivalent)
  • git - For cloning git repositories off the internet
  • yay - An AUR helper that automatically cleans, compiles and installs from the AUR

DWM is an amazing piece of software that will automatically tile the windows in a predefined layout that I have chosen. These layouts can be customized further if you require more specific layouts for tiling your windows. DWM is clean, minimal and easy to use - which is one of the goals of KiwiOS.

Here you can see how the tiling windows work in action. In this workspace, there are 3 programs running:

  • screenfetch
  • htop
  • ranger
KiwiOS showing apps running

Benefits of DWM

By customizing DWM's config.h file and recompiling DWM, you can adjust many of the keybinds and add even more features to DWM if you know how the source code works.

With some customization, KiwiOS works great for side-by-side applications because of this. This allows me to also simulate smaller devices with thinner widths (like Bootstrap's responsive behavior). I can also swap which side the programs are as easily as just hitting the SUPER+ENTER keybind.

I can also adjust the width of the windows by using SHIFT+SUPER+LEFT or SHIFT+SUPER+RIGHT keybinds.

Below is an image of VSCode running on the right and Firefox running on the left showing the adjustable windows. You can see how I force Bootstrap on my website into mobile responsive behavior.

KiwiOS showing workflow of tilining windows

Changing Layouts

You can also change the layouts in DWM by using SUPER+UP and SUPER+DOWN to cycle between preconfigured layouts inside of config.h.

Below is an example of a quad layout preset with 4 applications running at once in one workspace.

KiwiOS showing quad view of windows

Floating Windows

You might realize after using a standard window manager that contains floating windows like that found on the majority of popular operating systems like Windows and Mac, some applications might not work well when KiwiOS is forcing the window to be positioned and resized automatically against the original application's configuration - such as the splash screen of GIMP.

Luckily, DWM has a feature to enable floating windows on your selected window, or by configuring the config.h file you can specify specific windows to be in floating mode the moment the application is launched to prevent any graphical bugs occurring.

I also configured the keybinds for these operations so that SUPER+SPACE will toggle the selected window to be floating or tiling and SUPER+F or SUPER+T will toggle all windows (except for those defined in config.h) to be floating or tiled. You can also use SUPER+M to fullscreen all selected windows and you can swap between them using SUPER+LEFT and SUPER+RIGHT respectively.

Here I have GIMP open with ranger open as a floating window so that I can see my image files on my system.

KiwiOS showing floating windows

Workspaces

Having many applicatiofns running on one screen can get really cluttered. This is why DWM offers “Workspaces” that you can move between them using SUPER+1-9 keybinds. This allows you to render a whole screen with only the applications assigned to that workspace. You can also switch selected applications using SHIFT+SUPER+1-9 to the specified workspace. With this kind of feature, having multiple workspaces with many different applications will help productivity while also being simple enough to use.

Additionally, you can also see every single application on the system across all workspaces in a single view by pressing SUPER+0 which is useful to see any random applications you are not aware are open on your system. This functionality is shown below:

KiwiOS showing all window tilining functionality
Back