forked from dani-77/d77void
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathd77
More file actions
executable file
·557 lines (506 loc) · 24.6 KB
/
d77
File metadata and controls
executable file
·557 lines (506 loc) · 24.6 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
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
#!/bin/bash
set -eu
. ./lib.sh
PROGNAME=$(basename "$0")
ARCH=$(uname -m)
IMAGES="awesome base bspwm cosmic dwm fluxbox herbstluftwm hyprland i3wm jwm labwc leftwm lxqt mango niri openbox qtile river sway wayfire wmd77 xfce"
TRIPLET=
REPO=
DATE=$(date -u +%Y%m%d)
usage() {
cat <<-EOH
Usage: $PROGNAME [options ...] [-- mklive options ...]
Wrapper script around mklive.sh for several standard flavors of live images.
Adds d77void-installer and other helpful utilities to the generated i<mages.
adaptation of mkiso.sh by Daniel Azevedo (dani-77)
OPTIONS
-a <arch> Set architecture (or platform) in the image
-b <variant> One of base, awesome, bspwm, cosmic, dwm, fluxbox, herbstluftwm, hyprland, i3wm, JWM, labwc, leftwm, mango, niri, openbox, qtile, river, sway, wayfire, wmd77 or xfce.
May be specified multiple times to build multiple variants.
-d <date> Override the datestamp on the generated image (YYYYMMDD format)
-t <arch-date-variant>
Equivalent to setting -a, -b, and -d
-r <repo> Use this XBPS repository. May be specified multiple times
-h Show this help and exit
-V Show version and exit
Other options can be passed directly to mklive.sh by specifying them after the --.
See mklive.sh -h for more details.
EOH
}
while getopts "a:b:d:t:hr:V" opt; do
case $opt in
a) ARCH="$OPTARG";;
b) IMAGES="$OPTARG";;
d) DATE="$OPTARG";;
r) REPO="-r $OPTARG $REPO";;
t) TRIPLET="$OPTARG";;
V) version; exit 0;;
h) usage; exit 0;;
*) usage >&2; exit 1;;
esac
done
shift $((OPTIND - 1))
INCLUDEDIR=$(mktemp -d)
trap "cleanup" INT TERM
cleanup() {
rm -rf "$INCLUDEDIR"
}
include_installer() {
if [ -x installer.sh ]; then
MKLIVE_VERSION="$(PROGNAME='' version)"
installer=$(mktemp)
sed "s/@@MKLIVE_VERSION@@/${MKLIVE_VERSION}/" installer.sh > "$installer"
install -Dm755 "$installer" "$INCLUDEDIR"/usr/bin/d77void-installer
rm "$installer"
else
echo installer.sh not found >&2
exit 1
fi
}
setup_pipewire() {
PKGS="$PKGS pipewire alsa-pipewire"
case "$ARCH" in
asahi*)
PKGS="$PKGS asahi-audio"
SERVICES="$SERVICES speakersafetyd"
;;
esac
mkdir -p "$INCLUDEDIR"/etc/xdg/autostart
ln -sf /usr/share/applications/pipewire.desktop "$INCLUDEDIR"/etc/xdg/autostart/
mkdir -p "$INCLUDEDIR"/etc/pipewire/pipewire.conf.d
ln -sf /usr/share/examples/wireplumber/10-wireplumber.conf "$INCLUDEDIR"/etc/pipewire/pipewire.conf.d/
ln -sf /usr/share/examples/pipewire/20-pipewire-pulse.conf "$INCLUDEDIR"/etc/pipewire/pipewire.conf.d/
mkdir -p "$INCLUDEDIR"/etc/alsa/conf.d
ln -sf /usr/share/alsa/alsa.conf.d/50-pipewire.conf "$INCLUDEDIR"/etc/alsa/conf.d
ln -sf /usr/share/alsa/alsa.conf.d/99-pipewire-default.conf "$INCLUDEDIR"/etc/alsa/conf.d
}
include_box() {
PKGS="$PKGS cbatticon conky jgmenu jq redshift-gtk volumeicon network-manager-applet"
mkdir -p "$INCLUDEDIR"/usr/share/applications
cp ./common/jgmenu.desktop "$INCLUDEDIR"/usr/share/applications/
}
include_common() {
mkdir -p "$INCLUDEDIR"/boot/grub/themes
mkdir -p "$INCLUDEDIR"/etc
mkdir -p "$INCLUDEDIR"/etc/skel/.config
mkdir -p "$INCLUDEDIR"/etc/skel/.local/share
mkdir -p "$INCLUDEDIR"/etc/default
mkdir -p "$INCLUDEDIR"/etc/skel/.local/share
mkdir -p "$INCLUDEDIR"/usr/bin
mkdir -p "$INCLUDEDIR"/usr/lib
mkdir -p "$INCLUDEDIR"/usr/share/applications
mkdir -p "$INCLUDEDIR"/usr/share/pixmaps
mkdir -p "$INCLUDEDIR"/usr/share/plymouth/themes
mkdir -p "$INCLUDEDIR"/usr/share/polkit-1/rules.d
mkdir -p "$INCLUDEDIR"/usr/share/void-artwork
mkdir -p "$INCLUDEDIR"/usr/share/sddm/faces
mkdir -p "$INCLUDEDIR"/usr/share/sddm/themes
cp -r ./common/d77-grub-theme "$INCLUDEDIR"/boot/grub/themes/
cp -r ./common/calamares "$INCLUDEDIR"/etc/
cp -r ./common/d77 "$INCLUDEDIR"/usr/share/plymouth/themes/
cp -r ./common/d77-spinner "$INCLUDEDIR"/usr/share/plymouth/themes/
cp -r ./common/.bash_it "$INCLUDEDIR"/etc/skel/
cp -r $variant/skel "$INCLUDEDIR"/etc/
cp ./common/sddm.conf "$INCLUDEDIR"/etc/
cp ./common/grub "$INCLUDEDIR"/etc/default/
cp ./common/.gtkrc-2.0 "$INCLUDEDIR"/etc/skel/
cp ./common/.bashrc "$INCLUDEDIR"/etc/skel/
cp ./common/.Xresources "$INCLUDEDIR"/etc/skel/
cp ./common/d77-welcome "$INCLUDEDIR"/usr/bin/
cp ./common/50-udisks.rules "$INCLUDEDIR"/usr/share/polkit-1/rules.d/
cp ./common/d77-welcome.desktop "$INCLUDEDIR"/usr/share/applications/
cp ./common/d77void.png "$INCLUDEDIR"/usr/share/pixmaps/
cp ./common/splash.png "$INCLUDEDIR"/usr/share/void-artwork/
cp ./common/anon.face.icon "$INCLUDEDIR"/usr/share/sddm/faces/
cp -r ./common/gtksourceview-4 "$INCLUDEDIR"/etc/skel/.local/share/
cp -r ./common/config/* "$INCLUDEDIR"/etc/skel/.config/
cp -r ./common/themes "$INCLUDEDIR"/etc/skel/.local/share/
cp -r ./common/.icons "$INCLUDEDIR"/etc/skel/
cp -r ./common/Wallpaper "$INCLUDEDIR"/etc/skel/
cp -r ./common/lib-d77-welcome "$INCLUDEDIR"/usr/lib/
cp -r ./common/slice "$INCLUDEDIR"/usr/share/sddm/themes/
cp -r ./common/Wallpaper "$INCLUDEDIR"/usr/share/
}
include_dmenu() {
PKGS="$PKGS dmenu"
mkdir -p "$INCLUDEDIR"/usr/bin
cp ./common/power_menu "$INCLUDEDIR"/usr/bin/
}
include_fuzzel() {
PKGS="$PKGS fuzzel"
mkdir -p "$INCLUDEDIR"/etc/skel/.config
mkdir -p "$INCLUDEDIR"/usr/bin
cp -r ./common/fuzzel_c/fuzzel "$INCLUDEDIR"/etc/skel/.config
cp ./common/fuzzel_c/fuzzel-power-menu "$INCLUDEDIR"/usr/bin/
}
include_lxqt() {
mkdir -p "$INCLUDEDIR"/usr/share/lxqt/wallpapers
mkdir -p "$INCLUDEDIR"/usr/share/lxqt/graphics
cp ./common/Wallpaper/background3.png "$INCLUDEDIR"/usr/share/lxqt/wallpapers/
cp ./common/d77void.png "$INCLUDEDIR"/usr/share/lxqt/graphics/
}
include_niri() {
mkdir -p "$INCLUDEDIR"/usr/bin
cp ./common/dconf_niri "$INCLUDEDIR"/usr/bin/
cp ./common/sww "$INCLUDEDIR"/usr/bin/
cp ./common/niri_1st "$INCLUDEDIR"/usr/bin/
cp ./common/screenlock "$INCLUDEDIR"/usr/bin/
}
include_poly() {
PKGS="$PKGS polybar cbatticon network-manager-applet redshift-gtk volumeicon"
mkdir -p "$INCLUDEDIR"/etc/skel/.config
mkdir -p "$INCLUDEDIR"/etc/skel/.local/share
cp -r ./common/polybar "$INCLUDEDIR"/etc/skel/.config/
cp -r ./common/fonts "$INCLUDEDIR"/etc/skel/.local/share/
}
include_river() {
mkdir -p "$INCLUDEDIR"/usr/bin
cp ./common/screenlock "$INCLUDEDIR"/usr/bin/
}
include_rofi() {
PKGS="$PKGS rofi"
mkdir -p "$INCLUDEDIR"/etc/skel/.config
mkdir -p "$INCLUDEDIR"/usr/bin
cp -r ./common/rofi_c/rofi "$INCLUDEDIR"/etc/skel/.config
cp ./common/rofi_c/rofi-power-menu "$INCLUDEDIR"/usr/bin/
}
include_x11() {
PKGS="$PKGS dunst redshift scrot slock st transset xautolock xcompmgr"
cp ./common/wswap-X "$INCLUDEDIR"/usr/bin/
}
include_xfce() {
mkdir -p "$INCLUDEDIR"/usr/share/backgrounds/xfce
cp ./common/Wallpaper/background3.png "$INCLUDEDIR"/usr/share/backgrounds/xfce/
}
include_way() {
PKGS="$PKGS cliphist network-manager-applet nwg-look nwg-launchers pavucontrol SwayNotificationCenter Waybar wlsunset xorg-server-xwayland xwayland-satellite"
cp ./common/wswap-way "$INCLUDEDIR"/usr/bin/
mkdir -p "$INCLUDEDIR"/etc/skel/.config
cp -r ./common/waybar "$INCLUDEDIR"/etc/skel/.config/
}
include_wofi() {
PKGS="$PKGS wofi"
mkdir -p "$INCLUDEDIR"/etc/skel/.config
mkdir -p "$INCLUDEDIR"/usr/bin
cp -r ./common/wofi_c/wofi "$INCLUDEDIR"/etc/skel/.config
cp ./common/wofi_c/wofi-power-menu "$INCLUDEDIR"/usr/bin/
}
build_variant() {
variant="$1"
shift
IMG=d77void-live-${ARCH}-${DATE}-${variant}.iso
# el-cheapo installer is unsupported on arm because arm doesn't install a kernel by default
# and to work around that would add too much complexity to it
# thus everyone should just do a chroot install anyways
WANT_INSTALLER=no
case "$ARCH" in
x86_64*|i686*)
GRUB_PKGS="grub-i386-efi grub-x86_64-efi"
GFX_PKGS="xorg-video-drivers"
GFX_WL_PKGS="mesa-dri"
WANT_INSTALLER=yes
TARGET_ARCH="$ARCH"
D77_CORE="acpi apulse alsa-plugins-pulseaudio alsa-tools alsa-utils arc-theme bash-completion bc brave-bin brightnessctl ca-certificates cmus cups cups-browsed curl elogind ethtool fastfetch feh font-awesome font-awesome5 font-awesome6 font-awesome7 font-hack-ttf font-iosevka geary gettext git gmrun htop inxi kitty kvantum mousepad mpv nano NetworkManager nerd-fonts-symbols-ttf nwg-look octoxbps oranchelo-icon-theme papirus-icon-theme pcmanfm plymouth polkit power-profiles-daemon qt5ct qt6ct qt5-graphicaleffects ranger sddm smartmontools system-config-printer tlp tlp-rdw transmission-qt udiskie ufw uget unzip usbutils util-linux vim void-repo-multilib void-repo-multilib-nonfree void-repo-nonfree wget xdg-user-dirs xdg-user-dirs-gtk xdg-utils xf86-input-synaptics xarchiver xcalc xinit xorg xorg-server xpdf xterm yt-dlp zathura zathura-pdf-poppler"
D77_GNOME="acpi apulse alsa-plugins-pulseaudio alsa-tools alsa-utils arc-theme bash-completion bc brave-bin brightnessctl ca-certificates cmus cups cups-browsed curl elogind ethtool fastfetch feh font-awesome font-awesome5 font-awesome6 font-awesome7 font-hack-ttf font-iosevka geary gettext git gmrun htop inxi kvantum mousepad mpv nano NetworkManager nerd-fonts-symbols-ttf nwg-look octoxbps oranchelo-icon-theme papirus-icon-theme pcmanfm plymouth polkit power-profiles-daemon qt5ct qt6ct qt5-graphicaleffects ranger smartmontools system-config-printer tlp tlp-rdw transmission-qt udiskie ufw uget unzip usbutils util-linux vim void-repo-multilib void-repo-multilib-nonfree void-repo-nonfree wget xdg-user-dirs xdg-user-dirs-gtk xdg-utils xf86-input-synaptics xarchiver xcalc xinit xorg xorg-server xpdf xterm yt-dlp zathura zathura-pdf-poppler"
D77_WAYFIRE="acpi apulse alsa-plugins-pulseaudio alsa-tools alsa-utils arc-theme bash-completion bc brave-bin brightnessctl ca-certificates cmus cups cups-browsed curl elogind ethtool fastfetch feh font-awesome font-awesome5 font-awesome6 font-hack-ttf geary gettext git gmrun htop inxi kitty kvantum mousepad mpv nano NetworkManager network-manager-applet nerd-fonts-symbols-ttf nwg-look octoxbps oranchelo-icon-theme papirus-icon-theme pcmanfm plymouth polkit power-profiles-daemon qt5ct qt6ct qt5-graphicaleffects ranger sddm smartmontools system-config-printer tlp tlp-rdw transmission-gtk udiskie ufw uget unzip usbutils util-linux vim void-repo-multilib void-repo-multilib-nonfree void-repo-nonfree wget xdg-user-dirs xdg-user-dirs-gtk xdg-utils xf86-input-synaptics xarchiver xcalc xinit xorg xorg-server xpdf xterm yt-dlp zathura zathura-pdf-poppler"
D77_EXTRA="abook automake calcurse cargo epson-inkjet-printer-escpr gcc isync make ncspot nextcloud-client neomutt pass pcsc-ccid pcsc-tools pcsclite python3-pip rust"
CALAMARES="calamares grub rsync"
COMMON=
X11=
WAY=
NIRI=
LXQT=
BOX=
POLY=
XFCE=
DMENU=
FUZZEL=
RIVER=
ROFI=
WOFI=
;;
aarch64*)
GRUB_PKGS="grub-arm64-efi"
GFX_PKGS="xorg-video-drivers"
GFX_WL_PKGS="mesa-dri"
TARGET_ARCH="$ARCH"
;;
asahi*)
GRUB_PKGS="asahi-base asahi-scripts grub-arm64-efi"
GFX_PKGS="mesa-asahi-dri"
GFX_WL_PKGS="mesa-asahi-dri"
KERNEL_PKG="linux-asahi"
TARGET_ARCH="aarch64${ARCH#asahi}"
if [ "$variant" = xfce ]; then
info_msg "xfce is not supported on asahi, switching to xfce-wayland"
variant="xfce-wayland"
fi
;;
esac
A11Y_PKGS="espeakup void-live-audio brltty"
PKGS="dialog cryptsetup lvm2 mdadm void-docs-browse xtools-minimal xmirror chrony tmux $A11Y_PKGS $GRUB_PKGS"
FONTS="font-misc-misc terminus-font dejavu-fonts-ttf"
WAYLAND_PKGS="$GFX_WL_PKGS $FONTS orca"
XORG_PKGS="$GFX_PKGS $FONTS xorg-minimal xorg-input-drivers setxkbmap xauth orca"
SERVICES="sshd chronyd"
LIGHTDM_SESSION=''
case $variant in
base)
SERVICES="$SERVICES dhcpcd wpa_supplicant acpid"
;;
awesome)
COMMON=yes
X11=yes
PKGS="$PKGS $XORG_PKGS $D77_CORE $CALAMARES awesome network-manager-applet redshift-gtk"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
bspwm)
COMMON=yes
X11=yes
POLY=yes
DMENU=yes
ROFI=yes
PKGS="$PKGS $XORG_PKGS $D77_CORE $CALAMARES bspwm bspwmbar sxhkd"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
cosmic)
COMMON=yes
X11=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $D77_CORE $CALAMARES cliphist cosmic-desktop ImageMagick"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
dank)
COMMON=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $D77_CORE $CALAMARES cliphist dankmaterial-shell dgop hyprland hyprland-guiutils hyprpaper mate-polkit matugen nwg-look pavucontrol qt5-wayland qt6-multimedia qt6-wayland quickshell xwayland-satellite wayland-devel wayland-protocols wlsunset xdg-desktop-portal-hyprland xorg-server-xwayland"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
dms)
COMMON=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $D77_CORE $CALAMARES cliphist dankmaterial-shell dgop gnome-keyring grim ImageMagick mate-polkit matugen nwg-look niri pavucontrol qt5-wayland qt6-multimedia qt6-wayland quickshell swaybg swayidle swayimg SwayNotificationCenter wayland-devel wayland-protocols wlsunset xdg-desktop-portal-gnome xdg-desktop-portal-gtk xorg-server-xwayland xwayland-satellite"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
dwm)
COMMON=yes
X11=yes
DMENU=yes
ROFI=yes
PKGS="$PKGS $XORG_PKGS $D77_CORE $CALAMARES dwm slstatus sxhkd"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
fluxbox)
COMMON=yes
BOX=yes
X11=yes
ROFI=yes
PKGS="$PKGS $XORG_PKGS $D77_CORE $CALAMARES fluxbox"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
herbstluftwm)
COMMON=yes
POLY=yes
X11=yes
ROFI=yes
PKGS="$PKGS $XORG_PKGS $D77_CORE $CALAMARES herbstluftwm jgmenu"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
hyprland)
COMMON=yes
WAY=yes
FUZZEL=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $D77_CORE $CALAMARES cliphist hyprland hyprland-guiutils hyprlock hyprpaper hyprsunset hyprutils mate-polkit qt5-wayland qt6-wayland wayland-devel wayland-protocols xdg-desktop-portal-hyprland"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
i3wm)
COMMON=yes
X11=yes
ROFI=yes
DMENU=yes
PKGS="$PKGS $XORG_PKGS $D77_CORE $CALAMARES i3-gaps i3lock i3status"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
jwm)
COMMON=yes
X11=yes
PKGS="$PKGS $XORG_PKGS $D77_CORE $CALAMARES cbatticon conky jq jwm network-manager-applet redshift-gtk volumeicon xdgmenumaker"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
labwc)
COMMON=yes
WAY=yes
FUZZEL=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $D77_CORE $CALAMARES grim ImageMagick labwc labwc-menu-generator labwc-tweaks-qt qt5-wayland qt6-wayland swaybg swayidle swayimg swaylock"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
leftwm)
COMMON=yes
X11=yes
POLY=yes
DMENU=yes
ROFI=yes
PKGS="$PKGS $XORG_PKGS $D77_CORE $CALAMARES leftwm leftwm-theme"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
lxqt)
COMMON=yes
X11=yes
LXQT=yes
PKGS="$PKGS $XORG_PKGS $CALAMARES acpi apulse alsa-plugins-pulseaudio alsa-tools alsa-utils arc-theme bash-completion bc brave-bin brightnessctl ca-certificates cmus cups cups-browsed curl elogind epson-inkjet-printer-escpr ethtool fastfetch feh font-awesome font-awesome5 font-awesome6 font-hack-ttf geary gettext git github-cli gvfs-afc gvfs-mtp gvfs-smb htop ImageMagick inxi kitty kvantum lxqt mpv nano NetworkManager network-manager-applet nerd-fonts-symbols-ttf nextcloud-client octoxbps papirus-icon-theme plymouth polkit power-profiles-daemon qt5-graphicaleffects qt5ct qt6ct ranger redshift-gtk sddm smartmontools system-config-printer tlp tlp-rdw transmission-gtk udisks2 ueberzug ufw uget unzip usbutils util-linux vim void-repo-multilib void-repo-multilib-nonfree void-repo-nonfree wget xdg-user-dirs xdg-user-dirs-gtk xdg-utils xf86-input-synaptics xarchiver xcalc xinit xorg xorg-server xpdf xterm yt-dlp zathura zathura-pdf-poppler"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
mango)
COMMON=yes
WAY=yes
FUZZEL=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $D77_CORE $CALAMARES cliphist mangowc mate-polkit qt5-wayland qt6-wayland swaybg wayland-devel wayland-protocols xdg-desktop-portal-wlr"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
niri)
COMMON=yes
WAY=yes
NIRI=yes
FUZZEL=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $D77_CORE $CALAMARES gnome-keyring grim ImageMagick niri qt5-wayland qt6-wayland swaybg swayidle swayimg swaylock swww xdg-desktop-portal-gnome xdg-desktop-portal-gtk"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
noctalia)
COMMON=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $D77_CORE $CALAMARES cliphist gpu-screen-recorder hyprland hyprland-guiutils hyprpaper intel-media-driver libva-intel-driver mate-polkit matugen noctalia-cli noctalia-shell nwg-look pavucontrol qt5-wayland qt6-multimedia qt6-wayland quickshell xwayland-satellite wayland-devel wayland-protocols wlsunset xdg-desktop-portal-hyprland xorg-server-xwayland"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
openbox)
COMMON=yes
BOX=yes
X11=yes
ROFI=yes
PKGS="$PKGS $XORG_PKGS $D77_CORE $CALAMARES lxappearance-obconf menumaker obconf openbox sxhkd tint2 tint2conf"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
qtile)
COMMON=yes
X11=yes
FUZZEL=yes
ROFI=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $D77_CORE $CALAMARES cliphist grim ImageMagick jgmenu nwg-look nwg-launchers python3-psutil python3-qtile-extras qt5-wayland qt6-wayland qtile qtile-wayland xorg-server-xwayland wlroots wlsunset xwayland-satellite"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
river)
COMMON=yes
RIVER=yes
WAY=yes
FUZZEL=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $D77_CORE $CALAMARES grim ImageMagick qt5-wayland qt6-wayland river river-bedload river-shifttags swaybg swayidle swayimg swaylock"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
sway)
COMMON=yes
WAY=yes
FUZZEL=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $D77_CORE $CALAMARES grim ImageMagick qt5-wayland qt6-wayland sway swaybg swayidle swayimg swaylock wmenu"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
super)
COMMON=yes
WAY=yes
X11=yes
DMENU=yes
ROFI=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $D77_GNOME $CALAMARES dwm extension-manager gdm gnome gnome-shell-extensions grim ImageMagick qt5-wayland qt6-wayland slstatus sxhkd"
SERVICES="$SERVICES dbus elogind gdm NetworkManager polkitd power-profiles-daemon"
;;
wayfire)
COMMON=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $D77_WAYFIRE $CALAMARES cliphist grim ImageMagick pavucontrol qt5-wayland qt6-wayland swaybg swayidle swayimg swaylock SwayNotificationCenter wayfire wayfire-plugins-extra wcm wf-shell wlr-randr wlogout"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
wmd77)
COMMON=yes
X11=yes
PKGS="$PKGS $XORG_PKGS $CALAMARES acpi apulse alsa-plugins-pulseaudio alsa-tools alsa-utils arc-theme bash-completion bc brightnessctl ca-certificates cmus conky cups cups-browsed curl dmenu elogind ethtool feh font-hack-ttf font-iosevka fresh-editor gettext git gmrun htop inxi joshuto kvantum mpv neofetch nerd-fonts-symbols-ttf NetworkManager nwg-look octoxbps papirus-icon-theme pcmanfm plymouth polkit power-profiles-daemon qt5ct qt6ct qt5-graphicaleffects qutebrowser rofi sddm smartmontools sxhkd system-config-printer tlp tlp-rdw transmission-qt udiskie ufw uget unzip usbutils util-linux vim void-repo-multilib void-repo-multilib-nonfree void-repo-nonfree wget wmd77 xdg-user-dirs xdg-user-dirs-gtk xdg-utils xf86-input-synaptics xarchiver xcalc xinit xorg xorg-server xpdf xterm yt-dlp zathura zathura-pdf-poppler"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
xfce)
COMMON=yes
X11=yes
XFCE=yes
PKGS="$PKGS $XORG_PKGS $WAYLAND_PKGS $CALAMARES acpi apulse alsa-plugins-pulseaudio alsa-tools alsa-utils arc-theme bash-completion bc brave-bin brightnessctl ca-certificates cmus cups cups-browsed curl elogind epson-inkjet-printer-escpr ethtool fastfetch feh font-awesome font-awesome5 font-awesome6 font-hack-ttf geary gettext git github-cli gvfs-afc gvfs-mtp gvfs-smb htop ImageMagick inxi kitty kvantum labwc labwc-tweaks-gtk mpv mugshot nano NetworkManager network-manager-applet nerd-fonts-symbols-ttf octoxbps papirus-icon-theme polkit power-profiles-daemon qt5ct qt6ct ranger redshift-gtk sddm smartmontools system-config-printer tlp tlp-rdw transmission-gtk udisks2 ueberzug ufw uget unzip usbutils util-linux vim void-repo-multilib void-repo-multilib-nonfree void-repo-nonfree wget xdg-user-dirs xdg-user-dirs-gtk xdg-utils xf86-input-synaptics xarchiver xcalc xfce4 xfce4-pulseaudio-plugin xfce4-weather-plugin xfce4-whiskermenu-plugin xinit xorg xorg-server xpdf xterm yt-dlp zathura zathura-pdf-poppler"
SERVICES="$SERVICES dbus elogind sddm NetworkManager polkitd power-profiles-daemon"
;;
*)
>&2 echo "Unknown variant $variant"
exit 1
;;
esac
if [ -n "$LIGHTDM_SESSION" ]; then
mkdir -p "$INCLUDEDIR"/etc/lightdm
echo "$LIGHTDM_SESSION" > "$INCLUDEDIR"/etc/lightdm/.session
# needed to show the keyboard layout menu on the login screen
cat <<- EOF > "$INCLUDEDIR"/etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
indicators = ~host;~spacer;~clock;~spacer;~layout;~session;~a11y;~power
EOF
fi
if [ "$COMMON" = yes ]; then
include_common
fi
if [ "$DMENU" = yes ]; then
include_dmenu
fi
if [ "$FUZZEL" = yes ]; then
include_fuzzel
fi
if [ "$ROFI" = yes ]; then
include_rofi
fi
if [ "$WOFI" = yes ]; then
include_wofi
fi
if [ "$LXQT" = yes ]; then
include_lxqt
fi
if [ "$BOX" = yes ]; then
include_box
fi
if [ "$NIRI" = yes ]; then
include_niri
fi
if [ "$POLY" = yes ]; then
include_poly
fi
if [ "$RIVER" = yes ]; then
include_river
fi
if [ "$WAY" = yes ]; then
include_way
fi
if [ "$XFCE" = yes ]; then
include_xfce
fi
if [ "$X11" = yes ]; then
include_x11
fi
if [ "$WANT_INSTALLER" = yes ]; then
include_installer
else
mkdir -p "$INCLUDEDIR"/usr/bin
printf "#!/bin/sh\necho 'd77void-installer is not supported on this live image'\n" > "$INCLUDEDIR"/usr/bin/d77void-installer
chmod 755 "$INCLUDEDIR"/usr/bin/d77void-installer
fi
if [ "$variant" != base ]; then
setup_pipewire
fi
./mklive.sh -a "$TARGET_ARCH" -o "$IMG" -p "$PKGS" -S "$SERVICES" -I "$INCLUDEDIR" \
${KERNEL_PKG:+-v $KERNEL_PKG} ${REPO} "$@"
cleanup
}
if [ ! -x mklive.sh ]; then
echo mklive.sh not found >&2
exit 1
fi
if [ -n "$TRIPLET" ]; then
IFS=: read -r ARCH DATE VARIANT _ < <( echo "$TRIPLET" | sed -Ee 's/^(.+)-([0-9rc]+)-(.+)$/\1:\2:\3/' )
build_variant "$VARIANT" "$@"
else
for image in $IMAGES; do
build_variant "$image" "$@"
done
fi