Coder Social home page Coder Social logo

apx-gui's Introduction

Apx GUI

A frontend in GTK 4 and Libadwaita for Apx.


Translation Status

Dependencies

  • build-essential
  • meson
  • libadwaita-1-dev
  • gettext
  • desktop-file-utils
  • apx (2.0+)

Build

meson setup build
ninja -C build

Install

sudo ninja -C build install

Run

apx-gui

apx-gui's People

Contributors

andrew-geo avatar arejula27 avatar atalanttore avatar azateix avatar b4iterdev avatar besedeb avatar bittin avatar coffandro avatar driedpampas avatar falexei avatar flipflop97 avatar gabsedits avatar jolupa avatar kbdharun avatar lakejason0 avatar loughty avatar matbme avatar mirkobrombin avatar moumn-almunawy avatar muhammadbahaa2001 avatar norwayfun avatar notchapple1703 avatar peterrakmanyi avatar pindoss avatar plasmus777 avatar protrikk avatar pulkitkrishna00 avatar tachyglossues avatar tachyon3000 avatar weblate 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

Watchers

 avatar  avatar  avatar

apx-gui's Issues

Apx Gui fails to create container correctly

When using apx's gui to create a container it fails when trying to start it up, and even fails in the cli
but when the cli creates it, both apx gui and the cli can access it

The error i get when trying to enter a container created by apx gui:

Error: OCI runtime error: crun: ptsname: Inappropriate ioctl for device

Requests Max retries exceeded errors in 1.0.2

Hi I've just updated the nix package for apx-gui to 1.0.2 (had to add python requests as a new dependency). The project builds and seems to runs fine, but after a few seconds it spits out the below error. Is this a bug or am I missing a dependency? Many thanks!

ERROR:Vanilla::Async:Error while running async job: <function Monitor.read at 0x7fb1346f72e0>
Exception: HTTPConnectionPool(host='localhost', port=80): Max retries exceeded with url: /events?  since=2024-07-09T16:35:01&stream=false (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb134703830>: Failed to establish a new connection: [Errno 111] Connection refused'))
File "/nix/store/h1mwd3ndnhly81gn0as7i2fic3vhiqi5-apx-gui-1.0.2/share/apx_gui/apx_gui/core/run_async.py", line 73, in __target
result = self.task_func(*args, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/h1mwd3ndnhly81gn0as7i2fic3vhiqi5-apx-gui-1.0.2/share/apx_gui/apx_gui/core/monitor.py", line 107, in read
response = session.get(
           ^^^^^^^^^^^^
File "/nix/store/f98z9h1gappf14p3id6kl21agfg9mfhp-python3-3.12.4-env/lib/python3.12/site-packages/requests/sessions.py", line 602, in get
return self.request("GET", url, **kwargs)
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/f98z9h1gappf14p3id6kl21agfg9mfhp-python3-3.12.4-env/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/f98z9h1gappf14p3id6kl21agfg9mfhp-python3-3.12.4-env/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/nix/store/f98z9h1gappf14p3id6kl21agfg9mfhp-python3-3.12.4-env/lib/python3.12/site-packages/requests/adapters.py", line 700, in send
raise ConnectionError(e, request=request)
Traceback (most recent call last):
File "/nix/store/h1mwd3ndnhly81gn0as7i2fic3vhiqi5-apx-gui-1.0.2/share/apx_gui/apx_gui/windows/main_window.py", line 70, in callback
for event in events:
TypeError: 'NoneType' object is not iterable

Add ability to pause/unpause running Subsystems/Containers

This can be achieved in the CLI using the podman pause <container-name> or podman unpause <container-name> command.

Maybe adding it to the GUI would accompany the other actions and the status indicator.

Also, A refresh button would help to refresh the status, as currently the data is updated only when relaunching.

Publish To PyPI

Publishing to the Python Package Index will allow users to install apx-gui without having to self compile by using the distro-agnostic tool pip.

Side panel won't re-open tabs after closing them

When using the left side panel to select anything, it becomes highlighted blue and a tab opens. After closing the tab, clicking on the item currently highlighted blue does not re-open the tab. The only way to re-open the tab is clicking on another item then on the desired one, and if there is only one item on the list the only way is to double-click the blue item.

I doubt this is desired behavior, and certainly confused me when I was trying to re-open a panel I closed and nothing happened.

Previously created containers are not detected

Hello,
I installed apx in Manjaro using the AUR package. apx command works correctly and I tried both --apt and --dnf. I then compiled from the source and installed apx-gui. However, when running apx-gui, no container is detected. How can I add the existing ones?

Add option to manage app data

Not really specific to vanilla, but it'd be definitely a nice feature. Basically managing app data from hidden folders on the home partition from gui. Nothing fancy, just being able to see what residual data is still there from some apps (after uninstall for example), their size, and the option to remove them? Would help the users keep their home directory from getting chaotic over time.

Provide a Podman(Distrobox)/ Flatpak/ distro-agnostic image

I really like the idea of this tool and find it a bit sad that it isn't available on other distros, like Fedora Atomic for example.

There is a very similar tool called BoxBuddy, that does almost the same, but doesn't look as sleek.

Would it be possible to provide a package for other distros too, so it gets a wider audience?

Unable to reuse Subsytem names

After a Subsystem has been deleted using the APX gui, the name of the subsystem cannot be reused.

Creating a new subsystem with the same name in cmd line returns:

Creating subsystem 'arch' with stack 'arch'… (0s)Distrobox named 'apx-arch' already exists.

This does not occur when the subsystem is deleted via the command line.

To recreate:
1.) Create subsystem
2.) Delete subsystem using APX gui.
3.) Create new subsystem with the same name.

Apx GUI

  • Stacks
    • list
    • rm
    • new
    • update
  • Package managers
    • list
    • rm
    • new
  • Subsystems
    • list
    • rm
    • new
    • console
    • exported apps/binaries
    • reset

Bug: apx-gui won't start due to strings in JSON

Traceback (most recent call last):
  File "/usr/local/share/apx_gui/apx_gui/main.py", line 66, in do_activate
    win = ApxGUIWindow(application=self)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/share/apx_gui/apx_gui/windows/main_window.py", line 49, in __init__
    self.__subsystems: list[Subsystem] = self.__apx.subsystems_list()
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/share/apx_gui/apx_gui/core/apx.py", line 32, in subsystems_list
    subsystems_data = json.loads(output)
                      ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Create help page

To do

  • Write help page.
  • Configure meson for help pages and Yelp.
  • Configure the help page button with the F1 shortcut.
  • Add screenshots to the help page.

Limit subsystem name box

Currently the create subsystem name box allows spaces, the system does not actually allow that in the terminal layer so everything breaks upon doing so. (error and then the subsystem get's named the first word)

Configure translations

To do

  • Configure translation strings _(). → #5
  • Generate POT template. →#5
  • Add Component to Weblate.
  • Configure component in Weblate.

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.