Set of configuration files, frequently used over ssh connections. Mainly touches:
kitty: Terminal configuration (theme, font, keybinds)tmux: Terminal session management (C-b)zsh: Main terminal shellbash: Fall-back terminal shellnvim: Main text editor (\→Space)vim: Fall-back text-editor
These dotfiles assume you use kitty.
Configuration files are symlinked to their respective locations under
$HOME, using stow.
$ git clone https://github.com/Ar4l/dotfiles
# Install dependencies & symlink to $HOME
$ make all# Reload
$ make restowNote, installing these dotfiles depends on the following:
make(super unnecessary)curldownloading filesxz-utilsextracting filesgitfor installing homebrew
-
kittyfor terminal with GUI capabilities (todo: issues with color scheme & maintaining border colours) -
rectanglefor window management (todo: obsolete after Sonoma) -
xcode-select --installfor basic cli tooling. -
obsidianfor nicermdrendering. -
arc+ iCloud passwords ext. (may want Zen later) -
brewinstallation needs to be done manually, may be nice to give an update. - allow ssh to machine & publish ip address to other devices:
sudo systemsetup -setremotelogin on&&bin/checkip. Also requires router-specific settings.
Servers often have different OS, packages, and tooling available. These dotfiles try to make use of existing ones, and download additional packages when needed.
Warning
Very much a work-in-progress.
- TODO: By default, try installing
zshon the server for use as the login shell. Stored under$HOME/bin/zshby default. Currently installs via homebrew, for use in docker container, which means it is not available under/bin/zsh
If docker is available on the server, assume that the server owners want me to work in a container. I provide a dock command, which spins up a aral-pytorch container and mounts $HOME directory in the container.
- Dotfiles are mounted under the container's
/root(assuming root user), and the entire home is mounted under the/workspacedirectory as well for convenience. Thexterm-kittyinfocmpis added to the container. - It is possible to directly connect to a container on a host via ssh, but this requires port-forwarding – which I won't attempt as the university is not open about what ports are blocked by its firewall.
- TODO:
dockdefaults tobash, would be nice if I don't have to typeexec zsheach time. - TODO: kittens are not exposed properly within the docker container, as it installs to
.local, but does not add it to the path.
Useful features I would like to have one day.
-
Sync config over ssh via
kitty'sssh.conf.- This is a bit tricky as we don't know what applications are available on the host, and we may not have the required permissions to install them in a convenient manner.
-
Mosh: Roaming and reduced latency (perspectively speaking)
- ProxyJump support
- Integrate with kitty:
mosh kitten run-shell
-
Change gruvbox colour scheme with rest of the OS
-
kitty -
nvim:set background=(light/dark) -
btop -
tmux: only need to change the status bar.
-
-
stowis not available by default on most machines; and I would like to be able to at least have my config files available regardless of superuser permissions. So, either embedstowin this repository (a nightmare because of dependencies), or write your own symlinking script and enjoy the additional control when directories already exist. -
let the user know which package is currently being installed, and show the already installed packages.
-
C-hjklfor changing windows anywhere; while also keeping the original application keybinds in case anything goes awry.-
within
kitty -
within
tmux -
over ssh, within docker; see if
tmuxoutside a container can work withviminside a container.
-
-
nvim/sniprun: allow python snippets to run in markdown. -
zsh: exportTERM=xterm-256colordoes not work onace. -
tmux: swap v/h layout of pane with preceding pane: SO. Do not use the-nbindings to be able to use the same functionality in vim.- Or generalised for any direction: This SO post
-
install.sh- install xclip on linux systems
- set up
git-lfswhen installed:git lfs installwith optional--systemflag. - set up
vim/nvimclipboards so they work:- on local machine and inside tmux
- on host and inside tmux
- inside docker container
-
tmux- cmd+shift+hjkl enters that window and maximises it.
-
vim- double check that we didn't lose any plugin confs
- show slider bar
- terminal colours
- alt-delete to delete a word
- Highlight copied selection akin to nvim
- single line mouse scrolling. This is possible but not like the way I want.
- tree on right side, hide tree after selecting file
-
nvim- why is wrap turned on for python by default, and off for markdown? it should be the opposite.
- better folding based on tree-sitter expr. Folding works,
foldtextdoes not. - no need to underline the current class – looks ugly. But, would be useful if a header appeared if the definition falls off-screen.
- only display the filename in the status bar, no need to show the path from ~.
editorconfigfor sharing tab-style configurations across editors. Comes bundled withnvim >= 0.9,vim >= 9.0.1799.