dotfiles

regexghost dotfiles and scripts
git clone https://git.regexghost.com/dotfiles.git
Log | Files | Refs | README

other-programs.sh (17329B)


      1 #!/bin/sh
      2 
      3 export PATH="/usr/bin:$PATH"
      4 
      5 cleanup () {
      6 	cd ..
      7 	read -p "Delete temp folder (y/N)? " yesOrNo
      8 	if [ "$yesOrNo" = "y" ] || [ "$yesOrNo" = "Y" ]; then
      9 		[ -d temp_programs/ ] && trash-put temp_programs/
     10 	fi
     11 }
     12 
     13 trap 'cleanup' EXIT
     14 
     15 set -e
     16 
     17 mkdir -p temp_programs
     18 cd temp_programs
     19 
     20 # dev tools
     21 sudo apt install git make gcc automake cmake meson unzip gettext autopoint pkg-config libtool build-essential
     22 
     23 [ -d patches/ ] || git clone https://github.com/regexghost/patches
     24 
     25 jwm () {
     26 	sudo apt install libxext-dev libxmu-dev libxinerama-dev libxpm-dev libjpeg-dev libpng-dev libpango1.0-dev
     27 	git clone https://github.com/joewing/jwm
     28 
     29 	cd jwm
     30 
     31 	cp ../patches/jwm-desktop-change.diff .
     32 	cp ../patches/jwm-border-flicker.diff .
     33 	cp ../patches/jwm-caps-lock.diff .
     34 	cp ../patches/jwm-move-unmap.diff .
     35 	cp ../patches/jwm-centered.diff .
     36 
     37 	patch -p 1 < jwm-desktop-change.diff
     38 	patch -p 1 < jwm-border-flicker.diff
     39 	patch -p 1 < jwm-caps-lock.diff
     40 	patch -p 1 < jwm-move-unmap.diff
     41 	patch -p 1 < jwm-centered.diff
     42 
     43 	./autogen.sh
     44 	gettextize -f
     45 	./configure
     46 	make
     47 	sudo make install
     48 	cd ..
     49 }
     50 
     51 bsky () {
     52 	sudo apt install golang
     53 	mkdir bsky
     54 	cd bsky
     55 	url="$(github-latest-release "github" "mattn" "bsky")"
     56 	wget "$url"
     57 	unzip *.zip
     58 	cd */
     59 	make
     60 	cp bsky ~/.local/bin/bsky
     61 	cd ..
     62 	cd ..
     63 }
     64 
     65 forgejo () {
     66 	sudo apt install rustup libssl-dev
     67 	rustup default stable
     68 	mkdir forgejo
     69 	cd forgejo
     70 	url="$(github-latest-release "codeberg" "forgejo-contrib" "forgejo-cli")"
     71 	wget "$url"
     72 	unzip *.zip
     73 	cd */
     74 	cargo build --release
     75 	cp target/release/fj ~/.local/bin/fj
     76 	cd ..
     77 	cd ..
     78 }
     79 
     80 aacgain () {
     81 	mkdir aacgain
     82 	cd aacgain
     83 	url="$(github-latest-release "github" "dgilman" "aacgain")"
     84 	wget "$url"
     85 }
     86 
     87 bat () {
     88 	git clone https://github.com/sharkdp/bat
     89 	cd bat
     90 	cargo build --release
     91 	cp target/release/bat ~/.local/bin/bat
     92 	cd ..
     93 }
     94 
     95 gozer () {
     96 	sudo apt install golang
     97 	git clone https://github.com/regexghost/gozer
     98 	cd gozer
     99 	go build
    100 	cp gozer ~/.local/bin
    101 	cd ..
    102 }
    103 
    104 less () {
    105 	sudo apt install libncurses-dev
    106 	#mkdir less
    107 	#cd less
    108 	#version="$(curl https://www.greenwoodsoftware.com/less/download.html | grep RECOMMENDED | tail -n 1 | sed -nE 's/.*version ([0-9]*).*/\1/p')"
    109 	#echo $version
    110 	#wget "https://greenwoodsoftware.com/less/less-${version}.zip"
    111 	#unzip *.zip
    112 	#cd */
    113 	git clone https://github.com/gwsw/less
    114 	cd less
    115 	cp ../patches/less-bsu-esu.diff .
    116 	patch < less-bsu-esu.diff
    117 	make -f Makefile.aut distfiles
    118 	./configure --prefix="$HOME/.local"
    119 	make
    120 	make install
    121 	cd ..
    122 	#cd ..
    123 }
    124 
    125 nano () {
    126 	mkdir nano
    127 	cd nano
    128 	version="$(curl "https://www.nano-editor.org/download.php" | grep "dist/" | head -n 1 | cut -d "\"" -f 2)"
    129 	wget "https://nano-editor.org/${version}"
    130 	tar -xf *.xz
    131 	cd */
    132 	./configure --prefix="$HOME/.local"
    133 
    134 	cp ../../patches/nano-copy-system.diff .
    135 	patch -p 1 < nano-copy-system.diff
    136 
    137 	make
    138 	make install
    139 	cd ..
    140 	cd ..
    141 }
    142 
    143 oksh () {
    144 	mkdir oksh
    145 	cd oksh
    146 	url="$(github-latest-release "github" "ibara" "oksh")"
    147 	wget "$url"
    148 	unzip *.zip
    149 	cd */
    150 	cp ../../patches/oksh-case-insensitive.diff .
    151 	cp ../../patches/oksh-history.diff .
    152 	cp ../../patches/oksh-ctrl-backspace-delete.diff .
    153 	patch < oksh-case-insensitive.diff
    154 	patch < oksh-history.diff
    155 	patch < oksh-ctrl-backspace-delete.diff
    156 	./configure
    157 	make
    158 	sudo make install
    159 	cd ..
    160 	cd ..
    161 }
    162 
    163 opustags () {
    164 	sudo apt install libogg-dev
    165 	mkdir opustags
    166 	cd opustags
    167 	url="$(github-latest-release "github" "fmang" "opustags")"
    168 	wget "$url"
    169 	unzip *.zip
    170 	cd */
    171 	mkdir build
    172 	cd build
    173 	cmake -DCMAKE_INSTALL_PREFIX="$HOME/.local" ..
    174 	make
    175 	make install
    176 	cd ..
    177 	cd ..
    178 	cd ..
    179 }
    180 
    181 rsgain () {
    182 	sudo apt install libavcodec-dev libavformat-dev libtag-dev libebur128-dev libinih-dev libfmt-dev
    183 	mkdir rsgain
    184 	cd rsgain
    185 	url="$(github-latest-release "github" "complexlogic" "rsgain")"
    186 	wget "$url"
    187 	unzip *.zip
    188 	cd */
    189 	mkdir build
    190 	cd build
    191 	cmake -DCMAKE_INSTALL_PREFIX="$HOME/.local" ..
    192 	make
    193 	make install
    194 	cd ..
    195 	cd ..
    196 	cd ..
    197 }
    198 
    199 newsraft () {
    200 	sudo apt install libcurl4-openssl-dev libsqlite3-dev libgumbo-dev
    201 	git clone https://codeberg.org/newsraft/newsraft
    202 	cd newsraft
    203 	make PREFIX="$HOME/.local"
    204 	make install PREFIX="$HOME/.local"
    205 	cd ..
    206 }
    207 
    208 aacgain () {
    209 	git clone --recursive https://github.com/dgilman/aacgain
    210 	cd aacgain
    211 	mkdir build
    212 	cd build
    213 	cmake -DCMAKE_INSTALL_PREFIX="$HOME/.local" ..
    214 	make
    215 	make install
    216 	cd ..
    217 	cd ..
    218 }
    219 
    220 bug () {
    221 	git clone https://github.com/regexghost/bug-fork
    222 	cd bug-fork
    223 	make install
    224 	cd ..
    225 }
    226 
    227 st () {
    228 	sudo apt install libgd-dev papirus-icon-theme
    229 
    230 	git clone https://github.com/regexghost/st
    231 	cd st
    232 	make full
    233 	sudo make install
    234 	cd ..
    235 
    236 }
    237 
    238 dmenu () {
    239 	git clone https://github.com/regexghost/dmenu
    240 	cd dmenu
    241 	make full
    242 	sudo make install
    243 	cd ..
    244 
    245 }
    246 
    247 slock () {
    248 	sudo apt install libxrandr-dev libimlib2-dev
    249 	git clone https://github.com/regexghost/slock
    250 	cd slock
    251 	make full
    252 	sudo make install
    253 	cd ..
    254 }
    255 
    256 bluetui () {
    257 	mkdir bluetui
    258 	cd bluetui
    259 	url="$(github-latest-release "github" "pythops" "bluetui")"
    260 	wget "$url"
    261 	unzip *.zip
    262 	cd */
    263 	cargo build --release
    264 	cp target/release/bluetui ~/.local/bin/bluetui
    265 	cd ..
    266 	cd ..
    267 }
    268 
    269 retroarch () {
    270 	cp -r ../retroarch-setup .
    271 	cd retroarch-setup
    272 	./retroarch-setup.sh
    273 	cd ..
    274 }
    275 
    276 lemonbar () {
    277 	sudo apt install libxcb-randr0-dev libx11-xcb-dev libxcb-xinerama0-dev
    278 	git clone https://github.com/silentz/lemonbar-xft
    279 	cd lemonbar-xft
    280 	cp ../patches/lemonbar-xft-font-offset.diff .
    281 	patch < lemonbar-xft-font-offset.diff
    282 	make
    283 	sudo make install
    284 	cd ..
    285 }
    286 
    287 pipeviewer () {
    288 	sudo apt install libmodule-build-perl libwww-curl-perl libjson-perl libterm-readline-gnu-perl libdata-dump-perl liblwp-protocol-https-perl libunicode-linebreak-perl
    289 	mkdir pipeviewer
    290 	cd pipeviewer
    291 	url="$(github-latest-release "github" "trizen" "pipe-viewer")"
    292 	wget "$url"
    293 	unzip *.zip
    294 	cd */
    295 	cp ../../patches/pipe-viewer-copy.diff .
    296 	cd bin
    297 	patch < ../pipe-viewer-copy.diff
    298 	cd ..
    299 	perl Build.PL
    300 	sudo ./Build installdeps
    301 	sudo ./Build install
    302 	cd ..
    303 	cd ..
    304 }
    305 
    306 sbase () {
    307 	sudo apt install yacc
    308 	git clone https://git.suckless.org/sbase
    309 	cd sbase
    310 	make
    311 	sudo make install
    312 	cd ..
    313 
    314 	read -p "Add \"/usr/bin\" to start of secure_path (enter to continue):"
    315 	sudo visudo
    316 }
    317 
    318 sxiv () {
    319 	sudo apt install libexif-dev
    320 
    321 	git clone https://github.com/xyb3rt/sxiv
    322 	cd sxiv
    323 
    324 	cp ../patches/sxiv-print-index.diff .
    325 	patch < sxiv-print-index.diff
    326 
    327 	make
    328 	sudo make install
    329 	cd ..
    330 }
    331 
    332 openssh () {
    333 	mkdir openssh
    334 	cd openssh
    335 	url="$(curl "https://www.openssh.org/openbsd.html" | grep "ftp" | head -n 2 | tail -n 1 | cut -d "\"" -f 2)"
    336 	wget "$url"
    337 	tar -xf *.tar.gz/
    338 }
    339 
    340 cava () {
    341 	sudo apt install libfftw3-dev libasound2-dev libpulse-dev libtool libiniparser-dev libsdl2-2.0-0 libsdl2-dev libjack-jackd2-dev
    342 
    343 	mkdir cava
    344 	cd cava
    345 	url="$(github-latest-release "github" "karlstav" "cava")"
    346 	wget "$url"
    347 	unzip *.zip
    348 	cd */
    349 
    350 	./autogen.sh
    351 	./configure --prefix="$HOME/.local"
    352 	make
    353 	make install
    354 
    355 	cd ..
    356 	cd ..
    357 }
    358 
    359 alpine () {
    360 	mkdir alpine
    361 	cd alpine
    362 	url="$(curl "https://alpineapp.email/" | grep "HREF" | grep "tar.xz" | head -n 1 | cut -d "\"" -f 4)"
    363 	wget "$url"
    364 	tar -xf *.xz
    365 	cd */
    366 	./configure
    367 	make
    368 	sudo make install
    369 	cd ..
    370 	cd ..
    371 }
    372 
    373 dotacat () {
    374 	git clone https://gitlab.scd31.com/sophie/dotacat.git
    375 	cd dotacat
    376 	cargo build --release
    377 	cp target/release/dotacat ~/.local/bin/dotacat
    378 	cd ..
    379 }
    380 
    381 mepo () {
    382 	sudo apt install libsdl2-gfx-1.0-0 libsdl2-dev libsdl2-image-2.0-0 libsdl2-image-dev libsdl2-ttf-2.0-0 libsdl2-ttf-dev
    383 
    384 	mkdir mepo
    385 	cd mepo
    386 	url="$(github-latest-release "sourcehut" '~mil' "mepo")"
    387 	wget "$url"
    388 	unzip *.zip
    389 	cd */
    390 
    391 	trim () {
    392 		sed -ne '/---/,$ p' | sed 's/\r//g'
    393 	}
    394 
    395 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20250821020031.28035-1-lauren@selfisekai.rocks%3E/raw" | trim > 15-part1.diff
    396 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20250910145816.10962-1-lauren@selfisekai.rocks%3E/raw" | trim > 15-part2.diff
    397 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20250821020031.28035-3-lauren@selfisekai.rocks%3E/raw" | trim > 15-part3.diff
    398 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20250821020031.28035-4-lauren@selfisekai.rocks%3E/raw" | trim > 15-part4.diff
    399 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20250821020031.28035-5-lauren@selfisekai.rocks%3E/raw" | trim > 15-part5.diff
    400 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20250821020031.28035-6-lauren@selfisekai.rocks%3E/raw" | trim > 15-part6.diff
    401 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20250821020031.28035-7-lauren@selfisekai.rocks%3E/raw" | trim > 15-part7.diff
    402 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20250821020031.28035-8-lauren@selfisekai.rocks%3E/raw" | trim > 15-part8.diff
    403 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20250821020031.28035-9-lauren@selfisekai.rocks%3E/raw" | trim > 15-part9.diff
    404 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20250821020031.28035-10-lauren@selfisekai.rocks%3E/raw" | trim > 15-part10.diff
    405 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20250821020031.28035-11-lauren@selfisekai.rocks%3E/raw" | trim > 15-part11.diff
    406 
    407 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20260421135005.20761-1-lauren@selfisekai.rocks%3E/raw" | trim > 16-part1.diff
    408 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20260421135005.20761-2-lauren@selfisekai.rocks%3E/raw" | trim | sed 's/15/14/g' > 16-part2.diff
    409 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20260421135005.20761-3-lauren@selfisekai.rocks%3E/raw" | trim > 16-part3.diff
    410 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20260421135005.20761-4-lauren@selfisekai.rocks%3E/raw" | trim > 16-part4.diff
    411 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20260421135005.20761-5-lauren@selfisekai.rocks%3E/raw" | trim > 16-part5.diff
    412 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20260421135005.20761-6-lauren@selfisekai.rocks%3E/raw" | trim > 16-part6.diff
    413 	curl "https://lists.sr.ht/~mil/mepo-devel/%3C20260421135005.20761-7-lauren@selfisekai.rocks%3E/raw" | trim > 16-part7.diff
    414 
    415 	patch -p 1 < 15-part1.diff
    416 	patch -p 1 < 15-part2.diff
    417 #	patch -p 1 < 15-part3.diff
    418 	patch -p 1 < 15-part4.diff
    419 	patch -p 1 < 15-part5.diff
    420 	patch -p 1 < 15-part6.diff
    421 	patch -p 1 < 15-part7.diff
    422 	patch -p 1 < 15-part8.diff
    423 	patch -p 1 < 15-part9.diff
    424 	patch -p 1 < 15-part10.diff
    425 	patch -p 1 < 15-part11.diff
    426 	patch -p 1 < 16-part1.diff
    427 	patch -p 1 < 16-part2.diff
    428 	patch -p 1 < 16-part3.diff
    429 	patch -p 1 < 16-part4.diff
    430 	patch -p 1 < 16-part5.diff
    431 	patch -p 1 < 16-part6.diff
    432 	patch -p 1 < 16-part7.diff
    433 
    434 	zig build
    435 
    436 	cp zig-out/bin/* ~/.local/bin/
    437 	[ -d ~/.local/share/applications ] || mkdir ~/.local/share/applications
    438 	cp zig-out/share/applications/mepo.desktop ~/.local/share/applications/mepo.desktop
    439 	[ -d ~/.local/share/icons ] || mkdir ~/.local/share/icons
    440 	cp -r zig-out/share/icons/* ~/.local/share/icons
    441 	[ -d ~/.local/share/pixmaps ] || mkdir ~/.local/share/pixmaps
    442 	cp zig-out/share/pixmaps/mepo.png ~/.local/share/pixmaps/mepo.png
    443 
    444 	cd ..
    445 	cd ..
    446 }
    447 
    448 fastfetch () {
    449 	mkdir fastfetch
    450 	cd fastfetch
    451 	url="$(github-latest-release "github" "fastfetch-cli" "fastfetch")"
    452 	wget "$url"
    453 	unzip *.zip
    454 	cd */
    455 	mkdir build
    456 	cd build
    457 	cmake -DCMAKE_INSTALL_PREFIX="$HOME/.local" ..
    458 	make
    459 	make install
    460 
    461 	cd ..
    462 	cd ..
    463 	cd ..
    464 }
    465 
    466 dragon () {
    467 	sudo apt install libgtk-3-dev
    468 	git clone https://github.com/mwh/dragon
    469 	cd dragon
    470 	make
    471 	cp dragon ~/.local/bin/dragon
    472 	cd ..
    473 }
    474 
    475 cal () {
    476 	mkdir util-linux
    477 	cd util-linux
    478 	ver="$(curl "https://www.kernel.org/pub/linux/utils/util-linux/" | grep "v2." | tail -n 1 | cut -d "\"" -f 2 | tr -d "/" | tr -d "v")"
    479 	wget "https://www.kernel.org/pub/linux/utils/util-linux/v${ver}/util-linux-${ver}.tar.xz"
    480 	tar -xf *.xz
    481 	cd */
    482 	./configure --disable-all-programs --enable-cal
    483 	make
    484 	cp cal ~/.local/bin/cal
    485 
    486 	cd ..
    487 	cd ..
    488 }
    489 
    490 mercusys () {
    491 	sudo apt install dkms linux-headers-amd64
    492 
    493 	git clone https://github.com/ProgrammingRainbow/mercusys-ma530-dkms
    494 
    495 	sed 's/kernel=.*/kernel="$\{1%%-*\}"\nkernel="$\{kernel%%+*\}"/g' mercusys-ma530-dkms/pre_build.sh > /tmp/pre_build.sh
    496 	mv /tmp/pre_build.sh mercusys-ma530-dkms/pre_build.sh
    497 	chmod +x mercusys-ma530-dkms/pre_build.sh
    498 
    499 	sudo dkms remove mercusys-ma530-dkms/1.0 --all || echo "Not installed"
    500 	sudo dkms add ./mercusys-ma530-dkms
    501 	sudo dkms install mercusys-ma530-dkms/1.0
    502 }
    503 
    504 zathura () {
    505 	sudo apt install libxxhash-dev libmagic-dev libgtk-4-dev xorg-dev libxcursor-dev libxrandr-dev libxinerama-dev mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev
    506 
    507 	git clone https://github.com/ArtifexSoftware/mupdf
    508 	cd mupdf
    509 	git checkout 205b8cf
    510 	git submodule update --init
    511 	make shared=yes build=release XCFLAGS="-fPIC" XCXXFLAGS="-fPIC" USE_SYSTEM_FREETYPE=yes USE_SYSTEM_GUMBO=yes USE_SYSTEM_HARFBUZZ=yes USE_SYSTEM_JBIG2DEC=yes USE_SYSTEM_LIBJPEG=yes USE_SYSTEM_OPENJPEG=no USE_SYSTEM_ZLIB=yes USE_SYSTEM_GLUT=yes USE_SYSTEM_CURL=yes USE_SYSTEM_LEPTONICA=yes USE_SYSTEM_TESSERACT=yes USE_SYSTEM_ZXINGCPP=yes USE_SYSTEM_BROTLI=yes
    512 	sudo make shared=yes build=release XCFLAGS="-fPIC" XCXXFLAGS="-fPIC" USE_SYSTEM_FREETYPE=yes USE_SYSTEM_GUMBO=yes USE_SYSTEM_HARFBUZZ=yes USE_SYSTEM_JBIG2DEC=yes USE_SYSTEM_LIBJPEG=yes USE_SYSTEM_OPENJPEG=no USE_SYSTEM_ZLIB=yes USE_SYSTEM_GLUT=yes USE_SYSTEM_CURL=yes USE_SYSTEM_LEPTONICA=yes USE_SYSTEM_TESSERACT=yes USE_SYSTEM_ZXINGCPP=yes USE_SYSTEM_BROTLI=yes install
    513 	cd ..
    514 
    515 	mkdir girara
    516 	cd girara
    517 	tag="$(curl "https://github.com/pwmt/girara/tags" | grep "releases/tag" | head -n 3 | tail -n 1 | cut -d "\"" -f 6 | cut -d "/" -f 6)"
    518 	wget "https://github.com/pwmt/girara/archive/refs/tags/${tag}.zip"
    519 	unzip *.zip
    520 	cd */
    521 	meson build
    522 	cd build
    523 	ninja
    524 	sudo ninja install
    525 	cd ..
    526 	cd ..
    527 	cd ..
    528 
    529 	mkdir zathura
    530 	cd zathura
    531 	tag="$(curl "https://github.com/pwmt/zathura/tags" | grep "releases/tag" | head -n 3 | tail -n 1 | cut -d "\"" -f 6 | cut -d "/" -f 6)"
    532 	wget "https://github.com/pwmt/zathura/archive/refs/tags/${tag}.zip"
    533 	unzip *.zip
    534 	cd */
    535 	sed 's/test-wayland features<\/issue>/test-wayland features<\/p>/g' data/org.pwmt.zathura.metainfo.xml.in > /tmp/out
    536 	mv /tmp/out data/org.pwmt.zathura.metainfo.xml.in
    537 	meson build
    538 	cd build
    539 	ninja
    540 	sudo ninja install
    541 	cd ..
    542 	cd ..
    543 	cd ..
    544 
    545 	mkdir zathura-mupdf
    546 	cd zathura-mupdf
    547 	tag="$(curl "https://github.com/pwmt/zathura-pdf-mupdf/tags" | grep "releases/tag" | head -n 3 | tail -n 1 | cut -d "\"" -f 6 | cut -d "/" -f 6)"
    548 	wget "https://github.com/pwmt/zathura-pdf-mupdf/archive/refs/tags/${tag}.zip"
    549 	unzip *.zip
    550 	cd */
    551 	meson build
    552 	cd build
    553 	ninja
    554 	sudo ninja install
    555 	cd ..
    556 	cd ..
    557 	cd ..
    558 }
    559 
    560 zigitself () {
    561 	mkdir zig
    562 	cd zig
    563 	url="$(curl "https://ziglang.org/download/" | pup 'table:nth-of-type(2)' | grep "zig-x86_64-linux" | head -n 1 | cut -d "\"" -f 2)"
    564 	wget "$url"
    565 	unxz *.xz
    566 	tar -xf *.tar
    567 	cd */
    568 	cp -r doc/* ~/.local/share/doc/
    569 	cp -r lib/ ~/.local/bin/
    570 	cp zig ~/.local/bin/
    571 	cd ..
    572 	cd ..
    573 }
    574 
    575 onetrueawk () {
    576 	sudo apt install bison
    577 
    578 	git clone "https://github.com/onetrueawk/awk"
    579 	cd awk/
    580 
    581 	make
    582 	sudo cp a.out /usr/local/bin/awk
    583 	sudo cp awk.1 /usr/local/man/man1/awk.1
    584 
    585 	cd ..
    586 }
    587 
    588 ueberzugpp () {
    589 	sudo apt install libssl-dev libvips-dev libsixel-dev libchafa-dev libtbb-dev libxcb-image0-dev libxcb-res0 libxcb-res0-dev
    590 
    591 	mkdir ueberzugpp
    592 	cd ueberzugpp
    593 	url="$(github-latest-release "github" "jstkdng" "ueberzugpp")"
    594 	wget "$url"
    595 	unzip *.zip
    596 	cd */
    597 
    598 	mkdir build
    599 	cd build
    600 	cmake -DCMAKE_BUILD_TYPE=Release ..
    601 	cmake --build .
    602 	cd ..
    603 	sudo cmake --install build
    604 
    605 	cd ..
    606 	cd ..
    607 }
    608 
    609 build () {
    610 	read -p "q to quit, s to skip (next: $1)" qToQuit
    611 	[ "$qToQuit" = "q" ] && exit
    612 	[ "$qToQuit" = "s" ] || "$1"
    613 }
    614 
    615 if [ "$1" = "mine" ]; then
    616 	build bug
    617 	build st
    618 	build dmenu
    619 	build slock
    620 	build jwm
    621 	build gozer
    622 	echo "done"
    623 elif [ "$1" = "notmine" ]; then
    624 	build bsky
    625 	build forgejo
    626 	build bat
    627 	build less
    628 	build nano
    629 	build oksh
    630 	build opustags
    631 	build rsgain
    632 	build newsraft
    633 	build aacgain
    634 	build bluetui
    635 	build lemonbar
    636 	build pipeviewer
    637 	build sbase
    638 	build sxiv
    639 	build alpine
    640 	build dotacat
    641 	build fastfetch
    642 	build dragon
    643 	build cal
    644 	build mercusys
    645 	build zathura
    646 	build ueberzugpp
    647 	build openssh
    648 	build zigitself
    649 	build mepo
    650 	build cava
    651 	build onetrueawk
    652 	build retroarch
    653 	echo "done"
    654 elif [ "$1" = "jwm" ]; then
    655 	jwm
    656 elif [ "$1" = "bsky" ]; then
    657 	bsky
    658 elif [ "$1" = "forgejo" ]; then
    659 	forgejo
    660 elif [ "$1" = "bat" ]; then
    661 	bat
    662 elif [ "$1" = "gozer" ]; then
    663 	gozer
    664 elif [ "$1" = "less" ]; then
    665 	less
    666 elif [ "$1" = "nano" ]; then
    667 	nano
    668 elif [ "$1" = "oksh" ]; then
    669 	oksh
    670 elif [ "$1" = "opustags" ]; then
    671 	opustags
    672 elif [ "$1" = "rsgain" ]; then
    673 	rsgain
    674 elif [ "$1" = "newsraft" ]; then
    675 	newsraft
    676 elif [ "$1" = "aacgain" ]; then
    677 	aacgain
    678 elif [ "$1" = "bug" ]; then
    679 	bug
    680 elif [ "$1" = "st" ]; then
    681 	st
    682 elif [ "$1" = "dmenu" ]; then
    683 	dmenu
    684 elif [ "$1" = "slock" ]; then
    685 	slock
    686 elif [ "$1" = "bluetui" ]; then
    687 	bluetui
    688 elif [ "$1" = "retroarch" ]; then
    689 	retroarch
    690 elif [ "$1" = "lemonbar" ]; then
    691 	lemonbar
    692 elif [ "$1" = "pipe-viewer" ]; then
    693 	pipeviewer
    694 elif [ "$1" = "sbase" ]; then
    695 	sbase
    696 elif [ "$1" = "sxiv" ]; then
    697 	sxiv
    698 elif [ "$1" = "dotacat" ]; then
    699 	dotacat
    700 elif [ "$1" = "mepo" ]; then
    701 	mepo
    702 elif [ "$1" = "fastfetch" ]; then
    703 	fastfetch
    704 elif [ "$1" = "dragon" ]; then
    705 	dragon
    706 elif [ "$1" = "cal" ]; then
    707 	cal
    708 elif [ "$1" = "mercusys" ]; then
    709 	mercusys
    710 elif [ "$1" = "zathura" ]; then
    711 	zathura
    712 elif [ "$1" = "ueberzugpp" ]; then
    713 	ueberzugpp
    714 elif [ "$1" = "openssh" ]; then
    715 	openssh
    716 elif [ "$1" = "zig" ]; then
    717 	zigitself
    718 elif [ "$1" = "cava" ]; then
    719 	cava
    720 elif [ "$1" = "onetrueawk" ]; then
    721 	onetrueawk
    722 elif [ "$1" = "alpine" ]; then
    723 	alpine
    724 else
    725 	echo "Not found"
    726 	echo "\"mine\" to install my programs/forks"
    727 	echo "\"notmine\" to install other programs"
    728 	exit
    729 fi