diff --git a/.github/workflows/apk-package.yml b/.github/workflows/apk-package.yml index 82ad46f..0754424 100644 --- a/.github/workflows/apk-package.yml +++ b/.github/workflows/apk-package.yml @@ -1,6 +1,7 @@ name: Build APK package on: + workflow_dispatch: push: branches: - "main" @@ -23,6 +24,5 @@ jobs: - name: Upload packages uses: actions/upload-artifact@v4 with: - name: studio-cli-packages + name: studio-cli-apk-package path: ./packages - diff --git a/.github/workflows/rpm-package.yml b/.github/workflows/rpm-package.yml new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 33fc0a2..0e534dd 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,79 @@ -# My project +# Studio CLI -This is my project! +[![Build APK package](https://github.com/atomic-studio-org/cli/actions/workflows/apk-package.yml/badge.svg)](https://github.com/atomic-studio-org/cli/actions/workflows/apk-package.yml) +[![Publish every Git push to main to FlakeHub](https://github.com/atomic-studio-org/cli/actions/workflows/flakehub-push.yml/badge.svg)](https://github.com/atomic-studio-org/cli/actions/workflows/flakehub-push.yml) + +This project is meant for [Universal Blue](https://universal-blue.org/)-based systems, specifically the [Atomic Studio](https://github.com/atomic-studio-org/Atomic-Studio) image, but you can use it on any other system through the RPM, APK or Nix packages provided. + +This utility manages your system by using commands like `studio manager install -m brew package` or other things related to audio, check out `studio -h` for a more extensive list of commands. + +- Note: This CLI is still in an alpha stage, expect breakages and unreliable interfaces for now. + +## Usage + +This is the `--help` output as of writing: + +```shell +The main Atomic Studio CLI. +You can use this to run Atomic Studio-specific commands + +Usage: + > studio + +Subcommands: + studio manager - Available package managers: ["apt", "brew", "nix", "dnf", "yum", "paru", "pacman", "pipx"] + studio manager export - Export selected packages from selected subsystem to the host system + studio manager install - Add a package to your Atomic Studio system by using package subsystems or host-based package managers. + studio manager remove - Remove a package to your Atomic Studio package subsystems or host-based package managers. + studio motd - Display current MOTD text + studio motd off - Turn MOTD off + studio motd on - Turn MOTD on + studio pw - Manage pipewire configurations + studio pw disable realtime - Disables realtime from linux kernel arguments + studio pw enable realtime - Enables realtime in linux kernel arguments + studio pw reset config - Reset the entire custom pipewire configuration + studio pw reset quantum-buffersize - Reset PIPEWIRE_QUANTUM variable back to its default + studio pw set config - Edit your own custom configuration for pipewire + studio pw set quantum-buffersize - Set specific buffersize for PIPEWIRE_QUANTUM variable (fixes ardour and carla crashes) + studio reporter - Report system information to facilitate Atomic Studio development + studio reporter list - List all available modules to export + studio setup - Setup Atomic Studio supported apps + studio setup install amd-lact - Set up LACT, an overclocking utility for AMD cards + studio setup install davinci - Install Davinci Resolve in a compatible distrobox + studio setup install opentabletdriver - Install OpenTabletDriver in a container + studio setup install rtcqs - Installs RTCQS in the host system for checking realtime perms + studio setup install supergfxctl - This only works for Nvidia! +Enable Supergfxctl, a GPU switcher for hybrid laptops + studio setup remove amd-lact - Uninstall LACT, an overclocking utility for AMD cards + studio setup remove davinci - Delete Davinci Resolve in a from a distrobox + studio setup remove opentabletdriver - Removes OpenTabletDriver services and the installation from container (does not delete the container itself.) + studio setup remove rtcqs - Removes RTCQS from the host system + studio setup remove supergfxctl - Disable Supergfxctl, a GPU switcher for hybrid laptops + studio speaker-test - Test your speakers with espeak + studio update - Run topgrade transaction for general upgrades + studio update auto off - Disable automatic updates + studio update auto on - Enable automatic updates + studio update changelog - Show changelogs for the current system + studio update pin - Pin a certain system version + studio update rollback - Rollback an update + studio update unpin - Unpin a certain system version + studio wine - + studio wine init - Workaround if your wine64 prefix is not working + studio wine manager - Open the wine manager + studio wine run - Run anything through wine-tkg + studio wine wineasio register - Register pipewire-wineasio DLL to default wine prefix + studio wine wineasio unregister - Unregister pipewire-wineasio DLL to default wine prefix + studio wine yabridge add - Scans a wine prefix for VSTPlugins folders + studio wine yabridge scan - Scans a wine prefix for VSTPlugins folders + studio wine yabridge sync - Sync yabridgectl database + +Flags: + -h, --help - Display the help message for this command + +Input/output types: + ╭───┬───────┬────────╮ + │ # │ input │ output │ + ├───┼───────┼────────┤ + │ 0 │ any │ any │ + ╰───┴───────┴────────╯ +``` diff --git a/flake.lock b/flake.lock index 42374d3..7fd8ce3 100644 --- a/flake.lock +++ b/flake.lock @@ -100,11 +100,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -122,11 +122,11 @@ ] }, "locked": { - "lastModified": 1703887061, - "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=", + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", "owner": "hercules-ci", "repo": "gitignore.nix", - "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", "type": "github" }, "original": { @@ -144,8 +144,8 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1708018599, - "narHash": "sha256-M+Ng6+SePmA8g06CmUZWi1AjG2tFBX9WCXElBHEKnyM=", + "lastModified": 1710923068, + "narHash": "sha256-6hOpUiuxuwpXXc/xfJsBUJeqqgGI+JMJuLo45aG3cKc=", "type": "tarball", "url": "https://github.com/cachix/pre-commit-hooks.nix/tarball/master" }, @@ -170,11 +170,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1704874635, - "narHash": "sha256-YWuCrtsty5vVZvu+7BchAxmcYzTMfolSPP5io8+WYCg=", + "lastModified": 1710695816, + "narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3dc440faeee9e889fe2d1b4d25ad0f430d449356", + "rev": "614b4613980a522ba49f0d194531beddbb7220d3", "type": "github" }, "original": { @@ -200,11 +200,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1704842529, - "narHash": "sha256-OTeQA+F8d/Evad33JMfuXC89VMetQbsU4qcaePchGr4=", + "lastModified": 1710765496, + "narHash": "sha256-p7ryWEeQfMwTB6E0wIUd5V2cFTgq+DRRBz2hYGnJZyA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "eabe8d3eface69f5bb16c18f8662a702f50c20d5", + "rev": "e367f7a1fb93137af22a3908f00b9a35e2d286a7", "type": "github" }, "original": { @@ -216,12 +216,12 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1710451336, - "narHash": "sha256-pP86Pcfu3BrAvRO7R64x7hs+GaQrjFes+mEPowCfkxY=", - "rev": "d691274a972b3165335d261cc4671335f5c67de9", - "revCount": 596954, + "lastModified": 1710806803, + "narHash": "sha256-qrxvLS888pNJFwJdK+hf1wpRCSQcqA6W5+Ox202NDa0=", + "rev": "b06025f1533a1e07b6db3e75151caa155d1c7eb3", + "revCount": 598982, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.596954%2Brev-d691274a972b3165335d261cc4671335f5c67de9/018e4219-154b-7a41-b00a-47c7351cce9c/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.598982%2Brev-b06025f1533a1e07b6db3e75151caa155d1c7eb3/018e577a-86bd-7b2f-b434-442e9ada5378/source.tar.gz" }, "original": { "type": "tarball", @@ -296,12 +296,12 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1711028018, - "narHash": "sha256-1auAi7UhoM4FjcjGOWNHKbDzWRVAZ0GmuweiWEoAnPY=", - "rev": "21e5ce4fbfc7a05dae509ab99822d6c000ab25fa", - "revCount": 9, + "lastModified": 1711028633, + "narHash": "sha256-Rb8FeowqDCaLLI64DFyG+MRFv3IYlXQgGIfGA1aa12E=", + "rev": "94a94762e30ce9edd12797ff01863090f5ead7c5", + "revCount": 10, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/atomic-studio-org/Utility-Flake-Library/0.1.9%2Brev-21e5ce4fbfc7a05dae509ab99822d6c000ab25fa/018e6138-a2e0-72d9-b136-484e05fa2dce/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/atomic-studio-org/Utility-Flake-Library/0.1.10%2Brev-94a94762e30ce9edd12797ff01863090f5ead7c5/018e6142-1b1e-7b78-800f-8d57469cf292/source.tar.gz" }, "original": { "type": "tarball",