-
Notifications
You must be signed in to change notification settings - Fork 0
/
install.sh
executable file
·195 lines (167 loc) · 4.07 KB
/
install.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
cd ~
# install homebrew
if ! command -v brew &>/dev/null; then
pretty_print "Installing Homebrew, an OSX package manager, follow the instructions..."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)"
test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
test -r ~/.bash_profile && echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >>~/.bash_profile
echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >>~/.profile
else
pretty_print "You already have Homebrew installed...good job!"
fi
echo 'PATH="/usr/local/bin:$PATH"' >>~/.bash_profile
# install packages
brew install zsh \
antidote \
neovim \
stow \
yarn \
fzf \
fd \
ripgrep \
bat \
direnv \
bpytop \
yazi \
ffmpegthumbnailer \
unar \
jq \
trash-cli \
code-minimap \
lua-language-server \
vale \
zoxide \
shellcheck \
stylua \
languagetool \
xclip \
navi \
tree \
poppler \
bat \
glow \
gitui \
volta
brew tap homebrew/cask-fonts && brew install --cask font-jetbrains-mono-nerd-font
brew cleanup
cd ${HOME}/.dotfiles
echo "stowing files..."
# stow dotfiles
stow git
stow zsh
stow nvim
stow btop
stow ulauncher
stow mpv
stow plank
stow yazi
stow wezterm
#install required dependencies for building packages mostly
echo "installing bunch of packages to your $(uname -n) desktop"
echo "installing packages using default package manager"
sudo apt install -y gcc \
make \
python3 \
python3-pip \
imagemagick \
ffmpeg \
git
echo "installing zsh and setting up things..."
# add zsh as a login shell
command -v zsh | sudo tee -a /etc/shells
echo "changing default shell"
# use zsh as default shell
sudo chsh -s $(which zsh) $USER
echo "tweaking zsh..."
# bundle zsh plugins
antidote bundle <~/.zsh_plugins.txt >~/.zsh_plugins.sh
echo 'PATH="/usr/local/bin:$PATH"' >>~/.zshrc
echo "started installing node packages..."
# install neovim plugins and requirements
npm i -g neovim intelephense bash-language-server dockerfile-language-server-nodejs yaml-language-server typescript typescript-language-server vscode-langservers-extracted @fsouza/prettierd
echo "finish nvim set up..."
nvim --headless "+Lazy! sync" +qa
echo "finishing..."
echo "adding i3-gaps repo"
wget -qO - https://regolith-desktop.org/regolith.key |
gpg --dearmor | sudo tee /usr/share/keyrings/regolith-archive-keyring.gpg >/dev/null
echo deb "[arch=amd64 signed-by=/usr/share/keyrings/regolith-archive-keyring.gpg] \
https://regolith-desktop.org/release-ubuntu-jammy-amd64 jammy main" |
sudo tee /etc/apt/sources.list.d/regolith.list
#continue
echo "Updating package lists"
sudo apt update
sudo apt install -y i3-gaps \
polybar \
policykit-1-gnome \
pavucontrol \
scrot
echo "Install picom dependencies..."
sudo apt install -y libxext-dev \
libxcb1-dev \
libxcb-damage0-dev \
libxcb-dpms0-dev \
libxcb-xfixes0-dev \
libxcb-shape0-dev \
libxcb-render-util0-dev \
libxcb-render0-dev \
libxcb-randr0-dev \
libxcb-composite0-dev \
libxcb-image0-dev \
libxcb-present-dev \
libxcb-glx0-dev \
libpixman-1-dev \
libdbus-1-dev \
libconfig-dev \
libgl-dev \
libegl-dev \
libpcre2-dev \
libevdev-dev \
uthash-dev \
libev-dev \
libx11-xcb-dev \
meson
echo "compiling picom"
cd ${HOME}/Downloads && git clone https://github.com/FT-Labs/picom.git
cd ${HOME}/Downloads/picom
git submodule update --init --recursive
meson --buildtype=release . build
ninja -C build install
echo "installing i3wm tools and required apps..."
sudo apt install -y rofi \
nitrogen \
feh \
arandr \
playerctl \
lxappearance \
kitty \
flameshot \
light \
libnotify-bin \
wmctrl \
xdotool \
trash-cli \
libinput-tools \
numlockx \
i3lock \
lazygit
sudo gpasswd -a $USER input && sudo gpasswd -a $USER video
echo "stow i3 apps"
cd ${HOME}/.dotfiles
# Extra stuff for tiling wm
pip3 install pywal
stow wal
stow themes
stow gestures
stow dunst
stow greenclip
stow i3
stow polybar
stow picom
stow rofi
#install rust cargo
curl https://sh.rustup.rs -sSf | sh
echo "DONE BOSS!SEE YA!"
echo "Install stylua"
cargo install stylua