Installation
IMPORTANT
The project is currently being updated from agsv2 gtk3 to Gnim and gtk4.
WARNING
Currently Astal libraries are packaged for the AUR
and Nix
. If you don't have access to these you will have to install dependencies from source.
Disclaimer
This project is closed source.
If you are a GitHub Sponsor, you will have access to the source code for as long as you remain a sponsor.
NOTE
The Ko-fi distribution has been retired.
Arch
Install the following dependencies
yay -S gjs libastal-meta
Then run the distributed script.
./marble
If you are a GitHub sponsor and have access to the repo you can build from source with AGS.
yay -S aylurs-gtk-shell nushell gjs libastal-meta
git clone https://github.com/marble-shell/shell.git
cd shell
npm run dev:init
npm run dev:build
gjs -m build/marble
IMPORTANT
I'm using nushell for setup and build scripts.
TIP
Move the executable into a directory that's in your PATH
sudo mv marble /usr/bin
mv marble ~/.local/bin # alternatively
Nix
Example flake for bundled scripts.
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
astal = {
url = "github:aylur/astal";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
astal,
}: let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.x86_64-linux;
in {
packages.${system}.default = pkgs.stdenv.mkDerivation {
pname = "marble";
src = ./marble;
dontUnpack = true;
nativeBuildInputs = with pkgs; [
wrapGAppsHook
gobject-introspection
];
buildInputs =
(with astal.packages.${system}; [
astal3
io
apps
battery
bluetooth
hyprland
mpris
network
notifd
powerprofiles
tray
wireplumber
])
++ (with pkgs; [
gjs
]);
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : ${with pkgs;
lib.makeBinPath [
dart-sass
fzf
]}
)
'';
installPhase = ''
mkdir -p $out/bin
install $src $out/bin/marble
'';
};
};
}
If you are a GitHub sponsor and have access to the repo you can pull its flake.
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
marble = {
url = "github:marble-shell/shell";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, marble }: let
system = "x86_64-linux";
in {
packages.${system}.default = marble.packages.${system}.default;
};
}