Git Product home page Git Product logo

einkbro's Introduction

EinkBro: Small Browser made for Eink devices

EinkBro is designed to fit Eink devices' needs; no unnecessary UI transitions and animations, clear B&W icons, useful features for eink reading experience. It's originated from FOSS Browser, which is fully free/libre (as in freedom) Android app.

Get it on F-Droid

Screenshots

Main Screen Menu Items Toolbar Configuration
Touch Setting Settings Vertical Read

E-Ink specific features

  • tap on screen left/right area for pageUp/Down
  • use physical volume keys for pageUp/pageDown
  • reader mode
  • vertical reading mode (for Chinese/Japanese content)
  • export web content to epub files
  • pageUp / pageDown button on toolbar
  • all icons in high contrast colors
  • tab count in bottom function bar
  • font size configuration in first layer setting.
  • custom font with local font files

Customizable Toolbar Icons

image

  • web title
  • web tab count
  • bookmarks
  • refresh
  • go backward
  • go forward
  • bold font
  • increase font size
  • decrease font size
  • text size configuration dialog
  • touch screen area to turn page buton
  • page up
  • page down
  • reader mode
  • vertical reader mode
  • fulltext translation
  • setting
  • toolbar configuration dialog
  • rotate screen
  • fullscreen

Basic UI/Handling:

  • optimized for one hand handling (toolbar at bottom)
  • tab control
  • fullscreen browsing
  • floating button in fullscreen mode
  • fast toggle for most important settings
  • gesture control for floating navigation button
  • multi-touch gesture support

Some nice extra features:

  • small size
  • search on site
  • open links in background
  • Websearch (from marked text context menu)
  • screenshots of the whole website
  • share/save as PDF
  • open links in other apps (for example YouTube)

Development environment supported by JetBrains

IDE supported by JetBrains

App icon is made by turkkub from www.flaticon.com
Language icons created by Those Icons - Flaticon Split screen icons created by Fajrul Fitrianto - Flaticon

einkbro's People

Contributors

ali-demirtas avatar amsitlab avatar bubu avatar element54 avatar futrdevelopment avatar guillaumeassier avatar happyjake avatar harryheights avatar hdk2d avatar hellohat avatar jumpingyang001 avatar lakhininenina avatar myron472 avatar mzeinstra avatar pbui avatar plateaukao avatar poussinou avatar prasanta-hembram avatar sandeepshahi avatar secangkir-kopi avatar skestars avatar skewedzeppelin avatar smallg0at avatar smarquespt avatar splinet avatar tmahlburg avatar uqs avatar vistaus avatar wanderor avatar xubaocai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

einkbro's Issues

When downloading a .Epub it always is the filename.epub" instead of just .epub

Version 8.11.0:

When downloading .epub files from certain sites that don't provide the name of the file in the url it self it will download the file fine but always add an " to the end of the extension.

To recreate:

Downloading:
https://filesamples.com/samples/ebook/epub/famouspaintings.epub

Gives the file as the correct extension name

Downloading: https://www.fimfiction.net/story/download/41596/epub (as an example of a site that does this)

Gives an " at the end.

This is on a note 9 8.1 os as well as an 8.1 os eReader. So device independent.

Also would be nice if long press showed the link you were selecting above the save options but that is a feature request.

Crash when clicking on "toolbar setting" icon

This is on Android Lollipop on Yotaphone2, logcat says:

E/AndroidRuntime( 3012): Process: info.plateaukao.einkbro, PID: 3012
E/AndroidRuntime( 3012): java.lang.NoSuchMethodError: No virtual method setImageIcon(Landroid/graphics/drawable/Icon;)V in class Landroid/widget/ImageView; or its super classes (declaration of 'android.widget.ImageView' appears in /system/framework/framework.jar:classes2.dex)
E/AndroidRuntime( 3012): 	at d.a.a.h.h.u0$a.getView()
E/AndroidRuntime( 3012): 	at de.baumann.browser.view.sortlistpreference.DragSortListView$c.getView()
E/AndroidRuntime( 3012): 	at android.widget.AbsListView.obtainView(AbsListView.java:2344)
…

Contrast / viewability improvements for standard/reader mode: dark text, halftone images

On my Onyx BOOX Max Lumi, at the highest "Regal" display quality, I consistently find:

  • I need to increase dark contrast to 40--60 to achieve sufficiently dark text. (The full range is 0--100.)
  • As a consequence images are overly dark.
  • In "Regal" mode, images are limited to a 16-shade greyscale pallette, further reducing overall quality.

The BOOX has per-app display settings with the ability to tune darkness, a "watermark" threshold (light shades not displayed), as well as an overall display mode that seems to be based on the underlying e-ink display itself.

Toggling between "Regal" and "Speed" modes, I notice that images switch from being rendered as fully-gradated bitmaps to halftoned images. This is very nearly always an improvement in overall quality and viewability. Text clarity is reduced somewhat. I much prefer "Regal" mode in EInkBrow for the clarity of text rendering, and that works beautifully when using paginated navigationt through the document. But that leaves me fighting for appropriate contrast between text and images.

The underlying problem is of far too many websites specifying a text/background palette that's not either a pure black-on-white or white-on-black. These render as mudded-out greys on e-ink.

Request:

  • Provide a darkness control for text that applies only to text and not other visual elements. (This is effectively a CSS rule or rules applying to all text elements.) The key problem is text on a dark background, which can be difficult to detect or correct. That's already problematic on e-ink devices.
  • Filter all images through a halftone filter, or alternatively an improved dithering filter. Halftone seems to be possible using CSS, see this StackOverflow: https://stackoverflow.com/questions/62497837/how-to-create-halftone-effect-in-images-with-pure-css#62500405 I'm not finding dither support in CSS.

There may also be hooks to engage with the e-ink display itself directly, I'm unfamiliar with specs / APIs.

This is a nice-to-have, not a necessary feature. It would improve render clarity greatly however.

Blinking Cursors

By default, Android enables blinking cursors. I have neuro issues where blinking cursors, other flashing, and other animation can screw with my eyesight and my brain.

I have found 2 solutions--

Either stop blinking cursors, or use white text on black backgrounds for the affected fields on e-ink screens.

I don't think Android allows apps to stop blinking cursors, and my device uses Android 8.1 so it can't use a system setting in Android 10+. An app setting would be helpful.

Enhance the translate feature

Love the einkbro on my Onyx Boox Nova

To me, the current translated page is not user friendly. I am not sure if my proposed method would improve the user-friendliness of the result. Please use the desktop browser to test the procedure first.

Let me explain my idea using an example https://stratechery.com/2021/regulators-and-reality/ as an example.

  1. Go to the translated URL: https://translate.google.com/translate?hl=en&sl=en&tl=en&u=https://stratechery.com/2021/regulators-and-reality/
  2. Open browser's developer console, and then a link will be returned while executing the following command:
  document.getElementById("contentframe").children[0].src
  1. Open the browser with the above link obtained in step 2

I think this way the translated page looks much better. But of coz on step 1 you need to set the correct sl and tl parameters. I am not sure what is the best way to provide the sl and tl parameters for the user to select. But the result seems better.

Enable editing / single-entry deletion of JS / Adblock entries

Under Settings -> Start Control -> Adblock Whitelist and Settings -> Start Control -> JavaScript whitelist, it is possible to add entries, but not to either edit or delete single entries.

The entire whitelist may be deleted.

If a user desires to clear or edit any one entry, the entire list must be deleted and re-entered from scratch.

The option to edit and delete individual entries would be appreciated.

App restarts(??) itself when switching light/dark theme of the device

Bug:
When switching light/dark theme of the device outside of the app, the app either restart itself or closes all of the open tabs to change its theme.
Expected behavior:
The app should change it's theme based on device without disrupting the current open tabs.

Version 8.8.0
OS: Android 11
Downloaded from F-droid

Side note(not related to this issue): I was having trouble viewing embedded imgur video/gif in a website, tell me if I should open another issue for it.

Save tab doesn't work properly

V.8.8.2

Open 2 tabs
Close the browser from task manager for a while , may be 30 minit.

Open the browser
Only first tab is there

"Save as pdf" does not work on Boox Nova 2

As per title, tapping doesn't do anything - no errors returned either. "Save epub" works perfectly.

P.s. A wholehearted thanks for this project, it was badly needed and it's massively changed my routine.

Crash when connect or disconnect with Bluetooth keyboard.

W/VideoCapabilities: Unsupported mime video/rvg2
W/VideoCapabilities: Unsupported mime video/flv1
W/VideoCapabilities: Unsupported mime video/wvc1
W/VideoCapabilities: Unsupported mime video/x-vnd.on2.vp6
I/zygote: Background concurrent copying GC freed 29261(754KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 4MB/8MB, paused 575us total 138.725ms
W/VideoCapabilities: Unsupported mime video/wmv1
W/VideoCapabilities: Unsupported mime video/wmv2
W/VideoCapabilities: Unsupported mime video/xvid
I/VideoCapabilities: Unsupported profile 4 for video/mp4v-es
W/cr_MediaCodecUtil: HW encoder for video/avc is not available on this device.
E/chromium: [ERROR:gl_surface_egl.cc(289)] eglChooseConfig failed with error EGL_BAD_ATTRIBUTE
I/OpenGLRenderer: Initialized EGL, version 1.4
D/OpenGLRenderer: Swap behavior 2
E/cr_ApiBridge: Failed to init handler: Attempt to invoke virtual method 'java.lang.Object java.lang.Class.newInstance()' on a null object reference
I/zygote: Do full code cache collection, code=126KB, data=107KB
I/zygote: After code cache collection, code=122KB, data=76KB
I/zygote: Do partial code cache collection, code=124KB, data=78KB
I/zygote: After code cache collection, code=124KB, data=78KB
Increasing code cache capacity to 512KB
W/cr_AwContents: WebView.destroy() called while WebView is still attached to window.
W/browser: Error loading hosts
W/browser: Error loading hosts
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: info.plateaukao.einkbro, PID: 4690
kotlin.UninitializedPropertyAccessException: lateinit property ninjaWebView has not been initialized
at de.baumann.browser.activity.BrowserActivity.initToolbar$lambda-33(BrowserActivity.kt:843)
at de.baumann.browser.activity.BrowserActivity.lambda$uzL7-qi-cyNo1t90q4XNXWsyAZQ(Unknown Source:0)
at de.baumann.browser.activity.-$$Lambda$BrowserActivity$uzL7-qi-cyNo1t90q4XNXWsyAZQ.onFocusChange(Unknown Source:2)
at android.view.View.onFocusChanged(View.java:6962)
at android.widget.TextView.onFocusChanged(TextView.java:9623)
at android.widget.AutoCompleteTextView.onFocusChanged(AutoCompleteTextView.java:1119)
at android.view.View.handleFocusGainInternal(View.java:6634)
at android.view.View.requestFocusNoSearch(View.java:10875)
at android.view.View.requestFocus(View.java:10854)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3170)
at android.view.View.requestFocus(View.java:10821)
at android.view.View.restoreDefaultFocus(View.java:10800)
at android.view.ViewGroup.restoreDefaultFocus(ViewGroup.java:3227)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2313)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1411)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6802)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
at android.view.Choreographer.doCallbacks(Choreographer.java:723)
at android.view.Choreographer.doFrame(Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
at android.os.Handler.handleCallback(Handler.java:793)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6496)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
I/zygote: Background concurrent copying GC freed 58626(2MB) AllocSpace objects, 1(20KB) LOS objects, 50% free, 6MB/12MB, paused 160us total 154.686ms

App crashes at startup

Logcat:

10-15 20:37:27.027  5080  5080 E AndroidRuntime: FATAL EXCEPTION: main
10-15 20:37:27.027  5080  5080 E AndroidRuntime: Process: info.plateaukao.einkbro, PID: 5080
10-15 20:37:27.027  5080  5080 E AndroidRuntime: kotlin.UninitializedPropertyAccessException: lateinit property ninjaWebView has not been initialized
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at de.baumann.browser.activity.BrowserActivity.initToolbar$lambda-13(BrowserActivity.kt:758)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at de.baumann.browser.activity.BrowserActivity.$r8$lambda$8D4by7gGDdtD2On6E3Vw1gV-xC8(Unknown Source:0)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at de.baumann.browser.activity.BrowserActivity$$ExternalSyntheticLambda5.onFocusChange(Unknown Source:2)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.View.onFocusChanged(View.java:6963)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.widget.TextView.onFocusChanged(TextView.java:9625)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.widget.AutoCompleteTextView.onFocusChanged(AutoCompleteTextView.java:1119)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.View.handleFocusGainInternal(View.java:6635)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.View.requestFocusNoSearch(View.java:10875)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.View.requestFocus(View.java:10854)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.requestFocus(ViewGroup.java:3167)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3211)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.requestFocus(ViewGroup.java:3170)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.View.requestFocus(View.java:10821)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.View.restoreDefaultFocus(View.java:10800)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewGroup.restoreDefaultFocus(ViewGroup.java:3227)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2313)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1411)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6802)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.Choreographer.doCallbacks(Choreographer.java:723)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.Choreographer.doFrame(Choreographer.java:658)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.os.Handler.handleCallback(Handler.java:793)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:99)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:164)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:6496)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
10-15 20:37:27.027  5080  5080 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
10-15 20:37:27.041  1902  3184 W ActivityManager:   Force finishing activity info.plateaukao.einkbro/de.baumann.browser.activity.BrowserActivity
10-15 20:37:27.049  1902  3184 W ActivityManager:   Force finishing activity cn.modificator.launcher/.Launcher
  • App version: built from source on the main branch, Git revision c7b5c91 (the release builds on F-Droid or GitHub will generate stack traces with obfuscated symbols)
  • Device: Xiaomi Duokan Reader Pro
  • OS version: Android 8.1 (build number: MiReaderPro 1.1.8.210610)

Install information

I'm not familiar with the Way I can install this app on my android tablet, can you help?
I downloaded the Source code but didn't know what to do with it.

FR: Volume buttons behavior option

Thank you for EinkBro!

Please consider to make the behavior of the hardware buttons optional in the app settings. Currently it's not possible to regulate the audio volume of media sites because the volume buttons are used for scrolling.

闪退问题

我非常喜欢这款专为墨水屏设计的浏览器,但我的口袋阅一代手机安装它之后打不开,总是闪退,请问是什么问题呢?

App版本;本日最新
系统:8.1.0

Support epub creation on Google-translated webpage

I know this is rather low priority and it's the extension of the feature of #43

Let me first put the test page here: https://stratechery-com.translate.goog/2021/regulators-and-reality/?_x_tr_sl=en&_x_tr_tl=zh-tw

Issue
The page above is a zh-TW translated version of the original article, however due to the fact that Google Translate translate on-the-fly - the content won't be translated until you scroll. Since the export epub feature create based on the content on the screen. Therefore the exported document contain half chinese half english. In order to solve the problem, I have to scroll the page all the way down. And then export.

So I wonder if the Google Translated page can be specially handled so that the full page is translated?

Thank you very much

Bin from source with mic

Hi,

I wanted to use for google voice in browser temporarily i get my voice line running again.

Where do I enable mic permissions in the source code?

Thanks!

  • Jeremy

Animation toggle / disable

On eink devices set to high-quality display (e.g., "Regal" on a Mobius display), any animation causes extensive and distracting display flickering.

An option to disable image animation would be appreciated.

There are several possible implementations, I'm not sure which would be best and/or easiest but:

  • An app specification to disable all animated GIFs, SVGs, and other formats (e.g., webp, webm, MP4, OGG).
  • An option to select an animating element and toggle (enable/disable) animation for that element.
  • An option to toggle animation behaviour for a specific page whist it is displayed.

An example of this is the following Bloomberg article: https://www.bloomberg.com/features/2021-infrastructure-across-america/

The image labled "The Washington Union Station Expansion Project", partway through the article, animates and flashes distractingly when viewed via EInkBro on an Onyx BOOX device at "Regal" display quality. Reducing display quality makes the animation less distracting, though it reduces text quality and increases ghosting.

Configure / tune Reader Mode margins, especially on larger devices

Using an Onyx BOOX 13.3" device, the margins in Reader Mode run uncomfortable close to the sides, top, and bottom of the display. I'd much prefer more whitespace around the document text. Mozilla Fennec Fox Reaer Mode and the Pocket reader (either Web client or Android app) both offer much wider side margins, about 30mm for Fennec Fox and about 15--20mm (varies by font size) in Pocket.

Text excessivly close to margins becomes difficult to read.

Either increasing defaults or offering a user control for this would be appreciated.

Reader Mode on by default?

I have a new eInk Android device arriving tomorrow to replace my Kindle Oasis. Love my Kindle but the browser is awful, so your app pushed me to try a different device! I plan to use it so I'm not staring at LCD panels 12 hours a day. Curious: Can Reader Mode bet set as active by default for every page and if not, is that something you'd consider as a feature request for the future?

Cheers,
kct

8.10 and android tv

The Toolbar is not clickable with the bluetooth mouse

It was clickable in the oldest releases

Custom User Agent Option Not Applying

I can't set a custom user agent and have it take effect. See attached files for the entered agent (Mozilla/5.0 (Linux; Android 8.1.0; Likebook-T80D Build/OPM8.181205.001; ) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.186 Mobile Safari/537.36, file UserAgent, Image 1) and resulting agent (file Result, Image 2). I've also tried entering Mobile and foobar for testing purposes, which result in the same agent, shown in Result.
UserAgent
Result

Dark Mode?

Hi,
I'm aware that the browser is intended for eink devices and dark mode is not necessary but it's so amazingly light and full of features and it makes an very nice daily driver for other devices too.
Are you planning on implementing it?
Thank you for this app, it's absolutely beautiful.

per-site tweaks

Could you implement tweaks on a per-site basis? I'm looking for arbitrary CSS changes and changing what the reading mode buttons do. I expect the CSS changes to be an advanced feature, the user should know how to use CSS themselves.

Primary use case is twitter. I read on there a lot to learn about things, but I'd like to make it a little more eink friendly. The arbitrary CSS would be to change the appearnace of tweets, and the reader buttons would send down/up rather than pageDn/pageUp. On twitter, these keys should allow me to go tweet-by-tweet rather than a fraction of a page.

It would be great to have a set of tweaks that gets applied based on characteristics of the site, like a regex matched against the URL. At the very least for a whole site, across all of its pages.

Page reserved height not working correctly

I'm not seeing a difference when I set "page reserved height" to something small. I tried it at 80, 60, 40, 0. The reserved looks the same. I'm using it because on certain sites, I need more reserved height for some reason. Especially those with annoying headers or footers which stay fixed on the site. Here is one example where I need a smaller reserved height to navigate the page sing the page-up and page-down functions: https://twitter.com/ekverstania/status/1341338767001591808

EinkBro version: 8.7.2
Device: Onyx Boox Poke 2
Android: 9

One suggestion, is it possible to optimize the interface of the mobile web version of Zhihu?

First of all, thank you so much for providing such an excellent software.

Mobile web Zhihu is a website that I use very frequently.

But there is one problem that is very troubling.

The web version of Zhihu repeatedly induces you to download the mobile Zhihu App!

This happens at the bottom of the home page and after you click on the question page. It is very troublesome.

I don't know if this problem can be solved in the software?

微信图片_20211015095133
微信图片_20211015095141
?

Disable cookies and the whitelist

Disable cookies
Add a site to the cookie whitelist (e.x : github.com)
Close the browser
Open it again and login to the site in the whitelist and using it for awhill , keep the tab , close the browesr , open the browser , using the site , close the site , re open the site .
Keep going like that for a while

It doesn't work properly

EinkBro uses the old link, even though the current page shows the page in the new link

First of all, I want to thank you for creating such an amazing app. It's really helpful, I appreciate your efforts!

However, I encountered a problem when using this app. Here are the steps to reproduce it:

  1. Open www.google.com using EinkBro
  2. Search for eink
  3. Open any link in the search result, let's say "E Ink - Wikipedia"

At this point, the address bar still shows the current page is "eink - Google Search", although it's not. The link shown in "Share link" and "Open link with..." is also the link to "eink - Google Search", instead of the correct one("E Ink Wikipedia"). What's more, the opened "E Ink - Wikipedia" page's font is weird, it's different from the page used in normal pages. The page cannot be scrolled using the touch area, either.

This problem doesn't occur when I use "DuckDuckGo" to search, that's weird.

Is it possible to make the page turn function a separate application?

Hello plateaukao, the software works very well on e-ink screen devices.

Now this software is one of my most used software on e-ink screen devices.

The dotted box page turn feature provided by the software is very useful!

So I was thinking:

Can such a function be extracted and made into a separate application.

Because in the phone also browse some other software, such as Zhihu, or Douban, etc., e-ink screen mobile browser open experience is not good, but if in a specific application is not a quick page flip key. I hope that such a function can be extracted separately and made into a hover button that can be quickly closed or opened. Such a button can control the global page turn.

  1. The function is about: hover page button

  2. In the top drop-down menu of the phone, it is better to have a shortcut key to close or open. If there is no shortcut key, you can also do a quick switch in the top drop-down message bar.

  3. The size of the flip button is similar to the size of the button in the Einkbro software.

Lollipop?

Yotaphone is kind of stuck on Lollipop I think. Is there any chance to add Lollipop support?

Next page (forward) button?

Hi,

Is there / would it be possible to have a next page (forward) button for the quick tool bar? I only seem to find the back button.
Sometimes I accidentally go back too much and I can't figure out how to go forward.

Thank you so much for the making and constantly updating this app, it's super useful for my boox!

Browser stop working

Click on tab count icon from toolbar
Click the new tab icon
Click back to close the keyboard
Close the browser
Open the browser

Browser stop working

dark mode

V.8.8.0 support dark mode
Where i can found it?

Reading mode format

Hello
Any plans to enable settings for formatting the Reading mode?
For example the font type and size.
I would like to default to a Sans Font, Bold and define a different font size than in the main browser for a consistent experience.

Thanks

[Feature Request] Add custom rules for Ad Blocker

When I am browsing websites using eink Bro, I sometimes want to change the website layout to better fit the screen. And the easiest way is probably hiding some element with the adblocker. It will be great if we can add custom rules for adblocker in eink Bro.

The way can be a text box. User can test rules on their pc and copy it here.

Or maybe it is possible to expose the setting page of Ad Blocker?

Screenshot_2021-07-01-14-59-32-01.jpg

[Bug] A layout adaptation problem

Describe the bug

Dear developer!
In the process of using, I found a bug in layout/display. As shown in the figure below, on the toolbar configuration page, some texts could not be seen fully. This may be an adaptation problem. I suspect it is because display and font size are set to large (mainly due to display size).
Because of some problems with my eyesight, I often use the largest font and display.
103165857-dbaf8580-4857-11eb-9e22-120ae1901389

App version is 8.12.1, my mobile phone is Google Pixel 2, and the screen resolution setting is 1920* 1080. And my font size and display size are the largest ! ! ! Also, my Android system version is 10.0.
The above is a description of the problem. The overall experience of the software is good. You can see that the design is very attentive. Thank you very much for the efforts of the developers all the time. I hope to receive a reply. Thank you so much!!

Expected behavior

I hope that I can see all of the texts in this list, and in this circumstance, part of them seem to be blocked.

Steps to reproduce the behavior:

1.use the largest font and display in the display setting
2.go to toolbar configuration settings
3.this error could be seen

Screenshot

Screenshot_1628648627 copy

Environment

  1. Version of EinkBro: 8.12.1
  2. Device : Google Pixel 2,
  3. OS version : Android 10.0

Request: readwise support

This browser is so amazing! The reader mode makes web browsing on the Boox great. Thanks for making it.

Would you consider adding Readwise support? They have an API: https://readwise.io/api_deets

now that I am reading so much in this browser, I’d love to have a way to send highlights to Readwise rather than sending all the links to instapaper. Thanks for considering!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.