Skip to content

Ar4l/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,374 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

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 shell
  • bash: Fall-back terminal shell
  • nvim: Main text editor (\Space)
  • vim: Fall-back text-editor

Install

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 restow

Note, installing these dotfiles depends on the following:

  • make (super unnecessary)
  • curl downloading files
  • xz-utils extracting files
  • git for installing homebrew

TODO: MacOS New Install

  • kitty for terminal with GUI capabilities (todo: issues with color scheme & maintaining border colours)
  • rectangle for window management (todo: obsolete after Sonoma)
  • xcode-select --install for basic cli tooling.
  • obsidian for nicer md rendering.
  • arc + iCloud passwords ext. (may want Zen later)
  • brew installation 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.

SSH Features

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 zsh on the server for use as the login shell. Stored under $HOME/bin/zsh by 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.

  1. Dotfiles are mounted under the container's /root (assuming root user), and the entire home is mounted under the /workspace directory as well for convenience. The xterm-kitty infocmp is added to the container.
  2. 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: dock defaults to bash, would be nice if I don't have to type exec zsh each time.
  • TODO: kittens are not exposed properly within the docker container, as it installs to .local, but does not add it to the path.

Roadmap

Useful features I would like to have one day.

  • Sync config over ssh via kitty's ssh.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)

TODO

  • Change gruvbox colour scheme with rest of the OS

    • kitty
    • nvim: set background=(light/dark)
    • btop
    • tmux: only need to change the status bar.
  • stow is 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 embed stow in 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-hjkl for 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 tmux outside a container can work with vim inside a container.

  • nvim/sniprun: allow python snippets to run in markdown.

  • zsh: export TERM=xterm-256color does not work on ace.

  • tmux: swap v/h layout of pane with preceding pane: SO. Do not use the -n bindings 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-lfs when installed: git lfs install with optional --system flag.
    • set up vim/nvim clipboards 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, foldtext does 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 ~.

Notes

  • editorconfig for sharing tab-style configurations across editors. Comes bundled with nvim >= 0.9, vim >= 9.0.1799.

About

you, yeh you, want sum snotty dotties?

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors