Aylur / dotfiles

My personal config files
Other
2.41k stars 125 forks source link

Guide: Package List for Void #100

Open blacklightpy opened 9 months ago

blacklightpy commented 9 months ago

[!NOTE] For systems using musl libc, you must invoke ags as AGS_BUNDLER=esbuild ags.

I've written this guide as in the "quick to the point" format and a "detailed" format, which lists the dependency lists specific to each package (for understanding the components).

Quick to the Point Guide

From Package Manager

Install all packaged dependencies: Program Name Role Package Name
GNU Compiler Collection C and C++ Compilers gcc
GNU Make Build System make
GNU Automake Build System Configuration Generator automake
Meson Build System meson
Rustup Rust Toolchain Installer rustup
Nerd Fonts - Symbols (TTF) Font Pack nerd-fonts-symbols-ttf
Brightnessctl Brightness Controller brightnessctl
fd File Search Utility fd
GObject Introspection Tools Middleware gobject-introspection
GNOME JavaScript Library - Runtime Runtime Library gjs
GNOME JavaScript Library - Development Files Development Library gjs-devel
GLib Library - Development Files Development Library glib-devel
PulseAudio - Development Files Development Library pulseaudio-devel
D-Bus Menu Library Implementation on GTK+ 3 - Development Files Development Library libdbusmenu-gtk3-devel
GNOME Bluetooth Library - Development Files Development Library gnome-bluetooth-devel
NetworkManager - Development Files Development Library NetworkManager-devel
Soup HTTP Library - Development Files Development Library libsoup-devel
NodeJS JavaScript Runtime Engine nodejs
UPower Power Management Utility upower
PAM - Development Files Development Library pam-devel
Lempel-Ziv 4 (LZ4) Compression Algorithm Library Runtime Library lz4
X11 Keyboard Extension Common Files - Development Files Development Library libxkbcommon-devel
fzf Fuzzy File Finder fzf
Hyprpicker Colour Picker hyprpicker
Slurp Screen Selector slurp
Wayland/FFmpeg Screen Recorder Screen Recorder wf-recorder
Wayland Clipboard Manager Clipboard Manager wl-clipboard
Swappy Snapshotting and Snapshot Editing Tool swappy
sudo xbps-install gcc make automake meson rustup nerd-fonts-symbols-ttf brightnessctl fd gobject-introspection gjs gjs-devel glib-devel pulseaudio-devel libdbusmenu-gtk3-devel gnome-bluetooth-devel NetworkManager-devel libsoup-devel nodejs upower pam-devel lz4 libxkbcommon-devel fzf hyprpicker slurp wf-recorder wl-clipboard swappy inotify-tools

Manual Installations

Program Name Function How to Install
Rust Toolchain Rust Toolchain Rustup
TypeScript Transpiler JS to TS Transpiler NPM
Dart Sass Transpiler SASS to CSS Transpiler NPM
*Bun JS Bundler, Transpiler, Task Runner, Runtime and Package Manager NPM
*ESBuild JS Bundler NPM
Aylur's GTK Shell Widgeting System Git / Meson
SWWW Wallpaper Daemon Git / Cargo
Matugen Material You Colour Generator Cargo
Wayshot Screenshot Utility Git / Make

Setup Rust toolchain: rustup-init

Install CSS/JS toolchain: npm install -g sass typescript bun (for glibc systems) npm install -g sass typescript esbuild (for musl systems)

Install Aylur's GTK+ 3 Shell (ags):

git clone --recursive https://github.com/Aylur/ags.git && cd ags
npm install
meson setup build
meson install -C build

#for updating, use:
meson setup --reconfigure build
meson install -C build

Install Simple Wayland Wallpaper Daemon (swww):

git clone https://github.com/Horus645/swww.git && cd swww
cargo install --path .
sudo mv ./target/release/swww-daemon /usr/local/bin

Install Material You Colour Generator (matugen): cargo install matugen

Install Wayshot: I needed to type this to make it install wayshot (because the previous rustup install didn't have permissions to copy to /usr/local/bin for some reason despite using sudo): sudo rustup default stable

Continue installing wayshot:

git clone https://github.com/waycrate/wayshot && cd wayshot
make setup
sudo make install

Detailed Version

Pre-Requisites

These come as pre-requisites to build the dependencies.

Packaged Dependencies

Program Name Role Package Name
GNU Compiler Collection C and C++ Compilers gcc
GNU Make Build System make
GNU Automake Build System Configuration Generator automake
Meson Build System meson

sudo xbps-install gcc make automake meson

Rust Toolchain

Program Name Role Package Name
Rustup Rust Toolchain Installer rustup

Install Rustup Rust toolchain installer: sudo xbps-install rustup

Execute rustup-init: rustup-init

Compulsory

Install packaged dependencies: Program Name Role Package Name
Nerd Fonts - Symbols (TTF) Font Pack nerd-fonts-symbols-ttf
Brightnessctl Brightness Controller brightnessctl
fd File Search Utility fd

sudo xbps-install nerd-fonts-symbols-ttf brightnessctl fd

Aylur's GTK+ 3 Shell (ags)

Install packaged dependencies: Program Name Role Package Name
GObject Introspection Tools Middleware gobject-introspection
GNOME JavaScript Library - Runtime Runtime Library gjs
GNOME JavaScript Library - Development Files Development Library gjs-devel
GLib Library - Development Files Development Library glib-devel
PulseAudio - Development Files Development Library pulseaudio-devel
D-Bus Menu Library Implementation on GTK+ 3 - Development Files Development Library libdbusmenu-gtk3-devel
GNOME Bluetooth Library - Development Files Development Library gnome-bluetooth-devel
NetworkManager - Development Files Development Library NetworkManager-devel
Soup HTTP Library - Development Files Development Library libsoup-devel
NodeJS JavaScript Runtime Engine nodejs
UPower Power Management Utility upower
PAM - Development Files Development Library pam-devel

sudo xbps-install gobject-introspection gjs gjs-devel glib-devel pulseaudio-devel libdbusmenu-gtk3-devel gnome-bluetooth-devel NetworkManager-devel libsoup-devel nodejs upower pam-devel

Install the default TypeScript transpiler: npm install -g typescript

Install Aylur's GTK+ 3 Shell from source:

git clone --recursive https://github.com/Aylur/ags.git && cd ags
npm install
meson setup build
meson install -C build

#for updating, use:
meson setup --reconfigure build
meson install -C build

Dart Sass [Sass Transpiler]

Install Dart Sass Compiler: sudo npm install -g sass

For glibc: Bun [JS Bundler, Transpiler, Task Runner and Runtime]

Install Bun: sudo npm install -g bun

For musl: ESBuild [JS Bundler and Transpiler] (since Bun isn't supported on musl yet)

Install ESBuild: sudo npm install -g esbuild

Simple Wayland Wallpaper Widget (swww)

Install dependencies: Program Name Role Package Name
Lempel-Ziv 4 (LZ4) Compression Algorithm Library Runtime Library lz4
X11 Keyboard Extension Common Files - Development Files Development Library libxkbcommon-devel

sudo xbps-install lz4 libxkbcommon-devel

Install Simple Wayland Wallpaper Widget from source:

git clone https://github.com/Horus645/swww.git && cd swww
cargo install --path .
sudo mv ./target/release/swww-daemon /usr/local/bin

Matugen [Material You Colour Generation Tool] (matugen)

Install matugen: cargo install matugen

Optional

Install packaged dependencies: Program Name Role Package Name
fzf Fuzzy File Finder fzf
Hyprpicker Colour Picker hyprpicker
Slurp Screen Selector slurp
Wayland/FFmpeg Screen Recorder Screen Recorder wf-recorder
Wayland Clipboard Manager Clipboard Manager wl-clipboard
Swappy Snapshotting and Snapshot Editing Tool swappy

sudo xbps-install fzf hyprpicker slurp wf-recorder wl-clipboard swappy

Wayshot [Screenshot Utility] (wayshot)

Install Wayshot from source:

git clone https://github.com/waycrate/wayshot && cd wayshot
make setup
sudo rustup default stable # I needed this to make it install, because the previous rustup install didn't have permissions to copy to /usr/local/bin for some reason despite using sudo
sudo make install

For CSS Hot-Reload

inotify (inode notifier) is a Linux subsystem that monitors changes to the filesystem, and reports changed file inodes to applications.

Install inotify tools (inotify-tools): sudo xbps-install inotify-tools


[!NOTE] For the ASUS Linux Suite (asusctl and supergfxctl), official support is only for systemd based distros. For Void Linux, we should write our own service files until it is packaged. Upstream doesn't want to maintain distribution specific nuances. You can find some resources here

I couldn't test them myself because I don't use an ASUS laptop.

jabuxas commented 3 months ago

Errors out on my system, the list may be missing a dependency.

https://bpa.st/EUVQ

blacklightpy commented 3 months ago

@jabuxas Try adding gtk+3-devel, glib-devel and libglib-devel.

jabuxas commented 3 months ago

Managed to build it, needed to npm install after cloning the repo. It wasn't working and was erroring out but now it's working, so good. Ty.

blacklightpy commented 3 months ago

@jabuxas It was a new addition, updated. Thanks.

blacklightpy commented 3 months ago

Also make sure to do clone with --recursive