mirror of
				https://github.com/mitchell/dotfiles.git
				synced 2025-11-03 21:25:26 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			116 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Fish
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Fish
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env fish
 | 
						|
 | 
						|
function main
 | 
						|
    set -l start_dir (pwd)
 | 
						|
    set -l cwd (string match -r '\w+$' $start_dir)
 | 
						|
    set -l uname (uname)
 | 
						|
 | 
						|
    echo 'Syncing configuration files to your home dir...'
 | 
						|
    set_color grey
 | 
						|
 | 
						|
    setup_tmp_space $cwd
 | 
						|
 | 
						|
    sync_terminal_env
 | 
						|
 | 
						|
    set_fish_universal_vars
 | 
						|
 | 
						|
    set_kitty_font_size $uname
 | 
						|
 | 
						|
    install_fisher_packages
 | 
						|
 | 
						|
    install_nvim_plugins
 | 
						|
 | 
						|
    set_git_user
 | 
						|
 | 
						|
    sync_desktop_env
 | 
						|
 | 
						|
    set_color normal
 | 
						|
 | 
						|
    clean_up_tmp_space $cwd $start_dir
 | 
						|
 | 
						|
    echo -s \n 'Done syncing.'
 | 
						|
end
 | 
						|
 | 
						|
function setup_tmp_space -a cwd
 | 
						|
    if test ! "$cwd" = 'dotfiles'
 | 
						|
        cd /var/tmp
 | 
						|
        git clone --recurse-submodules https://github.com/mitchell/dotfiles.git
 | 
						|
        cd ./dotfiles
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
function sync_terminal_env
 | 
						|
    if ! test -e ~/.config
 | 
						|
        mkdir ~/.config
 | 
						|
    end
 | 
						|
 | 
						|
    rsync -aP ./.config/fish ~/.config/
 | 
						|
    rsync -aP ./.config/nvim ~/.config/
 | 
						|
    rsync -aP ./.gitconfig ~/
 | 
						|
    rsync -aP ./.tmux-line.conf ~/
 | 
						|
    rsync -aP ./.tmux.conf ~/
 | 
						|
    rsync -aP ./.vim ~/
 | 
						|
    rsync -aP ./.vimrc ~/
 | 
						|
    rsync -aP ./.taskrc ~/
 | 
						|
end
 | 
						|
 | 
						|
function sync_desktop_env
 | 
						|
    set -l prompt 'Would you like to sync the desktop environment?'
 | 
						|
    read -p "set_color red; printf '\n$prompt (y/N) '; set_color normal" sync_desktop_env
 | 
						|
 | 
						|
    if test "$sync_desktop_env" = 'y'; or test "$sync_desktop_env" = 'Y'
 | 
						|
        set_color grey
 | 
						|
        rsync -aP ./.config/kitty ~/.config/
 | 
						|
        rsync -aP ./.config/bspwm ~/.config/
 | 
						|
        rsync -aP ./.config/sxhkd ~/.config/
 | 
						|
        rsync -aP ./.config/picom ~/.config/
 | 
						|
        rsync -aP ./.config/xfce4 ~/.config/
 | 
						|
        rsync -aP ./.config/qutebrowser ~/.config/
 | 
						|
        rsync -aP ./.config/polybar ~/.config/
 | 
						|
        rsync -aP ./.ideavimrc ~/
 | 
						|
        rsync -aP ./.yabairc ~/
 | 
						|
        rsync -aP ./.skhdrc ~/
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
function set_kitty_font_size -a uname
 | 
						|
    if test "$uname" = 'Darwin'
 | 
						|
        sed -i '' -e 's/font_size 11\.0/font_size 13\.0/' ~/.config/kitty/kitty.conf
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
function install_fisher_packages
 | 
						|
    eval fisher
 | 
						|
end
 | 
						|
 | 
						|
function install_nvim_plugins
 | 
						|
    command -q nvim; and nvim +PlugUpgrade +PlugUpdate +qa
 | 
						|
end
 | 
						|
 | 
						|
function set_git_user
 | 
						|
    set -l prompt 'Would you like to set your git user name and email?'
 | 
						|
    read -p "set_color red; printf '\n$prompt (y/N) '; set_color normal" set_git_user
 | 
						|
 | 
						|
    if test "$set_git_user" = 'y'; or test "$set_git_user" = 'Y'
 | 
						|
        read -P 'name: ' name
 | 
						|
        read -P 'email: ' email
 | 
						|
 | 
						|
        git config --global user.name $name
 | 
						|
        git config --global user.email $email
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
function set_fish_universal_vars
 | 
						|
    source ./fish_universal_vars.fish
 | 
						|
end
 | 
						|
 | 
						|
function clean_up_tmp_space -a cwd start_dir
 | 
						|
    if test ! "$cwd" = 'dotfiles'
 | 
						|
        cd ..
 | 
						|
        rm -rf ./dotfiles
 | 
						|
        cd $start_dir
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
main
 |