Index

dotfiles / ea63c73

My personal dotfiles for Debian/Ubuntu.

Latest Commit

{#}TimeHashSubjectAuthor#(+)(-)GPG?
3307 Oct 2021 21:23ea63c73Check for files before redownloadingJosh Stockin162G

Blob @ dotfiles / install.sh

text/x-shellscript4656 bytesdownload raw
1#!/bin/bash
2
3HELPTEXT="./install.sh <desktop|laptop|headless>"
4case $1 in
5 h|help|\?|-h|-help|-\?|--h|--help|--\?)
6 echo -e $HELPTEXT
7 exit 0
8 ;;
9 desktop)
10 UNIT=DESKTOP
11 ;;
12 laptop)
13 UNIT=LAPTOP
14 ;;
15 headless)
16 UNIT=HEADLESS
17 ;;
18 *)
19 echo -e $HELPTEXT
20 exit 0
21 ;;
22esac
23
24category(){
25 echo -e " \e[1;37m$1\e[0m"
26}
27
28item(){
29 echo -e " \e[0m$1\e[0m"
30}
31
32echo -e " \e[1;33mInstall type \e[1;35m$UNIT\e[0m"
33
34SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)"
35
36# Bash config
37category "Bash config"
38item "~/.bash_aliases"
39install $SCRIPT_DIR/.bash_aliases $HOME/.bash_aliases
40item "~/.bashrc"
41install $SCRIPT_DIR/.bashrc $HOME/.bashrc
42item "~/.profile"
43install $SCRIPT_DIR/.profile $HOME/.profile
44
45category "Common folders"
46item "~/src/"
47SRCFOLDER=$HOME/src
48mkdir -p $SRCFOLDER
49item "~/.local/bin/"
50LOCALBIN=$HOME/.local/bin
51mkdir -p $LOCALBIN
52item "~/.local/share/"
53mkdir -p $HOME/.local/share
54
55# Local scripts
56category "Local scripts"
57if [ $UNIT == "DESKTOP" ] && [ $(whoami) != "root" ]; then
58 item "~/.local/bin/middle-mouse-scroll"
59 install $SCRIPT_DIR/middle-mouse-scroll $LOCALBIN/middle-mouse-scroll
60fi
61
62if ! command -v minesweeper &> /dev/null
63then
64 if [ $(whoami) == "root" ]; then
65 item "/usr/local/bin/minesweeper"
66 else
67 item "~/.local/bin/minesweeper"
68 fi
69 git clone --depth=1 git://joshstock.in/ncurses-minesweeper.git $SRCFOLDER/ncurses-minesweeper
70 cd $SRCFOLDER/ncurses-minesweeper
71 make compile build
72 if [ $(whoami) == "root" ]; then
73 install bin/minesweeper /usr/local/bin/minesweeper
74 else
75 install bin/minesweeper $LOCALBIN/minesweeper
76 fi
77 rm -rf $SRCFOLDER/ncurses-minesweeper
78 cd $SCRIPT_DIR
79fi
80
81if [ $UNIT == "DESKTOP" ] || [ $UNIT == "LAPTOP" ]; then
82 # GTK config
83 category "GTK config"
84
85 GTKDIR=$HOME/.config/gtk-3.0
86 item "~/.config/gtk-3.0/"
87 mkdir -p $GTKDIR
88
89 item "~/.config/gtk-3.0/gtk.css"
90 install $SCRIPT_DIR/gtk.css $GTKDIR/gtk.css
91
92 item "Terminal theme 'Oceanic Next'"
93 $SCRIPT_DIR/terminal_theme.sh $1 &>/dev/null
94
95 if [ $(whoami) == "root" ]; then
96 # Fonts
97 category "Fonts"
98 FONTDIR=/usr/share/fonts
99
100 item "Fira Sans pack"
101 if [ ! -f $FONTDIR/FiraSans-Regular.ttf ]; then
102 curl -fLso /tmp/Fira.zip https://fonts.google.com/download?family=Fira%20Sans
103 unzip -q /tmp/Fira.zip -d $FONTDIR
104 fi
105
106 item "Fira Mono (Nerd Fonts) pack"
107 if [ ! -f $FONTDIR/FiraMono-Regular.otf ]; then
108 curl -fLso $FONTDIR/FiraMono-Regular.otf https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/FiraMono/Regular/complete/Fura%20Mono%20Regular%20Nerd%20Font%20Complete%20Mono.otf
109 fi
110 if [ ! -f $FONTDIR/FiraMono-Medium.otf ]; then
111 curl -fLso $FONTDIR/FiraMono-Medium.otf https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/FiraMono/Medium/complete/Fura%20Mono%20Medium%20Nerd%20Font%20Complete%20Mono.otf
112 fi
113 if [ ! -f $FONTDIR/FiraMono-Bold.otf ]; then
114 curl -fLso $FONTDIR/FiraMono-Bold.otf https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/FiraMono/Bold/complete/Fura%20Mono%20Bold%20Nerd%20Font%20Complete%20Mono.otf
115 fi
116
117 item "Refreshing font cache"
118 fc-cache
119 fi
120fi
121
122# Global git config
123category "Global git config"
124
125if [ $(whoami) == "root" ]; then
126 item "/etc/gitconfig"
127 install $SCRIPT_DIR/.gitconfig /etc/gitconfig
128else
129 item "~/.gitconfig"
130 install $SCRIPT_DIR/.gitconfig $HOME/.gitconfig
131fi
132
133# Vim
134category "Vim config"
135
136if [ $UNIT == "HEADLESS" ]; then
137 if [ $(whoami) == "root" ]; then
138 item "/usr/share/vim/"
139 VIMDIR=/usr/share/vim
140 mkdir -p $VIMDIR
141 item "/usr/share/vim/vimrc"
142 grep -v "RMHEADLESS" vimrc > $SCRIPT_DIR/.vimrc_headless
143 install $SCRIPT_DIR/.vimrc_headless $VIMDIR/vimrc
144 item "/usr/share/vim/autoload/plug.vim"
145 if [ ! -f $VIMDIR/autoload/plug.vim ]; then
146 curl -fLso $VIMDIR/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
147 fi
148 fi
149else
150 item "~/.vim/"
151 VIMDIR=$HOME/.vim
152 mkdir -p $VIMDIR
153 item "~/.vim/vimrc"
154 install $SCRIPT_DIR/vimrc $VIMDIR/vimrc
155 item "~/.vim/autoload/plug.vim"
156 if [ ! -f $VIMDIR/autoload/plug.vim ]; then
157 curl -fLso $VIMDIR/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
158 fi
159fi
160
161# Done
162echo -e " \e[1;33mDONE\e[0m"
163