mirror of
https://github.com/alrayyes/dotfiles/
synced 2023-11-14 15:56:30 +00:00
87 lines
2.6 KiB
Fish
Executable File
87 lines
2.6 KiB
Fish
Executable File
#!/usr/bin/env fish
|
|
|
|
function mkdir_if_not_exist
|
|
if [ ! -d "$argv" ]
|
|
echo "Creating directory $argv"
|
|
mkdir -p "$argv"
|
|
end
|
|
end
|
|
|
|
function install_omf_package_if_not_exist
|
|
if test (omf list | grep -c "$argv") -eq 0
|
|
omf install "$argv"
|
|
end
|
|
end
|
|
|
|
# Create directories that need to exist
|
|
mkdir_if_not_exist ~/.cache/mpd
|
|
mkdir_if_not_exist ~/.config/alacritty
|
|
mkdir_if_not_exist ~/.config/nvim
|
|
mkdir_if_not_exist ~/.config/fish
|
|
mkdir_if_not_exist ~/.config/omf
|
|
mkdir_if_not_exist ~/.config/mpd
|
|
mkdir_if_not_exist ~/.config/wal
|
|
mkdir_if_not_exist ~/.weechat
|
|
|
|
for d in (find -- */ -maxdepth 0 -type d | cut -f1 -d '/')
|
|
echo "Linking $d..."
|
|
stow -t "$HOME" "$d"
|
|
end
|
|
|
|
# Refresh xgd
|
|
if test (grep -c 'x-scheme-handler/org-protocol=org-protocol.desktop' ~/.config/mimeapps.list) -eq 0
|
|
echo "Refreshing xgd to handle org-protocol"
|
|
update-desktop-database ~/.local/share/applications/
|
|
xdg-mime default org-protocol.desktop x-scheme-handler/org-protocol
|
|
end
|
|
|
|
# Install oh-my-fish if it isn't installed
|
|
if [ ! -d ~/.local/share/omf ]
|
|
curl -L https://get.oh-my.fish | fish
|
|
end
|
|
|
|
# Install oh-my-fish plugins
|
|
install_omf_package_if_not_exist bobthefish
|
|
install_omf_package_if_not_exist colored-man-pages
|
|
install_omf_package_if_not_exist extract
|
|
install_omf_package_if_not_exist fzf
|
|
install_omf_package_if_not_exist gi
|
|
install_omf_package_if_not_exist git-flow
|
|
install_omf_package_if_not_exist sudope
|
|
install_omf_package_if_not_exist wttr
|
|
|
|
# Install vim plugins & requirements
|
|
if test (pip list --user | grep -c 'pynvim') -ne 1
|
|
pip install --user pynvim
|
|
end
|
|
|
|
# Install plug package manager if it doesn't exist
|
|
if [ ! -d ~/.config/nvim/plugged ]
|
|
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
|
|
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
|
end
|
|
|
|
# Install Neovim plugins
|
|
nvim +PlugInstall +qall
|
|
|
|
# Install vifm dependencies
|
|
curl https://raw.githubusercontent.com/cirala/vifmimg/master/vifmimg --output vifm/.local/bin/vifmimg
|
|
chmod 700 vifm/.local/bin/vifmimg
|
|
curl https://raw.githubusercontent.com/cirala/vifmimg/master/vifmrun --output vifm/.local/bin/vifmrun
|
|
chmod 700 vifm/.local/bin/vifmrun
|
|
curl https://raw.githubusercontent.com/cirala/vifm_devicons/master/SETUP --output vifm/.config/vifm/SETUP
|
|
|
|
# Setup broot if not done already
|
|
if [ ! -d ~/.local/share/broot ]
|
|
broot --install
|
|
end
|
|
|
|
# Update fish completions (auto generated from man pages)
|
|
fish_update_completions
|
|
|
|
# Notify user to manually symlink files
|
|
if [ -n "$argv[1]" ]
|
|
printf "\n\nDon't forget to symlink these files:\n\n"
|
|
find ~ \( -type l -o -type f \) -name "*.$argv[1]" -exec ls -al {} \;
|
|
end
|