A collection of my .dotfiles, still a work in progress as I migrate my work environment to a more customizable experience.
make setup/laptop|work|desktop
I've since switched to wezterm
from kitty
, its written in Rust and I am trying to have my entire system in Rust, soontm.
Jokes aside, I just wanted to try something new, wezterm
seems easy to configure, performs well, and I don't really use any of the features of my terminal since I have other tools for that. And the kitty
maintainer usually has more dislikes than likes on his responses which just threw me off every time I was reading about an issue.
sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator `which wezterm` 50
sudo update-alternatives --config x-terminal-emulator
Since I use multiple devices, personal and for work, I needed a way to switch between these. So for now there are symlinks for sway and git configs that are included by the common main config. So I just just swap out the include for any environment specific configuration
We have to add the keyboard to here and also add an entry into the rules (rules might be unnecessary on Wayland)
sudo cp real-prog-dvorak /usr/share/X11/xkb/symbols/
[rwin]>[lwin]
[end]>[lctrl]
[lalt]>[end]
[pdown]>[lalt]
[rctrl]>[pup]
[lctrl]>[pdown]
[pup]>[tab]
[caps]>[escape]
For clipboard install ws-clipboard
Cool alternatives to common Unix commands like grep
, find
, top
... (mostly written in Rust)
Mostly trying them out and playing around with my setup
ripgrep
- search tool github.com/BurntSushi/ripgrepfd
- simple and fast alternative tofind
github.com/shardp/fdbottom
- graphical process/system monitor github.com/ClementTsang/bottomsd
- intuitive find & replace https://github.com/chmln/sdprocs
- modern replacement forps
https://github.com/dalance/procsexa
- modern replacement forls
https://github.com/ogham/exabat
- a cat(1) clone https://github.com/sharkdp/bathyperfine
- CLI benchmarking tool https://github.com/sharkdp/hyperfinetokei
- count code, file lines... https://github.com/XAMPPRocky/tokeidust
- modern replacement fordu
https://github.com/bootandy/dustbroot
- new way to see and navigate directory trees https://github.com/Canop/brootatuin
- magical shell history https://github.com/ellie/atuin (requires additional setup for bash)starship.rs
- cross-shell prompt https://github.com/starship/starship
Kitty and Neovim use tokyonight
JetBrains Mono Nerd Font
- Add
.ttf
's to/usr/local/share/fonts
- Run
fc-cache -f -v
https://askubuntu.com/questions/1423752/ubuntu-20-04-unable-to-use-a-bluetooth-dongle-tp-link-ub500
exec --no-startup-id /usr/libexec/gsd-xsettings
//dark alias dark='gsettings set org.gnome.desktop.interface gtk-theme Adwaita-dark \ && gsettings set org.gnome.desktop.interface color-scheme prefer-dark'
set default sink with pulse audio
/etc/pulse/default.pa
port forward from X port to 2222 in router for SSH port forward from 60001 to any in router for mosh also enable firewall these connections in firewall
Change DNS from ISP to Cloudflare
Regular
brave, stow, sway, swaylock, waybar, pavlucontrol, obsidian, wezterm, neovim, ripgrep, fd-find, mosh, git, wl-clipboard, ripgrep
~/bin binaries
atuin bat broot dust exa fzf hyperfine lazygit localstack open-wezterm-here procs starship strip-ansi-escapes tldr tokei wezterm wezterm-gui wezterm-mux-server zellij zoxide
Setup VPN to only be working for specified route (home PC)
On server run the cloudflared tunnel
docker run --add-host=host.docker.internal:host-gateway -d --name sshtunnel cloudflare/cloudflared:latest tunnel --no-autoupdate run --token eyJhxxxxxxxxxxx
On host machine follow the Connect to SSH server with cloudflared access guide
ly, display manager with console ui, simple and works for Wayland and Xorg
libssl.1.1
not found when runningwezterm
Solution
~/.xinitrc
sets up gnome keyring and i3
#!/bin/sh
# Set the session type to X11
export XDG_SESSION_TYPE=x11
# Set the GNOME Shell session mode to i3
export GNOME_SHELL_SESSION_MODE=i3
# Run the system xinitrc scripts (if any)
if [ -d /etc/X11/xinit/xinitrc.d ]; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh; do
[ -x "$f" ] && . "$f"
done
unset f
fi
# Start the compositor (xcompmgr)
xcompmgr &
eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
export SSH_AUTH_SOCK
# Set the keyboard layout to real-prog-dvorak
setxkbmap real-prog-dvorak
# Start the i3 window manager
i3
- worktree
Good to haves
- Add installs for dependencies - ansible
- Look into NixOS