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

Update fluxapp.py #150

Closed
wants to merge 1 commit into from
Closed

Update fluxapp.py #150

wants to merge 1 commit into from

Conversation

linuxazo
Copy link
Contributor

Making fluxgui up-to-date with current development version of Debian.
AyatanaAppindicator packages are are straighforward replacement in Debian for unmaintaind Appindicator packages.
Other than this, fluxgui needs no redshit, since redshift also does not work under wayland.
Fluxgui/xflux works perfectly under X11. Those errors are from trying to run fluxgui under wayland, which requires compositor level implementation of color temperature changing.
Fluxgui/xflux are awesome.

Making fluxgui up-to-date with current development version of Debian. 
AyatanaAppindicator packages are are straighforward replacement in Debian for unmaintaind Appindicator packages.
Other than this, fluxgui needs no redshit, since redshift also does not work under wayland.
Fluxgui/xflux works perfectly under X11. Those errors are from trying to run fluxgui under wayland, which requires compositor level implementation of color temperature changing.
Fluxgui/xflux are awesome.
@ntc2 ntc2 mentioned this pull request Mar 23, 2022
@ntc2
Copy link
Member

ntc2 commented Mar 23, 2022

This and PR #151 have been combined into cb4b596, thanks for the PRs (but better to just make a single PR for related changes like this). I read that Ayatana appindicator is not supported in Fedora, so I added logic in ec72bcf to fallback to plain appindicator if the Ayatana version is unavailable.

I think you're wrong that xflux always works on X11, and that Wayland is the only cause of Issue #27. For example, I'm using X11, not Wayland, and xflux fails for me in exactly the way described in #27. On the other hand, Redshift does work for me, and is what I actually use. Take a look at #27 for more context.

@ntc2 ntc2 closed this Mar 23, 2022
@linuxazo
Copy link
Contributor Author

Dear Nathan,
Fist of all, thank You so much for Your kind response.
Thank You for the suggestions with regards to the PRs. I will do my best to follow them.
I used flux on/off for years on both Windows and Linux.
Lots of respect from my side you've earned for keeping touch.
Looking into this situation deeper, my conclusions so far are:
xflux/fluxgui seem to work flawlessly on open source x11 drivers (amdgpu tested 100% working). I will test on intel graphics laptop as well.
The error #27 I get as well if I am using closed source nvidia driver, which is, believe me, not the only discepancy when using nvidia driver in discrete mode (so I opt to use prime offloading in my amd/nvidia optimus laptop setup).
For example xrandr in nvidia discrete mode has only native resolution, the x11 protocols do not work as expected (scaling/multidpi/multidisplays, etc...)
I could even test further with nouveau driver on my other machine and could be able to confirm that all amdgpu, nouveau and intel drivers work 100% with xflux/fluxgui.
I am using Debian Sid (Developer version with the latest libraries and software) and xflux/fluxgui works no problem (using as an applet in KDE Plasma).
Please share your experiences on this if you don't mind and let's stay in touch.

@ntc2
Copy link
Member

ntc2 commented Mar 23, 2022

First, let me clarify that I don't know anything about X servers or how xflux works! Note that xflux is a closed source program and that fluxgui was created independently of xflux. Also, I'm not the original creator of fluxgui, just the current maintainer, and have no relationship to the xflux project.

I'm using Redshift (which you say doesn't work on Wayland) and xmonad (which definitely doesn't work on Wayland), which makes me think I'm "using X11" as I claimed. However, looking into this more, I have both Xwayland and Xorg processes running on my machine, so I might be using X11 via Xwayland, I'm not sure. Would that count as "using Wayland" in the way you're concerned about? I must admit that I didn't even know that Xwayland was thing: I thought a person either used Wayland or Xorg.

In any case though, lots of people have problems with xflux, xflux is unmaintained (the issue #27 has been reported upstream long ago), and xflux is closed source, whereas Redshift works well, Redshift is maintained, and Redshift is open source. So I maintain that Redshift seems to be the way forward.

In case it helps, here are the graphics related processes I can find in the output of ps -feH:

Xwayland and Xorg:

root      1269     1  0 Feb16 ?        00:00:00   /usr/sbin/gdm3
root      1280  1269  0 Feb16 ?        00:00:00     gdm-session-worker [pam/gdm-launch-environment]
gdm       1362  1280  0 Feb16 tty1     00:00:00       /usr/lib/gdm3/gdm-wayland-session gnome-session --autostart /usr/share/gdm/greeter/autostart
gdm       1370  1362  0 Feb16 tty1     00:00:00         /usr/lib/gnome-session/gnome-session-binary --autostart /usr/share/gdm/greeter/autostart
gdm       1388  1370  0 Feb16 tty1     00:20:09           /usr/bin/gnome-shell
gdm       1845  1388  0 Feb16 tty1     00:00:00             /usr/bin/Xwayland :1024 -rootless -terminate -accessx -core -listen 4 -listen 5 -displayfd 6
gdm       2615  1388  0 Feb16 tty1     00:00:00             ibus-daemon --xim --panel disable
gdm       2618  2615  0 Feb16 tty1     00:00:00               /usr/lib/ibus/ibus-dconf
gdm       2778  2615  0 Feb16 tty1     00:00:00               /usr/lib/ibus/ibus-engine-simple
gdm       2676  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-xsettings
gdm       2698  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-a11y-settings
gdm       2699  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-clipboard
gdm       2702  1370  0 Feb16 tty1     00:06:52           /usr/lib/gnome-settings-daemon/gsd-color
gdm       2703  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-datetime
gdm       2704  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-housekeeping
gdm       2705  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-keyboard
gdm       2711  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-media-keys
gdm       2712  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-mouse
gdm       2713  1370  0 Feb16 tty1     00:00:04           /usr/lib/gnome-settings-daemon/gsd-power
gdm       2716  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-print-notifications
gdm       2717  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-rfkill
gdm       2720  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-screensaver-proxy
gdm       2722  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-sharing
gdm       2727  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-smartcard
gdm       2731  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-sound
gdm       2734  1370  0 Feb16 tty1     00:00:00           /usr/lib/gnome-settings-daemon/gsd-wacom
root      3051  1269  0 Feb16 ?        00:00:00     gdm-session-worker [pam/gdm-password]
conathan  3431  3051  0 Feb16 tty2     00:00:00       /usr/lib/gdm3/gdm-x-session --run-script /usr/lib/gnome-session/run-systemd-session gnome-session-flashback.target
conathan  3433  3431  0 Feb16 tty2     05:12:20         /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
conathan  3504  3431  0 Feb16 tty2     00:00:00         /bin/sh /usr/lib/gnome-session/run-systemd-session gnome-session-flashback.target
conathan  3610  3504  0 Feb16 ?        00:00:03           /usr/bin/ssh-agent /usr/bin/im-launch /usr/lib/gnome-session/run-systemd-session gnome-session-flashback.target
conathan  3867  3504  0 Feb16 tty2     00:00:00           systemctl --user start --wait gnome-session-flashback.target

xmonad (window manager) and Gnome:

conathan  3413     1  0 Feb16 ?        00:00:04   /lib/systemd/systemd --user
conathan  3414  3413  0 Feb16 ?        00:00:00     (sd-pam)
conathan  3501  3413  0 Feb16 ?        00:31:46     /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
conathan  3902  3413  0 Feb16 ?        00:00:03     /usr/lib/x86_64-linux-gnu/indicator-keyboard/indicator-keyboard-service --use-gtk
conathan  3906  3413  0 Feb16 ?        00:00:00     /usr/lib/x86_64-linux-gnu/indicator-messages/indicator-messages-service
conathan  3910  3413  0 Feb16 ?        00:00:11     /usr/lib/x86_64-linux-gnu/indicator-datetime/indicator-datetime-service
conathan  3911  3413  0 Feb16 ?        00:00:04     /usr/lib/x86_64-linux-gnu/indicator-sound/indicator-sound-service
conathan  3915  3413  0 Feb16 ?        00:59:26     /usr/lib/x86_64-linux-gnu/indicator-application/indicator-application-service
conathan  3916  3413  0 Feb16 ?        00:00:00     /usr/lib/x86_64-linux-gnu/indicator-session/indicator-session-service
conathan  3918  3413  0 Feb16 ?        00:00:00     /usr/lib/x86_64-linux-gnu/indicator-bluetooth/indicator-bluetooth-service
conathan  3921  3413  0 Feb16 ?        00:00:02     /usr/lib/x86_64-linux-gnu/indicator-power/indicator-power-service
conathan  3923  3413  0 Feb16 ?        00:00:03     /usr/lib/x86_64-linux-gnu/indicator-printers/indicator-printers-service
conathan  3927  3413  0 Feb16 ?        00:00:02     /usr/lib/gnome-session/gnome-session-binary --session=gnome-xmonad
conathan  4221  3927  0 Feb16 ?        00:00:00       /usr/lib/gnome-settings-daemon/gsd-screensaver-proxy
conathan  4222  3927  0 Feb16 ?        00:01:25       /usr/lib/gnome-settings-daemon/gsd-sharing
conathan  4226  3927  0 Feb16 ?        00:00:00       /usr/lib/gnome-settings-daemon/gsd-smartcard
conathan  4233  3927  0 Feb16 ?        00:00:00       /usr/lib/gnome-settings-daemon/gsd-a11y-settings
conathan  4234  3927  0 Feb16 ?        00:00:00       /usr/lib/gnome-settings-daemon/gsd-sound
conathan  4236  3927  0 Feb16 ?        00:00:04       /usr/lib/gnome-settings-daemon/gsd-wacom
conathan  4239  3927  0 Feb16 ?        00:00:05       /usr/lib/gnome-settings-daemon/gsd-xsettings
conathan  4241  3927  0 Feb16 ?        00:00:00       /usr/lib/gnome-settings-daemon/gsd-datetime
conathan  4244  3927  0 Feb16 ?        00:00:03       /usr/lib/gnome-settings-daemon/gsd-clipboard
conathan  4250  3927  0 Feb16 ?        00:06:35       /usr/lib/gnome-settings-daemon/gsd-color
conathan  4279  3927  0 Feb16 ?        00:00:22       /usr/lib/gnome-settings-daemon/gsd-housekeeping
conathan  4280  3927  0 Feb16 ?        00:00:03       /usr/lib/gnome-settings-daemon/gsd-keyboard
conathan  4285  3927  0 Feb16 ?        00:00:08       /usr/lib/gnome-settings-daemon/gsd-media-keys
conathan  4287  3927  0 Feb16 ?        00:00:00       /usr/lib/gnome-settings-daemon/gsd-mouse
conathan  4288  3927  0 Feb16 ?        00:00:09       /usr/lib/gnome-settings-daemon/gsd-power
conathan  4291  3927  0 Feb16 ?        00:00:00       /usr/lib/gnome-settings-daemon/gsd-print-notifications
conathan  4293  3927  0 Feb16 ?        00:00:00       /usr/lib/gnome-settings-daemon/gsd-rfkill
conathan  4332  3927  0 Feb16 ?        00:54:31       /home/conathan/.xmonad/xmonad-x86_64-linux

Graphics hardware info:

$ sudo lspci -vv -s 00:02.0 
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])
	Subsystem: Lenovo 3rd Gen Core processor Graphics Controller
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 30
	Region 0: Memory at f0000000 (64-bit, non-prefetchable) [size=4M]
	Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
	Region 4: I/O ports at 5000 [size=64]
	[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
	Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee00018  Data: 0000
	Capabilities: [d0] Power Management version 2
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [a4] PCI Advanced Features
		AFCap: TP+ FLR+
		AFCtrl: FLR-
		AFStatus: TP-
	Kernel driver in use: i915
	Kernel modules: i915

@linuxazo
Copy link
Contributor Author

linuxazo commented Mar 23, 2022 via email

@linuxazo
Copy link
Contributor Author

linuxazo commented Mar 23, 2022 via email

@ntc2
Copy link
Member

ntc2 commented Mar 24, 2022

I switched GDM to use Xorg using the WaylandEnable=False you suggested, and also tried using LightDM with the i3 window manager to avoid Gnome. In both cases xflux fails in the usual way, as described in #27 (e.g. xflux12 prints the "Sorry, we only support 8, 10, 11, and 12-bit displays right now" error message and similar for the previous version of xflux). Below I've attached the complete output of ps -feH from before and after logging into to a WM, for both GDM with xmonad+Gnome, and LightDM + i3, in case you want to convince yourself that there's no more Wayland involved.

So, I think we're back where we started: xflux doesn't work and redshift does, so I will continue to suggest that people having the #27 issue try redshift.

Also, I don't understand your argument that Flux for Linux is still maintained. The last release on the Linux flux page is from 2013 (https://justgetflux.com/linux.html), and the xflux12 binary in the forum thread about the problem we're debugging right now is from ~2015. Compare this with the Windows version of flux, which was last released in 2021 (https://justgetflux.com/linux.html). I think your idea is that the problem is due to Wayland, but the evidence in my case shows that it xflux is also broken on my Xorg. And, if it turns out that I'm actually using Xwayland (even though I don't have any Xwayland processes on my machine anymore), then if "xflux is maintained", I think the maintainers should update it to work on Xwayland, since redshift works there.

Finally, a hypothetical: what if switching my GDM3 from Xwayland to Xorg had solved the problem. Should we conclude that fluxgui doesn't need redshift support? I think the answer is "no", since many people would prefer to have something that "just works", and it seems that something is redshift.

Here is my ps -feH output:

ps-gdm3-after-xmonad-gnome-login.txt
ps-gdm3-before-login.txt
ps-lightdm-after-i3-login.txt
ps-lightdm-before-login.txt

@linuxazo
Copy link
Contributor Author

linuxazo commented Oct 11, 2022 via email

@linuxazo
Copy link
Contributor Author

linuxazo commented Oct 11, 2022 via email

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

Successfully merging this pull request may close these issues.

2 participants