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

FR: Desktop App #1417

Closed
gerroon opened this Issue Feb 5, 2015 · 9 comments

Comments

Projects
None yet
6 participants
@gerroon

gerroon commented Feb 5, 2015

Hi

It would be very nice if Koreader is wrapped into a desktop app that can scale up to screen size. Koreader is the only pdf reading app that provides additional pdf reading features.

We have bunch of epub readers but nothing like a Koreader Pdf on Linux or Windows.

I tried compailing it on Linux, kind of got it working but the screen size is very small and there is no desktop integration ie opening via file browsers, drag and drop etc. And the Compile folder was a about 1gb for me.

thanks

@anarcat

This comment has been minimized.

Contributor

anarcat commented Mar 15, 2018

this would obviously be useful if/when this is packaged for debian as well (#3108).

Frenzie added a commit to Frenzie/koreader that referenced this issue Mar 18, 2018

Frenzie added a commit that referenced this issue Mar 18, 2018

[feat] SDL2: resize window (#3775)
References #1417 

Bumps base for koreader/koreader-base#614

Also includes:
* Speedup loading from cache EPUB with many files koreader/crengine#133
* Avoid rewriting cache file when no change were made koreader/crengine#134

@anarcat anarcat referenced this issue Mar 19, 2018

Open

merge library patches upstream #3777

2 of 4 tasks complete
@Frenzie

This comment has been minimized.

Member

Frenzie commented Mar 20, 2018

@poire-z

But frankly, as much as I love koreader (and the emulator, to develop), on a desktop where there are alternatives, I would probably not use it as an app...

That's a fairly self-evident conclusion in its current form, but a few relatively minor changes (like the resizing I just added) can go a long way toward making it feel more at home. Have you tried it yet? ;-)

The way I use Evince tends to look like this:
screenshot_2018-03-20_09-40-53-fs8

On the left there's the TOC if available, which is nice. Now obviously Evince is actually optimized for desktop use, but if you have something like a title page that spans the width of a few pages then Evince's fit to width breaks down completely. It's not necessarily that I want to use KOReader as that other apps sometimes let me down in surprisingly fundamental ways. Changing the zoom level around constantly pretty much defeats the point of "fit to width".

But to be a proper desktop app (as opposed to a "mobile port") a distinct frontend would need to be written in something like Qt, maybe interacting with the same old SDL surface backend through dbus. That's a different matter. :-P

@poire-z

This comment has been minimized.

Contributor

poire-z commented Mar 20, 2018

Have you tried it yet? ;-)

Yes, I did, just after you merged it. And went directly full screen hoping to see something like your evince screenshot above. I tried to make paper.pdf displayed as 2 columns, with no success.
I didn't think this was possible with epub, but I just see this morning #3390 (comment) , and with this, it looks nice and new :)
I think the effect of this DCREREADER_TWO_PAGE_THRESHOLD would deserve to be made as a menu option, so people can try toggling this behaviour now matter what the screen geometry is.

But I'm just not a customer for this feature :)
I don't use a linux desktop (haven't for > 15 years since KDE/Gnome at the time). I use Windows. I ssh into a small headless linux for text mode mail and most of my hacking. I launch the emulator that displays via X11 to a XServer on my Windows.
And on Windows, I prefer reading stuff in Firefox, or with SumatraPDF. But, I mainly don't read :) except web pages, etc... If there something sufficiently long to read, I export it as EPUB to read it on my Kobo. It's not because of the lack of apps, it's just the confort.
I don't know about linux desktop ecosystem, and how much a koreader app is needed because of lacks of alternatives. I get thus some people may wish to have the same app for syncing reading between desktop and device, but well... (and the rare few that would want that would 1) need to use linux 2) may as well build the emulator and use it as is :)

So, my main concern and why I'm cold on this topic, is that I don't want it to complexify development, having different code paths and cases, and whenever you add stuff or fix stuff, you'd have to go see and test how it does on the damned desktop app :)
And there are so many stuff to fix or divert to make it usable as a full screen app (nice to find the 2 page mode, but Hold menu is super wide, bottom menu is super wide with extra long buttons, the TOC is single page): many stuff to divert or fix just for this desktop app - that are not even a concern on the current code base for devices :|
It's not because it's feasible (and I guess it can be done in a few weeks of fulltime work) that we should do it :)

But to be a proper desktop app (as opposed to a "mobile port") a distinct frontend would need to be written in something like Qt, maybe interacting with the same old SDL surface backend through dbus. That's a different matter. :-P

Yes, so that's no more KOReader and I have then nothing against :) I'm just not interested :)

@KenMaltby

This comment has been minimized.

KenMaltby commented Mar 20, 2018

While I did ask for a Windows binary once, not for reading on my PC but to have the PC as part of a "Network of KOReader devices". Zsync "publishing" from my PC, mostly. But, if you look at it the right way, KOReader's current approach (having plug-ins that allow interaction with external programs that provide support to reading in KOReader) working with other programs like the calibre content server, Evernote, and Embryo's KOReader Highlights Utility, provides a more versatile interface to PCs than a dedicated "Desktop App". Perhaps someone could make a KOReader branded WiFi and USB server based on "Syncthing", for PC platforms. [2cents worth] That would be another project though.

Luck;
Ken

@Frenzie

This comment has been minimized.

Member

Frenzie commented Mar 20, 2018

@poire-z

And went directly full screen hoping to see something like your evince screenshot above.

Note that you have to select dual page display manually, a quick d for those in the know. It defaults to either fit page or fit width. A KOReader with zoom to fit content width dual page would arguably be superior. Note that this is mostly of interest on larger devices (possibly H2O, definitely Aura One) in landscape. Resizing the KOReader window is just an easier way of triggering the right conditions for testing purposes.

in Firefox

Wow, really? PDF.js is amazing but still. :-)

I don't know about linux desktop ecosystem, and how much a koreader app is needed because of lacks of alternatives.

Oh, there's no need.

  • Evince is very decent in spite of its major flaw. There's also the MATE Evince fork the name of which I forget (Atril). It's Evince with a traditional menu. Which is slightly better, at least until Evince fixes Alt+key for menu access on their touchy interface.
  • Okular is good.
  • Xpdf is less interesting but very fast.
  • MuPDF is not really interesting (basically just a rendering demo) but very fast.
  • There's an old discontinued version of Acrobat Reader. When I last checked it a few years ago it was still decent enough. (Of course it doesn't open DjVu.)
  • Zathura is perhaps the most direct competitor to how a KOReader mobile port could work on desktop. It is excellent but harder to use (see here).
  • calibre is decent enough for EPUB, although I find the UX surprisingly awkward. I think I might actually prefer using KOReader instead even today. Lack of OS integration is the only thing stopping me.
  • coolreader is a thing of course. It's a Qt app which comes with some slight perks from a desktop perspective, but overall it's very similar for obvious reasons.
  • There's something called FBReader. I don't really care for it, at least the version that comes with Debian Stretch.
fbreader/stable,unstable,now 0.12.10dfsg2-2+b1 amd64 [installed]
  e-book reader
  • Kitabu (for Mac) looks cool. Like Evince for EPUBs.

Through Wine you can easily use the likes Acrobat Reader, Sumatra PDF, Foxit, and STDU Viewer.

And of course the usual suspects (Firefox, Opera, other Chromia) come with built-in PDF viewers.

And there are so many stuff to fix or divert to make it usable as a full screen app (nice to find the 2 page mode, but Hold menu is super wide, bottom menu is super wide with extra long buttons, the TOC is single page): many stuff to divert or fix just for this desktop app - that are not even a concern on the current code base for devices :|

But these are actually issues on devices in landscape mode. Lesser issues perhaps, but my intent here is precisely to make such issues more easily visible. It's a testing aid. I might also implement drag & drop for the same reason, just like on the Android emulator. Opening a file for testing can be awkward sometimes. Especially since you changed the way going up in the file browser works. >_>

It's only because @anarcat brought it up that I took a step back and realized these improvements for development double as improvements for simply using the app on a desktop. Even #3713, which might sound like it's desktop-related, is something I meant for ease of development. I'll not infrequently have multiple KOReader instances open with different files for testing, and it's a pain to switch between them. In effect, a better emulator and a better desktop app are the same thing. It's only when you start thinking about something like AppImages (let alone Debian packages) that it becomes extra (wasted?) effort. On that front I say PRs welcome.

@poire-z

This comment has been minimized.

Contributor

poire-z commented Mar 20, 2018

But these are actually issues on devices in landscape mode. Lesser issues perhaps, but my intent here is precisely to make such issues more easily visible. It's a testing aid.

I have no problem with your recent SDL additions, and I tend to forget there are big devices with high dpi, and that landscape mode exists. So, it's good that you don't forget :)

But see:
I just wanted to see how CoverBrowser looked in landscape mode (I haven't for ages), so your full screen is nice for that (and I no more have to tilt my head 90° :). Looks fine, and I even noticed and corrected a bug. All good.
Then, let's resize it: the file browser is all messed up, the covers do resize in width, but not in height, and not the layout (header, footer).
So, what to do ? Frankly, I don't care about this bug (it's not a real device use case: you restart the device koreader when you change size or dpi).
But you will (because you naturally care about having a nice application, and because you think about that future desktop app :)
May be it's an easy fix (add :onResize() to FileManager), may be it needs a lot of hacking to coverbrowser, which I don't want to get involved with (correct the problem, check the correction has no side effect and does not mess on devices...)

@Frenzie

This comment has been minimized.

Member

Frenzie commented Mar 20, 2018

So, what to do ? Frankly, I don't care about this bug (it's not a real device use case: you restart the device koreader when you change size or dpi).

It's actually a real problem in an Android scenario, albeit one that is currently half-broken for Android-related reasons. But of course we're only talking about at a tenth of the screen height in that case, meaning it's basically just the page numbers being cut off, whereas with a resizable desktop window you can greatly exaggerate the problem beyond what would realistically happen on a device. It's therefore more of a minor graphical glitch than a bug, but it is a real device use case. ;-)

But you will (because you naturally care about having a nice application, and because you think about that future desktop app :)

For a desktop experience the file browser is redundant. Every desktop environment has a very reasonable one available by default. Just like how on Android and some other systems it can make a lot of sense to mostly just ignore it. CoverBrowser still offers something extra though. :-)

May be it's an easy fix

In any case it's easy to work around without having to bother starting the program with -h/-w a little more or less this time around, which gets old quickly. Quickly open a book and go back to the file manager.

Frenzie added a commit to Frenzie/koreader that referenced this issue Apr 8, 2018

Frenzie added a commit that referenced this issue Apr 8, 2018

@Frenzie

This comment has been minimized.

Member

Frenzie commented Apr 10, 2018

@Frenzie Frenzie closed this Apr 10, 2018

@gerroon

This comment has been minimized.

gerroon commented Apr 10, 2018

@Frenzie, massive release bro! And a desktop app? Awesome

I personally would use Koreader to read on desktop. All other desktop apps are good for "browsing" the pdf but not for reading, in my view. For instance things like auto cropping, damn good flow, brightness adjustments, margin adjustments are almost never implemented on desktop apps. Also KOreader probably will be the best epub reader for Linux desktop.

I think one thing that can be added is to have dual page view option, once there, it will be great.

Debian x64
"SDL: no gamecontrollers connected
04/10/18-10:22:57 DEBUG refresh on physical rectangle 0 0 600 800
04/10/18-10:23:00 INFO initializing for device SDL
04/10/18-10:23:00 INFO framebuffer resolution: {
["h"] = 800,
["w"] = 600
}
Illegal instruction"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment