TuBrief
구독 채널
비디오
커뮤니티

Tiga Pengaturan untuk Mempertahankan Lingkungan Pengembangan Lama Sebelum Instalasi Omarchy

TuBrief 편집팀
2026년 9월 12일
0
Computing/Software

원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.

Bahasa Indonesia한국어EnglishEspañol中文العربيةहिन्दीDeutschFrançaisPortuguêsРусский日本語

관련 영상

Jangan lewatkan Omarchy!7:41

Jangan lewatkan Omarchy!

Maximilian Schwarzmüller

커뮤니티의 다른 글

사내 시스템에 llm api 붙일 때 마주하는 현실적인 한계와 대응법

2026년 9월 13일

레거시 백엔드에 GPT-6 Astra 붙일 때 예산 승인과 보안 통과를 먼저 끝내는 법이 있습니다

2026년 9월 13일

에이전트끼리 대화하다 6천만 원 청구서가 나오는 이유

2026년 9월 13일

사내 RAG 벡터 검색에 Okta 권한 필터를 직접 거는 방법

2026년 9월 13일

브라우저 에이전트에게 내 구글 계정을 통째로 넘기면 안 되는 이유

2026년 9월 12일

Apple Won the AI Race

2026년 9월 12일

댓글 (0)

Log in to leave a comment

아직 작성된 글이 없습니다

© 2026 . All rights reserved.

TuBrief
구독 채널
비디오
커뮤니티
로그인

Tiga Pengaturan untuk Mempertahankan Lingkungan Pengembangan Lama Sebelum Instalasi Omarchy

Omarchy, distribusi opini berbasis Arch Linux yang dirilis di bawah pimpinan Basecamp, menggabungkan compositor tiling Hyprland dan toolkit desktop Quickshell untuk menampilkan layar kerja yang canggih sejak instalasi awal. Ini adalah sistem yang menarik bagi para insinyur yang merasa lelah dengan manajemen dotfile manual, tetapi jika Anda langsung menimpanya ke direktori home yang sedang digunakan, bahkan pengelola sesi akan berhenti berfungsi.

Jika Anda ingin memasang Omarchy tanpa merusak Neovim, container Docker, dan lingkungan shell kustom yang sudah Anda gunakan, Anda harus mengisolasi tiga titik konflik spesifik terlebih dahulu.

Isolasi File Konfigurasi dan Konfigurasi Repository Bare Git

Sebagian besar kegagalan booting yang terjadi selama proses migrasi distribusi bermula dari konflik antara file runtime lama yang berada di luar standar XDG dan konfigurasi bawaan sistem. Omarchy menggunakan struktur di mana konfigurasi sistem ditempatkan di /usr/share/omarchy dan konfigurasi penyesuaian pengguna dipaksa ke dalam ~/.config. Jika hyprland.conf atau stylesheet Waybar lama Anda tetap ada, parameter akan bertabrakan dengan modul natif Quickshell (~/.config/omarchy/shell.json), menyebabkan layar membeku pada tahap handshake Wayland. Terminal default juga dapat mengalami kegagalan karena PATH non-standar atau LD_LIBRARY_PATH yang tersisa dalam skrip shell gagal menangkap driver grafis.

Untuk melestarikan bentuk tanpa menyentuh lingkungan yang ada, Anda harus menggunakan pola repository bare Git yang memetakan pohon kerja ke direktori home. Metode seperti GNU Stow yang memasang symbolic link satu per satu akan menghentikan proses jika file yang ada sudah ada, sehingga menyulitkan untuk mengembalikannya.

`bash
git init --bare "HOME/.dotfiles.git"aliasdotfiles=′/usr/bin/git−−git−dir=HOME/.dotfiles.git" alias dotfiles='/usr/bin/git --git-dir=HOME/.dotfiles.git"aliasdotfiles=′/usr/bin/git−−git−dir=HOME/.dotfiles.git/ --work-tree=HOME′dotfilesconfig−−localstatus.showUntrackedFilesnodotfilesadd /.config/nvim /.config/tmux /.zshrc /.gitconfigdotfilescommit−m"chore:snapshotpre−omarchy"dotfilesarchive−−format=tar.gz−o"HOME' dotfiles config --local status.showUntrackedFiles no dotfiles add ~/.config/nvim ~/.config/tmux ~/.zshrc ~/.gitconfig dotfiles commit -m "chore: snapshot pre-omarchy" dotfiles archive --format=tar.gz -o "HOME′dotfilesconfig−−localstatus.showUntrackedFilesnodotfilesadd /.config/nvim /.config/tmux /.zshrc /.gitconfigdotfilescommit−m"chore:snapshotpre−omarchy"dotfilesarchive−−format=tar.gz−o"HOME/pre_omarchy_backup_$(date +%Y%m%d).tar.gz" HEAD

`

Setelah membuat arsip cadangan, pindahkan direktori desktop yang menyebabkan konflik ke folder isolasi di luar direktori home.

`bash
mkdir -p "HOME/.configquarantine"fordirinhyprwaybarfootalacrittyrofi;do[−d"HOME/.config_quarantine" for dir in hypr waybar foot alacritty rofi; do [ -d "HOME/.configq​uarantine"fordirinhyprwaybarfootalacrittyrofi;do[−d"HOME/.config/dir" ] && mv "HOME/.config/dir""dir" "dir""HOME/.config_quarantine/"
done

`

Dengan menyingkirkan pengaturan desktop, Quickshell bawaan Omarchy akan berjalan secara normal, dan pengaturan editor kode atau shell terminal Anda dapat dipertahankan seperti semula.

Isolasi Kernel Agen AI Menggunakan Bubblewrap

Omarchy mengintegrasikan alat coding AI seperti Claude Code dan OpenCode secara mendalam ke dalam alur kerja internal desktop. Masalahnya adalah alat-alat ini mewarisi hak istimewa dari terminal host secara mentah-mentah. Karena banyak runtime yang hanya membatasi eksekusi subprocess tanpa memantau system call input/output file, jika terjadi prompt injection atau eksekusi skrip tak terduga, folder ~/.ssh, ~/.aws, ~/.gnupg, serta soket Docker akan terekspos tanpa perlindungan.

Anda perlu membangun lingkungan eksekusi hak istimewa minimum menggunakan Bubblewrap yang menangani namespace pengguna tanpa hak istimewa (Unprivileged User Namespaces) dari kernel Linux. Dengan menimpa folder kunci autentikasi sensitif dengan mount memori kosong, Anda dapat memblokir operasi pembacaan itu sendiri.

`bash
#!/usr/bin/env bash

/usr/local/bin/agent-jail: Eksekutor isolasi agen AI berbasis Bubblewrap

set -euo pipefail

WORKSPACE="{1:-(pwd)}"
DUMMY_DIR=(mktemp−d/tmp/jail−empty−XXXXXX)trap′rm−rf"(mktemp -d /tmp/jail-empty-XXXXXX) trap 'rm -rf "(mktemp−d/tmp/jail−empty−XXXXXX)trap′rm−rf"{DUMMY_DIR}"' EXIT

exec bwrap
--ro-bind /usr /usr
--ro-bind /lib /lib
--ro-bind /lib64 /lib64
--ro-bind /bin /bin
--ro-bind /etc/resolv.conf /etc/resolv.conf
--ro-bind /etc/ssl /etc/ssl
--ro-bind /etc/ca-certificates /etc/ca-certificates
--proc /proc
--dev /dev
--tmpfs /tmp
--tmpfs "$HOME"
--bind "WORKSPACE""WORKSPACE" "WORKSPACE""WORKSPACE"
--ro-bind "DUMMYDIR""DUMMY_DIR" "DUMMYD​IR""HOME/.ssh"
--ro-bind "DUMMYDIR""DUMMY_DIR" "DUMMYD​IR""HOME/.aws"
--ro-bind "DUMMYDIR""DUMMY_DIR" "DUMMYD​IR""HOME/.gnupg"
--unshare-all
--share-net
--unshare-pid
--new-session
--die-with-parent
--setenv PATH "/usr/local/bin:/usr/bin:/bin"
--setenv HOME "$HOME"
--chdir "$WORKSPACE"
-- /usr/bin/opencode "$@"

`

Anda juga harus menghindari metode menempatkan kunci API dalam teks biasa pada variabel lingkungan global. Anda harus membuat file ai.env di dalam direktori ~/.config/secure-vault yang diberi izin chmod 700, mengunci izinnya dengan chmod 600, lalu membacanya melalui subshell hanya pada saat eksekusi skrip untuk mencegah kebocoran token melalui pencarian /proc/$PID/environ.

Transisi Native LSP Neovim dan Koreksi Hak Istimewa Mount Docker Rootless

Bagian yang paling sering mengalami error saat memindahkan konfigurasi Neovim lama ke Omarchy adalah plugin Mason. Binary pra-kompilasi yang diunduh Mason dari GitHub tidak sinkron dengan simbol glibc terbaru di lingkungan rolling release, sehingga memicu error eksekusi.

Masalah ini akan hilang jika Anda mematikan pengunduhan binary otomatis Mason dan mengalihkan jalur LSP ke paket native dari repository resmi Arch. Dengan dihilangkannya tahap pengunduhan jaringan dan lapisan pembungkus (wrapper), waktu pemuatan awal editor juga turun hingga di bawah 30ms.

`lua
-- ~/.config/nvim/lua/plugins/lsp-native.lua
return {
{
"williamboman/mason.nvim",
opts = { auto_install = false },
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
gopls = { cmd = { "/usr/bin/gopls" } },
pyright = { cmd = { "/usr/bin/pyright-langserver", "--stdio" } },
rust_analyzer = { cmd = { "/usr/bin/rust-analyzer" } },
lua_ls = { cmd = { "/usr/bin/lua-language-server" } },
},
},
},
}

`

Setelah melakukan pengaturan, instal binary secara langsung dari terminal.

`bash
sudo pacman -S --needed gopls pyright rust-analyzer lua-language-server ripgrep fd

`

Kendala terakhir adalah Docker. Omarchy menggunakan Docker Rootless secara default. Karena aturan pemetaan sub-UID kernel, terjadi offset antara kepemilikan file host dan hak istimewa pengguna di dalam container.

Jika nomor awal yang ditetapkan ke /etc/subuid pada host adalah 100000, pengguna biasa di dalam container (UID 1000) dikenali sebagai UID 100999 (100000+1000−1100000 + 1000 - 1100000+1000−1) dari sudut pandang host. Inilah alasan mengapa izin tulis diblokir dan memunculkan error saat kode sumber di-bind mount (-v $(pwd):/workspace). Jika Anda menentukan aturan pewarisan POSIX Access Control List (ACL) pada direktori proyek, Anda dapat membuka izin tulis untuk proses container tanpa mengacaukan kepemilikan host.

`bash
#!/usr/bin/env bash

docker-rootless-align: Koreksi otomatis izin volume mount sub-UID Docker Rootless

set -euo pipefail

TARGET_PATH="{1:-(pwd)}"
CURRENT_USER=$(whoami)

SUBUID_START=(grep "^{CURRENT_USER}:" /etc/subuid | cut -d: -f2 || true)
if [[ -z "SUBUIDSTART"]];thensudousermod−−add−subuids100000−165535−−add−subgids100000−165535"SUBUID_START" ]]; then sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 "SUBUIDS​TART"]];thensudousermod−−add−subuids100000−165535−−add−subgids100000−165535"{CURRENT_USER}"
SUBUID_START=100000
fi

HOST_MAPPED_UID=$(( SUBUID_START + 1000 - 1 ))

setfacl -R -m "u:HOSTMAPPEDUID:rwx""{HOST_MAPPED_UID}:rwx" "HOSTM​APPEDU​ID:rwx""TARGET_PATH"
setfacl -R -d -m "u:HOSTMAPPEDUID:rwx""{HOST_MAPPED_UID}:rwx" "HOSTM​APPEDU​ID:rwx""TARGET_PATH"

sudo loginctl enable-linger "${CURRENT_USER}"
systemctl --user enable --now docker.service

`

Setelah menyelesaikan pengaturan, periksa instance jendela aktif melalui hyprctl instances di terminal, dan verifikasi pengoperasian LSP dengan nvim --headless "+checkhealth" +qa. Ketika perintah docker run --rm alpine ping -c 1 1.1.1.1 berhasil melewati jaringan sub-namespace, persiapan untuk melanjutkan pekerjaan pengembangan sehari-hari Anda telah selesai.