ArkarDev

My 5 year old setup, I can't live without

Sep 28, 2024Arkar Kaung Myat
LinuxDev Tools

My 5 year old setup, I can't live without as a software developer.

I am a huge fan of customizing my workflows and setup. I love the ability to code fast, ability to find/consume information without thinking to much and the ability to navigate within my operating system with my muscle memory.

I have always love the joy of tweaking my Ubuntu to tailor my needs from shortcuts, themes, applets to desktop environment. But everything changed once I learnt about tiling window managers.

# I hate windows

It's not about Microsoft Windows, I was an alt-tab person when I start learning about programming. But I swear how much I hated having multiple windows open. I always found myself desperately spamming the tab key. I felt like there was always a delay when I needed something on my screen.

Look at this random photo from the internet. My brain just can't work in this kind of environment.

Since then I started looking ways into how do I efficiently navigate between windows. At the time I was playing around with multiple desktop Distro like Mint, Budgie, Lubuntu, Kubuntu and first introduced myself into AwesomeWM .

# What's a tiling manager ?

A tiling window managers allow you to manage your windows by aligning them to different layout - Once you opened a window, it places it, automatically maximized/resize on your screen.

You can define different layout you want and tailor it to your daily needs. You can snap your windows into different layouts and use keybindings to navigate between.

# Organization

One of the best benefits I found while using window manager is the organization and muscle memory. Window manager have really efficient workspace system that you can utilize. Meaning you can come up with your own system for placement of applications.

For it's always been

  • Mod + 1 ( browser )
  • Mod + 2 ( terminal )
  • Mod + 3 ( My note, Logseq )
  • Mod + 4 ( A slot for any software that might come across )
  • Mod + 0 ( Email )
  • Mod + 9 ( Slack )
  • Mod + 8 ( Calendar )
#
# Configuration example from my current setup
# Workspaces:
#
    # Switch to workspace
    bindsym $mod+1 workspace number 1
    bindsym $mod+2 workspace number 2
    bindsym $mod+3 workspace number 3
    bindsym $mod+4 workspace number 4
    bindsym $mod+5 workspace number 5
    bindsym $mod+6 workspace number 6
    bindsym $mod+7 workspace number 7
    bindsym $mod+8 workspace number 8
    bindsym $mod+9 workspace number 9
    bindsym $mod+0 workspace number 10
    # Move focused container to workspace
    bindsym $mod+Shift+1 move container to workspace number 1
    bindsym $mod+Shift+2 move container to workspace number 2
    bindsym $mod+Shift+3 move container to workspace number 3
    bindsym $mod+Shift+4 move container to workspace number 4
    bindsym $mod+Shift+5 move container to workspace number 5
    bindsym $mod+Shift+6 move container to workspace number 6
    bindsym $mod+Shift+7 move container to workspace number 7
    bindsym $mod+Shift+8 move container to workspace number 8
    bindsym $mod+Shift+9 move container to workspace number 9
    bindsym $mod+Shift+0 move container to workspace number 10
    # Note: workspaces can have any name you want, not just numbers.
    # We just use 1-10 as the default.

You might have a question " where is your editor ?"

It's the second workspace, Yes, I use Neovim and Tmux . Vim BTW.

If you are planning to use Neovim as your editor check out my complete setup guide .

# Cool designs

There are tons of customization you can do in those window managers. I used to customize a lot and you can easily a lot of useful resources on the internet.

This is a cool one I have.

# My person top window managers

  1. i3 ( improved tiling wm written in C )
  2. qtile ( hackable tiling window manager written and configured in Python )
  3. awesomewm ( awesome window manager in C and Lua )

Sway (a tiling Wayland compositor inand a drop-in replacement for the i3 window manager which is in X11) . You can use the same configuration between them. I am currently using sway to learn more about Wayland myself.

Here is my current sway config with minimal setting.

# Benefits

Personally using a tiling manager has not only helped me code in the most efficient way and the nitty gritty I have to go through while figuring out how to put all these stuffs together has been and always will be an amazing journey as a developer myself. I will always encourage to try out these things.