mihonapp / mihon

Free and open source manga reader for Android
Apache License 2.0
9.46k stars 418 forks source link

Web-page like navigation when using long strip or vertical reading mode #1232

Open P0bo opened 1 week ago

P0bo commented 1 week ago

Describe your suggested feature

Record_2024-09-17-08-13-422 |-|

Current Behavior: In the app's long strip or vertical reading mode, the arrow keys currently allow for stepped scrolling up and down. However, this scrolling behavior often causes the screen to land awkwardly between panels, which interrupts the reading flow. As a result, we have to adjust the position using the mouse to align the panels correctly, which is inconvenient.

Record_2024-09-17-08-36-232-ezgif com-video-to-webp-converter |-|

Feature Suggestion: I would like to suggest implementing webpage-like navigation when reading in long strip or vertical mode using the keyboard. Specifically:

Benefits:

By adding these features, it would improve the overall reading experience, particularly for users who use keyboard navigation.

Other details

Acknowledgements

Animeboynz commented 1 week ago

I doubt keyboard input is a priority as there are even more issues that occur when using a keyboard. I'm assuming you are using a tablet with an attaching keyboard and if it does also have a trackpad you can always use 2 finger scrolling as a temporary alternative.

Bubblekey commented 1 week ago

I'm facing the same issue too. I'm actually using it with a keyboard (no trackpad), so 2-finger scrolling isn't an option for me. Just thought the smooth scrolling could be a nice improvement for users like me who rely on the keyboard a lot.

Buxuna commented 1 week ago

Same here, I’m on Bliss OS and only using a keyboard and mouse. The scroll jumps are super annoying, I tried using the mouse scroll wheel, but it’s not smooth either. It’s like it skips chunks and makes me dizzy sometimes. Smooth scrolling would fix a lot of this.

xiangmonk commented 1 week ago

it’s really awkward using the arrow keys because the panels always end up halfway through the screen.

Buxuna commented 1 week ago

it’s really awkward using the arrow keys because the panels always end up halfway through the screen.

ik man, its really is frustrating when im snacks while reading manhwa and the pages stps in mddle of a panel and i have to wash my hands to adjust it with mouse or awkwardly use left hand to adjust . a L immersion breaker tbh . i see op has made the request in differnt repo since most devs ignore keyboard users since we are not the majority .

cauxar commented 1 week ago

the app called KOTATSU (not a mihon fork) has this , but i dont really like using that app and much prefer Tachiyomi Mihon ui and the simplicity

cauxar commented 1 week ago

Because of this issue i had forced myself to use that app but i could not get used to the ui , and none of the Tachiyomi Mihon fork has this feature

infyProductions commented 1 week ago

I'm currently using the latest beta version (r6887) to try it out on my laptop (Acer E5-475, advanced trackpad mode enabled in the BIOS). Here's my result on WSA running in Windows 11 and Waydroid running with the Sway Windowing Manager:

https://github.com/user-attachments/assets/22b3092a-1858-4ae0-a2ae-5737b03126b7

https://github.com/user-attachments/assets/7d6be7b1-5f02-4a42-b50a-dc5563f53017

P0bo commented 1 week ago

@Animeboynz If it does also have a trackpad, you can always use two-finger scrolling as a temporary alternative.

As @Bubblekey mentioned, I also don't have a trackpad, so that's not really an option.

@Buxuna I tried using the mouse scroll wheel, but it’s not smooth either. It skips chunks and makes me dizzy sometimes.

That's one of the main reasons I keep avoiding using a mouse; I get motion sickness from discrete scrolling.

@cauxar The app called KOTATSU (not a Mihon fork) has this feature, but I don't really like using that app and much prefer Tachiyomi Mihon's UI and its simplicity.

I have also tried that app. The navigation is quite good, but the app has so many problems. One of the biggest ones is that the app's content overlaps with the title bar in windowed mode. Plus, I'm used to Mihon's UI and love ❤️ it.

@infyProductions

I'm testing scrolling using a mouse. As for a trackpad, I don't have one, but I tried it on my friend's devices (a Pixel Tablet and a Galaxy Tab S8), and the two-finger scrolling behaves similarly to mouse scrolling.

https://github.com/user-attachments/assets/2710c145-ed62-42cb-81b7-150588a26430

I intended the feature request to be related to keyboard controls, but regardless, here's the test on Android 14 with Android's native Freeform windows.

You can see there are sudden jumps instead of smooth scrolling. There is no way to control that on Android except with root permissions. Those jumps give me motion sickness when reading for long periods.

To be honest, I'd prefer keyboard navigation over implementing complex smooth scrolling using a mouse, as keyboard use requires the least amount of body movement.

Solutions

As for the solution I've been using for a while, it involves using Key Mapper with Shizuku.

The process is long, hard on the battery, and doesn't always work properly.

Screenshot_2024-09-18-14-51-02-46_d8423a08b6121290d24416c01e98d4dd Screenshot_2024-09-18-14-49-23-75_d8423a08b6121290d24416c01e98d4dd

https://github.com/user-attachments/assets/c7a48ff7-4e62-4599-875f-2dfb33f0af3e

AntsyLich commented 1 week ago

Issues are not for discussion. Join discord for that

abdurisaq commented 1 day ago

i will try to add this feature to the best of my abilities. Ill update back after reading through the code

abdurisaq commented 23 hours ago

Ok i think i got it semi working, I added in a setting in the long strip section of the reader tab where you can check / uncheck variable step scrolling with the arrow keys. It defaults at 75% which would be its original size, and you can go down to 12.5% to give you much more control. I'll probably change the name of the toggle to specify this is an up and down arrow key thing only (left and right will act like up and down originally did, and also space bar works the same as down arrow used to be as requested above), and might put it all the way at the bottom under some keyboard support. Ill clean up the code and see if i can add accessibility controls described in #1008 for volume keys in the same fashion.

https://github.com/user-attachments/assets/fdec2899-ec8f-4149-93f1-c2e9c92e4363

(video showing the process using up and down arrows. End of this video showing using left and right arrow and space bar working like normal, have no idea how to make keyboard inputs show up in the video)

abdurisaq commented 23 hours ago

Please give any feedback you can on its implementation, or if you would like anything changed. This is my first time really trying to directly contribute to an open source project so idk what I'm doing lol.

P0bo commented 19 hours ago

Please give any feedback you can on its implementation, or if you would like anything changed. This is my first time really trying to directly contribute to an open source project so idk what I'm doing lol.

I have some questions

P0bo commented 19 hours ago

This is how i use currently and am satisfied with the experience (exept the setup pain everytime)

https://github.com/user-attachments/assets/47f800dd-ec0b-40a9-a045-40ded07856c1

https://github.com/user-attachments/assets/b837591a-42b0-4e49-b7a8-d05222574eff

https://github.com/user-attachments/assets/ad616a76-e530-4d86-b5f3-ecb3bc35fe26

https://github.com/user-attachments/assets/bc97e156-9dfe-4084-8c9b-96a12f629c45

https://github.com/user-attachments/assets/6a6b58cd-3ecf-4c68-be1f-f2f17e7ef72f

https://github.com/user-attachments/assets/1754b375-2aa3-473d-a7a8-e6fd567d8afb

https://github.com/user-attachments/assets/396dbcb3-2581-4f53-a2c7-b34b6f02d8a2

https://github.com/user-attachments/assets/f0ce3d4f-6d2e-445a-8699-77a2c6edadae

Ripl0gic commented 19 hours ago

I think it would be a lot better if we had an option to customize key actions for navigation. Like, there could be a table where users can assign specific keys like the arrow keys, space, or even WASD or IJKL for moving through the panels. For each key, we could set what happens on a single press and a long press.

For example:

This way, everyone could set it up the way that works best for them, and it would cover both short, precise movements and smooth, continuous scrolling. It would be super helpful for people using different input devices (keyboard, Remote, Control pad etc)

AntsyLich commented 15 hours ago

Once again Issues are not for discussion. Kindly join the Mihon discord And discuss there.