Less of a guide and more of a dumping ground for ideas, todos and links
- Maybe change the shell? I use kitty (created by the same guy who also created Calibre ❤️), but ghostty also looks promising.
- It may be yet another opportunity to set up espanso.
- Fish
- starhip shell
- GPG keyring + SSH keys
- unified password sync, backup and file sharing
- synology, borg, rsync
- KeepassXC, bitwarden, 1password?
- better editor setup for blogging
- nvim, lazynvim
- Obsidian
- coding setup
- manage environments with nvm, mise-en-place
- VS Code, zed, emacs, kakoune, ... ?
- Other
- localsend
- vlc, mpv
- calibre
- firefox!
- Mixxx
- Krita
- see if I can remove manjaro-sway-settings, etc
RANDOM TODO I like the website style of https://shinglyu.com/web/2024/09/17/my-wayland-adventure.html
Network
- Tailscale to connect to my Synology NAS and to troubleshoot my family? - pihole
Ricing
- Change my wallpaper
- Unify the system GUIs
- GTK4?
- Quickshell
- DankMaterialShell
- Noctalia :: has a better name than DankShell, will start with this
- Scrollable WM
- Hypraland? :: I think this is too much of a Gentoo uber-rice thing. I prefer simplicity and quiet
- Niri
Distro hopping 2025-10-12
What i want:
- Arch-based
- supports my use-cases, doesn't get in the way (Cough, Nixos, cough)
- stable
- pretty
What I cooked up
- EndeavourOS
- I use this container: https://hub.docker.com/r/alex5402/endeavouros
distrobox create -n my-endeavouros -i docker.io/alex5402/endeavouros:latestdistrobox enter my-endeavouros- Actually, this is a too-deeply integrated way to test the distro. Should have used a VM instead.
- Wayland
- Niri
- reasoning
- Alternatives: hyprland, but looks less stable and I don't want too much rice in the system
- Noctalia
- All in one swaybar replacement
- Alternatives: DankMaterialShell, but I don't like the name
- GTK4
How to migrate
- Test everything on distrobox first
- Need to figure out how to fix
Error: configure storage: kernel does not support overlay fs: 'overlay' is not supported over extfs at "/home/me/.local/share/containers/storage/overlay": backing file system is unsupported for this graph driverfirst - E: apparently installing
fuse-overlayfsdoes the trick (source)
- Need to figure out how to fix
- Locally backup everything
- figure out what needs to remain, then backup to my NAS? Or just to an usb stick. Probably both, to be safe
- Wipe system
- ext4? btfs? zfs?
Switching
Decided to just use my Manjaro, as it is stable :)
I ran the following command
sudo pacman -S greetd greetd-tuigreet xdg-desktop-portal xdg-desktop-portal-wlr alacritty swaybg xwayland-satellite udiskie fuzzel xdg-desktop-portal-gtk xdg-desktop-portal-gnome gnome-keyring nautilus kanshi brightnessctl inter-font ttf-roboto
After switching, I encountered these problems
- black screen --> reboot
- hindsight: never switch your core WM/DMs without backup! very risky!
- niri loads, I see an ugly status bar and randomly click it --> put laptop into flight-mode with no way to enable the internet again -->
rfkill unblock all(I may have also pushed the wrong button/function-key on my keyboard..) - wrong terminal (alacritty) --> change in
.conf/niri - wrong shell (zsh) -->
chshdoesn't work --> for some reasone zsh was set as default in.profile
Shoppinglist / todos
- understand whatever I just installed
- greetd?
- customize quickshell
- change gtk theme
- change wallpaper
- autologin
- customize niri hotkeys, appearance
- quick jump to window (alt+1 = firefox)
- improve ssh, keyshell, gpg keys setup
- go shopping for other cool applications
- zen browser
- zen-browser-bin is the binary version, ie. compiled
- dolphin filebrowser; or nemo? or midnight commander? or pcman fm?
- zen browser
- improve manjaro setup
- doas
- pavu, yay, pacman?
- quick way to see and install software, maybe by opening an app launcher that runs
yay - fingerprint launcher revisited?
- system stats, disk space usage
- configure obsidian, nvim
- font setup
- password setup
- backup
- 'webapps' like in Omarchy that launch a website, ... (https://learn.omacom.io/2/the-omarchy-manual/63/web-apps)
- limine bootloader? https://github.com/limine-bootloader/limine
- mise :: Installing Mise | mise-en-place
- gron https://github.com/adamritter/fastgron?tab=readme-ov-file
- x command https://www.x-cmd.com/
- ranger tui (or similar)
- paperless or similar
- syncthing
- firefox addons and block list to remove ai slob
Deciding on an aur helper
yay, paru, trizen or pikaur?
- yay :: Go, default in Manjaro
- trizen :: Pearl, has some extra features. Didn't like the search interface
- pikaur :: Python. Asks all the questions before installation
- paru :: Rust. Asks to review packages by default, which is a good approach to AUR package security. May be annoying after some time
I like it when I can see the news/changelogs of packages. E: But it is damn annoying to see all of this on system update! (Pikaur)
TODO: Look at https://github.com/topgrade-rs/topgrade aswell
paru -Sua --upgrademenu
log
2025-10-15
changed pacman.conf to enable
Color
ParallelDownloads = 5
ILoveCandy
Architecture = auto
CheckSpace
HoldPkg = pacman glibc <...system packages>
VerbosePkgLists
2025-10-15 22:03
changed paru.conf
# Paru conf
# See paru.conf
Include = /etc/paru.conf
[options]
BottomUp
SudoLoop
CleanAfter
NewsOnUpgrade
UpgradeMenu
[bin]
FileManager = lf
#Sudo = doas
2025-10-15 22:24
set up doas (OpenDoas)
permit persist setenv {PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin} :wheel
2025-10-15 22:48 removed opendoas again, as it needs to be rebuilt to support fingerprint/PAM
2025-10-15 23:02 added tidal-hifi and enables scrobble to last.fm and musicbrainz DBs
2025-10-15 23:15
will look into ghostty as alternative to kitty
there is also wezterm
not sure I like ghostty, will stay with kitty
e: convinced to give ghostty a try -- the theming preview convinced me :)
theme = Solarized Osaka Night
background =
foreground =
background-image =
background-image-opacity =
background-opacity = 0.9
background-blur = true
#link
link-url =
link-previews = true
selection-background =
selection-foreground =
# title =
# class =
window-inherit-working-directory =
window-decoration = false
bell-features = no-audio
2025-10-16 17:32
will replace ranger with yazi (skipping lf)
looks great out of the box
DONE: config yazi
2025-10-16 17:38
TODO: configure my starship shell prompt
look at Geist font for terminal
2025-10-17 17:16
how to improve ghostty startup?
it is way slower than kitty
it is slow because of GTK; we can try to run an empty shell at startup, as subsequent ghostty windows are faster
spawn-at-startup "ghostty --gtk-single-instance=true --quit-after-last-window-closed=false --initial-window=false"
2025-10-17 17:27
add a command-not-found hook to explain missing commands
interesting packages: pay-respects, filkoll, find-the-command
decided on filkoll, as pay-respects looks as if it does too much (and needs more config) and find-the-command looks abandoned
enabled filkoll update-service: sudo systemctl enable --now filkoll-update.timer
enabled filkoll: source /usr/share/doc/filkoll/command-not-found.fish
2025-10-17 17:46
I have to say I really like how crispy all the fonts look on ghostty
2025-10-17 17:58
choosing starship over oh my posh, as i value my time :)
TODO: choose sane PDF and document viewer (maybe steal from Omarchy)
2025-10-17 20:52
how to list user-installed packages? (so I know which PDF tools I have installed)
TODO: agree on a single git gui (lazygit, gitui)
TODO: use timeshift for backups (to external drive? stick?)
TODO: vim-keys on zen-browser
TODO: add niri hotkey to turn neovim into 80 chars width terminal (for better readability and line break)
TODO: CLI reminder when not using the most fancy-rust tools (ls instead of lsd. Best to also add an alias)
2025-10-17 21:52
want to set up autosave for nvim
find a plugin
figure out how to install the plugin (auto-save.nvim)
discover there are erros when autosave and autoformat are combined (endless loop)
need to update lazyvin
encounter more errors
need to install luarocks to fix them
install mise to set up my dev environments
remove nvm in favor of mise
nvm installed via fisher (fish plugin manager)
figure out how to remove nvm-fish and fisher
fisher list | fisher remove
DONE: does mise also means I can remove my python install? (no, python is required for many applications..)
activate mise in fish: echo 'mise activate fish | source' >> ~/.config/fish/config.fish
actually don't need to install luarocks..
2025-10-17 22:43 autosave set up!
local excluded_filetypes = {
-- this one is especially useful if you use neovim as a commit message editor
"gitcommit",
-- most of these are usually set to non-modifiable, which prevents autosaving
-- by default, but it doesn't hurt to be extra safe.
"NvimTree",
"Outline",
"TelescopePrompt",
"alpha",
"dashboard",
"lazygit",
"neo-tree",
"oil",
"prompt",
"toggleterm",
}
local excluded_filenames = {
-- "do-not-autosave-me.lua",
}
local function save_condition(buf)
if
vim.tbl_contains(excluded_filetypes, vim.fn.getbufvar(buf, "&filetype"))
or vim.tbl_contains(excluded_filenames, vim.fn.expand("%:t"))
-- don't save for special-buffers
or vim.fn.getbufvar(buf, "&buftype") ~= ""
then
return false
end
return true
end
return {
"okuuva/auto-save.nvim",
version = "^1.0.0", -- see https://devhints.io/semver, alternatively use '*' to use the latest tagged release
lazy = false,
cmd = "ASToggle", -- optional for lazy loading on command
-- event = { "InsertLeave", "TextChanged" },
opts = {
debounce_delay = 1000, -- ms delay before save
write_all_buffers = false, -- only save the current buffer
noautocmd = false, -- do not execute autocmds when saving
condition = save_condition,
},
keys = {
{ "<leader>uv", "<cmd>ASToggle<CR>", desc = "Toggle autosave" },
},
}
2025-10-17 22:44
TODO: ghostty doesn't ready my SSH key for github pushes..
setting up starship
mkdir -p ~/.config && touch ~/.config/starship.toml
by default, I prefer text over icons, as I don't know what the icons mean starship preset plain-text-symbols -o ~/.config/starship.toml
changed a few icons (mainly OS symbols) to NerfFonts icons
figuring out how to add support for TOML schemas to nvim
thinking about adding yanky.nvim
added taplo to nvim, but now I get this file has been excluded
2025-10-17 23:41 fixed it
-- File: lua/plugins/lsp-taplo.lua
-- https://old.reddit.com/r/neovim/comments/1fkprp5/how_to_properly_setup_lspconfig_for_toml_files/
return {
"neovim/nvim-lspconfig",
opts = {
servers = {
taplo = {
filetypes = { "toml" }, -- ensure it attaches to TOML files
root_dir = require("lspconfig.util").root_pattern("*.toml", ".git"),
settings = {
evenBetterToml = {
schema = {
enabled = true,
},
},
},
},
},
},
}
2025-10-17 23:42
continuing on starship config
how to insert emoji and unicode in linux with my system menu (drun?)
DONE figure out which menu I run (fuzzel)
configuring niri
I like centering containers, but then I can't edit side-by-side..
DONE change screenlocker to quickshell/noctalia (away from swaylock)
niri hotkeys seem like extremely sane defaults. Also, the variable names are sane, too!
DONE change niri logout keybinds to trigger quickshell logout
2025-10-18 00:16
want to change my noctalia profile picture (~/.face)
want to copy my profile pictyre via yazi as .face
added a yazi shell wrapper to be able to change the dir
function y
set tmp (mktemp -t "yazi-cwd.XXXXXX")
yazi $argv --cwd-file="$tmp"
if read -z cwd < "$tmp"; and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
builtin cd -- "$cwd"
end
rm -f -- "$tmp"
end
learned that you can press F1 to display yazi keymaps
move files via x (cut yank)
2025-10-18 00:27 found out how to quickshell IPC for logout from niri
Mod+Shift+E { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "sessionMenu" "toggle";}``
still need to figure out how to insert unicode via my fuzzel
DONE decide on fuzzel, rofi, dmenu, ... (bemenu, wofi, wmenu, ilia, ...) and configure them
TODO save my dotfiles (don't want to lose them...)
TODO research yubikey for auth
2025-10-18 00:48
decided on fuzzel
looking for unicode pickers, but this doesn't seem to be available. Closest is bemoji and rofimoji -- no unicode though?
DONE remove rofi
can also use unipicker and then add it to fuzzel
2025-10-18 01:06
removed sway, manjaro-sway-settings, ..
check if the following are needed/useful
## The following packages are installed but not required (anymore):
argagg
bc
bluetuith
btop
calcurse
foot
gdb
grimshot
gtklock
idlehack
kvantum-theme-matcha
libappimage
manjaro-base-skel
matcha-gtk-theme
nwg-wrapper
papirus-maia-icon-theme
pyalpm
rofimoji
smartmontools
swappy
swayidle
swayr
wf-recorder
wl-clip-persist
wlroots0.19
wob
xcursor-breeze
xdg-terminal-exec
2025-10-18 01:11
Added my preferred terminal char ↳!
2025-10-18 13:30
anyrun seems as if it would do the perfect job for launching apps and searching for unicdoe https://github.com/anyrun-org/anyrun?tab=readme-ov-file
walker is also a good contender
THOUGHT a new file format that splits all TODO into separate 'threads', as these represent a decision-making fork; I can only do one thing at a time, and every additional TODO needs to be queued and done later. Having a journal that supports this mental model, where I select branches of TODO and journal down on them may also represent a true Zettelkasten approach
2025-10-18 13:52
Installed all of walker, rofi, fuzzel and anyrun
don't like the anyrun symbols browser
walker is the fastest, but needs to configure elephant
decided to set up walker
elephant service enable and systemctl --user start elephant.service
TODO why is there not auto complete for elephant in fish?
2025-10-18 14:28 seems there is an OOO bug with walker trying to set a systemd service that restarts when hitting 500mb
[Unit]
Description=Walker GApplication Service
After=graphical-session.target
[Service]
ExecStart=/usr/bin/walker --gapplication-service
Restart=always
RestartSec=5
MemoryMax=500M
Environment=WAYLAND_DISPLAY=%EWAYLAND_DISPLAY%
Environment=XDG_CURRENT_DESKTOP=niri
Environment=GDK_BACKEND=wayland
[Install]
WantedBy=default.target
2025-10-18 14:37
cleaning up old packages
removed emacs, alacritty, autotiling, pamac, yay
walker starts slow, is the service not running properly?
2025-10-18 22:50
how to copy to clipboard in wayland? wl-copy
fixed walker service with the help of grok
[Unit]
Description=Walker GApplication Service
PartOf=graphical-session.target
After=graphical-session.target
Wants=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/walker --gapplication-service
Restart=always
RestartSec=5
MemoryMax=500M
Environment=WAYLAND_DISPLAY=wayland-1
[Install]
WantedBy=graphical-session.target
will change my niri conf to use walker now (but still keep fuzzel as backup :)
DONE configure walker
DONE use the faster launch command nc -U /run/user/1000/walker/walker.sock in my niri conf
DONE walker directly closes and doesn't do anything..
Not sure I want to continue struggling with walker...
2025-10-19 00:05
some more attempts at fixing walker, but it didn't work
removed walker and elephant, waste of time
2025-10-19 01:01
played around with anyrun, but I don't like the visual style. it is very annoying to style, and the gtk4 css doesn't work as expected
2025-10-19 14:35
snooping around anyrun directory but gave up styling it
let's just stick with fuzzel
DONE investigate how to open dedicated emoji/unicode picker (maybe via ghostty?)
set up tidal-hifi
looking around neovim plugin management and zen-mode. I don't want to open a terminal and then navigate to specific dotfiles over again, I just want to navigate to a saved folder location from within my terminal.
THOUGHT maybe make my .dirinfo spec come true? Place a .dirinfo into targeted dirs, which serves as readme and description. It can also be used with a picker to directly jump into that dir
DONE set up lazy snacks zen for nvim
actually, it's already set up by default :)
DONE set up MPRIS keybinds to skip a song (can be done via quickshell)
2025-10-19 15:36
installed dolphin
notice that all it's styling is broken (black white, invisible fonts, ..)
removed dolphin
fixed yazi change-directory-on-exit wrapper
2025-10-19 16:53
reading up on bemoji, don't like that they don't include full unicode
configured fuzzel defaults, really like the man-page
removed bemoji, rofi
settled on rofimoji, which can also use fuzzel
DONE figure out why rofimoji-fuzzel shows weird emoji chars (maybe because of the font?)
2025-10-19 18:53
fixed rofimoji --selector fuzzel showing outline-only emojis by adding font=Hack:weight=medium:size=20,Noto Emoji:size=22 into my fuzzel config
removed swaylock
figured out that I can lock my screen by calling this quickshell IPC qs -c noctalia-shell ipc call sessionMenu lockAndSuspend
TODO mediakyes for quickshell qs -c noctalia-shell ipc call media next
2025-10-19 19:30 looking to set up ssh and gpg, again goal: unlock the keyring until I lock the screen again (or am idle 15 min) grok seems more useful for tech support than chatGPT
2025-10-19 20:27
discovered some zsh and bash config files -- should I remove them?
TODO notify my when I run a command for which I have a fish alias/function (like yazi instead of y)
2025-10-19 20:43
added a shortcut for opening my syncthing localhost url via fuzzel (by creating an .desktop file in /home/jst/.local/share/applications)
I think this is a good way to remember localhost URLs (syncthing, paperless, synology-gui, gitea, pihole, ...)
[Desktop Entry]
Name=Syncthing Web UI
Type=Application
Exec=xdg-open http://127.0.0.1:8384/
Icon=text-html
Terminal=false
installed cliphist, need to figure out what it does -- just another wl-copy? E: requires wl-clipboard, so seems to sit 'above'
we can run cliphist list | fuzzel -d | cliphist decode | wl-copy to have fuzzel show the last pastes
TODO set a hotkey for this, and/or use the quickshell variant
TODO check my screenshot setup and/or maybe set up grim and slurp
removed pnpm
added keychain to my fish.conf eval (keychain --eval --quiet KEY_ID) :: gpg --list-secret-keys --keyid-format=long, it's the part after sec rsa4096/
check agents: ssh-add -l (lists SSH keys) and gpg --list-keys
TODO look into SSHFS for remote-mounting to/from synology
TODO set up ssh aliases
TODO set up hypralax
2025-10-19 21:53
installed nemo
looks nice, very similar to pcmanfm
TODO transform all my niri startups into systemd services, for better support
setup niriswitcher, very nice, fills a gap to make niri more useful (don't have to scroll across thousands of windows..) -- https://github.com/isaksamsten/niriswitcher?tab=readme-ov-file
TODO take a look at nirius (https://sr.ht/~tsdh/nirius/)
TODO take a look at stasis for better idle handling (https://github.com/saltnpepper97/stasis?tab=readme-ov-file)
2025-10-19 22:15 I think I am mostly done configuring everything
- niri and noctalia are configured
- ghostty and fish work
- i can switch and applications
- i can search for emojis
- i can enter my ssh password (not perfect yet)
TODO
- neovim config
- obsidian config (same folder as neovim)
- dotfiles backup
- system backup!
- transform this writeup and post it on my website
- wallpapers and theming with mutagen
2025-10-19 22:36
More ricing? Instead of quickshell there is also aylur :)
TODO also, i could check my icons and gtk theme
DONE decrease fuzzel font size
removed google-chrome
set cool wallpaper
TODO configure standard utils for opening images, pdf, ..
TODO accidentally removed my gtk theme when cleaning unused packages :)
fixed nemo not opening a terminal by calling gsettings set org.cinnamon.desktop.default-applications.terminal exec ghostty
removed etcher
set nemo as default file launcher xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search
TODO xdg-open vs gtk-launch
2025-10-20 20:38
need to change gtk theme and everything... best if there is a way to write this to a config or have a gui?
looking to install the arc theme, but no idea how :)
installed gtk-tweaks, but seems useless
installed gtk-engine-murrine, papirus-icon-theme and arc-gtk-theme
DONE how to copy from fish directly into system clipboard when using vim mode? found a script that makes use of the fish_killring. afterwards, just change the hotkeys to make use of this function afterwards (https://joaocosta.dev/blog/17>)
function yank_to_clipboard -d "Insert latest killring entry into the system clipboard"
printf "%s" "$fish_killring[1]" | fish_clipboard_copy
end
2025-10-20 21:18
check that themes are installed in /usr/share/themes/Arc-Dark and /usr/share/icons/Papirus
it seems that lxappearance and gnome-tweaks are indeed the way to go.
also check in ~/.config/gtk-3.0/settings.ini, ~/.config/gtk-4.0/settings.ini, ~/.config/environment.d/qt.conf, ~/.config/Kvantum/kvantum.kvconfig and ~/.config/qt5ct/qt5ct.conf (5 and 6)
I really like Juno-Palenight in combination with Papirus-Dark
removed pcmanfm-gtk3
2025-10-20 21:47
figure out why keychain doesn't work properly -- should only store my auth when I need my ssh keys the first time, and not whenever I open fish...
TODO can I see which package installed which?
TODO show news in paru
TODO figure out how to change cursor theme
maybe this works better for keychain in my fish conf
if status is-interactive
# Commands to run in interactive sessions can go here
keychain --quiet --nogui ~/.ssh/id_ed25519
if test -f ~/.keychain/$HOSTNAME-fish
source ~/.keychain/$HOSTNAME-fish
end
end
2025-10-20 22:44 added a desktop icon for fritz.box TODO look into pihole (+ hardware) >> Desktop Beelink GK35 maybe? TODO change firefox userchrome css to style the blank loading page to something dark (no more blinding white #fff) -- https://stackoverflow.com/questions/26680708/customize-firefox-background-color-of-the-browser-between-page-load