Skip to content

rgreenblatt/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

I have almost everything configured to use some variant of the gruvbox theme.

The keyboard repo contains code for using the event interface through python-evdev to contruct arbitrary keyboard layouts. Its undocumented right now.

Installation

This repo should be cloned into the home directory. Stow is used for installation, so existing files will never be deleted. To install everything run ./install.sh. See ./install.sh -h for options.

Notes

It is possible to install nvim without root using this approach.

I am not making these parts into a script because it should probably be run at most several lines at a time. Some lines require user input.

Arch

See arch_install.md

yay -Syu
yay -S python-wheel
# note, includes many language specific installs, reduce as needed
yay -S i3 i3status xorg xorg-xinit nvidia nvidia-utils qutebrowser python3 rustup fd \
  ripgrep bat zathura zathura-cb zathura-djvu zathura-pdf-mupdf \
  compton xdotool picom aur/nerd-fonts-hack unclutter \
  aur/twmn-git hsetroot xsel curl sqlite xcalib cmake flameshot mpv stow \
  openvpn pandoc inotify-tools bpython youtube-dl py3status python-pip \
  neovim-remote python-pynvim python-evdev \
  community/python-watchdog aur/openpyn-nordvpn aur/nvm \
  bash-language-server community/yarn aur/ruby-neovim \
  aur/nodejs-neovim sd exa vimiv boost watchman ccls \
  boost eigen gdb ttf-roboto pulseaudio pulseaudio-alsa \
  alsa-utils pavucontrol opam xfce4-terminal aur/ranger-git
# TODO: swap ranger-git to ranger when possible

# Currently failing (and not important): aur/insect and aur/dbg-macro

# consider ocaml installs
opam init && opam install ocaml-lsp-server && opam install utop

# consider also toml format
yarn global add --dev prettier prettier-plugin-toml --dev --exact &&
  yarn global upgrade

pip3 install recordclass bidict

rustup default stable

# slow install packages to install later
yay -S aur/cling clang texlive-most aur/cmake-lint aur/cmake-format aur/bear 

# swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=16384 status=progress
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# add '/swapfile none swap defaults 0 0'
se /etc/fstab

Note: install watchman potentially.

After running general installs:

npm i -g tldr bash-language-server neovim

General

./change_directory_names.sh
ln -sfn "$PWD/user-dirs.dirs" ~/.config
sudo cp "root_configs/etc/udev/rules.d/85-input.rules" \
  /etc/udev/rules.d/
sudo cp "root_configs/etc/modules-load.d/uinput.conf" \
  /etc/modules-load.d/
sudo usermod -aG input $USER
./install.sh main
source ~/.profile
nvm install --lts
source ~/.profile
nvim +PlugInstall +qa
cd ~/.fzf && ./install --all && cd -
bat cache --build
sudo cp root_configs/usr/local/bin/env_editor /usr/local/bin/env_editor &&
  sudo ln -sf /usr/local/bin/env_editor /usr/bin/editor

Consider changing to

GRUB_CMDLINE_LINUX_DEFAULT="text mitigations=off"

in /etc/default/grub. Additional language servers and watchmen for coc may also be desirable. Consider running:

echo 999999 | sudo tee -a /proc/sys/fs/inotify/max_user_watches &&
  echo 999999 | sudo tee -a /proc/sys/fs/inotify/max_queued_events &&
  echo 999999 | sudo tee -a /proc/sys/fs/inotify/max_user_instances &&
  watchman shutdown-server && sudo sysctl -p

The following can speed up boot time

sudo systemctl disable NetworkManager-wait-online.service

Not sure how needed these are...

sudo systemctl enable nvidia-suspend.service
sudo systemctl enable nvidia-hibernate.service
sudo systemctl enable nvidia-resume.service
# just improves multiuser times?
sudo systemctl enable nvidia-persistenced.service

Considering installing cling. Consider installing lld (the LLVM Linker) and setting it as default by symlinking to ~/.local/bin.