Distro Respins & Customization – eirenicon llc https://eirenicon.org Working together for success! Sat, 06 Jan 2024 14:58:13 +0000 en-US hourly 1 https://wordpress.org/?v=6.7.1 https://i0.wp.com/eirenicon.org/wp-content/uploads/2019/03/cropped-eirenicon-1.png?fit=32%2C32&ssl=1 Distro Respins & Customization – eirenicon llc https://eirenicon.org 32 32 61586100 Alpine Linux https://eirenicon.org/knowledge-base/alpine-linux/ Sat, 06 Jan 2024 14:52:41 +0000 https://eirenicon.org/?page_id=3773 If you are looking for a tiny footprint, secure, Linux (UX) OS, Alpine Linux may be the ticket. Even I have been able to successfully install Alpine in a virtual machine environment. Currently, I am running Alpine in gnome-boxes running on EndeavourOS.

Here are the installation instructions I followed. Follow them closely (perfectly & correctly).

How to Install Alpine Linux (Linuxiac)

The install is as easy as Arch…. easier than Void (in my experience). I installed the ‘hefty’ 200MB version.

Here is the Alpine Linux Download page.

My intention is to expand this page into a tutorial, or perhaps more than one tutorial. Expect the url, etc. to change (morph) over time.

Should you have Alpine Linux learnings you wish to share/ contribute, please use our Contact Page to let me know.

Remember, like with all of my work, I am able to provide the following assurance(s):
  • It is almost certainly going to work until it breaks; although I have to admit it may never work and that would be sad.
  • When/if it does break, you may keep all of the pieces.
  • If you find my materials helpful, both you & I will be happy, at least for a little while.
  • My advice is worth every penny you paid for it!
]]>
3773
Xorg – Wayland Transition Thoughts… https://eirenicon.org/2023/12/13/xorg-wayland-transition-thoughts/ Wed, 13 Dec 2023 14:41:28 +0000 https://eirenicon.org/?page_id=3692 Revisions:
Initial Draft: 13 Dec 2023
Revised Draft: 14 Dec 2023

This document is yet another one of those I plan to update periodically. We’ll see how that goes.

Merchants Hotel ~1925 Wayland Iowa
Merchants Hotel ~1925 Wayland Iowa

As has become evident from other recent posts I have made here, I am attempting to ‘tough my way through’ a transition from Xorg to Wayland (not the town in Southeastern Iowa). What I can say, unequivocally, is that there is no single, simple, straightforward transition. This is especially true for those of us who like to run multiple desktop configurations. For those happy to work in a more homogeneous setup such as running gnome, kde, or xfce, the challenges will not be as great as they are for folks who run using dwm (to dwl), openbox (to labwc or waybox), and i3wm (to swaywm) on Debian.

In the future, the following issues will need to be addressed ‘permanently’, in one manner or another. For now however, here are some of Wayland’s problem ‘children’ along with some simple, reasonably safe ‘fixes’ for major problems.

By way of full disclosure, I am working primarily on Debian. There are a host of mainline distros I do NOT work on. Therefore, my observations are incomplete and may miss important information that you, on your environment, need. Please, remember to to search the web for further information…

Luckily, I have found a pretty decent solution for those x11 applications requiring root privileges to perform (read these applications normally need polkit to run). The following applications seem to work well and safely when invoked via terminal using “sudo -E”. The “sudo -E “applications I have currently identified (and use regularly) include:

  • synaptic
  • thunar (as root)
  • nemo (as root)
  • pcmanfm (as root)
  • gparted

Here are a few additional items that my research indicates are currently “less” solvable, perhaps even insoluble absent drastic change.

There is no single Wayland-wide method for addressing the identification of active running applications and their respective Desktop/ Workspace. What that means is that just because you can accomplish this on SwayWM does not mean you can solve the same problem, the same way with labwc or River or hyprland or…. (that’s the bad news). The better news is that there are numerous tools that are able to provide partial solutions, such as the following incomplete list:

  • swaymsg (Sway specific)
  • Waybar (best on Sway)
  • swfbar (best on Sway and hyprland)
  • yatbfw (labwc and others?)

A corollary to the above is that waybar, swfbar, yatbfw do not run offering the same features and in the same manner on different Compositors (Desktops). Some run quite well on one or more compositors others may be all but Compositor specific. The same applies for other tools like swaymsg. It is frustratingly variable. Be advised.

Here are tools/ approaches you can use to identify and then address those on your installation(s). For those without solutions, simply be advised the difficulties ‘may be there’ and could cause trouble.

Obviously, I will never identify all the Wayland/ x.org compatibility difficulties/ problems.

How to determine whether an application is running using Wayland (native) or via ‘compatibility mode’ using xwayland, etc.

Background information (some recent articles comparing x11 and Wayland)

The links below are not overly ‘shrill’. Be careful because some information on this topic can become reminiscent of systemd vitriol.

Window Decorations (Borders)

Many (most?) compositors attempt to tell windows not to draw their own decorations and this works for many (most?) applications, but the protocols for doing so are not yet standard or universally supported. As you would expect some windows still draw their own. For now, there’s probably nothing you can do about this ‘problem’, but (for you optimists out there) this is likely to improve in the future, or maybe not.

Lastly, it is worth noting that not all Wayland Compositors (Desktop Systems) operate equally well on all distros. If you are an intrepid Wayland adventurer, the best distros (those offering the broadest number of Wayland Compositors- Desktops) seem to be Arch and Void. Debian/ Ubuntu offer among the fewest.

Compositor (Desktop) Dev-teams

The stability, consistency, and robustness of Compositor development/ support teams is hugely ‘variable’. Be advised that many ‘other’ teams either have evaporated into the ‘ether’ or are operating on a shoe-string. Still other teams are robust (even ‘huge’) and appear to be relatively ‘resource rich’.

Going forward into the future, be prepared for the Wayland world’s many shifts, successes, and failures .

Remember, like with all of my work, I am able to provide the following assurance(s):
  • It is almost certainly going to work until it breaks; although I have to admit it may never work and that would be sad.
  • When/if it does break, you may keep all of the pieces.
  • If you find my materials helpful, both you & I will be happy, at least for a little while.
  • My advice is worth every penny you paid for it!

Image Credits:

Xorg: User:Sven, CC BY-SA 3.0 http://creativecommons.org/licenses/by-sa/3.0/, via Wikimedia Commons
Wayland: Kristian Høgsberg, Intel Corporation, Benjamin Franzke, Collabora, Ltd., Red Hat, Public domain, via Wikimedia Commons

]]>
3692
TUI Display Manager for Linux (Ly) https://eirenicon.org/knowledge-base/tui-display-manager-for-linux/ Sun, 26 Mar 2023 14:38:17 +0000 https://eirenicon.org/?page_id=3338 Although no one has ever asked, I have become quite enamored by the look & feel of elegant minimalist Terminal User Interface (TUI) tools. Even if they don’t ‘actually’ run faster, I think they look like they should run faster. The bottom line is I like doing things that please me aesthetically, and Linux let’s me do those. Some people call that type of system tweaking ‘ricing’ their system; I just see it as being fun.

Recently I have switched to a little known but fun Debian-based distro called LiliDog. I use LilDog as a sid (unstable Debian) variant. (Note: For those in who care, sid works like a rolling  release.)

Because I want my Display Manager (DM) to utilize a minimalist TUI style, I elected to implement ‘Ly’ as my DM. For those of you unfamiliar with Ly, here is its GitHub page. Briefly:

Ly is a lightweight TUI (ncurses-like) display manager for Linux and BSD.

Here is what it looks like (don’t expect Hollywood or Bollywood glitz.)

You may obtain their standard installation instructions on the GitHub page mentioned above. What I have created here is an edited version of the standard instructions with customizations and minor error corrections for use on systemd based Debian distros.

Vanilla Debian based distro (eg. LiliDog) Ly Installation

On Debian-based distros install the following using sudo:

sudo apt install build-essential libpam0g-dev libxcb-xkb-dev 

This should install all Debian required dependencies for you.

From this point, I assume you are using systemd as your init:

  • Clone the Ly GitHub repository:
    git clone --recurse-submodules https://github.com/fairyglade/ly 
  • Change to the ly directory
    cd ly 
  • Compile Ly
     make 
  • Test in the configured tty (tty2 by default) or a terminal emulator (but desktop environments won’t start)
    # make run 
  • Install Ly and the provided systemd service file
     # make install installsystemd 
  • Disable existing display manager (example for lightdm)
     # systemctl disable lightdm.service 
  • Enable ly service
    systemctl enable ly.service 
  • Reboot your system and you should have the newly installed ly display manager.

The above worked for me on a Debian Unstable (sid) Distro (LilDog). As noted earlier, the process I followed is a derivative of that contain on the GitHub page for ly.

Remember, like with all of my work, I am able to provide the following assurance(s):
  • It is almost certainly going to work until it breaks; although I have to admit it may never work and that would be sad.
  • When/if it does break, you may keep all of the pieces.
  • If you find my materials helpful, both you & I will be happy, at least for a little while.
  • My advice is worth every penny you paid for it!

]]>
3338
Switch to Zsh & Oh-My-Zsh https://eirenicon.org/knowledge-base/oh-my-zsh/ Sun, 26 Mar 2023 13:42:11 +0000 https://eirenicon.org/?page_id=3331 Here’s another piece of shell ‘coolness’… used by this old geek.

Oh My Zsh is a delightful, open source, community-driven framework for managing your Zsh configuration :

  1. Here is their Website. This site is a full, traditional (yes, elegant) Linux web support, documentation site.
  2. Here is their GitHub page. This page offers excellent instructions on installation and basic use.

Here are reference sites on zsh to help you understand why you might want to use it, rather than something else.

I did a bit of research and based on my discovery(ies) I changed my .profile to reflect a check for bash, zsh or something else, rather than a simple check for bash-only. Here is the reference I followed (it may be wrong, I’m no expert). Anyway it seems to work:

Here’s my revised .profile (use it at your own risk.).

# ~/.profile: executed by the command interpreter for login shells.
# Edited for Lilidog to add /sbin and /usr/sbin to path for shell.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
#if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
# if [ -f "$HOME/.bashrc" ]; then
# . "$HOME/.bashrc"
# fi
#fi

# check if running bash or zsh or something else
if [ -n "$($SHELL -c 'echo $ZSH_VERSION')" ]; then
# assume Zsh
. "$HOME/.zshrc"
elif [ -n "$($SHELL -c 'echo $BASH_VERSION')" ]; then
# assume Bash
. "$HOME/.bashrc"
else
# assume something else
fi


# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi

# include sbin in PATH
if [ -d "/sbin" ] ; then
PATH="${PATH:+${PATH}:}/sbin"
fi

if [ -d "/usr/sbin" ] ; then
PATH="${PATH:+${PATH}:}/usr/sbin"
fi

Here’s a proof of life scrot:

Remember, like with all of my work, I am able to provide the following assurance(s):
  • It is almost certainly going to work until it breaks; although I have to admit it may never work and that would be sad.
  • When/if it does break, you may keep all of the pieces.
  • If you find my materials helpful, both you & I will be happy, at least for a little while.
  • My advice is worth every penny you paid for it!

]]>
3331
pfetch https://eirenicon.org/knowledge-base/pfetch/ Sun, 26 Mar 2023 13:28:12 +0000 https://eirenicon.org/?page_id=3328 If you are like me and like your terminal to offer some status info, but might prefer something a tad more minimal in use and look than neofetch, I recommend pfetch. pfetch like neofetch is written by Dylan Araps. You can see pfetch GitHub page here.

Here’s an install guide.

I am including a scrot of my st terminal running pfetch on Debian LiliDog. Here is the command added to my .zshrc/ .bashrc file to generate the layout:

PF_INFO="ascii title os host kernel uptime pkgs memory shell editor wm palette" pfetch

Here is a proof of life image:

Remember, like with all of my work, I am able to provide the following assurance(s):
  • It is almost certainly going to work until it breaks; although I have to admit it may never work and that would be sad.
  • When/if it does break, you may keep all of the pieces.
  • If you find my materials helpful, both you & I will be happy, at least for a little while.
  • My advice is worth every penny you paid for it!

]]>
3328
POP!OS 21.10- Tweaked! https://eirenicon.org/popos-21-10-tweaked/ Tue, 18 Jan 2022 14:50:42 +0000 https://eirenicon.org/?page_id=2908 Recently, I decided to give another run at using POP!OS. There were a number of factors that prompted my choice but the most significant was:

System76’s decision to move their DE (Cosmic) from a Gnome to Rust base.

I understand this platform transition is not a short term effort. But, as a desktop environment/ window manager ‘wanderer’ I decided to check ‘things’ out.

By way of full disclosure: this is my first use of the Cosmic-Gnome platform.

I have been quite pleased. Here is a summary of my findings and tweaks. Yes, I made a few to suit my desktop biases (needs?).

Although, I normally prefer to use dwm and/or i3-wm as my desktop of choice, I find the Cosmic Desktop environment remarkably comfortable, tweakable, and dare I say, similar to my favorite wms.

Reading the Cosmic Roadmap, I found they agree that their major ‘competition’ is the i3-wm desktop. Yes, I know Cosmic-Gnome is a Desktop Environment, not a simple Window Manager but similarities between my two favorite Window Managers and the Cosmic DE abound or can be easily created/ enabled.

Here are some:

  • Unlike standard Gnome, the tiling here is similar to that on i3-wm but easier. From my perspective it is some of the easiest tiling ‘around’. Kudos to System76.
  • With the addition of a few Gnome extensions (Improved Workspace Indicator and Auto Move Windows) Cosmic applications are able to open in designated Workspaces and provide a tiny, simple indicator of which Workspace(s) are ‘active’. To activate these features all you need do is install the two plugins; and, designate which applications ‘belong’ on designated workspace(s). Nothing more (so far as I can remember).
  • Because I push open (opening) applications onto designated Workspaces, I use more than the meager number of Workspaces offered by gnome (4)- also by Cosmic-Gnome. I use 9 Workspaces. Luckily, it is quite simple to make 9 Workspaces available and provide keybindings to jump to any or transfer an open application to any Workspace. Look below to see how it can be done. There are probably better ways, but the way I uncovered works for me.  Here is the way I accomplished the above:
====== Gnome-Cosmic ======
Created Sunday 16 January 2022

Keyboard short-cuts:
This command will show what you have:
gsettings list-recursively org.gnome.desktop.wm.keybindings | grep switch-to-workspace

1. Set a static number of workspaces to 9:

gsettings set org.gnome.mutter dynamic-workspaces false

gsettings set org.gnome.desktop.wm.preferences num-workspaces 9

2. Unbind all the Gnome default keybindings for switching between applications:

gsettings set org.gnome.shell.keybindings switch-to-application-1 [] && 
gsettings set org.gnome.shell.keybindings switch-to-application-2 [] && 
gsettings set org.gnome.shell.keybindings switch-to-application-3 [] && 
gsettings set org.gnome.shell.keybindings switch-to-application-4 [] && 
gsettings set org.gnome.shell.keybindings switch-to-application-5 [] && 
gsettings set org.gnome.shell.keybindings switch-to-application-6 [] && 
gsettings set org.gnome.shell.keybindings switch-to-application-7 [] && 
gsettings set org.gnome.shell.keybindings switch-to-application-8 [] && 
gsettings set org.gnome.shell.keybindings switch-to-application-9 []

3. Unbind all the Gnome keybindings for moving between workspaces

gsettings set org.gnome.shell.keybindings move-to-workspace-1 [] && 
gsettings set org.gnome.shell.keybindings move-to-workspace-2 [] && 
gsettings set org.gnome.shell.keybindings move-to-workspace-3 [] && 
gsettings set org.gnome.shell.keybindings move-to-workspace-4 [] && 
gsettings set org.gnome.shell.keybindings move-to-workspace-5 [] && 
gsettings set org.gnome.shell.keybindings move-to-workspace-6 [] && 
gsettings set org.gnome.shell.keybindings move-to-workspace-7 [] && 
gsettings set org.gnome.shell.keybindings move-to-workspace-8 [] && 
gsettings set org.gnome.shell.keybindings move-to-workspace-9 []

4. Rebind them to switch between workspaces on Super + number:

gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-1 "[\"<Super>1\"]" && 
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-2 "[\"<Super>2\"]" && 
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-3 "[\"<Super>3\"]" && 
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-4 "[\"<Super>4\"]" && 
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-5 "[\"<Super>5\"]" && 
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-6 "[\"<Super>6\"]" && 
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-7 "[\"<Super>7\"]" && 
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-8 "[\"<Super>8\"]" &&  
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-9 "[\"<Super>9\"]" 

5. In addition, it's convenient to have Super + Shift + number move a window between workspaces:

gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-1 "[\"<Super><Shift>1\"]" && 
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-2 "[\"<Super><Shift>2\"]" && 
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-3 "[\"<Super><Shift>3\"]" && 
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-4 "[\"<Super><Shift>4\"]" && 
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-5 "[\"<Super><Shift>5\"]" && 
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-6 "[\"<Super><Shift>6\"]" && 
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-7 "[\"<Super><Shift>7\"]" && 
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-8 "[\"<Super><Shift>8\"]" && 
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-9 "[\"<Super><Shift>9\"]" 

  • Because I have strong opinions (probably on everything), there are some things I removed from / disabled on Cosmic.
    • The most important being, I turned-off the ‘Desktop Icons NG’ extension. Sorry, I do not use or like desktop icons; too much clutter.
    • I, also, use my own preferred keybindings, not those standard to Cosmic-Gnome.
  • Additionally I am a fan of using keybind accessed pop-up services. I generally use at least two; they are System Monitoring & System Maintenance: two (2) Yad scripts.
    #!/bin/bash
    # system monitors
    yad --center --borders=1 --on-top --sticky --single-click --title="System Monitors" --height=80 --text="<b><u>System Monitoring Tools</u></b>" --window-icon=utilities-terminal --image "calligraplan" --image-on-top\
        --buttons-layout=center \
        --window-icon="gtk-quit: exit" \
        --button="Task Management!gtk-preferences:lxtask" \
        --button="Wavemon!network:gnome-terminal -e wavemon -i wlp2s0" \
        --button="BpyTop!system:gnome-terminal -e bpytop" \
        --button="Glances!system-run:gnome-terminal -e glances" \
        --button="htop!cpu:gnome-terminal -e htop" \
        --button="nmon!search:gnome-terminal -e nmon" \
        --button=Cancel:0 \
    #!/bin/bash
    #System Maintenance - Tools
    yad --title "System Tools" --form --width=325 --height=200 --posx=850 --posy=200 --text="<b><u>System Maintenance Tools</u></b>" --window-icon=utilities-terminal --image "calligraplan" --image-on-top \
    --field="<b>aptitude</b>":fbtn "gnome-terminal -e aptitude" \
    --field="<b>Bleachbit</b>":fbtn "bleachbit" \
    --field="<b>Clean, Update, Upgrade</b>":fbtn "gnome-terminal -e /home/mark/.local/share/scripts/clean-update.sh" \
    --field="<b>Grsync</b>":fbtn "grsync" \
    --field="<b>Grub Customizer</b>":fbtn "grub-customizer" \
    --field="<b>Network Manager TUI</b>":fbtn "gnome-terminal -e nmtui" \
    --field="<b>Print Manager Settings</b>":fbtn "system-config-printer" \
    --field="<b>Restart Network</b>":fbtn "systemctl restart NetworkManager" \
    --field="<b>Sound Control</b>":fbtn "pavucontrol" \
    --field="<b>Synaptic</b>":fbtn "synaptic-pkexec" \
    --field="<b>Topgrade (Upgrade)</b>":fbtn "gnome-terminal -e /home/mark/.local/bin/topgrade/topgrade.sh" \
    --field="<b>USB Formatter</b>":fbtn "mintstick -m format" \
    --field="<b>USB Image Writer</b>":fbtn "mintstick -m iso" \
    --button=Exit:1
    
  • Due to my ancient brain’s lack of precision memory, I use two (2) Conkies:
    • one for keybindings (to provide a handy reminder of those I most often need and use);
--[[                               
# Based on Oberon's fine work on i3wm-Manjaro
# https://github.com/oberon-manjaro/conkies
# Add'l Color, functional and branding changes were made by 
# Mark Rabideau (ManyRoads) http://eirenicon.org
# in order to work, this conky requires the installation
# of pamixer in order to report sound volume correctly.
# 
# REMEMBER to change the location of scripts, devices, wifi, etc.
# to match those used on your environment(s)
# you also need appropriate glyph fonts like Nerd Fonts
# fontawesome, etc. in order for the glyphs to present correctly
#
]]
conky.config = {
    alignment = 'bottom_left',
    border_width = 1,
    border_inner_margin = 10,
    cpu_avg_samples = 2,
    default_color = '#CFD8DC',
    default_outline_color = '#000000',
    default_shade_color = '#CFD8DC',
    draw_borders = false,
    draw_graph_borders = true,
    draw_shades = false,
    double_buffer = true,
    use_xft = true,
    font = 'Inconsolata Regular:size=11',
    gap_x = 30,
    gap_y = 70,
    minimum_height = 100,
    minimum_width = 300,
    maximum_width = 300,
    net_avg_samples = 2,
    no_buffers = true,
    out_to_console = false,
    out_to_stderr = false,
    extra_newline = false,
    own_window = true,
    own_window_class = 'Conky',
    own_window_type = 'desktop',
    own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
    own_window_colour = '#2A2A2A',
    own_window_argb_visual = true,
    own_window_argb_value = 160,
    update_interval = 1.0,
    uppercase = false,
    use_spacer = 'none',
    xftalpha = .85,
    times_in_seconds = true,
    color1 = 'FFFFFF',
    color2 = '#6CC7D2',
}
conky.text = [[
#### Keybindings
${voffset -5}$color2${font Roboto:size=20}Keybindings ${font}
#### Applications
${voffset 10}${color}${font Roboto:size=11}Applicationss $hr ${font}
${voffset 5}${color2}calibre $alignr${color}[alt]+[c]
${color2}text editor $alignr${color}[alt]+[e]
${color2}geany $alignr${color}[alt]+[g]
${color2}onlyoffice $alignr${color}[alt]+[o]
${color2}skype $alignr${color}[alt]+[s]
${color2}thunderbird $alignr${color}[alt]+[m]
${color2}virtualbox $alignr${color}[alt]+[v]
${color2}web browser $alignr${color}[alt]+[w]
${color2}zim $alignr${color}[alt]+[z]
#### Tiling
${voffset 5}${color}${font Roboto:size=11}Tiling $hr ${font}
${voffset 5}${color2}tiling toggle $alignr${color}[super]+y
${color2}hide window $alignr${color}[alt]+F9
${color2}toggle fullscreen mode $alignr${color}F10
${color2}toggle fullscreen mode $alignr${color}[super]+[m]
${color2}workspace jump $alignr${color}[super]+[1,2...]
${color2}move window $alignr${color}[super]+[shift]+[1,2...]
${color2}show workspaces $alignr${color}[super]+[d]
${color2}view split left $alignr${color}[super]+[ctrl]+[h]
${color2}view split right $alignr${color}[super]+[ctrl]+[l]
#### Menus-Terminal
${voffset 5}${color}${font Roboto:size=11}Menus-Terminals $hr ${font}
${voffset 5}${color2}open new terminal $alignr${color}[super]+enter
${color2}applications $alignr${color}[super]+[a]
#### Quit
${voffset 5}${color}${font Roboto:size=11}Quit $hr ${font}
${voffset 5}${color2}kill focused $alignr${color}[alt]+F4
${color2}logout $alignr${color}[ctrl]+[alt]+[del]

]]
    • and, another to provide systems status.
--[[                               
# Based on Oberon's fine work on i3wm-Manjaro
# https://github.com/oberon-manjaro/conkies
# Add'l Color, functional and branding changes were made by 
# Mark Rabideau (ManyRoads) http://eirenicon.org
# in order to work, this conky requires the installation
# of pamixer in order to report sound volume correctly.
# 
# REMEMBER to change the location of scripts, devices, wifi, etc.
# to match those used on your environment(s)
# you also need appropriate glyph fonts like Nerd Fonts
# fontawesome, etc. in order for the glyphs to present correctly
#
]]
conky.config = {
    alignment = 'top_right',
    border_width = 1,
    border_inner_margin = 10,
    cpu_avg_samples = 2,
    default_color = '#CFD8DC',
    default_outline_color = '#000000',
    default_shade_color = '#CFD8DC',
    draw_borders = false,
    draw_graph_borders = true,
    draw_shades = false,
    double_buffer = true,
    use_xft = true,
    font = 'Inconsolata Regular:size=11',
    gap_x = 30,
    gap_y = 110,
    minimum_height = 100,
    minimum_width = 300,
    maximum_width = 300,
    net_avg_samples = 2,
    no_buffers = true,
    out_to_console = false,
    out_to_stderr = false,
    extra_newline = false,
    own_window = true,
    own_window_class = 'Conky',
    own_window_type = 'desktop',
    own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
    own_window_colour = '#2A2A2A',
    own_window_argb_visual = true,
    own_window_argb_value = 160,
    update_interval = 1.0,
    uppercase = false,
    use_spacer = 'none',
    xftalpha = .85,
    times_in_seconds = true,
    color1 = 'FFFFFF',
    color2 = '#6CC7D2',
}
conky.text = [[
${voffset -5}$color2${font Roboto:size=20}${time %A}$font\
${voffset -15}$alignr$color${font Roboto:size=42}${time %e}$font
$color${voffset -12}$color${font Roboto:size=20}${time %b}$font\
${voffset -6} $color${font Roboto:size=20}${time %Y}$font$color2 $hr
#### System
${voffset 5}${color}${font Roboto:size=11}System $hr ${font}
#### CPU
${voffset 5}${color}${font Roboto:size=11}CPU$alignr$cpu%
$font$color2${top name 1}$alignr$color${top cpu 1}%
$color2${top name 2}$alignr$color${top cpu 2}%
$color2${top name 3}$alignr$color${top cpu 3}%
$color2${top name 4}$alignr$color${top cpu 4}%
$color2${top name 5}$alignr$color${top cpu 5}%
#### RAM
${voffset 10}${color}${font Roboto:size=11}RAM$alignr$mem$font
${voffset 5}$color2${top_mem name 1}$alignr$color${top_mem mem_res 1}
$color2${top_mem name 2}$alignr$color${top_mem mem_res 2}
$color2${top_mem name 3}$alignr$color${top_mem mem_res 3}
$color2${top_mem name 4}$alignr$color${top_mem mem_res 4}
$color2${top_mem name 5}$alignr$color${top_mem mem_res 5}
#### Status
${voffset 5}${color}${font Roboto:size=11}Status $hr ${font}
${voffset 0}${color2}${font Roboto:size=11}Swap ${font FontAwesome:size=11}?${alignr}${font Roboto:size=11}${color}${swap}/ ${swapfree}
${voffset 0}${color2}${font Roboto:size=11}Disk ${font FontAwesome:size=11}?${font Roboto:size=11}${color}${alignr}${fs_used /home/mark} of ${fs_size /home/mark} / ${fs_used_perc /home/mark}%
${voffset 0}${color2}${font Roboto:size=11}Wifi ${font FontAwesome:size=11}?${font Roboto:size=11}${color}${alignr}${wireless_essid wlp2s0} ${wireless_link_qual_perc wlp2s0}%${font}
${voffset 5}${color}${font Roboto:size=11}Distro $hr ${font}
${voffset 0}${color2}${font Roboto:size=11}Kernel${alignr} ${color}${kernel}
${voffset 0}${color2}${font Roboto:size=11}Init ${alignr}  ${color}${execi 86400 .$Home/.local/share/scripts/init-id.sh}
${voffset 0}${color2}${font Roboto:size=11}Desktop ${color}${font Roboto:size=11}$alignr${execi 86400 awk -F= '/TION/ {print $2}' /etc/lsb-release |sed 's/"//g'} \
]]
  • I prefer to access and use a fully searchable application menu via keybinding F1. To that end, I have installed and created a Cosmic-look jgmenu -jgmenurc.  I do not really like the huge, mouse centric, application maze, very much. jgmenu uses almost zero resources and you simply type the application name (which is automagically provide as you type). then arrow and ‘hit’ enter to run. On window Managers I often also provide dmenu, rofi, and j4-dmenu-desktop as additional options. You can do that here if you wish; I may do that later. But for now, jgmenu offers me a nice, fast, ‘eye-candy’ menu, easily made to conform with the Cosmic style. The jgmenurc follows:
position_mode = center
columns = 3
menu_width = 650
menu_height_min = 410
menu_height_max = 410
menu_padding_top = 15
menu_padding_right = 15
menu_padding_bottom = 15
menu_padding_left = 15
menu_radius = 3
menu_border = 3
#menu_halign = center
#menu_valign = center
color_menu_bg = #303030 99
color_menu_border = #FBB86C 90
csv_no_dirs = 1
csv_name_format = %n

If you wish to use these materials, you may do so without any encumbrances. If you like any of the ideas, feel free to implement them in manner that suits your need.  The bottom line, for me, is Cosmic-Gnome (part of POP!OS 21.10) is a VERY nice Desktop. I plan to use it for a while.

 

Remember, like with all of my work, I am able to provide the following assurance(s):
  • It is almost certainly going to work until it breaks; although I have to admit it may never work and that would be sad.
  • When/if it does break, you may keep all of the pieces.
  • If you find my materials helpful, both you & I will be happy, at least for a little while.
  • My advice is worth every penny you paid for it!

]]>
2908
i3wm, dwm plus Peppermint 10 desktops on an LTS Ubuntu Bionic Base https://eirenicon.org/i3wm-dwm-plus-peppermint-10-desktops-on-an-lts-ubuntu-bionic-base/ Wed, 14 Apr 2021 16:36:38 +0000 https://eirenicon.org/?page_id=2694

Building this Ubuntu-based multi-window manager/ DE environment is tested on Peppermint OS 10. The steps highlighted should work with other Ubuntu-based distros & with minor tweaks should even work on Arch based distros. What I can say is that they work on mine.

For those who have under powered, arcane laptops such as my Acer Aspire One A0722, I am sharing my recent foray into using Peppermint OS 10.

Peppermint OS 10 (P10), if you are unfamiliar, offers a blended Desktop Environment (DE) build largely of xfce4, lxde, and cinnamon DE components. The environment discussed in this tutorial runs on a tweaked (modified) Ubuntu Bionic LTS (Long Term Support) base, such as Peppermint OS 10.

I have to say the base (basic) P10 environment is quite nice. It runs smoothly and consumes few resources. Out of the box, P10 idles at about 500MB on my machine. Because I am never satisfied with vanilla installs, I elected to tweak my initial installation to see what I could achieve with minor efforts. Just by shutting down a number of background daemons and services, I was able to get the desktop to about 350MB (at idle with one terminal window running). Having achieved that, I decided I’d work on my teeny, tiny platform to see what diversity and performance I might attain (with a modicum of effort).

Here are images of my desktops after all the tasks listed below were accomplished:

Peppermint OS 10 @ 349MBi3wm on Peppermint OS @ 292MB

dwm on Peppermint OS @ 272MB

Use-case

Here’s what I set out to achieve:

  1. No degradation in performance on the basic Peppermint 10 Desktop Environment (DE).
  2. The addition of dwm (from suckless) to my user desktop account.
  3. Addition of i3wm (not the gaps version) to the user desktop.
  4. Shared x window services across all three desktops.
  5. Shared Keybindings (application short-cuts) across all three desktops (P10, i3wm, dwm).
  6. Blazing (okay, leisurely but not ponderous) speed in each environment.

Key Software Components

The new software components I added to P10 to build essential functions for this environment include:

  1. sxhkd (for sharing keybindings)
  2. rofi (for common/shared menus, application searching, and active application monitoring and access)
  3. feh is used to load new desktop wallpapers when a new desktop is opened. I continue to use nitrogen (which is native to Peppermint) for wallpaper changing.
  4. dunst is used as my common notification software. It is lighter than notifyd and more fun to tweak.
  5. yad & zenity scripts
  6. .xsessionrc is incorporated into the user area/ login process in order to set x-windows functions in a standard manner for each desktop (when activated).
  7. conky & conkybar for desktop status monitoring on i3 and dwm.

Added (New) Functionality

Additional ‘neat features ‘(so say I) incorporated in the ‘new’ environment include:

  1. caffeine- this little app does burn a little extra memory, but it keeps my desktop from timing out when I don’t want it to, like during long compiles, videos, podcasts, etc.
  2. termite- because it is my current favorite terminal (although I have to say that Sakura terminal, the native P10 terminal, is fine). Adding termite is probably more of a chore than most Debian/Ubuntu users want to undertake because it needs to be built from source. Here is the link I used. You are welcome to give it a go. If you want to do this, here is what I used/followed (source):
    wget https://raw.githubusercontent.com/Corwind/termite-install/master/termite-install.sh
    chmod +x ./termite-install.sh
    ./termite-install.sh
    sudo update-alternatives --config x-terminal-emulator
    
  3. xautolock & i3lock-fancy are used to replace the heavier screenlock and light-locker found on the base version of Peppermint OS 10.
  4. powertop, thermald, and tlp for power conservation.

In order to build this ‘brave new environment’, I have had to strip almost all Peppermint startup (autostart) functions and incorporate them into .xsessionrc (Note: If you are using an Arch-base distro you should rename this file to .xprofile). I, also, have removed all Peppermint keybindings from within Peppermint and moved them to sxhkd (so they will work with every desktop environment). You should leave any unique to Peppermint x-window functions and/or keybindings where they are in their native Peppermint setup. To be honest I have very few items remaining in their native locations.

Note: Be careful here…. There be monsters, should you err.

Included below are the various files I created and use (you may use and/or alter these to suit your preferences). Be advised that all the dwm and i3 settings are included in the various files below.

You should review and load these files in bulk (once they are adjusted to your satisfaction).  The folders I provide you are set up such that they will fit into a non-modified $Home directory.  (see Mass Copy Phase- below)

Mass Copy Phase

  • Move Peppermint functions from their native Peppermint locations to .xsessionrc (for x-windows functions) and to sxhkd (for application keybindings/short-cuts). The dotfiles I have provided below contain the transitioned versions of “my” Peppermint standard settings. You are on your own to manage yours. If you really, really want, I’ll do yours for you providing you send me your PC (along with return postage) and provide me with a $250 Paypal payment. 😉
    1. Before executing the “Mass Copy” step (below) please review the entirety but focus especially on the contents of .xsessionrc and .config/sxhkd/base.conf.  Be certain you have reviewed the contents of these files and matched them against what you removed (or will remove) from your P10 autostart function. Examine my templates, use them, learn from them. This is really not too very difficult. Remember, these files will play a crucial role in making certain your previous setup continues to work as intended, and that the new environment will blend seamlessly into your setup and match your setup where ever possible.
    2. As you examine & review the entirety of the folder contents (link below) you will notice folders containing additional information like fonts, themes, etc. These are used in both i3 and dwm. You don’t need to do anything more than keep them and include them in the “Mass Copy”. If you don’t keep them then numerous items in i3 and dwm will break. You’ve been warned.
    3. “Mass Copy” step:  If you are good to go with standard file folder layout in your $Home directory and have completed the content review, it should be okay to over-write things should you encounter duplicate file names. You should now be ready to drag & drop them (the lot) into your $Home.
    4. Next, using synaptic install caffeine, rofi, sxhkd, dunst, yad, feh, xautolock, i3lock-fancy,thermald, tlp, powertop, and zenity. Don’t worry if synaptic tells you that an application is already installed, plod on through by re-installing those items (no harm, no foul).

Mass Copy Folder for download (zipped)- about 280MB

Once you have completed the above steps, you can log out and log back in to P10. You should note no change in Peppermint after login. (Note: Test this to be certain.) Everything should work like it did before, assuming you didn’t lose something in the autostart/ keybinding transition.

At the end of this phase, you should still have a functioning P10 environment, although a bunch of ‘stuff’ will have been moved to new autostart and ‘xwindow function’ locations.

When you are ready to add either i3wm and/or dwm I recommend you make the transition(s) in step-wise fashion (see below).

i3 Phase (optional)

  • Now you are at the point where you are ready to install i3. I used synaptic for this function. I installed the i3 meta package. This step should be pretty simple. After i3 is installed, use synaptic to install conky-all.
    1. Before logging out of your P10 desktop, make certain your $Home/.config/i3 directory is populated (if you did not remove items from the “Mass Copy” above you should see ‘stuff’ in your $Home/.config/i3 folder. If that folder is empty, or missing items,  you will need to copy the .config/i3 folder again. You will find the base mterials in the Mass Copy master folder.
    2. Once you make certain i3 and conky-all are installed and your $Home/.config/i3 folder is populated, you should be able to log out of Peppermint and on the Login screen see an option for i3. Select the i3 option and Login… voilá. You should have an i3 desktop. The conkies left & right should help you with getting in & out & around. To learn about how i3 works, visit their site. Enjoy. (N.B. Read the Mass Copy folder .config/sxhkd/base.conf to review the application bindings I provided (plus your changes).  You will, also, find the details of how i3 works in the same Mass Copy folder in .config/i3.conf -the i3 configuration file.)

dwm Phase (optional)

If you really want to be among the cool-kids, this third desktop installation phase is for you.

Setting up dwm is really pretty simple. If you downloaded all the files from the “Mass Copy” folder, you will have all the essential dwm software. You will find your files located in $Home/.local/bin You just need to compile it.

Do NOT install dwm from a repo. dwm is not designed to be installed that way… sorry.

Here’s what you need to do to get things operational (be aware you will get things setup my way.  Down the road you will want to tweak things to your fancy/ needs.

For Debian based distros (like ubuntu), using your terminal to install numerous dependencies. (reference: https://johnjago.com/blog/dwm/):

sudo apt install make gcc libx11-dev libxft-dev libxinerama-dev xorg libharfbuzz-dev

Next go to the main dwm sub-folder ($Home/.local/bin/dwm/dwm) and open a terminal in that directory.  Enter the following command:

 sudo make clean install 

Then got to the slstatus sub-folder ($Home/.local/bin/dwm/slstatus) and open a terminal in that directory.

Enter the following command:

sudo make clean install

The first step in the dwm setup only needs to be run one time. Because I have made numerous edits to config.h for your base install, you don’t actually need to edit config.h unless you really, really want to. If you have never played with dwm before, don’t do too much futzing with things before you do some research. You have been warned!

Next in order to get dwm to appear as an option on your login display manager, we have another small task to perform.

  • We need to create an xsession file for dwm.
  • What we are going to do is edit the pre-existing i3.desktop file, and then save it under another name so we will be able to open dwm as  LightDM (Slick Greeter) option.
  • In a terminal window enter:
sudo geany /usr/share/xsessions/i3.desktop

Replace the existing i3.desktop info with the following; make certain  <UserName> = your username :

[Desktop Entry] Name=dwm
Comment=dynamic window manager
Exec= /home/<UserName>;/.local/bin/autostart-scripts/start-dwm.sh
Type=Application
Icon=preferences-system-windows-move

Save the revised file as: dwm.desktop

(Be certain to rename the edited i3.desktop file and leave the original i3.desktop file as it was.). The Exec=$Home/.local/bin/autostart-scripts/start-dwm.sh provides dwm unique autostart functions as well as the actual dwm executable call.

Once you have completed these steps, you should be able to open all the installed window managers plus your original desktop, as you need/ want them.

Enjoy!

Remember, like with all of my work, I am able to provide the following assurance(s):
  • It is almost certainly going to work until it breaks; although I have to admit it may never work and that would be sad.
  • When/if it does break, you may keep all of the pieces.
  • If you find my materials helpful, both you & I will be happy, at least for a little while.
  • My advice is worth every penny you paid for it!

]]>
2694
A Quad (4) Desktop Adventure #2 https://eirenicon.org/a-quad-4-desktop-adventure-2/ Thu, 20 Feb 2020 16:04:20 +0000 https://eirenicon.org/?page_id=1817

This is the second installment of:

An adventure creating a single user environment with 4 desktops.

Thank you to everyone who has expressed interest in this ‘adventure’. I hope we’ll learn a lot. I know I will. Please help keep me honest.

In that vein [full-disclosure] this work is largely based on my bspwm desktop. My initial setups and experience were developed by using antiX and MX Linux versions.  My current ‘bspwm production setup’ runs on manjaro. As it turns out polybar, my preferred panel, runs more robustly on an arch-based distro than it does on a Debian base. As a result, for this ‘adventure’ I have had to create workarounds for my MX setup to provide functionality equivalence between arch & Debian bases.  Although sadly, I am not always able to attain parity between both distro bases.[/full disclosure]

Before beginning any of the adventure, you may ‘prefer’ to have a machine setup for you to use. If so, please install MX Linux 19.1, if you want to go ‘vanilla’; or if you are a risk taker, install the distro of your choice. Should you choose something other than MX 19.1, you will need to adjust this exercise to address the deltas between your distro and MX. I will try to note generic thoughts and differences between MX and the arch distro I know best, manjaro. I’ll be as detailed as I can be; but if you choose Gentoo, Fedora, OpenSUSE, void, etc…. well, you are on your own.

Now, let’s roll up our sleeves and get to work.

The first objective we want to achieve is a single login. To do that is fairly simple. I recommend, and use, LightDM for that purpose. Yes, there are other Display Manager (DM) options. Luckily, MX Linux (our host distro for this exercise) offers LightDM by default; manjaro does the same. As a result, we really need do nothing ‘fancier’ than installing ‘those missing window managers’ from our base install. To re-cap, the base included desktops in MX are:

  • xfce
  • fluxbox

Note: If you prefer to use manjaro rather than MX, I recommend you install manjaro’s xfce-minimal. Manjaro xfce-minimal offers xfce as its standard Desktop Environment, oddly enough.

The MX desktops we need to add/install in our environment are:

  • bspwm
  • openbox

For manjaro, you may wish to also add:

  • fluxbox

I generally recommend that these major ‘window manager’ additions be done via the host distro package installer MXPI (MX Linux Package Installer) or ‘pamac’ (for manjaro). You can use command line if you prefer; it’s just that dependencies can be a bit more difficult accommodate, and I won’t cover all of those here. In a bit, I will provide an example of that on the MX items we’ll need to add in order to get PyWal operational (PyWal is not in the MX or Debian repositories- repos, see below.).

Next, I think it would be helpful for me to share a couple of images of both an MX Linux & manjaro Desktop.  Think of these as target images.  This is what we are building toward.

bspwm on MX 19.1 with polybar (top panel); rofi active workspace tracker (center); conky (right); tint2 panel with taskbar (bottom)

bspwm on manjaro with polybar (top panel); rofi active workspace tracker (center); conky (right); tint2 panel with taskbar (bottom)

Important items that may not be apparent from the images:

  • There are going to be numerous Rofi pop-ups to facilitate functions such as menu access and other help functions. (You’ll become acquainted with those later.)
  • zenity & yad will provide calendar and help popups/ dialogs. (None are visible here.)
  • Screen brightness controls will not be the same between bases due to Debian & arch differences.
  • Workspace control (top left) is going to be slightly different between window managers. (Not visible here.)
  • Xfce will be largely allowed to function using its native functionality, although it the xfce DE will be tweak to be more like the three (3) window managers. (Not visible here.)
  • PyWal is used to change wallpapers and colors on the desktops.  What changes varies some between distro bases and desktops. (Very cool, but nearly useless…. )
  • Other desktops will look ‘very’ much like the bspwm desktop on the same distro.

Once you have installed your preferred base distro, there are a few additional items to install. For MX, you will need to install the following major items (non-MXPI installs are noted):

  • tint2
  • rofi
  • bspwm
  • sxhkd
  • openbox
  • obmenu-generator (from Head_on_a_Stick)
  • picom (from Head_on_a_Stick)
  • PyWal & colorz (cli install); the terminal command follows:
    sudo apt purge python3-pip && sudo apt install --install-recommends python3-pip && pip3 install pywal && pip3 install colorz
  • inkscape
  • imagemagick
  • sakura (my ‘go to’ terminal)
  • yad
  • zenity

For manjaro most of the above are available from pamac, if you allow AUR to be used.

You will, also, need the following if they are not installed with your distro:

  • conky (It is best if you can also install conky-manager, not all distros offer this tool, any longer.)
  • geany & geany-plugins (I use it for all script and development work.)

Nice to haves for some of the desktops:

  • jgmenu (openbox)
  • fluxbox themes  [sarcasm] Select some that you can stand to look at; I am unable to suggest any.  [/sarcasm]
  • high quality gtk2 themes  (openbox & bspwm)
  • mouse cursors you like or are willing to use

At this point you should have most of the basic setup complete. In the next installment, we’ll discuss tools and performing detailed setup. You’ll get to learn about dotfiles, scripts, and their application.

If you try to run these desktops right now, they won’t all work very well. bspwm will especially be boring… probably blank.  Wo-o-o-o-o, scary. Trust me we’ll fix the quickly and easily. I have the technology, for you.

The other articles in this series:


Remember, like with all of my work, I am able to provide the following assurance(s):
  • It is almost certainly going to work until it breaks; although I have to admit it may never work and that would be sad.
  • When/if it does break, you may keep all of the pieces.
  • If you find my materials helpful, both you & I will be happy, at least for a little while.
  • My advice is worth every penny you paid for it!

]]>
1817
bspwm (+ hlwm) setup https://eirenicon.org/knowledge-base/bspwm-hlwm-setup/ Tue, 14 Jan 2020 14:59:05 +0000 http://eirenicon.org/?page_id=1772

This is an update/ report on my bspwn Journey.

I continue to especially enjoy using bspwm… I hope folks find some of my learnings reasonably helpful. Below you will find links to dotfiles on github & gitlab; mind you these will require edits and tweaks depending on your setup/ distro/etc.

My environment uses my own customized bspwm, hlwm (Herbstluftwm) setup derived from materials I “procured” from antiX, arcolinux, manjaro, and anywhere else I was able to dig and ‘borrow’.

Some of the major components I use include:

  • Pywal to change the colors and wallpaper with every terminal load.
  • sakura is my terminal of choice
  • polybar is the panel
  • rofi for select online help files and menus plus workspace activities
  • zenity & yad for other help and dialog functions
  • conky because I can…
  • networking is with connman
  • bash scripts

I run this ‘setup’ on both manjaro & MXLinux 19 (Debian) machines; polybar likes manjaro better.

Note: Both bspwm & hlwm look essentially identical on my desktop and they share common use of a single sxhkdrc.

Here are the dotfiles:

Here are a few screenshots…


Remember, like with all of my work, I am able to provide the following assurance(s):
  • It is almost certainly going to work until it breaks; although I have to admit it may never work and that would be sad.
  • When/if it does break, you may keep all of the pieces.
  • If you find my materials helpful, both you & I will be happy, at least for a little while.
  • My advice is worth every penny you paid for it!

]]>
1772
Creating a homogeneous look & feel for multiple window managers- Part 1 https://eirenicon.org/creating-a-homogeneous-look-feel-for-multiple-window-managers-part-1/ Mon, 18 Nov 2019 16:37:51 +0000 http://eirenicon.org/?page_id=1495 This is the first article in a series.

Yes, it is possible to create a homogeneous look across multiple window managers (wm).

In this series, I will discuss and demonstrate (via written tutorial) how-to achieve this objective.  We’ll examine the use of two of my favorite window managers (bspwm & hlwm) as well as tools/software such as polybar, sxhkd (sxhkdrc), rofi and the ‘infra-structure tools’ from the xfce desktop environment.

N.B.; Be advised xfce is technically a Desktop Environment (DE) not a Window Manager.

This is actually not a new concept. There is at least one distro (ArcoLinux, managed ‘benevolently’ by Erik Dubois), that promotes the concept of homogeneity across multiple environments including the following:

  • bspwm (my personal favorite)
  • xmonad
  • i3-wm (the most popular)
  • hlwm (#2 in my book)
  • openbox (a non-tiler)

The primary benefit offered by building a homogeneous environment is the achievement of consistency across essential desktop functions such as: keybindings, menubars, file managers, music players, and the like. This reduces training time, improves skills expertise, and assists in portability of artifacts across different work flows.

As our example in this series, we will use my current desktop setup/arrangement which employs:

  • bspwm (my primary desktop manager)
  • hlwm (a secondary window manager)
  • xfce 4.14 with zentile (for my combined infra-structure as well as a ‘familiar’ backup desktop environment)
  • MX19 (using Debian Bullseye, to help me keep current with many of the tools currently developed on arch platforms)

The tools which are shared on my three desktops include:

With a few small exceptions, my bspwm & hlwm desktops look identical and are nearly identical functionally; xfce with zentile looks similar but not ‘quite the same’.  To my mind, bspwm is smoother and offers a bit more complete set of functions than hlwm or xfce’s desktop  (but in truth that is mostly a personal preference choice on my part).

Below are basic desktop screenshots of my three desktops (hopefully the labels will help you sort them out). Each shows:

  • rofi main menu (called via F1 keybinding)
  • Thunar file manager (I, also, have midnight commander and nnn running across all three desktops; although, they are not shown here.)
  • pyWal (screen background changer and tool ‘colorizer’ is running on all three desktops).
  • conky (my ‘personal’ version is running)

You should also note:

  • polybar menu (screen top on hlwm & bspwm)
  • xfce-panel: Currently the xfce-panel is located at the screen bottom on xfce-zentile setup; yes, I could easily move it to the top of my screen for consistency.

bspwm Screenshot

hlwm Screenshot

xfce (with zenity) Screenshot

In the next article in this series, I’ll show more ‘building block details’ and discuss how-to tweak them for consistency.

If you enjoy and value this article, please…

]]>
1495