![]() |
#1831 | |
Enthusiast
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 30
Karma: 13854
Join Date: Oct 2014
Device: Kobo Aura H20, Nook Simple Touch with Glowlight
|
Quote:
|
|
![]() |
![]() |
![]() |
#1832 |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,758
Karma: 731681
Join Date: Oct 2014
Location: Antwerp
Device: Kobo Aura H2O
|
I don't know if sed is neat. I think it becomes horribly complicated rather quickly. :P But sed is always available and if all you need is something like grep plus the next n lines it's pretty neat indeed.
|
![]() |
![]() |
Advert | |
|
![]() |
#1833 |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,625
Karma: 3120635
Join Date: Jan 2009
Device: Kindle PW3 (wifi)
|
Hi
Forgive me if this post seems rude. It really was not my intention and I waited quite a long time before sending it. ![]() I was using koreader some months ago and enjoyed it (who cares?). I thought it was more reactive, more handy (folders), generaly speaking more pleasant. I know there has been recently a lot of work on some very technical matters (for me). But there are two basic things that keep me away from using koreader: 1. - It does not have the equivalent of TypeGenius for side-loaded fonts. I had it for some weeks and it was lost after one update. 2. - Hyphenation quality is under average. We have good hyphenation dictionaries in our language, how come we cannot use them? For these two basic reasons, I switched back to the main Kobo reading software some two or three months ago. Can some progress be expected on these two points above in the next months? Last edited by roger64; 10-22-2014 at 10:02 AM. |
![]() |
![]() |
![]() |
#1834 |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,379
Karma: 2155307
Join Date: Nov 2010
Location: Goettingen, Germany
Device: Kindle Paperwhite, Kobo Mini
|
Maybe - development is driven only by motivation. I know that not everyone is a programmer, but those who are, I encourage to take a look: It's easy to contribute!
That said, a few words on the two issues you raised: - TypeGenius: I've seen that for the first time now. You're missing it on an e-ink screen? I think I need to compare a few screenshots to see what it does on a technical level. That one should not be too hard (but still considerable work, so don't hold your breath), since I think there's some groundwork already within the freetype font rendering engine that we're using (and I bet that's what the Kobo software is using, too). - Hyphenation: Well, when there are good free hyphenation dictionaries, we certainly like to include them in the distribution! Can you give pointers? I think they'd be welcome for CoolReader, too. |
![]() |
![]() |
![]() |
#1835 | |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 4,466
Karma: 6900052
Join Date: Dec 2009
Location: The Heart of Texas
Device: Boox Note2, AuraHD, PDA,
|
Quote:
How are the Weight and Sharpness adjustments of TypeGenius any different/superior to those adjustments in KOreader? It may only take some adjustments to the FreeType renderer to meet your needs. One thing to keep in mind though, is that the font itself normally needs the hinting included, if the best results are to be achieved. Kobo's TypeGenius works with Kobo supplied fonts. KOreader has the ability to use hyphenation dictionaries, which is probably the biggest step. Finding a better un-copyrighted hyphenation dictionary, is what would be needed. Luck; Ken P.S.; On the screensaver front; the suspend to book cover image seems to work with .epub but if I turn that off trying to suspend puts me back in the KSM menu. (So I'll double check the default image file and the path to it.) I moved the image file and changed the path, and it no longer crashes on suspend. Now in a .pdb file with or without the use the cover set all I get is the Suspended message. So everything before that must have failed, don't see why yet. Last edited by Ken Maltby; 10-22-2014 at 01:51 PM. |
|
![]() |
![]() |
Advert | |
|
![]() |
#1836 |
♫
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 661
Karma: 506380
Join Date: Aug 2010
Location: Germany
Device: Kobo Aura / PB Lux 2 / Bookeen Frontlight / Kobo Mini / Nook Color
|
Can we edit the existing hyphenation dictionaries?
One problem I come across especially in the German version is that it tries to create very small words with just one or two letters on one side of the hyphen, which usually is wrong. In my opinion it would help a lot already to set up the minimum of letters each side of a hyphen should have. While we're at it, can we sort the hyphenation dictionaries? I tried and failed to do so... |
![]() |
![]() |
![]() |
#1837 |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,625
Karma: 3120635
Join Date: Jan 2009
Device: Kindle PW3 (wifi)
|
@hawhill, Ken Maltby, WS64
Thanks for your replies. I need a little time to provide you online with the most up to date free hyphenation dictionnaries in my language (French). I do this a.s.a.p. For the side-loaded font with my Kobo Glo, I use regularly Linux Libertine otf. I am used to add a little weight to it and I had installed the -deprecated- Kobo Patcher v. 07 which allowed to replicate the advanced Type Genius features to side-loaded fonts. I still use v. 2.8.1. Now, I think GeoffR patcher does the same trick (sharpness and weight). The problem for him is that he has to issue a new patch for every Kobo version, because his patch is not official. This should not happen for koreader. Last edited by roger64; 10-23-2014 at 02:00 AM. Reason: link |
![]() |
![]() |
![]() |
#1838 |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,625
Karma: 3120635
Join Date: Jan 2009
Device: Kindle PW3 (wifi)
|
1. - French hyphenation dictionary
Here is the download link for the main dictionary. http://www.dicollecte.org/download.php?prj=fr On this page, you can download (flagged with a green star) "Césures 3.0." which will provide you with the "hyph-fr-v3.0" folder. Within the file "README_hyph_fr.txt" are the mail coordinates of the authors of the three successives versions. This hyphenation dictionary works with a software named "hyphen" which is part of the Hunspell project. It has been converted from a dictionary for Latex and further improved by several persons. I have no other information. 2. - About Kobo hyphenation Here are also some information published by Joël Goguen about improving hyphenation for a Kobo plugin. https://github.com/jgoguen/calibre-k...er#hyphenation Other information and related files can be found on MobileRead. I hope this can be of some help. Last edited by roger64; 10-22-2014 at 05:14 PM. |
![]() |
![]() |
![]() |
#1839 |
Enthusiast
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 30
Karma: 13854
Join Date: Oct 2014
Device: Kobo Aura H20, Nook Simple Touch with Glowlight
|
Hello,
Does anyone know whether we can call this using some sort of a function pointer? ~/Desktop/kobo-update-3.11.0/koboroot/usr/local/Kobo$ arm-linux-gnueabihf-objdump -T -C ./libnickel.so.1.0.0 |grep -i "imx508" |grep -i "suspend" 004ec9d8 g DF .text 00000010 Base iMX508::suspend() or maybe its this one 0071374c g DF .text 00000024 Base AutomationSurface::sleep(int) or this one? 00758d20 g DF .text 00000028 Base DevicePowerWorkflowManager::requestSleep() Last edited by mementomori; 10-23-2014 at 05:53 AM. Reason: more info |
![]() |
![]() |
![]() |
#1840 |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,379
Karma: 2155307
Join Date: Nov 2010
Location: Goettingen, Germany
Device: Kindle Paperwhite, Kobo Mini
|
Ah, now we're getting at something. Yes, we can. Either by linking binary code, or by using LuaJIT+FFI. My first tests would be using the latter. On the weekend, I can try a bit with my Kobo Mini. I guess the API is the same there.
It's C++ code, so we might have to jump through a few hoops with the calling convention. And iMX508 seems to be a class that we might have to set up an object for before using that method. A good start, but lots to fiddle with. |
![]() |
![]() |
![]() |
#1841 |
Enthusiast
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 30
Karma: 13854
Join Date: Oct 2014
Device: Kobo Aura H20, Nook Simple Touch with Glowlight
|
yeah, the trick does work, i tried out on some sample codes.. At first I tried to do something like this.. (the code for the library is below, compiled using:
g++ -Wall -shared -fPIC -o libdynamic.so dynamic.cpp and the main is compiled using: g++ main.cpp -o go -L. -ldynamic -ldl Code:
for void dynamic::dynamicClass::method01()
#include <dlfcn.h>
handle = dlopen("/usr/local/lib/libdynamic.so",RTLD_LAZY);
void (* functionpointer_method01)(void*);
functionpointer_method01 = (void (*)()) dlsym(handle, "_ZN7dynamic12dynamicClass8method01Ev");
e.g Code:
void method02(int a)
Code:
void method02(int X,int a);
![]() this approach seems to work, but as you mentioned it, will need some labor: Code:
/* 23 October 2014: The Lost Header Exploit */
/*
~/projects/dynamictest$ objdump -T /usr/local/lib/libdynamic.so
/usr/local/lib/libdynamic.so: file format elf32-i386
DYNAMIC SYMBOL TABLE:
00000000 DF *UND* 00000000 GLIBCXX_3.4 _ZNSolsEi
00000000 DF *UND* 00000000 GLIBC_2.1.3 __cxa_atexit
00000000 w D *UND* 00000000 __gmon_start__
00000000 w D *UND* 00000000 _Jv_RegisterClasses
00000000 DF *UND* 00000000 GLIBCXX_3.4 _ZNSt8ios_base4InitC1Ev
00000000 DF *UND* 00000000 GLIBCXX_3.4 _ZNSt8ios_base4InitD1Ev
00000000 w D *UND* 00000000 _ITM_deregisterTMCloneTable
00000000 DF *UND* 00000000 GLIBCXX_3.4 _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
00000000 w D *UND* 00000000 _ITM_registerTMCloneTable
00000000 DO *UND* 00000000 GLIBCXX_3.4 _ZSt4cout
00000000 DF *UND* 00000000 GLIBCXX_3.4 _ZNSolsEPFRSoS_E
00000000 DF *UND* 00000000 GLIBCXX_3.4 _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_
00000000 w DF *UND* 00000000 GLIBC_2.1.3 __cxa_finalize
00000962 g DF .text 00000047 Base _ZN7dynamic12dynamicClass8method02Ev
0000090c g DF .text 0000000d Base _ZN7dynamic12dynamicClassC2Ei
0000090c g DF .text 0000000d Base _ZN7dynamic12dynamicClassC1Ei
00002030 g D .bss 00000000 Base _end
0000202c g D .data 00000000 Base _edata
00000920 g DF .text 00000042 Base _ZN7dynamic12dynamicClass8method01Ev
0000091a g DF .text 00000005 Base _ZN7dynamic12dynamicClassD1Ev
0000202c g D .bss 00000000 Baseg++ main2.cpp -o go -L. -ldynamic -ldl __bss_start
0000091a g DF .text 00000005 Base _ZN7dynamic12dynamicClassD2Ev
00000a76 g DF .text 00000089 Base _ZN7dynamic12dynamicClass8method05Eii
00000734 g DF .init 00000000 Base _init
00000b74 g DF .fini 00000000 Base _fini
00000a0e g DF .text 00000068 Base _ZN7dynamic12dynamicClass8method04Ei
000009aa g DF .text 00000063 Base _ZN7dynamic12dynamicClass8method03Ei
*/
// rearranging base based on address and demangling, i get:
// -----------------------------------------
// dynamic::dynamicClass::dynamicClass(int)
// dynamic::dynamicClass::~dynamicClass()
// dynamic::dynamicClass::~dynamicClass()
// dynamic::dynamicClass::method01()
// dynamic::dynamicClass::method02()
// dynamic::dynamicClass::method03(int)
// dynamic::dynamicClass::method04(int)
// dynamic::dynamicClass::method05(int, int)
// -----------------------------------------
/* note: why dont i get the return value? */
#include <iostream>
namespace dynamic
{
class dynamicClass
{
public:
dynamicClass(int);
~dynamicClass();
void method01();
void method02();
void method03(int);
void method04(int);
void method05(int,int);
};
}
using namespace std;
int main ()
{
dynamic::dynamicClass oDynamicClass(1);
oDynamicClass.method01();
oDynamicClass.method02();
oDynamicClass.method03(1);
oDynamicClass.method04(1);
oDynamicClass.method05(1,2);
return (0);
}
/* outputs:
method01
method02
method03(1)
method04(1)
method05(1,2)
*/
Complete source: https://www.dropbox.com/s/1idg3q2gql...er.tar.gz?dl=0 Last edited by mementomori; 10-23-2014 at 12:18 PM. Reason: reformat |
![]() |
![]() |
![]() |
#1842 |
Enthusiast
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 30
Karma: 19606
Join Date: Sep 2013
Device: Kobo Touch
|
Ken, Chrox has fixed something around the screensaver in 880 (for me, crashing back to KSM on suspend for books with no cover/use this cover disabled), see if this fixes anything for you too.
|
![]() |
![]() |
![]() |
#1843 | |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 4,466
Karma: 6900052
Join Date: Dec 2009
Location: The Heart of Texas
Device: Boox Note2, AuraHD, PDA,
|
Quote:
With 880 I can suspend to an .epub cover page, but not to a .pdb cover. For .pdb files I get the suspended Message no matter what. With .epub I also get the Suspended Message when the use this cover is disabled. The thing is there are two conditions before the Suspended Message, both must have failed. One is for my designated image file, the other is for a folder of image files. The defaults variable KOBO_SCREEN_SAVER is used in screensaver.lua But it is not working, as I would expect. I redid both Defaults and the Persistent Defaults, and now my designated image (cracked.png) is showing up, instead of the Suspended Message with a .pdb file. With an .epub and the use this book's cover disabled, I am now getting the cracked.png image. With the use this book's cover enabled, I get the cover image. So, with redoing both Defaults file entries my designated image is again available, working as it should. Luck; Ken Last edited by Ken Maltby; 10-23-2014 at 02:38 PM. |
|
![]() |
![]() |
![]() |
#1844 |
Groupie
![]() Posts: 150
Karma: 48
Join Date: Apr 2014
Device: Kindle Paperwhite 2, Kobo Aura HD
|
Somewhere during KSM install I had to factory reset, and install everything (I remained with advboot for now), the system is more or less the same as it was this morning (except for upgrading from firmware 3.8 to 3.11), but earlier when I long pressed a word, the dictionary came up with the English - Hungarian one first, and I can skip to the English-English. But now with the same names (I thought the order of lookup is the order of filenames, but I am definitely not right) the English-English dictionary pops up. Is there a way to set my two language dictionary as default?
|
![]() |
![]() |
![]() |
#1845 | |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,379
Karma: 2155307
Join Date: Nov 2010
Location: Goettingen, Germany
Device: Kindle Paperwhite, Kobo Mini
|
Quote:
I'll not get to start working on this before the weekend. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
KOReader: a document reader for PDF, DJVU, EPUB, FB2, HTML, ... (GPLv3) | hawhill | Kindle Developer's Corner | 1289 | 04-07-2025 10:18 AM |
Touch Using two Kobos | tkavan | Kobo Reader | 4 | 06-23-2017 02:47 AM |
2 kobos at once | tsarinaerika | Kobo Reader | 14 | 06-03-2013 04:13 AM |
Syncing between two Kobos | fx3000se | Kobo Reader | 4 | 01-24-2013 02:10 PM |
2 kobos 1 account | retired05 | Kobo Reader | 9 | 05-05-2012 08:25 AM |