I've been working on setting up Manjaro Linux (i3) lately, and it's overall been a good experience. Hitting some snags with customizing the terminal (mostly with powerline and nerd fonts), and all my tinkering has led to a bad state that seems hard to recover from. I'm going ahead and doing a clean install, but before that I want to note down the apps and packages I've installed that I actually want to reinstall. In no particular order:
* bitwarden
* bitwarden-cli
* chromium
* mpv
* neovim
* with lazy.nvim package manager
* noto-fonts-emoji (if fonts aren't rendering properly in the browser)
* py3status
* docker
* spotifyd
* tmux
* ufw
Some of these might actually be there out of the box, so it's partially a list to remind me to configure them.
Finally, a big fat note to self: remember to backup all config files before changing them! Should prevent the need for a clean install if anything breaks
To update, so far I've done:
* backup i3 config, cp .i3/config .i3/config.bkup
* set resolution, echo 'xrandr -s 5120x1440' >> .i3/config
* update pacman mirrors, sudo pacman -f 30
* install brave browser, sudo pacman -S brave-browser
I'm partially following these guides:
* https://github.com/haraldwb/manjaro-i3wm-post-install-guide
* https://jasoneckert.github.io/myblog/configuring-i3/
Changing default browser:
* modify .i3/config, set bindsym $mod+F2 exec brave
* modify .config/mimeapps.list (:%s/userapp-Pale Moon/brave-browser/g)
* set $BROWSER in .profile, export BROWSER=/usr/bin/brave
On the issue of fonts in uxrvt:
Seems like the default .Xresources config shipped with Manjaro sets the URxv.font without escaping spaces. The correct thing seems to be to escape them using \
Finally doing a sudo pacman -Syu to update installed packages
Fix for missing emojis:
* pacman -S noto-fonts-emoji
* add the following to /etc/fonts/conf.d/66-noto-emoji.conf:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>emoji</family>
<prefer>
<family>Noto Color Emoji</family>
</prefer>
</alias>
</fontconfig>
TODO: get emojis working in the terminal
A few things done based on the aforementioned post-install guide:
# Enable fstrim
sudo systemctl status fstrim.timer
sudo systemctl enable fstrim.timer
# Set swappiness
sudo vim /etc/sysctl.d/99-swappiness.conf
vm.swappiness=10
# Enable ufw
sudo ufw enable
sudo systemctl status ufw
sudo systemctl enable ufw
I think I found a working font and procedure for urxvt:
sudo pacman -S ttf-0xproto-nerd
edit ~/.Xresources:
URxvt.font xfg:0xProto Nerd Font Mono:pixelsize=12 # no escaping
xrdb -merge ~/.Xresources
Close all running terminals to restart urxvt
AFter all this messing about with getting urxvt correctly rendering fonts, I think I'm going to swap to alacritty anyways (:
Install alacritty:
$ sudo pacman -S alacritty
Make it the default terminal:
$ vim /usr/bin/terminal
#!/bin/sh
alacritty "$@"
Create config file:
$ mkdir -p ~/.config/alacritty/alacritty.toml
Edit config file, set MesloLGS font:
[font]
size = 11
normal = { family = "MesloLGS NF", style = "Regular" }
bold = { family = "MesloLGS NF", style = "Bold" }
italic = { family = "MesloLGS NF", style = "Italic" }
bold_italic = { family = "MesloLGS NF", style = "Italic" }
Change default shell:
$ chsh -s /usr/bin/zsh
Configure poweline
$ p10k configure
I think I've been fairly successful in setting up neovim with the lazy.nvim package manager.
I've got this config structure:
$ tree .config/nvim
.config/nvim
├── init.lua
├── lazy-lock.json
└── lua
├── config
│ └── lazy.lua
└── plugins
├── cmp.lua
├── init.lua
├── lsp.lua
└── treesitter.lua
And the follwing plugins installed:
cmp-buffer, cmp-cmdline, cmp-nvim-lsp, cmp-path, cmp_luasnip, LuaSnip, nvim-cmp, nvim-lspconfig, nvim-treesitter, nvim-ts-autotag, tokyonight.nvim
Today I went ahead and installed oh-my-zsh. Plugins enabled: git, asdf, dotenv
Embarking on a new adventure, setting up ansible to automate my VPS configuration. I want to manage my python versions with asdf, and I used the zsh asdf plugin to easily install asdf. Just clone the repo and enable the plugin.
Next step is installing some dependencies that (I think?) are necessary for python, or at the very least recommended by asdf-python, though they link to pyenv docs for some reason, not digging in to that now:
pacman -S --needed base-devel openssl zlib xz tk
asdf plugin-add python
asdf install python 3.12.6
pacman -S python-pipx
pipx install poetry
The rest will be put in version control, so I won't bother writing everything down in this thread