Git Product home page Git Product logo

boxbuddyrs's Introduction

BoxBuddy

An unofficial GUI for managing your Distroboxes. Written with GTK4 + Libadwaita.

Note that this does not come with Podman or Distrobox, those will need to be installed on the host.

Main Menu

Installing

Flatpak

Download on Flathub

Local Binary

  • Visit the releases section
  • Download and unzip the release
  • Execute ./install.sh

Documentation

Documentation lives at the GitHub Pages site.

Contributing

Please see the dedicated Dev Documentation and Translator Documentation.

Help Wanted

Help would be greatly appreciated in these areas:

  • Translations - Currently implemented: EN, DE, UK, RU, IT, ES, pt_BR. Any other translations appreciated!

Issues / Feature Requests

Feature requests are welcome! Please check the roadmap to see if a feature is already planned.

When filing issues, please keep in mind that BoxBuddy is just a GUI, and I am not a developer of Distrobox itself. Any issues with created boxes are probably better logged upstream.

boxbuddyrs's People

Contributors

albanobattistella avatar dvlv avatar kylegospo avatar luiz-c-lima avatar mlsci avatar nisel11 avatar pyrofanis avatar scrambled777 avatar sebrice avatar vortexacherontic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

boxbuddyrs's Issues

Application list is not scrollable

Install method (Flatpak/Binary/Other)
Flatpak

Your Host OS
Pop!_OS

Describe your Issue
The application list dialog menu is not scrollable, making it extremely hard to go through the application list.

I have a bunch of audio tools installed, which made the application list balloon to an enormous size. This makes it impossible to navigate my applications, which is really frustrating

Add NVIDIA GPU acceleration support automatically

Hello, congratulations on the app, are there plans to automatically add the "--nvidia" flag that enables the use of graphic acceleration of gpus nvidia with the same driver host in the container?

BoxBuddy did not identify my GPU Nvidia and applied the flag, so I created the container manually, for example:

distrobox create --image fedora:39 --name fedora-nvidia --nvidia

Then everything went normally on BoxBuddy.

Documentation Update

  • Better explanation of the Flatpak Filesystem stuff

  • Add dedicated page for Dev docs

    • Advertise the assemble file for development en
  • Add dedicated page for Translators

Hi, request to add a feature

I wanted to make a request to add a feature, For now, when you click "add menu" an application listed in the pop-up window that shows the apps installed in a distrobox container is added to the desktop in the path:

/home/$user$/.local/share/applications

The problem is that the .desktop comes without the icon, what you could do is a symbolic link to a folder located in the boxbuddyrs files folder or copy the icons to a folder with any name to the boxbuddyrs folder, I hope you can solve that, good luck.

Screenshot_20240111_123734

Name of application is not sanitized

In debian based distros there is a GUI tool called Software&Updates also known as software-properties-gtk, which doesn't get listed by BoxBuddy when one clicks ViewApplications. Instead the warning below gets logged:

(boxbuddy-rs:2): Gtk-WARNING **: 09:40:38.457: Failed to set text 'Software&Updates' from markup due to error parsing markup: Error on line 1: Entity did not end with a semicolon; most likely you used an ampersand character without intending to start an entity โ€” escape ampersand as &

Appears stuck if no applications installed in a distrobox

Minor UI bug:

Although the "View Applications" button works great in a box with applications installed, I have boxes where it hangs on the loading screen the first time, and has to be clicked and closed multiple times before displaying that no applications are installed.

I just read through the code, found the function which that button should be attached to, and tried manually running the shell command which searches for installed packages

grep -L \"NoDisplay=true\" /usr/share/applications/*.desktop

Surprisingly, this showed precisely one application installed in one of the boxes where the bug occurred. I dug through the next few lines of code in the distrobox handler:

for line in desktop_files.split('\n') {
        if line.is_empty() || line.contains("No such file") {
            continue;
        }

Note: I do not know Rust. I suspect that there is an edge case in this check where a list with a single item instead of an empty string and no newline character is not handled. However, I don't recognize the app which the grep above listed, so it may be rightly filtered out, and the loading screen hang could be caused by something else.

Refactor flatpak host detection

Additional Volumes only works will full host access, everything else is fine with just home access.
The current helper checks for both indiscriminately, so this needs to be split into separate checks for both.
Then we need to adjust the Additional Volumes to only show with full access, and the rest with home access.

no boxes on nixos

Install method (Flatpak/Binary/Other)
Flatpak and my own derivation

Here is my derivation
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, wrapGAppsHook4
, cairo
, gdk-pixbuf
, glib
, gtk4
, libadwaita
, pango
}:

rustPlatform.buildRustPackage rec {
  pname = "box-buddy-rs";
  version = "1.2.0";
  name = "${pname}-${version}";

  src = fetchFromGitHub {
    owner = "Dvlv";
    repo = "BoxBuddyRS";
    rev = version;
    hash = "sha256-sKkUUDKtRISDV1B3aPN8Q5vj2fmmffjEEfORmpH0ZpY=";
  };

  cargoHash = "sha256-XIGtYoKipxTZ9mIZfX2us9qBPiI136kPGlM8wN/eWUA=";

  nativeBuildInputs = [
    pkg-config
    wrapGAppsHook4
  ];

  buildInputs = [
    cairo
    gdk-pixbuf
    glib
    gtk4
    libadwaita
    pango
  ];

  preBuild = ''
    mkdir -p $out/share/applications

    install -m 444 \
        -D $src/io.github.dvlv.boxbuddyrs.desktop \
        -t $out/share/applications
    cp -r $src/icons $out/share
  '';

  meta = with lib; {
    description = "A Graphical Interface for Distrobox";
    homepage = "https://github.com/Dvlv/BoxBuddyRS";
    license = licenses.mit;
    maintainers = with maintainers; [ ];
    mainProgram = "box-buddy-rs";
  };
}

Distrobox Version
distrobox --version will tell you this.

$ distrobox --version
distrobox: 1.5.0.2

boxbuddy == v1.2.0

Describe your Issue
Even though I already running distrobox containers, it says no boxes.

[info]
OS: NixOS 24.05 (Uakari) x86_64
Kernel: Linux 6.1.74

I set there enviromental variables:
DBX_CONTAINER_HOME_PREFIX = "/home/ravenz46/dbx";
DBX_CONTAINER_MANAGER = "podman";
DBX_SKIP_WORKDIR = "1";

[FEATURE REQUEST] Create distrobox with root permisson

Install method (Flatpak/Binary/Other)

Distrobox VersionFlatpak
distrobox --version will tell you this.
distrobox: 1.6.0.1
Your Host OS
Fedora Linux 39.20240219.0 (Silverblue)
Describe your Issue
I tried :
distrobox create --name test --image your-chosen-image:tag --root
distrobox enter --root test
And boxbuddy isn't received this distrobox in boxbuddy gui.

Few features request

1.stop distrobox instance
2.custom values to start distrobox
https://distrobox.it/useful_tips/#using-init-system-inside-a-distrobox
4. is there really point why not bundle distrobox in Boxbuddy as it needs lots of permissions use distrobox outside of flatpak?

unable to shrink the window height

Install method (Flatpak/Binary/Other)
Flatpak

Distrobox Version
distrobox --version will tell you this.
distrobox: 1.6.0.1

Your Host OS
ublue bazzite 39 with kde wayland

Describe your Issue
I can't shrink the window height. There should be a scroll bar so I can resize the height of the window so it fits my screen.

The flatpak version isn't able to access /sys/block

image
Hey there ! Just discovered your project on Flathub.
However, once installed, trying to make it run make it fail with this error :

> flatpak run io.github.dvlv.boxbuddyrs            
bwrap: Can't find source path /sys/block: Permission denied

However, trying to run the compiled binary in release 1.0.4 just correct the issue and work wonderfully aside from some GTK warnings, but it's expected from using GTK themes.

[Feature request] Adding volumes while creating a new Distrobox container

Hey there, I'd like to open this request primarily for the record but also for discussion about such a feature.
I would like add this myself in a future PR if approved.

When creating a new distobox container some can pass multiple of --volume /host/path:/container/path to the distrobox-create command to allow a container to access none default path on the host system.

Probably there are not many requiring this feature but would be a neat addition.

My proposal would be to add a List at the bottom of the distrobox create ui where the user can add and remove multiple entries.
similar to this (cheaply stolen from bottles ๐Ÿ˜„) :

Bildschirmfoto vom 2024-01-18 15-56-26

I hope I do not become annoying by all these requests and PR's.
I liked to build a Distrobox UI like thing for quite some time now but never felt like doing so. But since this exists and I am now not alone I am super motivated.
Also it is written in Rust something I wanted to properly learn for quite some time too but except of some random more or less empty projects I never build much using Rust ๐Ÿ˜…

feature request: add support for WezTerm

Install method (Flatpak/Binary/Other): Flatpak

Distrobox Version: 1.6.0.1

Your Host OS: Fedora Budgie Atomic

Describe your Issue

Per FAQ, filing this issue for an unsupported terminal:

I'd like to add WezTerm to the list of supported terminal programs. I run WezTerm as a Flatpak, but I suspect many others have it installed through their normal package manager (command: wezterm). I hope you can support both methods of launching it. Thanks!

WezTerm References:

Flathub: https://flathub.org/apps/org.wezfurlong.wezterm
Home Page: https://wezfurlong.org/wezterm/
Github: https://github.com/wez/wezterm

Will not create a new box (and version inconsistency.)

Running Fedora Silverblue 39 with distrobox layered.

Running BoxBuddy 1.0.8 according to the in-app dialog, but is actually 1.0.7 according to flatpak list and Flathub.

When trying to create the first distrobox when no others exist, the app simply shows a spinning wheel indefinitely. It doesn't crash, it just simply does nothing.

If there are existing distroboxes, then the app performs as expected.

[Bug?] Removing a container breaks other containers

Hello there, as I opened up the app for the first time, created a new distrobx after no other boxes where found see: #16 I then created a new box just to test how the app works.

Which lead to #19 and after removing the container my other distrobox containers volumes where all broken.

distrobox-enter
Error: no such container tumbleweed
Creating the container tumbleweed
Creating 'tumbleweed' using image registry.opensuse.org/opensuse/distrobox:latest	Error: creating container storage: the container name "tumbleweed" is already in use by a1b7b5887b84d7d92fc2d45b5fa5ae577fcfbb94da1576c80a0ce226c5f74833. You have to remove that container to be able to reuse that name: that name is already in use by an external entity, or use --replace to instruct Podman to do so.
 [ ERR ]
Error: no container with name or ID "tumbleweed" found: no such container

Additionally it broke m entire distrobox setup as I can not remove or create new container with the name of the containers which went broken by this:

distrobox-create develop --home /home/vortexacherontic/distrobox/develop_home 
Creating 'develop' using image registry.opensuse.org/opensuse/distrobox:latest	Error: creating container storage: the container name "develop" is already in use by 29f8b31c201a7244e3eaeecd02bf4ce5e8d6e22f12fe95a9f870c6023d925118. You have to remove that container to be able to reuse that name: that name is already in use by an external entity, or use --replace to instruct Podman to do so.
 [ ERR ]

distrobox-rm develop
Error: no such container develop
Cannot find container develop.

To recover I had podman to instruct to prune all the volumes and containers.

New Screenshots

Updated the UI a bit, change the screenshot(s) for the next flatpak release.

Does not find already created distrobox containers

Hey there just tried out the app for the first time from flathub and I noticed it was not able to see the distrobox-containers I already had on my system.

Could this be fixed or is this a flatpak sandboxing thing and it does not have proper access?

See if I can use GHActions for the binary releases

Keeping the bin releases and Flatpak releases sync'd is pain. See if I can automate the bin releases with Actions.

The Action will have a check to make sure the version in main.rs matches the version in AppData, and fail if it doesn't.

Install .deb and .rpm button

  • Add button alongside the Open Terminal list to "Install Deb" or "Install RPM" based on the detected distro

    • Requires list of distros which support deb / rpm in utils.rs
  • This will require host access

    • Check if I can add xdg-download access without tripping Flathub's linter
  • Look into if I can add a right-click option in Nautilus for deb/rpm with "Install in <box_name>" options.

Can't create box

Install method (Flatpak/Binary/Other)
Flatpak

Distrobox Version
distrobox --version will tell you this.
distrobox: 1.6.0.1

Your Host OS
fedora 39

Describe your Issue

  • start boxBuddyRS
  • click '+'
  • no response

flatpak run io.github.dvlv.boxbuddyrs I tried cli running but there is no log

Screenshot from 2024-02-04 20-16-29
Screenshot from 2024-02-04 20-16-43
Screenshot from 2024-02-04 20-16-53

Logo suggestion

As I looked up the roadmap I saw the entry of "nicer Logo" as I don't know what you're aiming for I just throw up a random idea:

io github dvlv boxbuddyrs

I think it's probably the most cutest box I've ever seen but not sure if you're aiming for a more symbolic or a more industrial design or what ever. So it's just a shot in the dark here.

If you want to look at the svg you can do so in design branch

[Discussion] Distrobox Presets

Hi there, I was randomly thinking it might be a fancy thing if BoxBuddy might provided some sort of "preset" distroboxes.
Like I have a few distrobox.ini files for various purposes.

  • One for Rocky Linux 8 and required dependencies to install and run DaVinci Resolve within it.
  • Next I also have an ini file for an AppImage box because at least openSUSE does not come with libfuse and fuse2 by default for AppImages to work plus various extra packages to run Desktop applications in the otherwise slimed down container images. Considering that AppImages often require out-dated libraries I feel like others could use a distrobox to run AppImages instead to run them on their host directly too.
  • Another one is an Arch Linux ini file for faster setup to make use of the AUR on none Arch distros. Which installs the various packages required to install AUR Helpers and make them work properly.
  • And of course the distrobox development box ๐Ÿ˜„ and a ini file for all other dev stuff I sometimes do.

While there is the assemble feature which is already good for these boxes I thought maybe we might add some "presets" directly to BoxBuddy? Maybe in a form of an setup assistant instead by distributing ini files?
As INI files are rather rigid. While we could make perfect assumptions on what distro image the user would need and which packages for let's say Resolve. We couldn't make assumptions on whether the user uses an nvidie gpu or requires additional volumes to access external devices with video files on it and such with just the INI file.

But also while writing these lines I feel like it is out of scope for this app and users might use assemble files anyway?
Plus it would require someone to keep track of these boxes and that they function properly not only today but also tomorrow. ๐Ÿค”

Idk what do you think?

[Feature request] --home option at creating a new container

Sorry for the issue spam though. But I also found it use full to have separate home directory to mitigate #19 I had this happen with regular distrobox-create command in the past and didn't found the exact root cause for this. Maybe it has something to do with my system ruining with locale: de_DE.UTF-8 and distrobox sometimes defaulting to something else?

Anyhow an option to specify a custom home directory for a container would be nice.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.