Aylur / dotfiles

My personal config files
Other
2.52k stars 129 forks source link

Cannot launch some apps by desktop shortcuts in applauncher or dock #120

Closed blacklightpy closed 10 months ago

blacklightpy commented 10 months ago

I'm using your dotfiles, and Obsidian wouldn't run using the dotfiles.

Running it from terminal or from KDE Plasma works well. I'm not sure if this is a Hyprland issue or ags issue.

I've launched Hyprland as dbus_run_session Hyprland and ags as ags under exec_once from Hyprland config.

Aylur commented 10 months ago

I don't use wofi so I can't help you with that. Run ags in a terminal to watch the logs, there should be some error when clicking on the dock

blacklightpy commented 10 months ago

I forgot I used only your Hyprland shortcuts into the default hyprland.conf

No signs when clicking the dock, for this or for any other app

I also tried opening it via dex and gtk-launch and they both work fine too. It's some problem when not launching it via the terminal.

blacklightpy commented 10 months ago

I noticed I didn't install xdg-hyprland-desktop-portal, so I'm building that now

blacklightpy commented 10 months ago

Also sorry I don't mean wofi, it's the ags -t applauncher shortcut.

blacklightpy commented 10 months ago

wofi worked.. so it is likely not a Hyprland problem, and is an ags problem.

Aylur commented 10 months ago

You could try editing launchApp function in utils.js to use some other method of launching apps

blacklightpy commented 10 months ago

I replaced Utils.execAsync(['hyprctl', 'dispatch', 'exec', `sh -c ${app.executable}`]);

with Utils.execAsync([`${app.executable}`]);

Now Obsidian works, but nothing else works. The reason is because I had replaced the exec with a script before to test if that would make it work. Basically it attaches Obsidian to a tmux session to solve the problem of random error dialogs which is apparently associated with some Wayland bugs. The script was like this:

#!/bin/bash
tmux new -d '/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=obsidian.sh --file-forwarding md.obsidian.Obsidian @@u %U @@'

Without the script, it is like:

(com.github.Aylur.ags:4582): Gjs-CRITICAL **: 08:33:00.742: JS ERROR: GLib.SpawnError: Failed to execute child process “/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=obsidian.sh --file-forwarding md.obsidian.Obsidian @@u %U @@” (No such file or directory)
execAsync@resource:///com/github/Aylur/ags/utils.js:95:33
launchApp@file:///home/jyothish/.config/ags/js/utils.js:68:11
on_primary_click@file:///home/jyothish/.config/ags/js/dock/Dock.js:75:26
AgsButton/<@resource:///com/github/Aylur/ags/widgets/button.js:38:29
_init/GLib.MainLoop.prototype.runAsync/</<@resource:///org/gnome/gjs/modules/core/overrides/GLib.js:266:34

I'm not sure how the Utils.execAsync function works here. If I had access to the desktop files directly, I could open it with gtk-launch or dex..

Aylur commented 10 months ago

You have access to the .desktop file https://github.com/Aylur/ags/wiki/Applications#application. It would be execAsync(['gtk-launch', app.desktop])

blacklightpy commented 10 months ago

What is the difference between Gio.DesktopAppInfo.get_string('Exec') and Gio.DesktopAppInfo.get_executable()? (as used in services/applications.ts in ags)

blacklightpy commented 10 months ago

You have access to the .desktop file https://github.com/Aylur/ags/wiki/Applications#application. It would be execAsync(['gtk-launch', app.desktop])

Just saw this, I'll try it first

blacklightpy commented 10 months ago

This worked