From: Sudish Joseph <sudish@gmail.com>
To: chad <yandros@gmail.com>
Cc: John Wiegley <johnw@newartisans.com>,
Emacs developers <emacs-devel@gnu.org>
Subject: Re: Emacs on OS X development
Date: Sat, 14 Jul 2012 06:35:46 -0400 [thread overview]
Message-ID: <m1mx32mxz1.fsf@barca.uss.net> (raw)
In-Reply-To: <865F0166-C4F6-4CCE-9A66-E85D6A589B51@gmail.com> (chad's message of "Fri, 13 Jul 2012 14:44:55 -0700")
chad <yandros@gmail.com> writes:
> Does this track the emacs 24.1 + mac 3.0 release (plus that small
> bugfix he posted to the list), or the development head + mac 3.0
> release? I'm more interested in following the dev tip than the mac
> port, and I'm having some trouble building a mac port branch that
> correctly understands macosx relocatable apps (it keeps trying to
> shove things into /usr/local).
https://github.com/railwaycat/emacs-mac-port contains a
build-emacs.app.sh script that builds the relocatable mac port app
you're looking for. It doesn't track the dev tree, however.
It's been a couple months since I switched from tracking the bzr dev
tree and --with-ns to the mac port. The big improvements for me are
font rendering, font scaling, fullscreen support and gesture support.
C-g seems to behave better in general.
It's the most native and smooth Emacs experience under OS X yet. That
said, the ns port does have more integration in some places (open file
events are ignored by the mac port).
Emacs 24.1's ns port has ns-auto-hide-menu-bar and it's possible to
emulate fullscreen pretty reasonably using it. See below for what I was
using for a good while. The mac port provides native support for the
relevant frame parameters - it also supports Lion's new fullscreen mode.
-Sudish
(when (boundp 'ns-auto-hide-menu-bar)
(define-key global-map [(super S-return)] 'sj/ns-toggle-menu-bar)
(defun sj/ns-toggle-menu-bar ()
"Toggle the auto-hide of the menu bar."
(interactive)
(setq ns-auto-hide-menu-bar (not ns-auto-hide-menu-bar)))
(define-key global-map [(super return)] 'sj/ns-make-frame-fullscreen)
(defun sj/ns-make-frame-fullscreen ()
"Make the current frame fullscreen."
(interactive)
(setq ns-auto-hide-menu-bar t)
(labels ((fp (p) (frame-parameter (selected-frame) p)))
;; Make this frame large enough to cover the whole screen.
;; set-frame-size takes character rows and columns, so convert
;; all the pixel-based values accordingly.
(let* ((rows (/ (display-pixel-height) (frame-char-height)))
(cols (/ (display-pixel-width) (frame-char-width)))
(fringe-pixels (+ (fp 'left-fringe) (fp 'right-fringe)))
(fringe (/ fringe-pixels (frame-char-width)))
(scrollbar (/ (fp 'scroll-bar-width) (frame-char-width)))
(real-cols (- cols fringe scrollbar)))
(set-frame-size (selected-frame) real-cols rows))
;; Move this frame's window decoration offscreen.
;; - The magic number here is the size of the decorator in pixels.
;; - vertical-gap is any leftover vertical space (pixels) after
;; computing the number of rows above. We distribute this evenly
;; at the top and bottom.
;; - vertical-offset must be negative to move the window decoration
;; offscreen.
(let* ((decorator-size 24)
(vertical-gap (mod (display-pixel-height) (frame-char-height)))
(vertical-offset (- (/ vertical-gap 2) decorator-size)))
(set-frame-position (selected-frame) 0 vertical-offset)))))
(when (boundp 'mac-carbon-version-string)
(defun sj/mac-carbon-toggle-frame-fullscreen ()
"Make the current frame fullscreen."
(interactive)
(let* ((frame (selected-frame))
(fs-param (if (eq (frame-parameter frame 'fullscreen) 'fullboth)
nil
'fullboth)))
(set-frame-parameter frame 'fullscreen fs-param)))
(define-key global-map [(super return)] 'sj/mac-carbon-toggle-frame-fullscreen))
next prev parent reply other threads:[~2012-07-14 10:35 UTC|newest]
Thread overview: 135+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-12 4:06 Emacs on OS X development Lars Magne Ingebrigtsen
2011-09-12 7:23 ` Rasmus
2011-09-12 7:59 ` Glenn Morris
2011-09-13 16:37 ` Adrian Robert
2011-09-13 17:51 ` John Wiegley
2011-09-13 18:27 ` Glenn Morris
2011-09-13 18:43 ` John Wiegley
2011-09-13 18:56 ` Glenn Morris
2011-09-13 19:19 ` David Reitter
2011-09-14 1:13 ` Leo
2011-09-14 1:31 ` Stefan Monnier
2012-07-13 0:23 ` John Wiegley
2012-07-13 0:57 ` Paul Michael Reilly
2012-07-13 1:18 ` chad
2012-07-13 1:07 ` chad
2012-07-13 3:12 ` John Wiegley
2012-07-20 13:51 ` Ted Zlatanov
2012-07-21 9:40 ` Pavlo Martynenko
2012-07-21 14:02 ` Michael Albinus
2012-07-24 6:39 ` Pavlo Martynenko
2012-07-25 13:11 ` Michael Albinus
2012-07-21 16:53 ` chad
2012-07-24 13:04 ` Pavlo Martynenko
2012-07-24 14:45 ` Ted Zlatanov
2012-07-25 3:00 ` John Wiegley
2012-07-25 14:41 ` Ted Zlatanov
2012-07-26 22:58 ` YAMAMOTO Mitsuharu
2012-07-29 17:58 ` Donald Curtis
2012-07-29 22:31 ` Ted Zlatanov
2012-07-30 0:04 ` Óscar Fuentes
2012-07-30 3:25 ` Eli Zaretskii
2012-07-30 4:48 ` Óscar Fuentes
2012-07-30 5:06 ` Eli Zaretskii
2012-07-30 22:40 ` Stefan Monnier
2012-07-30 23:01 ` Paul Eggert
2012-07-31 1:38 ` Óscar Fuentes
2012-07-31 13:50 ` Nix
2012-07-31 15:58 ` Ted Zlatanov
2012-08-02 5:16 ` YAMAMOTO Mitsuharu
2012-08-03 21:15 ` Dave Abrahams
2012-07-31 18:31 ` Adrian Robert
2012-08-03 20:08 ` Ted Zlatanov
2012-08-03 20:28 ` Adrian Robert
2012-08-05 12:51 ` Jan Djärv
2012-12-21 17:20 ` Ted Zlatanov
2012-12-23 14:50 ` Jan Djärv
2012-12-24 0:23 ` YAMAMOTO Mitsuharu
2012-12-24 10:22 ` Jan Djärv
2012-07-25 7:17 ` chad
2012-07-27 12:17 ` Pavlo Martynenko
2012-07-22 9:31 ` Stefan Monnier
2012-07-22 22:16 ` Paul Michael Reilly
2012-07-23 7:26 ` Ivan Andrus
2012-07-23 8:46 ` Stefan Monnier
2012-07-23 13:52 ` Paul Michael Reilly
2012-07-23 19:45 ` John Wiegley
2012-07-23 20:11 ` Eli Zaretskii
2012-07-23 23:12 ` John Wiegley
2012-07-23 20:20 ` Paul Eggert
2012-07-23 23:13 ` John Wiegley
2012-07-23 20:46 ` Jan Djärv
2012-07-23 21:17 ` Paul Michael Reilly
2012-07-23 21:28 ` Jan Djärv
2012-07-23 23:26 ` Stefan Monnier
2012-07-24 6:25 ` Jan Djärv
2012-07-24 8:36 ` YAMAMOTO Mitsuharu
2012-07-25 7:27 ` Jan Djärv
2012-07-25 8:15 ` YAMAMOTO Mitsuharu
2012-07-24 9:01 ` Stefan Monnier
2012-07-25 7:38 ` Jan Djärv
2012-07-24 16:09 ` Eli Zaretskii
2012-07-25 7:43 ` Jan Djärv
2012-07-23 23:15 ` John Wiegley
2012-07-23 23:40 ` chad
2012-07-23 21:45 ` chad
2012-07-23 23:00 ` John Wiegley
2012-07-24 1:13 ` Leo
2012-07-23 18:57 ` Ted Zlatanov
2012-07-13 3:28 ` Le Wang
2012-07-13 10:02 ` Jan Djärv
2012-07-13 10:45 ` Ivan Andrus
2012-07-14 8:39 ` Jan Djärv
2012-07-13 12:09 ` Stefan Monnier
2012-07-13 14:00 ` René Kyllingstad
2012-07-13 17:48 ` John Wiegley
2012-07-13 18:16 ` Jan Djärv
2012-07-13 19:07 ` Glenn Morris
2012-07-13 19:54 ` John Wiegley
2012-07-13 20:12 ` Paul Michael Reilly
2012-07-13 20:32 ` Ivan Andrus
2012-07-13 21:04 ` John Wiegley
2012-07-13 21:44 ` chad
2012-07-13 22:30 ` John Wiegley
2012-07-14 10:35 ` Sudish Joseph [this message]
2012-07-14 9:00 ` Jan Djärv
2012-07-14 22:56 ` John Wiegley
2012-07-15 0:54 ` Chong Yidong
2012-07-15 2:45 ` YAMAMOTO Mitsuharu
2012-07-15 3:40 ` John Wiegley
2012-07-15 13:12 ` Paul Michael Reilly
2012-07-15 17:50 ` chad
2012-07-15 21:20 ` Donald Curtis
2012-07-15 21:34 ` Donald Curtis
2012-07-15 22:11 ` chad
2012-07-15 22:22 ` David Reitter
2012-07-18 0:16 ` YAMAMOTO Mitsuharu
2012-07-18 2:56 ` John Wiegley
2012-07-18 3:42 ` YAMAMOTO Mitsuharu
2012-07-18 8:21 ` Pavlo Martynenko
2012-07-18 20:43 ` Donald Curtis
2012-07-18 21:03 ` chad
2012-07-19 8:12 ` Jan Djärv
2012-07-18 17:19 ` Richard Stallman
2012-07-19 13:31 ` Pavlo Martynenko
2012-07-15 22:19 ` David Reitter
2012-07-16 2:20 ` Richard Stallman
2012-07-17 10:18 ` Pavlo Martynenko
2012-07-17 12:14 ` William Stevenson
2012-07-15 21:52 ` Stefan Monnier
2012-07-13 17:48 ` John Wiegley
2011-09-14 2:21 ` chad
2011-09-14 3:00 ` Lars Magne Ingebrigtsen
2011-09-14 12:54 ` Jan D.
2011-09-13 19:51 ` Jan Djärv
2011-09-13 19:57 ` Adrian Robert
2011-09-13 20:33 ` Jan Djärv
2011-09-13 20:05 ` Richard Stallman
2011-09-13 21:47 ` John Wiegley
2011-09-14 1:59 ` Richard Stallman
2011-09-14 2:09 ` John Wiegley
2011-09-14 14:10 ` Richard Stallman
2011-09-14 14:30 ` Stephen Eilert
2011-09-14 18:06 ` Glenn Morris
2011-09-15 4:11 ` Richard Stallman
2012-07-13 1:14 ` Samuel Bronson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m1mx32mxz1.fsf@barca.uss.net \
--to=sudish@gmail.com \
--cc=emacs-devel@gnu.org \
--cc=johnw@newartisans.com \
--cc=yandros@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.