Nahuel Hernandez

Nahuel Hernandez

Another personal blog about IT, Automation, Cloud, DevOps and Stuff.

EndeavourOS Linux I3 Setup

EndeavourOS is another Arch Linux based distribution. All worked out of the box and the installation was straightforward. On the other hand, EOS comes with an I3 setup option. I3 is a dynamic tiling window you can do everything using your keyboard, perfect for #productivity and to have a minimalist and very fast environment.

4-Minute Read

EOS

I installed Endeavors using the installer from the live environment with encryption on the disk, swapping for hibernating with a few clicks, and so on. EOS + I3 is an excellent combination, after testing Manjaro, Arch, Debian, and Fedora. I feel confortable with this setup. In brief EOS + I3 is an excellent combination to have an amazing environment to use every day.

Key topics about EOS Atlantis Version

  • Linux 5.15 LTS
  • Rolling Release (as Arch)
  • Calamares Graphical installer
  • Btrfs Filesystem
  • PipeWire installed by default for audio

EOS-i3 Apps by default

  • background handled by nitrogen
  • gtk3 theme handled by lxappearance-gtk3
  • Filebrowser = Thunar
  • default Terminal-Emulator = xfce4-terminal
  • Text-Editor = xed
  • dex : autostarting apps
  • Notifications are done with dunst

Main Shortcuts

main-shortcuts

First steps

Update pacman database

> sudo pacman -Syyu

Install YAY Yay is a modern AUR helper written in the GO language. It has very few dependencies and supports AUR tab-completion so that you don’t have to type the commands in full

> sudo pacman -S yay

Install and change default shell to ZSH ZSH is my favorite shell, with “Oh-my-zsh” . Oh-My-Zsh is a framework for managing your Zsh configuration. It comes bundled with helpful functions, plugins, and themes.

> sudo pacman -S yay -y
> sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Enable and setup Bluetooth Bluetooth is not enabled by default on EOS because of several security risks. To get Bluetooth working you need to enter this in the terminal:

> sudo pacman -S --needed bluez bluez-utils

Configure to both with the OS

> sudo systemctl enable --now Bluetooth

And graphical GUI tools to configure and manage Bluetooth:

> yay -S blueberry

Installing extra apps

  • brave: browser based on Chrome
  • flameshot: screenshot tool
  • pcmanfm: file manager with dual pane
  • typora: my favorite Markdown Editor
  • gotop: terminal based graphical activity monitor inspired by gtop and vt
> sudo pacman -s flameshot pcmanfm -y
> yay -S typora gotop brave-bin

Cleaning unused apps

> sudo pacman -R thunar thunar-volman thunar-archive-plugin

Configuring multiple monitors setup EOS/I3 detects both of my monitors out-of-the-box, however i want to configure some advance setups, for example, if i change my external ultrawide monitor to my portable external monitor, i want to adapt automatically, to do that i need autorandr

Autorandr automatically select a display configuration based on connected devices

> yay -S autorandr

Save my current display (Notebook + Ultrawide) to a new profile “home”

> autorandr --save home

Now i disconnected the external monitor (HDMI) and execute

> xrandr --auto
> autorandr --save laptop

Now everytime i connect/disconnect the HDMI autorandr will change my display configuration

Work Apps

Helm

> curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
> chmod 700 get_helm.sh
> ./get_helm.sh

tfenv allow us to use multiple Terraform versions

> yay -S tfenv 

Install the latest Terraform version

> tfenv install latest
Installing Terraform v1.1.5
> sudo tfenv use latest    
Switching default version to v1.1.5
Switching completed
> terraform --version
Terraform v1.1.5

aws-cli

> curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
> unzip awscliv2.zip
> sudo ./aws/install
> aws --version
aws-cli/2.4.11 Python/3.8.8 Linux/5.15.14-1-lts exe/x86_64.endeavouros prompt/off

eksctl is a simple command line utility for creating and managing Kubernetes clusters on Amazon EKS

> curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
> sudo mv /tmp/eksctl /usr/local/bin
> eksctl version
0.79.0

Testing connect to an EKS

> aws eks --region us-east-1 update-kubeconfig --name sandbox-eks-cluster
Added new context arn:aws:eks:us-east-1:123456789:cluster/sandbox-eks-cluster to /home/naguer/.kube/config

kubectl

> curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
> sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
>  kubectl version --short
Client Version: v1.23.1

Testing kubectl

> kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
nginx-6799fc88d8-m67pl   1/1     Running   0          4d13h

kubectx is a tool to switch between contexts (clusters) on kubectl faster.

> yay -S kubectx

Testing changing cluster and creating a better alias using kubectx

> kubectx 
arn:aws:eks:us-east-1:123456789:cluster/sandbox
arn:aws:eks:us-east-1:123456789:cluster/sandbox-eks-cluster
> kubectx dh-sandbox=arn:aws:eks:us-east-1:123456789:cluster/sandbox
Context "arn:aws:eks:us-east-1:123456789:cluster/sandbox" renamed to "sandbox".
> kubectx sandbox                                                                       
Switched to context "sandbox".

Visual Studio Code

> yay -S visual-studio-code-bin

Others screenshots

App menu Rofi

Browser + File Manager + Terminal

Resources

Categories

Recent Posts

About

Over 15-year experience in the IT industry. Working in SysOps, DevOps and Architecture roles with mission-critical systems across a wide range of industries. Wide experience with AWS, Terraform, Kubernetes, Containers, CI/CD pipelines, and Linux. Always keeping up with the latest technologies. Passionate about automating the run of the mill. Big focus on problem-solving.