Step-by-Step Guide: Installing NixOS on VirtualBox for librephoenix's NixOS Config

TL;DR Download the Minimal ISO image and follow the Manual Installation to install librephoenix-nixos-config. I can’t stress this enough: DO NOT use any graphical ISO images like GNOME or Plasma Desktop! Use the Minimal ISO image not because we’re trying to be cool but because we want to make it work. Introduction If you think it’s as straightforward as installing Ubuntu, you’re in for a big surprise. There are so many gotchas along the way that I have to write it down for my future self, and hopefully for some other poor souls that stumble upon this article. ...

March 10, 2024 · 6 min

kanata: qmk for Your Laptop Keyboard When Your qmk Keyboard is Not Around

TL;DR Use kanata when your qmk keyboard is not around. Introduction I have a qmk keyboard bought from keebio (note: highly recommend!): However, sometimes I’m on the go, and I’m forced to use my laptop keyboard. After being spoiled by qmk’s insane customizability, I couldn’t go back to a regular keyboard. I found kanata and kmonad and they could simulate most of my qmk experience. Why kanata over kmonad? The exact reason Why I built and use kanata. When using kmonad, I need to fully press the modifiers much longer for them to be registered. A slight tap is not registered. Like #466, “when I type capital F, 90% of times it comes out as lowercase f.” On the other hand, kanata doesn’t have this problem. ...

May 9, 2023 · 2 min

plocate: Not a Drop-in Replacement If You're Using btfrs

TL;DR If you want to use plocate while your filesystem is btrfs, do the following: edit /etc/updatedb.conf: replace PRUNE_BIND_MOUNTS = "yes" with PRUNE_BIND_MOUNTS = "no" save the file update the db with sudo updatedb test again with $ locate home to see any outputs from home directory Introduction plocate is supposed to be a much faster drop-in replacement for mlocate, but I had a lot of troble getting it to work. ...

May 9, 2023 · 1 min

Todoman+tasks+Nextcloud: Ditch Your Proprietary TODO apps like Todoist

TL;DR Stack: Nextcloud: server tasks: Android client Todoman: cli integration vdirsyncer: “database” Together they can sync across your Linux desktop and Android devices. Introduction Why switched away from Todoist? Proprietary No cli integration Notes The above solution does take some time to set it up. But afterwards, it’s set-and-forget. Also, check out my How to Migrate From OneDrive to Nextcloud to get started on Nextcloud. Tools Nextcloud: server that glues everything together tasks: Android client on the go Todoman: cli integration vdirsyncer: synchronizes TODOs between devices autovdirsyncer: monitors the TODO db and update accordingly and automatically Getting Started Install the packages pacman -Syu todoman vdirsyncer autovdirsyncer Notes The binary for todoman is todo. Install tasks on your Android device Tips ~/.config/vdirsyncer/config: [storage calendar_remote] type = "caldav" url = "https://efss.qloud.my/remote.php/caldav/" username.fetch = ["shell", "echo $NEXTCLOUD_USERNAME"] password.fetch = ["shell", "echo $NEXTCLOUD_PASSWORD"] I set NEXTCLOUD_USERNAME and NEXTCLOUD_USERNAME in /etc/environment so that autovdirsyncer can read the values when autovdirsyncer.service starts up. ...

May 9, 2023 · 1 min

sway-toolwait: Tame Your Autostart App Layout

TL;DR Use sway-toolwait to control the layout and workspace of your autostart apps. Introduction I used to have the following in ~/.config/sway/config.d/autostart_applications: swaymsg "workspace number 1" swaymsg "exec flatpak run --env=OBSIDIAN_USE_WAYLAND=1 md.obsidian.Obsidian" swaymsg "exec kitty" swaymsg "workspace number 2" swaymsg "exec firefox" swaymsg "workspace number 3" swaymsg "exec chromium --ozone-platform-hint=auto" swaymsg "exec kitty" swaymsg "workspace number 4" swaymsg "exec vieb --enable-features=UseOzonePlatform --ozone-platform=wayland" swaymsg "exec kitty" As you can see, I have 3 Chromium-based app. They take longer to launch than kitty, so kitty is launched before them and it messes up my layout. Somtimes they’d launch even in the wrong workspaces (e.g., sway would have switched to workspace 3 before done starting firefox in workspace 2, so firefox is in workspace 3) ...

March 24, 2023 · 3 min

vimiv to Substitute for Ranger's Image Preview in Wayland

2023-08-05 Update The drop-in replacement ueberzugpp has native support for Wayland (sway and hyprland), and most importantly, tmux support on sway and hyprland! pacman -Syu ueberzugpp and then add the following: set preview_images true set preview_images_method ueberzug and you’re done! TL;DR I’ve switched to using vimiv to substitute for my broken Ranger’s image preview. You could also use imv or mpv to interact with Ranger but I found it to be a bit janky. Working fine until something broke… Five months ago, I asked for help on Reddit: [Sway + Kitty + Tmux + Ranger’s Image Preview] Not working but worked in X11. Long story short, the absolute is that Kitty + Tmux + Ranger’s image preview isn’t going to work (#413), but Kitty + Ranger (i.e., without Tmux) works fine, so I had the following: ...

December 27, 2022 · 2 min

Blocking Distractions with OpenDNS in Linux

TL;DR Use OpenDNS, StevenBlack/hosts, LeechBlockNG to stop yourself from wasting time online. Introduction I’m a sucker for distractions. Before switching to Linux, I was using FocusMe and Cold Turkey to block distractions. They’re amazing for they could completely take control of my machine: I’d not been able to circumvent the block and go on YouTube or even launch mpv. Given I’d switched to Linux, it’s impossible to do so, so I had to resort to the following tools. ...

September 4, 2022 · 2 min

The Comprehensive Guide to Typing Cangjie (倉頡三代) on Linux Using fcitx5 and rime

TL;DR Install the packages pacman -Syu fcitx5-im fcitx5-rime Copy cangjie-system/rime-cangjie-integrated to fcitx5’s location: git clone https://github.com/cangjie-system/rime-cangjie-integrated ~/.local/share/fcitx5/rime/rime-cangjie-integrated cp ~/.local/share/fcitx5/rime/rime-cangjie-integrated/*.yaml ~/.local/share/fcitx5/rime/ Create the following file: touch ~/.local/share/fcitx5/rime/default.custom.yaml Add the following to default.custom.yaml to tell fcitx5 to use cangjie: patch: schema_list: - schema: cangjie Set the following environment variables via /etc/environment: QT_IM_MODULE=fcitx QT_IM_MODULES="wayland;fcitx" XMODIFIERS="@im=fcitx" Log out and then log in ...

August 28, 2022 · 3 min

It's high time for Sway (Wayland)

TL;DR I think Wayland is ready for daily use if you don’t have a machine with Nvidia. Introduction I switched from Windows to Linux on 2021-10-06, so my Linux experience is < 1 year. Previous Linux experience WSL VirtualBox with Ubuntu 20.04.4 Linux journey Manjaro with Gnome Desktop since 2021-10-06: Manjaro with i3-gap since 2021-10-19: Switched to Sway since 2022-07-19. Current config: ...

August 27, 2022 · 2 min

tmuxp - A session manager for tmux

TL;DR Use tmuxp so that you don’t have to re-create the same sessions, windows and panes every time you restart your machine. Introduction Previously I was using tmux-resurrect (persists tmux environment across system restarts) and tmux-continuum (continuous saving of tmux environment), but these lack finer control as to which sessions to restore. Getting Started pip install --user tmuxp Make sure tmuxp is installed: ❯ tmuxp --version tmuxp 1.13.0, libtmux 0.14.0 Create the following in ~/.config/tmuxp/main.yaml: session_name: main windows: - window_name: zsh panes: - shell_command: - neofetch - echo hello - window_name: nvim panes: - nvim tmuxp load main When I restart my machine, I do tmuxp load main misc nvim to restart all my sessions. ...

August 18, 2022 · 1 min