aboutsummaryrefslogtreecommitdiff
path: root/install
blob: 209081c07eb8a9411c446a274b08d83cda56b2f1 (plain)
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
#!/usr/bin/env bash

cd "$(dirname "$0")" || exit 1

git submodule update --init --recursive || (
	echo "Submodule update failed!"
	exit 5
)

# Source inst and diff function
. ./utils/inst

# Load if we force changes (implies no interaction)
[ "$1" = "-f" ] && FORCE=true || FORCE=false

#################################################################################
source private/install # private files, sorry but some privacy is required.

# TODO on hosts without shellrc we might want some thin shellrc to be installed
if ask "profile" "Install shell profile"; then
	inst profile ~/.profile
	inst zprofile ~/.zprofile
fi

if ask "git" "Install GIT configuration"; then
	inst gitconfig ~/.gitconfig
	inst gitconfig-elektroline ~/.gitconfig-elektroline
	inst gitignore ~/.gitignore
fi

if ask "gpg" "Install GPG configuration"; then
	inst gnupg/gpg.conf ~/.gnupg/gpg.conf
fi

if ask "nix" "Install Nix configuration"; then
	inst config/nix/ ~/.config/nix
	inst private/config/nix/builders ~/.config/nix/builders
fi

if ask "clituls" "Install configurations for various CLI utility tools"; then
	inst screenrc ~/.screenrc
	inst local/share/mc/skins/nord16M.ini ~/.local/share/mc/skins/nord16M.ini
fi

if ask "ssh" "Install SSH config"; then
	mkdir -p ~/.cache/ssh # directory for sockets
	inst private/ssh_config ~/.ssh/config
fi

if ask "wayvnc" "Install wayland access"; then
	inst local/bin/sshvnc ~/.local/bin/
	inst local/sbin/wayvnc1 ~/.local/sbin/
	inst config/systemd/user/wayvnc1.service ~/.config/systemd/user/
fi

if ask "nvim" "Install NeoVIM scripts"; then
	inst config/nvim/ ~/.config/nvim
	mkdir -p ~/.cache/nvim      # directory for *.swp files
	mkdir -p ~/.cache/nvim-undo # directory for undo files
	nvim --headless -c 'autocmd User PackerComplete quitall' -c 'PackerSync'
	# cs spelling
	mkdir -p ~/.local/share/nvim/site/spell
	curl "http://ftp.vim.org/vim/runtime/spell/cs.utf-8.spl" \
		>~/.local/share/nvim/site/spell/cs.utf-8.spl
fi

if ask "dev" "Development tools configuration"; then
	inst config/clangd/ ~/.config/clangd
	inst pdbrc ~/.pdbrc
	inst config/pycodestyle ~/.config/pycodestyle
	inst flake8 ~/.flake8
	inst pylintrc ~/.pylintrc
	inst config/mypy/ ~/.config/mypy
	inst local/bin/new-flake-dev ~/.local/bin/new-flake-dev
	inst shvcli.ini ~/.shvcli.ini
	curl "https://github.com/cyrus-and/gdb-dashboard/raw/master/.gdbinit" >~/.gdbinit
fi

if ask "sync" "Install synchronization"; then
	inst local/bin/allsync ~/.local/bin/allsync
	if [ "$(ps -o comm= 1)" = "systemd" ]; then
		inst config/systemd/user/allsync.service ~/.config/systemd/user/
		inst config/systemd/user/allsync.timer ~/.config/systemd/user/
	fi

	inst private/mbsyncrc ~/.mbsyncrc
	inst private/notmuch-config ~/.notmuch-config
	inst private/notmuch-tag-new ~/.notmuch-tag-new
	inst local/bin/email-unread ~/.local/bin/email-unread
	inst local/sbin/newmail-notify ~/.local/sbin/newmail-notify
	inst private/msmtprc ~/.msmtprc
	inst private/astroid/config ~/.config/astroid/config
	inst config/astroid/ui/ ~/.config/astroid/ui

	inst private/vdirsyncer/ ~/.vdirsyncer
	inst config/khal/config ~/.config/khal/config
	inst config/khard/khard.conf ~/.config/khard/khard.conf

	inst_sync
fi

if ask "desktop" "Install desktop"; then
	# Force some dconf settings
	gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
	gsettings set org.gnome.desktop.interface font-name 'Cantarell 8'
	gsettings set org.gnome.desktop.interface gtk-key-theme 'Emacs'
	gsettings set org.gnome.desktop.interface gtk-theme 'Nordic-darker-standard-buttons'
	gsettings set org.gnome.desktop.interface icon-theme 'Nordzy'
	gsettings set org.gnome.desktop.interface cursor-theme 'Nordzy-cursors'
	# Theme
	inst gtk-2.0/gtkrc ~/.gtkrc-2.0
	inst config/Trolltech.conf ~/.config/Trolltech.conf
	# TODO download https://github.com/EliverLara/Nordic/releases/download/v2.2.0/Nordic-darker-standard-buttons.tar.xz
	# User directories
	inst config/user-dirs.conf ~/.config/user-dirs.dirs
	# Sway
	inst local/bin/startsway ~/.local/bin/startsway
	inst config/sway/ ~/.config/sway
	inst Xdefaults ~/.Xdefaults
	inst config/dunst/ ~/.config/dunst
	inst config/waybar/ ~/.config/waybar
	inst config/swaylock/ ~/.config/swaylock
	inst config/swayidle/ ~/.config/swayidle
	inst config/wofi/ ~/.config/wofi
	inst config/systemd/user/waybar.service ~/.config/systemd/user/waybar.service
	[ -f "private/kanshi/$(hostname)" ] &&
		inst "private/kanshi/$(hostname)" ~/.config/kanshi/config
	inst config/xdg-desktop-portal-wlr/ ~/.config/xdg-desktop-portal-wlr
	inst local/bin/wlr-select-screen ~/.local/bin/wlr-select-screen
fi

if ask "alacritty" "Install configurations for terminal emulator"; then
	inst config/alacritty.toml ~/.config/alacritty.toml
fi

if ask "mpd" "Install MPD configuration"; then
	inst config/mpd/ ~/.config/mpd
fi

if ask "elektroline" "Install Elektroline scripts"; then
	inst local/bin/elektroline-git-config ~/.local/bin/elektroline-git-config
	inst local/bin/elektroline-windows ~/.local/bin/elektroline-windows
	inst local/bin/elektroline00 ~/.local/bin/elektroline00
fi

if ask "wake" "Install wake-* scripts"; then
	[ "$(hostname)" = "ridcully" ] ||
		inst local/bin/wake-ridcully ~/.local/bin/wake-ridcully
	[ "$(hostname)" = "errol" ] ||
		inst local/bin/wake-errol ~/.local/bin/wake-errol
fi