2025 / 12 / 05
My Omarchy tweaks

Just some little tweaks here and there

linux
omarchy

After installing Omarchy I usually do:

Configs

DNS

Setup -> DNS -> Cloudflare

.bashrc

Add to ~/.bashrc:

# CUSTOM
alias la="ls -lahF"

export PATH=~/bin:$PATH
export ERL_AFLAGS="-kernel shell_history enabled"

waybar

I change these defaults in ~/.config/waybar/config.jsonc:

{
  // ...
  "modules-right": [
    "group/tray-expander",
    "network",
    "bluetooth",
    "pulseaudio",
    "cpu",
    "battery"
  ],
  // ...
  "persistent-workspaces": {
    "1": [],
    "2": [],
    "3": [],
    "4": [],
    "5": [],
    "6": [],
    "7": [],
    "8": [],
    "9": [],
    "10": []
  },
  // ...
  "clock": {
    "interval": 1,
    "format": "{:L%A  W.%V  📅 %Y / %m / %d  🕑 %H:%M:%S}",
    "format-alt": "{:L%d %b W%V %Y}",
    "tooltip": false,
    "on-click-right": "omarchy-launch-floating-terminal-with-presentation omarchy-tz-select"
  },
  // ...
  "network": {
    // ...
    "format-wifi": "{icon} {ifname}:{ipaddr}",
    "format-ethernet": "󰀂 {ifname}:{ipaddr}",
    // ...
  }
}

To immediately see your changes:

killall waybar && waybar &

Enable fstrim for your encrypted SSD

If you see a fstrim: /: the discard operation is not supported when running:

sudo fstrim / -v

Update your /etc/default/limine file and add :allow-discards just after some-id:root, like this:

KERNEL_CMDLINE[default]="cryptdevice=PARTUUID=some-large-uuid:root:allow-discards ...

After updating the limine file you should run:

sudo limine-update

Enable it with:

sudo systemctl enable --now fstrim.timer

Restart your system now.

Software

System

sudo pacman -Syy
sudo pacman -Su
omarchy-update

Code editor

Zed

Install -> Editor -> Zed

If you have an AMD graphics card, you might need:

sudo pacman -S vulkan-radeon

Configure Expert LSP in Zed:

In ~/.config/zed/settings.json:

{
  "lsp": {
    "expert": {
      "binary": {
        "arguments": ["--stdio"]
      }
    }
  },
  "languages": {
    "Elixir": {
      "language_servers": [
        "expert",
        "!elixir-ls",
        "!next-ls",
        "!lexical",
        "..."
      ]
    }
  }
}

Desktop apps

This is the list of software I usually require at one point or another:

# sudo pacman -S nethogs transmission-gtk nmap \
sudo pacman -S transmission-gtk nmap \
darktable gimp inkscape krita godot \
blender calibre obs-studio openshot \
colordiff python-gobject python-xdg yt-dlp \
qgis python-gdal python-owslib python-psycopg2 python-pygments \
ansible inotify-tools jq \
simple-scan screen audacity base-devel \
libvips openslide

Install erlang, elixir, node with mise

To list which languages are currently installed:

mise ls

Let’s install erlang:

mise ls-remote erlang
# pick a version you want, for example: 28.2
mise use erlang@28.2

Let’s install elixir:

mise ls-remote elixir
# pick a version you want, for example: 1.19.4-otp-28
mise use elixir@1.19.4-otp-28

mix local.hex
mix local.rebar

mix archive.install hax phx_new
mix archive.install hex nerves_bootstrap

Let’s install node:

mise ls-remote node
# pick a version you want, for example: 25.2.1
mise use node@25.2.1

npm i -g npm
npm i -g pnpm

Install PostgreSQL

sudo pacman -S postgresql postgresql-libs postgis

sudo -i -u postgres
initdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data/'
exit

To run the server on computer start:

sudo systemctl enable --now postgresql.service

Optional

GPU related

For Nvidia:

sudo pacman -S nvtop

For AMD:

sudo pacman -S radeon-vulkan

ufw

If you’d like to quickly reset UFW rules:

sudo ufw reset
sudo ufw enable

Idle (desktop)

Default values in ~/.config/hypr/hypridle.conf seem too short for a desktop:

listener {
    timeout = 1800                                            # 30 min
    on-timeout = pidof hyprlock || omarchy-launch-screensaver # start screensaver (if we haven't locked already)
}

listener {
    timeout = 3600                     # 1 hr
    on-timeout = loginctl lock-session # lock screen when timeout has passed
}

listener {
    timeout = 5400                                           # 1.5 hr
    on-timeout = hyprctl dispatch dpms off                   # screen off when timeout has passed
    on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected
}

Two monitors (desktop)

For my two monitor setup in ~/.config/hypr/monitors.conf:

# ...
# Comment everything above this...

# CUSTOM
monitor=HDMI-A-2,3840x2160@60,0x0,1.5
monitor=HDMI-A-1,3840x2160@60,2560x-720,1.5,transform,3

workspace=1,monitor:HDMI-A-2
workspace=2,monitor:HDMI-A-2
workspace=3,monitor:HDMI-A-2
workspace=4,monitor:HDMI-A-2
workspace=5,monitor:HDMI-A-2

workspace=6,monitor:HDMI-A-1
workspace=7,monitor:HDMI-A-1
workspace=8,monitor:HDMI-A-1
workspace=9,monitor:HDMI-A-1
workspace=10,monitor:HDMI-A-1

Fonts

To add more fonts to your system, drop them in: ~/.local/share/fonts.