summaryrefslogtreecommitdiff
path: root/etc/PROBLEMS
diff options
context:
space:
mode:
Diffstat (limited to 'etc/PROBLEMS')
-rw-r--r--etc/PROBLEMS157
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