Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider switching to CutefishOS Dock #24

Open
probonopd opened this issue Nov 26, 2021 · 6 comments
Open

Consider switching to CutefishOS Dock #24

probonopd opened this issue Nov 26, 2021 · 6 comments

Comments

@probonopd
Copy link
Member

probonopd commented Nov 26, 2021

Consider switching to CutefishOS Dock

Advantages:

  • Works correctly with multi-monitor setups
  • Applications in the Dock can be ordererd by drag-and-drop
  • Supposedly can empty the Trash (could not confirm it working on helloSystem)
  • Can be put to the left side of the screen rather than to the bottom with Direction=0
[General]
Direction=0
IconSize=48
RoundedWindow=false
Style=0
Visibility=0

But:

  • Introduces a dependency on https://github.com/cutefishos/fishui (can it be made a compile-time option?)
  • Application Bundle support would need to be ported over (ideally upstreamed)
  • It seems to become very CutefishOS centric, e.g., QDBusInterface iface("com.cutefish.Session", "/Session", "com.cutefish.Session", QDBusConnection::sessionBus()); - what is this for?
  • Pinning menu item missing?
  • RoundedWindow=false has no effect
  • Opening the Trash does not work anymore

Blocked by:
cutefishos/dock#10

@probonopd
Copy link
Member Author

probonopd commented Nov 26, 2021

Supposedly can empty the Trash (could not confirm it working on helloSystem)

Opening the Trash does not work anymore

Apparently they are moving to very CutefishOS specific ways to open and empty the trash:

void TrashManager::emptyTrash()
{
    QProcess::startDetached("cutefish-filemanager", QStringList() << "-e");
}

void TrashManager::openTrash()
{
    QProcess::startDetached("cutefish-filemanager", QStringList() << "trash:///");
}

whereas we'd need

void TrashManager::emptyTrash()
{
    // Something Filer specific to be written
}

void TrashManager::openTrash()
{
    // As long as Filer is (still) using gio
    QProcess::startDetached("gio", QStringList() << "open" << "trash:///");
}

Is there really no standard for showing and emptying the Trash e.g., via stanardized D-Bus commands?

@rodlie
Copy link

rodlie commented Nov 3, 2022

I need a dock myself, maybe we should join forces? :)

  • I would like something that does not depends on anything KDE
  • I would prefer to use widgets, not QML
  • I would prefer to not make it from scratch
  • X11 first

@probonopd
Copy link
Member Author

probonopd commented Nov 3, 2022

Hi @rodlie

  • I would like something that does not depends on anything KDE --> same here, but Kf5WindowSystem is a tremendous help when dealing with windows. It pulls in no other KDE dependencies
  • I would prefer to use widgets, not QML --> Qml allows for nice animation effects without which a Dock will look very static. But Qml could be used sparingly
  • I would prefer to not make it from scratch --> same here, although I am writing the functionality that equals a Dock right now from scratch in fact: Bring features from the Dock into the menu Menu#21
  • X11 first --> definitely

maybe we should join forces?

helloSystem will not center around XDG standards but will introduce alternative, more powerful, easier, and more robust oncepts. That's the plan, anyway. I'd love to brainstorm with you whether to make this into a "XDG-ng" of sorts.

@rodlie
Copy link

rodlie commented Nov 3, 2022

but Kf5WindowSystem is a tremendous help when dealing with windows. It pulls in no other KDE dependencies

Ok, will need to check it out.

Qml allows for nice animation effects without which a Dock will look very static. But Qml could be used sparingly

Effects can be done on widgets also, don't see a direct need for QML. We could support both(?), anyway not that important yet.

helloSystem will not center around XDG standards but will introduce alternative, more powerful, easier, and more robust oncepts. That's the plan, anyway. I'd love to brainstorm with you whether to make this into a "XDG-ng" of sorts.

Why do you care? I will make an library that handles this anyway, the dock (or any app in general) does not need to know stuff like this, it will just use an library that gives it what it wants (apps, icons etc). The library can even be exposed through dbus if needed.

@rodlie
Copy link

rodlie commented Nov 3, 2022

One more thing...

What is the current status of this dock?

  • stable?
  • all the wm stuff works?

And to clarify regarding XDG. The library will support XDG, AppDir and whatever else that's needed to detect apps. Not sure introducing another "standard" will help.

@probonopd
Copy link
Member Author

probonopd commented Nov 3, 2022

stable

In the sense of not crashing, definitely. Been running as my daily driver for over a year, has not really crashed once on me.

all the wm stuff works?

Define "all the wm stuff". Probably not.

https://github.com/cutefishos/ is newer and probably supports more wm stuff but uses less Qt Widgets and introduced a non-standard dependency. So possibly it needs to be cherry-picked.

Effects can be done on widgets also, don't see a direct need for QML.

How would you do, e.g., this with Qt Widgets?

Dock.mp4

And to clarify regarding XDG

Wrote down my work-in-progress ideas here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants