Linux Machines
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.
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 ManagerDWM
- Window ManagerDMenu
- A CMD menuGTK2/3
- Gnome Graphical Interface
The programs used for basic navigation of the OS:
ranger
- File Explorerhtop
- System Resource Monitor (Task Manager Equivalent)git
- For cloning git repositories off the internetyay
- 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
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.
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.
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.
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: