franciscolourenco / done

A fish-shell package to automatically receive notifications when long processes finish.
MIT License
766 stars 70 forks source link

No notifications on debian 10 #100

Open strct opened 3 years ago

strct commented 3 years ago

I followed the manual instrunctions from the readme:

> curl -Lo ~/.config/fish/conf.d/done.fish --create-dirs https://raw.githubusercontent.com/franciscolourenco/done/master/conf.d/done.fish

Even after logging in again sleep 6 doesn't lead to a notification. I have no clue what I have done wrong, or what part isn't working. I would be happy if you can help. Thanks for your time.

System information:

Edit:

notify-send test leads to a notification

franciscolourenco commented 3 years ago

@strct I just installed Debian 10.9.0 and notify-send on a VM, but can't even get a notification with notify-send test. How did you configure notify send?

strct commented 3 years ago

I didn't notice notify-send isn't installed by default. I tried to create a minimal environment (i have set up a virtual machine now as well).

On this machine I installed Debian 10.9.0 with the Gnome desktop environment (gnome-shell). Then as root apt install libnotify-bin curl fish to install notify-send. Now notify-send test produces a notification when run from the logged in user.

Configure fish with the command:

curl -Lo ~/.config/fish/conf.d/done.fish --create-dirs https://raw.githubusercontent.com/franciscolourenco/done/master/conf.d/done.fish

Reboot to ensure config files get read (logout+login might be sufficient).

user@debian:~$ fish
Welcome to fish, the friendly interactive shell
user@debian ~> sleep 6
user@debian ~> notify-send test
user@debian ~> echo $__done_version
1.15.0

sleep 6 didn't produce a notification, but notify-send did.

franciscolourenco commented 3 years ago

The error is in https://github.com/franciscolourenco/done/blob/master/conf.d/done.fish#L83 which throws TypeError: global.display.focus_window.get_it is not a function

I don't have time to debug this at the moment since I don't use Debian, but a PR would be more than welcome :)

yajo commented 2 years ago

No notifications in Fedora 35 either.

It's probably related to the enhanced security measures on some DBus calls in GNOME 41: https://unix.stackexchange.com/a/635740/50281

oxysoft commented 2 years ago

No notifications either for me on Manjaro with Gnome, worked when I was using XFCE a few weeks ago. notify-send works as usual. I'm using sleep 6 to test.

manu156 commented 2 years ago

Workaround: use a gnome extension to expose Eval. Extension: https://github.com/manu156/eval-gjs Also modify done.fish to use this: gdbus call --session --dest org.gnome.Shell --object-path /dev/ramottamado/EvalGjs --method dev.ramottamado.EvalGjs.Eval 'global.display.focus_window.get_id()' However this will introduce security risks probably or whatever https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3943

franciscolourenco commented 9 months ago

Looks like the same root cause as #134

franciscolourenco commented 8 months ago

https://github.com/franciscolourenco/done/releases/tag/1.19.0 added an option to enable notifications on Wayland while using the Kitty terminal. Thanks @jinliu!