-
-
Notifications
You must be signed in to change notification settings - Fork 195
Expand file tree
/
Copy pathinstall-config.example
More file actions
255 lines (208 loc) · 10.1 KB
/
install-config.example
File metadata and controls
255 lines (208 loc) · 10.1 KB
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
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
#!/usr/bin/env bash
# -----------------------------------------------------------------------------
# Repo configuration
# -----------------------------------------------------------------------------
# Provide a different repo to use. This could be useful if you've forked the
# project into your account.
export DOTFILES_CLONE_URL="${DOTFILES_CLONE_URL:-https://github.com/nickjj/dotfiles}"
export DOTFILES_UPSTREAM_URL="${DOTFILES_UPSTREAM_URL:-https://github.com/nickjj/dotfiles}"
# Provide a different remote branch. This branch will be merged into your
# current locally checked out branch when pulling in updates.
export DOTFILES_BRANCH="${DOTFILES_BRANCH:-master}"
# -----------------------------------------------------------------------------
# Personalization
# -----------------------------------------------------------------------------
# If you define these, they will get used instead of prompting you. Keep in
# mind you won't be prompted once you've answered them once since the values
# get persisted and read independent of these values. Still, this could be
# handy to set for fresh systems to avoid needing to input them manually.
export YOUR_NAME=
export YOUR_EMAIL=
# -----------------------------------------------------------------------------
# Graphical User Interface (GUI)
# -----------------------------------------------------------------------------
# When set to "1", niri and graphical apps will be installed if you're using an
# Arch based Linux distro. This is always skipped in WSL and in containers.
export GUI_LINUX=
# -----------------------------------------------------------------------------
# XDG directories
# -----------------------------------------------------------------------------
# If you ever want to change them then change them here, they will get written
# to the correct files from this script, there's a few spots!
#
# I use the defaults and I suggest you do the same, here's the source:
# https://specifications.freedesktop.org/basedir/latest/
export XDG_CACHE_HOME="${HOME}/.cache"
export XDG_CONFIG_HOME="${HOME}/.config"
export XDG_DATA_HOME="${HOME}/.local/share"
export XDG_STATE_HOME="${HOME}/.local/state"
# Most of these have customized defaults, here's the source with defaults:
# https://wiki.archlinux.org/title/XDG_user_directories
#
# My thought process is if a program writes something to pictures, videos or
# most other directories listed below it's probably a temporary location
# because I would organize where the file will live permanently afterwards.
#
# However, for things like music I want music players to use the real directory.
#
# Of course you are free to customize these however you see fit! These only
# get created and set if you have GUI_LINUX enabled on Arch.
export XDG_DESKTOP_DIR="${HOME}/tmp/desktop"
export XDG_DOCUMENTS_DIR="${HOME}/docs"
export XDG_DOWNLOAD_DIR="${HOME}/downloads"
export XDG_MUSIC_DIR="${HOME}/media/music"
export XDG_PICTURES_DIR="${HOME}/tmp/pictures"
export XDG_PUBLICSHARE_DIR="${HOME}/public"
export XDG_TEMPLATES_DIR="${HOME}/docs/templates"
export XDG_VIDEOS_DIR="${HOME}/tmp/videos"
# -----------------------------------------------------------------------------
# System packages
# -----------------------------------------------------------------------------
# When set to "1", package managers that support non-interactive mode where you
# can skip typing "y" to confirm will be set. Be careful, this allows hands free
# installs at the cost of not being able to review changes before installing.
export PACKAGES_AUTO_CONFIRM=
# These rules apply to all package variables:
# - Left as is OR commented out -> default packages get used
# - Remove () and set an empty value OR "" -> nothing gets used
# - Add your own array items -> only your packages get used
#
# You can use "extras" to keep the default packages but add your own to avoid
# needing to duplicate the entire package list. Think of this as merging.
#
# You can use "skip" to avoid installing these packages from the default list.
# It's useful if you want to skip a handful of packages without needing to
# duplicate and maintain the default package list.
#
# Here's a documented list of what's installed by default:
# https://github.com/nickjj/dotfiles/blob/master/_docs/packages.md
#
# You can also find the defaults in _install/default/packages for each supported OS.
# Applies to Arch Linux.
export PACKAGES_PACMAN=()
export PACKAGES_PACMAN_EXTRAS=()
export PACKAGES_PACMAN_SKIP=()
# Packages defined here only get installed when GUI_LINUX=1 is set.
export PACKAGES_PACMAN_GUI=()
export PACKAGES_PACMAN_GUI_EXTRAS=()
export PACKAGES_PACMAN_GUI_SKIP=()
export PACKAGES_AUR=()
export PACKAGES_AUR_EXTRAS=()
export PACKAGES_AUR_SKIP=()
# Packages defined here only get installed when GUI_LINUX=1 is set.
export PACKAGES_AUR_GUI=()
export PACKAGES_AUR_GUI_EXTRAS=()
export PACKAGES_AUR_GUI_SKIP=()
# Applies to Debian and Ubuntu.
export PACKAGES_APT=()
export PACKAGES_APT_EXTRAS=()
export PACKAGES_APT_SKIP=()
# Applies to macOS.
export PACKAGES_BREW=()
export PACKAGES_BREW_EXTRAS=()
export PACKAGES_BREW_SKIP=()
export PACKAGES_BREW_CASK=()
export PACKAGES_BREW_CASK_EXTRAS=()
export PACKAGES_BREW_CASK_SKIP=()
# -----------------------------------------------------------------------------
# Mise packages
# -----------------------------------------------------------------------------
# The same rules apply as system packages for how to define these.
# You can also find the defaults in _install/default/packages for each supported OS.
export MISE_ARCH=()
export MISE_ARCH_EXTRAS=()
export MISE_ARCH_SKIP=()
export MISE_DEBIAN=()
export MISE_DEBIAN_EXTRAS=()
export MISE_DEBIAN_SKIP=()
export MISE_DARWIN=()
export MISE_DARWIN_EXTRAS=()
export MISE_DARWIN_SKIP=()
# Install programming languages.
#
# You can find the defaults in _install/default/mise_languages.
declare -A MISE_LANGUAGES=()
declare -A MISE_LANGUAGES_EXTRAS=()
# Here's an example to demonstrate the syntax. The key is the binary name and
# the value is what you would pass into Mise to install it.
#MISE_LANGUAGES_EXTRAS["ruby"]="ruby@3.4"
export MISE_LANGUAGES
export MISE_LANGUAGES_EXTRAS
# -----------------------------------------------------------------------------
# External scripts
# -----------------------------------------------------------------------------
# The same rules apply as system packages for how to define these.
# These are single files that get downloaded and made executable. Typically
# they would be standalone scripts and tools that aren't in a package manager.
#
# For skipping, supply the name of the script, for example "invoice" but for
# everything else you must supply the RAW_GITHUB_URL|VERSION_COMMAND, example:
# "https://raw.githubusercontent.com/nickjj/notes/v0.3.1/notes|--version"
#
# The version is used to avoid downloading the same copy on every run.
#
# Here's a documented list of what's installed:
# https://github.com/nickjj/dotfiles/blob/master/_docs/scripts.md
#
# You can also find the defaults in _install/default/scripts.
# Scripts defined here will get installed in all OS / environments.
export SCRIPTS_INSTALL=()
export SCRIPTS_INSTALL_EXTRAS=()
export SCRIPTS_INSTALL_SKIP=()
# -----------------------------------------------------------------------------
# Install configs
# -----------------------------------------------------------------------------
# The same rules apply as system packages for how to define these.
# You can find the defaults in _install/default/install_configs.
# When set to "1", even if there's files not managed by these dotfiles they
# will get overwritten without showing you a prompt to confirm. This could
# result in you losing your original files, be careful setting this.
export CONFIG_INSTALL_AUTO_CONFIRM=
# Typically these should be symlinks but they could be created with cp / rsync
# or whatever commands you want.
#
# Symlinks allow you to keep your configs in this dotfiles repo but have them
# exist in ~/.config/xxx so programs pick them up. You can also create .local
# versions of these files in your dotfiles and symlink them, this allows you
# to fully overwrite a config without forking this repo.
#
# The only requirement is each item in the list follows this format, use the
# default file to see what real examples look like.
#
# "<COMMAND> <SOURCE> <DESTINATION>"
# Configs defined here will get created in all OS / environments.
export CONFIG_INSTALL=()
export CONFIG_INSTALL_EXTRAS=()
# Configs defined here only get created when GUI_LINUX=1 is set.
export CONFIG_INSTALL_GUI_LINUX=()
export CONFIG_INSTALL_GUI_LINUX_EXTRAS=()
# Configs defined here only get created when on Arch Linux.
export CONFIG_INSTALL_ARCH=()
export CONFIG_INSTALL_ARCH_EXTRAS=()
# Configs defined here only get created when in WSL.
export CONFIG_INSTALL_WSL=()
export CONFIG_INSTALL_WSL_EXTRAS=()
# -----------------------------------------------------------------------------
# Sudoers
# -----------------------------------------------------------------------------
# The same rules apply as mise languages for how to define these.
# You can find the defaults in _install/default/sudoers_entries.
# Creates sudoers entries into /etc/sudoers.d/.
declare -A SUDOERS_ENTRIES=()
declare -A SUDOERS_ENTRIES_EXTRAS=()
# Here's an example to demonstrate the syntax. The key is the file name and
# the value is the line written to the file.
#SUDOERS_ENTRIES_EXTRAS["dot-whois"]="${USER} ALL=(ALL) NOPASSWD: /usr/bin/whoami"
export SUDOERS_ENTRIES
export SUDOERS_ENTRIES_EXTRAS
# -----------------------------------------------------------------------------
# Enabled systemd services
# -----------------------------------------------------------------------------
# The same rules apply as system packages for how to define these.
# You can find the defaults in _install/default/systemd_services.
# Services in this list will start on boot if they exist, omit the .service
# extension, for example SYSTEMD_ENABLED_SERVICES_EXTRAS=("docker.service") is
# enabled by default. Use "myservice --user" to have it enabled with --user,
# likewise you can use "myservice --now" and combine these flags as needed.
export SYSTEMD_ENABLED_SERVICES=()
export SYSTEMD_ENABLED_SERVICES_EXTRAS=()