CodingKoopa / comet-observatory

Galaxy brain dotfiles. Mirror of: https://gitlab.com/CodingKoopa/comet-observatory

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Comet Observatory

Comet Observatory is a suite of scripts and configurations for use with Linux. It is themed around the Comet Observatory from the game Super Mario Galaxy, largely in titular fashion. In particularly, hardware components are named after locations within the Comet Observatory:

Usage

Although functional on my own system, this repository isn't intended to be used in its entirety as-is. If using a script or configuration setup from this directory, the following should be taken into account:

  • The entry points for everything are located in bin. As a result, all of the Bash scripts in scripts should be considered as libraries that export functionality that can be used by other scripts.
  • The scripts are generally modular. For libraries sourced at the top of a script, they should be copied over, or their functionality re-implemented.
  • The CO variable, expected to be pointed to this repository, should be changed or accounted for if necessary.
  • All scripts are GPL 3.0 licensed.

Documentation

Some parts of the Comet Observatory have their own write-ups:

  • System Installation, how the system setup scripts are used.
  • Initialization, how environment variables are set once the user logs in, and in what order.
  • Authentication Setup, how gpg-agent and ssh-agent are configured to be integrated with KWallet.
  • [System Load](docs/System Load.md), how the KDE Plasma system load widget is configured to monitor system status.
  • [QEMU Notes](docs/QEMU Notes.md), some notes on QEMU usage.

Features

Setup Scripts (Installation Scripts)

The setup scripts (system, user) are a couple of utilities that installs the packages and configurations that comprise my Arch installation. It can be ran after installing the base system and cloning this repository:

Initial setup screenshot

It can also be used to apply configuration changes to an existing configuration:

Existing setup screenshot

The scripts feature:

  • Separation of user and root. The responsibilities of setup-user include installing configurations that only apply to, and should be owned by the user, configuring user systemd services, and building and installing the AUR helper (an exception in which privledge escalation is used: installing the AUR helper package). The responsibilities of setup-system include installing system-wide configurations, configuring system systemd services, and installing packages using the AUR helper installed by setup-user.
  • Simulation mode. By enabling dry run, the actions of the setup scripts can be printed, but will not actually take place.
  • Configuration. Configuration prompts are used to slightly customize how the installation will be carried out, e.g. whether to enter simulation mode, whether to assume that private configuration files are present in ~/Documents. These prompts can be skipped by providing default values as parameters. For example, the above screenshot is the result of running:
setup-user n y
  • Log levels. Although these are supported throughout the Comet Observatory, they are particularly relevant here. Enabling more logging can be done by setting DEBUG or VERBOSE to true. These two options are two different levels; however, contrary to traditional logging systems, setting DEBUG does not automatically set VERBOSE, and vice versa.

Update Script

update is a script which handles updating the system and a selection of routine maintenence tasks.

Updating prebuilt and AUR packages: update -p

Updating custom packages: update -c

QEMU Reeves

QEMU Reeves is a launcher for QEMU, tuned for Debian 10 and Windows 10. It supports switching between images, video drivers and interfaces, and directly invokes QEMU. It also has modes for creating disk images, and running installers. The only part of the libvirt stack used is the Remote Viewer, for when SPICE is used.

QEMU Reeves Debian 10 Screenshot QEMU Reeves Windows 10 Screenshot

UEFI Updater

The UEFI updater updates the UEFI boot entries for a system using EFISTUB booting. It only adds an entry for the vanilla kernel. The kernel parameters used depend on the preset used, defaulting to a silent boot configuration. Presets can be specified via a parameter to the script: silent (default), debug, rescue-fallback, and rescue.

UEFI Updater Screenshot

Windows Reboot

win-boot sets the UEFI next boot to the Windows Boot Manager.

Music Downloader

download-music parses the Firefox sqlite database using sqlite3, collecting the URLs from the Listening List bookmark folder. For each URL, it:

  • Gets the name of the song using youtube-dl.
  • Opens the song in Firefox.
    • As having Firefox open locks the database, this is done in an alternate profile.
  • Asks for a directory to download it to.
    • The given music directory is scanned, and potential directories are presented with Zenity. Options for creating new directories are also given.
  • Downloads the song with youtube-dl.
  • Optionally trims the audio if there is long silence/noise in the beginning or end.
  • Crops the thumbnail to a square if the song is coming from YouTube.
  • Tags the song with appropriate metadata, prompted for.
  • Deletes the bookmark entry. This is targeted towards YouTube and Soundcloud the most, outputting MP3s.

Network Tablet Start Script

The network tablet start script is used to start GfxTablet and map the tablet input.

Shellcheck Wrapper

The Shellcheck wrapper is used to provide a Shellcheck binary to helpers such as shellcheck-vscode while allowing external file checking.

License

The scripts in this repository are licensed under the GNU General Public License v3.0. Configuration files and other assets are unlicensed, unless specified otherwise.

About

Galaxy brain dotfiles. Mirror of: https://gitlab.com/CodingKoopa/comet-observatory

License:GNU General Public License v3.0


Languages

Language:Shell 86.2%Language:JavaScript 7.3%Language:C 6.0%Language:CSS 0.6%