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.
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
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