diff options
Diffstat (limited to 'etc/PROBLEMS')
-rw-r--r-- | etc/PROBLEMS | 157 |
1 files changed, 152 insertions, 5 deletions
diff --git a/etc/PROBLEMS b/etc/PROBLEMS index b4df40f5d8e..19456640299 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -872,7 +872,7 @@ On many systems, it is possible to set LD_LIBRARY_PATH in your environment to specify additional directories where shared libraries can be found. -Other systems allow to set LD_RUN_PATH in a similar way, but before +Other systems allow setting LD_RUN_PATH in a similar way, but before Emacs is linked. With LD_RUN_PATH set, the linker will include a specified run-time search path in the executable. @@ -1289,6 +1289,20 @@ you should use an Emacs input method instead. * X runtime problems +** X security problems + +*** Emacs faces trouble when running as an untrusted client. + +When Emacs is running as an untrusted client under X servers with the +Security extension, it is unable to use some window manager features +but reports them to the window manager anyway. This can lead to +constant prompting by the window manager about Emacs being +unresponsive. To resolve the problem, place: + + (setq x-detect-server-trust t) + +in your early-init.el. + ** X keyboard problems *** `x-focus-frame' fails to activate the frame. @@ -1772,8 +1786,8 @@ which can be carried out at the same time: 7) If selecting text with the mouse is slow, the main culprit is likely `select-active-regions', coupled with a program monitoring - the clipboard on the X server you are connected to. Try turning - that off. + the clipboard or primary selection on the X server you are + connected to. Try turning that off. However, over networks with moderate to high latency, with no clipboard monitor running, the bottleneck is likely to be @@ -1783,6 +1797,12 @@ which can be carried out at the same time: cause Emacs features that relies on accurate mouse position reporting to stop working reliably. +8) If creating or resizing frames is slow, turn off + `frame-resize-pixelwise' (this will not take effect until you + create a new frame); then, enable `x-lax-frame-positioning'. This + means frame placement will be less accurate, but makes frame + creation, movement, and resize visibly faster. + *** Emacs gives the error, Couldn't find per display information. This can result if the X server runs out of memory because Emacs uses @@ -2566,7 +2586,7 @@ keyboard; printing that file on a PostScript printer will show what keys can serve as Meta. The 'xkeycaps' also shows a visual representation of the current -keyboard settings. It also allows to modify them. +keyboard settings. It also allows modifying them. *** GNU/Linux: slow startup on Linux-based GNU systems. @@ -2820,7 +2840,7 @@ one, you could use the following workarounds: directory to that new home directory. . Move all the *.eln files from ~/.emacs.d/eln-cache to a directory out of the C:\Users tree, and customize Emacs to use that - directory for *.eln files. This requires to call the function + directory for *.eln files. This requires calling the function startup-redirect-eln-cache in your init file, to force Emacs to write *.eln files compiled at run time to that directory. . Delete all *.eln files in your ~/.emacs.d/eln-cache directory, and @@ -3406,6 +3426,133 @@ Compose key to stop working. On X Windows, users should not use Emacs configured with PGTK, since this and many other problems do not exist on the regular X builds. +* Runtime problems specific to Android + +** Text displayed in the default monospace font looks horrible. + +TrueType fonts incorporate instruction code executed by the font +scaler (the component responsible for transforming outlines into +bitmap images capable of being displayed onscreen) to align features +of each glyph to pixel boundaries while maintaining their shape, in +order to alleviate visual imperfections produced by scaling. The +substandard instruction code provided by the Android "Droid Sans Mono" +font misplaces features of glyphs containing, as components, "E" and +"F", between PPEM sizes of 16 and 24, resulting in noticeable +whitespace inconsistencies with other glyphs. Furthermore, the +vertical stem in the glyph "T" is positioned too far to the left at +PPEM sizes of 12. + +The remedy for this is to replace the instruction code with +automatically generated code from the FreeType project's "ttfautohint" +program. First, extract '/system/fonts/DroidSansMono.ttf' from your +device: + + $ adb pull /system/fonts/DroidSansMono.ttf + /system/fonts/DroidSansMono.ttf: 1 file pulled, 0 skipped. + 23.1 MB/s (90208 bytes in 0.004s) + +install the "ttfautohint" program: + + http://freetype.org/ttfautohint/ + +generate a font file with new hinting instructions: + + $ ttfautohint DroidSansMono.ttf > DroidSansMono.ttf.rpl + +and upload them to your device, either back to /system/fonts (which is +allowed by free versions of Android, such as Replicant): + + $ adb root + $ adb remount + $ adb push DroidSansMono.ttf.rpl /system/fonts/DroidSansMono.ttf + +or to the user fonts directory described in the "Android Fonts" node +of the Emacs manual. You may want to perform this procedure even if +you are not experiencing problems with character display, as the +automatically generated instructions result in more legible text. + +** Glyphs are missing within the "Arial" font or it does not load. + +Old versions of this font included instruction code that assumed a +degree of latitude from the Microsoft font scaler, which grants fonts +leave to address nonexistent points without aborting the scaling +process, among other invalid TrueType operations. This issue may +extend beyond Arial to encompass a larger selection of old fonts +designed by Microsoft or Monotype; most of the time, installing newer +versions of such fonts will suffice. + +** Some TrueType test fonts don't work. + +It is unlikely that any of these fonts will really prove useful for +text editing tasks, since they are designed for the express purpose of +testing a TrueType font scaler. The following explanation is present +only to satisfy a cat-like curiosity. + +Most TrueType test fonts "hide" points by moving them to a +preposterous location outside the confines of the glyph bounding box. +The Microsoft scaler and FreeType promptly disregard such points. + +Nothing in the TrueType specifications implies that points "hidden" in +this fashion should be afforded any special treatment, and thus Emacs +eschews doing so. Consequently, black streaks are displayed as +Emacs interpolates glyph edges between points within the glyph and +points the test font attempts to hide. + +Since this behavior does not influence the display of real fonts, no +action will be taken to address this problem. + +** Some other font's instruction code produces undesirable results. + +Executing instruction code is not a strict requirement for producing +correct display results from most current fonts. If a font's +instruction code produces results that are merely unpleasing, but not +incorrect, then the font was presumably not designed for Emacs's +scaler. If its uninstructed glyphs are satisfactory (such as when +your screen resolution is high enough to ameliorate scaling +artifacts), disable instruction code execution by appending its family +name to the variable 'sfnt-uninstructable-font-regexp', then +restarting Emacs. + +** CJK text does not display in Emacs, but does in other programs. + +When inserting CJK text into a buffer or visiting a file containing +CJK text, Emacs often fails to locate a suitable font. This problem +manifests itself as hollow squares with numbers and letters within +being displayed in lieu of the text itself. + +The reason for this is Emacs's absence of support for OpenType fonts +utilizing CFF (Compact Font Format) outlines, which the CJK fonts +bundled with Android have been distributed as since Android 7.0. + +The solution is to install a TrueType CJK font to the user fonts +directory detailed in the "Android Fonts" node of the Emacs manual. + +Introducing support for the byzantine CFF font format into the Android +port is a large undertaking that we are looking for volunteers to +perform. If you are interested in taking responsibility for this +task, please contact <emacs-devel@gnu.org>. + +** Emacs can only execute spasmodically in the background. + +Recent Android releases impose "battery optimization" on programs for +which it is not expressly disabled; such optimization inhibits the +execution of background services outside brief windows of time +distributed at intervals of several dozens of minutes. Such programs +as ERC which must send "keep-alive" packets at a rate beyond that at +which these windows arrive consequently lose, yielding connection +timeouts after Emacs has been in the background long enough that +battery optimization enters into effect. + +This optimization can be disabled through the Settings app: navigate +to "Apps & notifications", "Emacs", "Battery", "Battery Optimization", +before clicking the drop-down menu labeled "Not Optimized", selecting +the option "All Apps", scrolling to "Emacs", clicking on its entry and +selecting "Don't Optimize" in the dialog box thus displayed. + +The organization of the Settings app might disagree with that +illustrated above, which if true you should consult the documentation +or any search mechanism for it. + * Build-time problems ** Configuration |