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

Linux desktop version #11

Open
glyph opened this issue Aug 22, 2021 · 12 comments
Open

Linux desktop version #11

glyph opened this issue Aug 22, 2021 · 12 comments
Labels
someday-maybe This is a long-term goal that is not presently being worked on.

Comments

@glyph
Copy link
Owner

glyph commented Aug 22, 2021

No description provided.

@sigmavirus24
Copy link

Wayland? X? Both? Neither?

@glyph
Copy link
Owner Author

glyph commented Aug 26, 2021

All the things!! Probably most toolkits do wayland or X pretty transparently to the application, though?

@sigmavirus24
Copy link

I don't actually have the foggiest clue if they do. Based on discussions I've seen and my own troubles as a linux desktop user my best guess is "They don't"

@encukou
Copy link

encukou commented Aug 26, 2021

"Linux desktop" is not a good abstraction here. It's better to think of desktop systems being macOS, Windows, GNOME, KDE, i3, X11 (?), and so on ad absurdum.

Toolkits generally handle cross-platform things pretty transparently, and/or support one of those systems well.
The pain points here will be global keyboard shortcuts and "taskbar" integration. Every system does those differently enough that toolkits can't really paper over the differences.

@glyph
Copy link
Owner Author

glyph commented Aug 27, 2021

Happy to make some sub-tasks here if someone with more current/relevant experience would like to explain how it should be broken down. It’s been an epoch since I last wrote pygtk code

@encukou
Copy link

encukou commented Aug 27, 2021

I can't promise to help out, but I can explain how to help me if I do find the time :)

Without a Mac I can't try this out, and with only a foggy idea of what this thing does it's hard to start hacking.
It would nice to separate the "backend" (logic) and "frontend" (stuff specific to Mac/Windows/...). IMO the best way to do it is to make a toy "frontend" (#10), so that there are multiple frontends and they need a clean common interface.

@glyph
Copy link
Owner Author

glyph commented Aug 29, 2021

@encukou Hey, this specification commentary is helping out already :).

@glyph
Copy link
Owner Author

glyph commented Aug 29, 2021

The "backend" is already separated out in the totally platform-agnostic pommodel.py, and the mac parts are in mac_gui.py and notifs.py (although probably there should be a bit more separation there, maybe a macos package where both of these can live)

@glyph
Copy link
Owner Author

glyph commented Aug 29, 2021

As far as what it does, I'll have to do a more thorough demonstration at some point, but @issackelly was kind enough to put together a quick YouTube video to give you a vague idea, here: https://twitter.com/issackelly/status/1429976930141446173

@jaens
Copy link

jaens commented Oct 24, 2021

Qt (for Python) works across Windows, Mac and Linux reasonably well, and would allow sharing at least some UI code (though not all of it, and it still generally needs different styling tweaks for different platforms even if the business logic is shared).

@waynew
Copy link

waynew commented Oct 28, 2021

Had to pull a mac out of a closet to actually get this thing going - I dig the conceit (I mean, I wrote my own pomodoro tool), especially with the transparent window just on top of everything.

One approach that could work for certain Linux desktops is to make a window that's just the full width of the screen - for tiling WMs like i3 it could hang out beneath/above some windows at full width or something.

I think the part I like the most about this is that you don't have to remember to set your intention and start for each pom, it just starts going and if you don't set your intention it just fails for you, and (IIUC) if you don't score your most recent pom quick enough it's considered a fail?

Also the scoring bit is very interesting - I haven't grokked exactly how it works yet, but I enjoy it.

@encukou
Copy link

encukou commented Oct 29, 2021

FWIW, Qt has flags to make a window translucent graphically and transparent to mouse events. I tried them on Linux but they might work reasonably well elsewhere as well. I used them here: https://github.com/encukou/pointout/blob/a8cd0c8cb304a11f93a54776ae2c3428f6ef7810/pointout.py#L212-L222

@glyph glyph added the someday-maybe This is a long-term goal that is not presently being worked on. label Jan 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
someday-maybe This is a long-term goal that is not presently being worked on.
Projects
None yet
Development

No branches or pull requests

5 participants