aboutsummaryrefslogtreecommitdiffstats
path: root/nextstep
diff options
context:
space:
mode:
authorGlenn Morris2016-02-27 11:05:10 -0800
committerGlenn Morris2016-02-27 11:05:10 -0800
commit4e461281317f4d542af18a701cf2e4c5a3205dd3 (patch)
tree8030d3a1c55d825dd5d56c3ee626d2c11eca80f5 /nextstep
parent9e078e592f02108c3b27c66513da4696b09e8125 (diff)
downloademacs-4e461281317f4d542af18a701cf2e4c5a3205dd3.tar.gz
emacs-4e461281317f4d542af18a701cf2e4c5a3205dd3.zip
* nextstep/WISHLIST: Merge into etc/TODO and remove.
* etc/TODO: Merge in items from nextstep/WISHLIST. * nextstep/README: Update for this change.
Diffstat (limited to 'nextstep')
-rw-r--r--nextstep/README4
-rw-r--r--nextstep/WISHLIST247
2 files changed, 2 insertions, 249 deletions
diff --git a/nextstep/README b/nextstep/README
index 7724afa43bf..026a048e9d4 100644
--- a/nextstep/README
+++ b/nextstep/README
@@ -101,5 +101,5 @@ interface.
101 101
102The INSTALL file in this directory for compilation instructions. 102The INSTALL file in this directory for compilation instructions.
103 103
104The WISHLIST file in this directory for a list of ideas for future 104The Nextstep section in the etc/TODO file for a list of ideas for
105development of the NS interface. 105future development.
diff --git a/nextstep/WISHLIST b/nextstep/WISHLIST
deleted file mode 100644
index 1c4b9e2deb4..00000000000
--- a/nextstep/WISHLIST
+++ /dev/null
@@ -1,247 +0,0 @@
1 -*- org -*-
2
3 Wish list for the "NS" OS X Emacs port
4 --------------------------------------
5
6 Note: This document is written using "org-mode", a plain-text
7 format supporting outlines. To expand a heading, press TAB. To
8 expand all headings and subheadings, press S-TAB until Emacs
9 responds "SHOW ALL".
10
11* Introduction
12
13This is a wishlist for future development of the "NS" Emacs user
14interface whose primary use is the official Emacs version on OS X.
15
16This list should be seen as a complement to the bug- and wishlist on
17[[http://debbugs.gnu.org/cgi/pkgreport.cgi?package%3Demacs][debbugs]], the Emacs bug tracker.
18
19* Missing features
20
21This sections contains features found in other official Emacs ports.
22
23** Support for "xwidget"
24
25Emacs 25 has support for "xwidgets", a system to include operating
26system components into an Emacs buffer. The components range from
27simple buttons to "webkit" (effectively, a web browser).
28
29Currently, "xwidget" only works for the "gtk+" framework but it is
30designed to be compatible with multiple Emacs ports.
31
32** Respect `frame-inhibit-implied-resize'
33
34When the variable `frame-inhibit-implied-resize' is non-nil, frames
35should not be resized when operations like changing font or toggling
36the tool bar is performed.
37
38Unfortunately, the tool bar (and possible other operations) always
39resize the frame.
40
41** Support `proced' (implement `process-attributes')
42
43Unfortunately, a user-level process like Emacs does not have the
44privileges to get information about other processes under OS X.
45
46There are other ways to do this:
47
48 1) Spawn "ps" and parse the output ("ps" has superuser privileges).
49
50 2) Sign Emacs as part of the distribution process.
51
52 3) Ask the user to self-sign Emacs, if this feature is of interest.
53
54Anders Lindgren <andlind@gmail.com> has implemented
55`process-attributes' for OS X -- which currently only work when
56running Emacs as root.
57
58[[http://emacsredux.com/blog/2013/05/02/manage-processes-with-proced/][See this article by Bozhidar Batsov for an overview of Proced.]]
59
60** Tooltip properties
61
62Tooltip properties like the background color and font are hard wired,
63even though Emacs allow a user to customize such features.
64
65* New features
66
67This section contains features unique to the NS and/or OS X.
68
69** PressAndHold for writing accented character
70
71On OS X, many application supports the press and hold pattern to
72invoke a menu of accented characters. (See example at [[https://support.apple.com/en-us/HT201586][Apple]].)
73
74Currently, this doesn't work in Emacs.
75
76Note that "ns-win.el" explicitly disables this.
77
78Note: This feature might not be allowed to be implemented until also
79implemented in Emacs for a free system.
80
81** Floating scroll bars
82
83In modern OS X applications, the scroll bar often float over the
84content, and is invisible unless actually used. This makes user
85interface less cluttered and more area could be used to contain text.
86
87With floating scroll bars, the user interface would look like it does
88when they are disabled today. However, they will be made visible when
89a scroll action is initiated, e.g. by putting two fingers on a
90trackpad.
91
92Note: This feature might not be allowed to be implemented until also
93implemented in Emacs for a free system.
94
95* Features from the "mac" port
96
97This section contains features available in the "mac" Emacs port.
98
99As the "mac" port (as of this writing) isn't an official Emacs port,
100it might contain features not following the FSF rule "must exist on
101free systems".
102
103The "mac" port is based on the Emacs 22 C-based Carbon interface. It
104has been maintained in parallel to the official Cocoa-based NS
105interface. The Carbon interface has been enhanced, and a number of the
106features of that interface could be implemented NS.
107
108** Smooth scrolling -- maybe not a good idea
109
110Today, by default, scrolling with a trackpad makes the text move in
111steps of five lines. (Scrolling with SHIFT scrolls one line at a
112time.)
113
114The "mac" port provides smooth, pixel-based, scrolling. This is a very
115popular features. However, there are drawbacks to this method: what
116happens if only a fraction of a line is visible at the top of a
117window, is the partially visible text considered part of the window or
118not? (Technically, what should `window-start' return.)
119
120An alternative would be to make one-line scrolling the default on NS
121(or in Emacs in general).
122
123Note: This feature might not be allowed to be implemented until also
124implemented in Emacs for a free system.
125
126** Mouse gestures
127
128The "mac" port defines the gestures `swipe-left/right/up/down',
129`magnify-up/down', and `rotate-left/right'.
130
131It also binds the magnification commands to change the font
132size. (This should be not be done in a specific interface, instead
133Emacs should do this binding globally.)
134
135Note: This feature might not be allowed to be implemented until also
136implemented in Emacs for a free system.
137
138** Synthesize bold fonts
139
140* Open issues
141
142This section contains issues where there is an ongoing debate.
143
144** Key bindings of CMD and ALT
145
146Currently in the "ns" port, ALT is bound to Meta and CMD is bound to
147Super -- allowing the user to use typical OS X commands like CMD-A to
148mark everything.
149
150Unfortunately, when using an international keyboard, you can't type
151normal characters like "(" etc.
152
153There are many alternative key bindings. One solution is to bind CMD
154to Meta and pass ALT to the system. In fact, this is what Emacs did up
155to, and including, version 22. Also, this is how the "mac" port binds
156the keys.
157
158One could envision asymmetrical variants as well, however, this is
159inappropriate for the default setting.
160
161See the discussion on emacs-devel [[https://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01575.html][part 1]] and [[https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00008.html][part 2]].
162
163* Bugs
164
165This sections contains a small selection of bugs which are hard to
166fix. For other bugs, see the official bug tracker debbugs.gnu.org.
167
168** Incorrect translation of Super modifier with Ctrl or Meta on OS X
169
170When pressing `M-s-a', Emacs replies "M-s-å is undefined". What
171happened is a mix of Emacs view that Meta and Super has been pressed,
172and OS X view that ALT-a should yield "å".
173
174The bug reports suggests two different patched, unfortunately, none
175work properly. For example:
176
177 Use a Swedish keyboard layout
178
179 (setq ns-alternate-modifier nil)
180
181 "CMD-ALT-9"
182
183Today, this correctly yields that s-] is undefined. With the either
184of the two patches, Emacs responds that s-9 was pressed.
185
186More investigation is needed to fix this problem.
187
188Links:
189- [[http://debbugs.gnu.org/cgi/bugreport.cgi?bug%3D19977][bug#19977]]
190- [[http://debbugs.gnu.org/cgi/bugreport.cgi?bug%3D21330][bug#21330]]
191- [[http://debbugs.gnu.org/cgi/bugreport.cgi?bug%3D21551][bug#21551]]
192
193** Toggline the toolbar in fullheight or maximized modes
194
195The toolbar, in the NS interface, is not considered part of the text
196area. When it is toggled, the Emacs frame change height accordingly.
197
198Unfortunately, this also occurs when the frame is in fullheight or
199maximized modes (N.B. this is not the same as "fullscreen"). The
200effect is that the full frame size either increases (stretching down
201below the lower edge of the screen) or decreases (leaving space
202between the lower edge of the frame and the lower edge of the screen).
203
204A better solution would be for the frame to retain its size,
205i.e. change the text area.
206
207This is related to the `frame-inhibit-implied-resize' issue.
208
209* Internal development features
210
211** Regression test system (or at least a checklist)
212
213Today, after each change to the user interface, Emacs must be manually
214tested. Often, small details are overlooked ("Oh, I didn't test
215toggling the tool-bar in one of the full screen modes, when multiple
216frame were open -- silly me.")
217
218It would be an enormous help if this could be tested automatically.
219Many features are generic, however, the NS interface provides a number
220of unique features.
221
222*** Existing packages
223
224Note that there is a generic UI test named "[[http://debbugs.gnu.org/cgi/bugreport.cgi?bug%3D21415#284][frame-test.el]]". The NS
225interface pass this, with the exception of two toolbar related
226errors.
227
228*** Anders frame test
229
230Anders Lindgren <andlind@gmail.com> has implemented some (very basic)
231tests for full screen, toolbar, and auto-hiding the menu bar.
232
233** Make sure all build variants work
234
235Emacs can be build in a number of different ways. For each feature,
236consider if is really is "NS" specific, or if it should be applied to
237all build versions.
238
239- With the "NS" interface. This is the normal way to build Emacs on
240 OS X.
241
242- With the "X11" interface. On OS X, this is mainly of interest to
243 developers of Emacs to get a "reference" interface implementations.
244 However, it might be of interest for people working remotely, as X11
245 applications can be used over a network connection.
246
247- Console only.