I'm getting the error Unable to load color "unspecified-bg" [16 times] when using emacsclient -c. I've started up emacs using emacs --daemon. This seems to mean that my custom faces won't load.
When starting emacs as usual, and then using M-x server-start, then this problem doesn't happen at all. How can I get emacsclient -c to load the faces properly?
Here's the relevant code:
(custom-set-faces '(default ((t (:inherit nil :stipple nil :background "black" :foreground "white" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 120 :width normal :foundry "unknown" :family "Inconsolata")))))
I'm not 100% sure this would fix your problem, but you really should be using color-theme for syntax highlighting. Custom is meant for beginning emacs users, so I'd suggest you try out color-theme and see if it works. Here's how I have it set up on my machine:
Download the package from the color-theme homepage.
Put the color-theme folder somewhere like ~/.emacs.d/color-theme/.
Make sure this folder is in your load-path. I took the following code from a Steve Yegge post:
In your .emacs:
(defvar emacs-root "~/.emacs.d/")
(labels
((add-path
(p)
(add-to-list
'load-path
(concat emacs-root p))))
(add-path "lisp")
(add-path "color-theme-6.6.0")
(add-path "cedet-1.0"))
(require 'color-theme)
Then you define your color theme:
;; Color-theme
(eval-after-load "color-theme"
'(progn
(color-theme-initialize)
;; Set custom color theme
(defun color-theme-mine ()
"My custom color theme"
(interactive)
(set-cursor-color "#ffffff")
(color-theme-install
'(color-theme-mine
;; Super-light grey on Dark grey
((foreground-color . "#e0e0e0")
(background-color . "#151515")
(background-mode . dark))
(font-lock-comment-face ((t (:foreground "#106010")))) ;; Forest Green
;; More definitions below
;; ...
(color-theme-mine)) ;; end eval-after-load
This will load color-them-mine when you start emacs. You can see all available color themes by typing M-x color-theme <TAB>. To see the full list of faces available, use the command M-x list-faces-display.
Sounds like this might be bug #4776: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=4776#5. If not, consider filing a bug report for this one, using M-x report-emacs-bug.
Related
I installed the monaco fonts from the AUR in archlinux, and set emacs's fonts to monaco, but it doesn't load the monaco fonts when emacs starts, I have to set the font to monaco manually when starting emacs, can anyone one give me some hint of what to do?
This is part of my .emacs.d/init.el:
(custom-set-faces
'(default ((t (:family "Monaco" :foundry "unknown" :slant normal :weight normal :height 128 :width normal)))))
I find the (custom-set-faces ...) doesn't make sense in this case, I use the following code found in https://superuser.com/ and succeed.
(set-frame-font "Monaco 14" nil t)
(add-to-list 'default-frame-alist
'(font . "Monaco 14"))
I'm a long time (26 years) Emacs user, all the way from TECO Emacs to GNU Emacs 23.4 for MacOS X. I can hack Lisp macros and usually find my way around.
Emacs has become very big. And very colorful.
Is there a simple way to make sure that Emacs never changes font size or color ever?
You can turn off all font colours and other decorations with the following line in your .emacs:
(global-font-lock-mode 0)
Emacs has some highlighting that is not controlled by font-lock-mode.
Here is a solution posted by Juri Linkov to the Emacs Dev mailing list, back in 2007:
I use the following trick to post-process faces immediately after they
get created. I also modified this code to not reset mode line faces:
(defun my-faces-fix (&optional frame)
"Fix defined faces."
(interactive)
;; Check if this function is called by `custom-define-hook' from
;; `custom-declare-face' where the variable `face' is bound locally.
(when (boundp 'face)
(dolist (face (face-list))
(unless (memq face '(mode-line mode-line-highlight mode-line-inactive))
;; Reset all face attributes
(modify-face face)))))
;; 1. Fix existing faces
(let ((face t)) (my-faces-fix))
;; 2. Call `my-faces-fix' every time some new face gets defined
(add-to-list 'custom-define-hook 'my-faces-fix)
Here's what I've been using for two years now:
(custom-set-faces
'(default ((t (:inherit nil :height 113 :family "DejaVu Sans Mono"))))
'(font-lock-builtin-face ((nil (:foreground "#7F0055" :weight bold))))
'(font-lock-keyword-face ((nil (:foreground "#7F0055" :weight bold))))
'(font-lock-comment-face ((nil (:foreground "#3F7F5F"))))
'(font-lock-string-face ((nil (:foreground "#2A00FF"))))
'(font-lock-type-face ((t (:underline t :slant italic :foreground "#000000"))))
'(font-lock-constant-face ((t (:foreground "#110099"))))
'(font-lock-variable-name-face ((nil nil)))
'(font-lock-function-name-face ((t (:weight bold)))))
You can customize a bunch of other faces too:
just call M-x customize-face. It will auto-select
the current face.
I tried out the solarized theme (available from here) and really liked it. However, it somehow overwrites my whitespace settings and no matter how I configure the whitespace-face, it gets overwritten. Any ideas on how to control the color of my whitespaces while keeping the neat looking color-theme-solarized-dark?
From .emacs:
;;; Install colortheme
(add-to-list 'load-path "/home/blabla/.emacs.d/color-theme-6.6.0/")
(require 'color-theme)
(eval-after-load "color-theme"
'(progn
(color-theme-initialize)
(color-theme-hober)))
;;; Install solarized
(add-to-list 'load-path "/home/blabla/.emacs.d/emacs-color-theme-solarized")
(require 'color-theme-solarized)
(color-theme-solarized-dark)
This was my previous setup:
(custom-set-faces
'(whitespace-space ((((class color) (background light)) (:background "white" :foreground "darkgrey"))))
'(whitespace-tab ((((class color) (background light)) (:background "white" :foreground "darkgrey")))))
The only thing I found to have any effect was:
(whitespace-space ((t (:background "red"))))
Of course, that just renders an ugly background for every white space.
Using GNU Emacs 23.3.1.
The version of Solarized here has all the faces needed for whitespace-mode to look good with Solarized. It's for Emacs 24 (but may work on Emacs 23 as well if load-theme is present there) only though, but if you don't want to use it you can simply copy the relevant colors into the definition of the color theme you've downloaded.
My emacs (Aquamacs with AucTex) changes font size (in e.g. LaTeX mode) to show the syntax - like this:
Unfortunately this ruins the point of a monospaced font - e.g. my comments do not align. How do I solve this problem?
For the specific example of sections, chapters, etc., add the following to your .emacs:
(setq font-latex-fontify-sectioning 'color)
Edit
Here is the config I usually use to customise the AUCTeX formatting:
;; Only change sectioning colour
(setq font-latex-fontify-sectioning 'color)
;; super-/sub-script on baseline
(setq font-latex-script-display (quote (nil)))
;; Do not change super-/sub-script font
(custom-set-faces
'(font-latex-subscript-face ((t nil)))
'(font-latex-superscript-face ((t nil)))
)
;; Exclude bold/italic from keywords
(setq font-latex-deactivated-keyword-classes
'("italic-command" "bold-command" "italic-declaration" "bold-declaration"))
If you find a solution to this, the beers are on me. The best I've been able to come up with so far is to put the following in my .emacs somewhere and run the function after loading a mode that does this (org-mode does it too).
(defun fix-fonts ()
(interactive)
(mapc
(lambda (face)
(set-face-attribute face nil
;; :family (if (string= system-type "darwin")
;; "Menlo"
;; "Inconsolata")
:width 'normal
:height 1.0
:weight 'normal
:underline nil
:slant 'normal))
(remove 'default (face-list))))
I don't do the family thing anymore, because I didn't have time to figure out a good way to programatically get it right and it doesn't seem to matter, but your mileage might vary. Also, I don't set anything on the "default" font because some of the other values are relative and need that fixed reference point.
I am using emacs 23.2 with the GTK toolkit. I built emacs from source using the following configure-params:
./configure --prefix=/usr --without-makeinfo --without-sound
Which builds emacs with the following configuration:
Where should the build process find the source code? /home/****/incoming/emacs-23.2
What operating system and machine description files should Emacs use?
`s/gnu-linux.h' and `m/intel386.h'
What compiler should emacs be built with? gcc -g -O2 -Wdeclaration-after-statement -Wno-pointer-sign
Should Emacs use the GNU version of malloc? yes
(Using Doug Lea's new malloc from the GNU C Library.)
Should Emacs use a relocating allocator for buffers? yes
Should Emacs use mmap(2) for buffer allocation? no
What window system should Emacs use? x11
What toolkit should Emacs use? GTK
Where do we find X Windows header files? Standard dirs
Where do we find X Windows libraries? Standard dirs
Does Emacs use -lXaw3d? no
Does Emacs use -lXpm? yes
Does Emacs use -ljpeg? yes
Does Emacs use -ltiff? yes
Does Emacs use a gif library? yes -lgif
Does Emacs use -lpng? yes
Does Emacs use -lrsvg-2? no
Does Emacs use -lgpm? yes
Does Emacs use -ldbus? yes
Does Emacs use -lgconf? no
Does Emacs use -lfreetype? yes
Does Emacs use -lm17n-flt? no
Does Emacs use -lotf? yes
Does Emacs use -lxft? yes
Does Emacs use toolkit scroll bars? yes
My OS is OpenSuSE 11.1, GTK version is 2.14.4.
When I'm scrolling within files of a common size (about 1000 lines) holding the up/down-keys, emacs almost hangs and produces about 50% CPU-load. I use the following plugins:
ido
linum
tabbar
auto-complete-config
Starting emacs with -q fixes the problem, but then I don't have any plugins. I can't figure out, which part of my .emacs is responsible for this behaviour.
Here's an excerpt of my .emacs-file:
(require 'ido)
(ido-mode 1)
(require 'linum)
(global-linum-mode 1)
(require 'tabbar)
(tabbar-mode 1)
(tabbar-local-mode 0)
(tabbar-mwheel-mode 0)
(setq tabbar-buffer-groups-function
(lambda ()
(list "All")))
(global-set-key [M-left] 'tabbar-backward)
(global-set-key [M-right] 'tabbar-forward)
;; hide the toolbar (gtk etc.)
(tool-bar-mode -1)
;; Mouse scrolling enhancements
(setq mouse-wheel-progressive-speed nil)
(setq mouse-wheel-scroll-amount '(5 ((shift) . 5) ((control) . nil)))
;; Smart-HOME
(defun smart-beginning-of-line ()
"Forces the cursor to jump to the first none whitespace char of the current line when pressing HOME"
(interactive)
(let ((oldpos (point)))
(back-to-indentation)
(and (= oldpos (point))
(beginning-of-line))))
(put 'smart-beginning-of-line 'CUA 'move)
(global-set-key [home] 'smart-beginning-of-line)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(column-number-mode t)
'(cua-mode t nil (cua-base))
'(custom-buffer-indent 4)
'(delete-selection-mode nil)
'(display-time-24hr-format t)
'(display-time-day-and-date 1)
'(display-time-mode t)
'(global-font-lock-mode t nil (font-lock))
'(inhibit-startup-buffer-menu t)
'(inhibit-startup-screen t)
'(pc-select-meta-moves-sexps t)
'(pc-select-selection-keys-only t)
'(pc-selection-mode t nil (pc-select))
'(scroll-bar-mode (quote right))
'(show-paren-mode t)
'(standard-indent 4)
'(uniquify-buffer-name-style (quote forward) nil (uniquify)))
(setq-default tab-width 4)
(setq-default indent-tabs-mode t)
(setq c-basic-offset 4)
;; Highlighting of the current line
(global-hl-line-mode 1)
(set-face-background 'hl-line "#E8F2FE")
(defalias 'yes-or-no-p 'y-or-n-p)
(display-time)
(set-language-environment "Latin-1")
;; Change cursor color according to mode
(setq djcb-read-only-color "gray")
;; valid values are t, nil, box, hollow, bar, (bar . WIDTH), hbar,
;; (hbar. HEIGHT); see the docs for set-cursor-type
(setq djcb-read-only-cursor-type 'hbar)
(setq djcb-overwrite-color "red")
(setq djcb-overwrite-cursor-type 'box)
(setq djcb-normal-color "black")
(setq djcb-normal-cursor-type 'bar)
(defun djcb-set-cursor-according-to-mode ()
"change cursor color and type according to some minor modes."
(cond
(buffer-read-only
(set-cursor-color djcb-read-only-color)
(setq cursor-type djcb-read-only-cursor-type))
(overwrite-mode
(set-cursor-color djcb-overwrite-color)
(setq cursor-type djcb-overwrite-cursor-type))
(t
(set-cursor-color djcb-normal-color)
(setq cursor-type djcb-normal-cursor-type))))
(add-hook 'post-command-hook 'djcb-set-cursor-according-to-mode)
(define-key global-map '[C-right] 'forward-sexp)
(define-key global-map '[C-left] 'backward-sexp)
(define-key global-map '[s-left] 'windmove-left)
(define-key global-map '[s-right] 'windmove-right)
(define-key global-map '[s-up] 'windmove-up)
(define-key global-map '[s-down] 'windmove-down)
(define-key global-map '[S-down-mouse-1] 'mouse-stay-and-copy)
(define-key global-map '[C-M-S-down-mouse-1] 'mouse-stay-and-swap)
(define-key global-map '[S-mouse-2] 'mouse-yank-and-kill)
(define-key global-map '[C-S-down-mouse-1] 'mouse-stay-and-kill)
(define-key global-map "\C-a" 'mark-whole-buffer)
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(default ((t (:inherit nil :stipple nil :background "#f7f9fa" :foreground "#191919" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 98 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))))
'(font-lock-builtin-face ((((class color) (min-colors 88) (background light)) (:foreground "#642880" :weight bold))))
'(font-lock-comment-face ((((class color) (min-colors 88) (background light)) (:foreground "#3f7f5f"))))
'(font-lock-constant-face ((((class color) (min-colors 88) (background light)) (:weight bold))))
'(font-lock-doc-face ((t (:inherit font-lock-string-face :foreground "#3f7f5f"))))
'(font-lock-function-name-face ((((class color) (min-colors 88) (background light)) (:foreground "Black" :weight bold))))
'(font-lock-keyword-face ((((class color) (min-colors 88) (background light)) (:foreground "#7f0055" :weight bold))))
'(font-lock-preprocessor-face ((t (:inherit font-lock-builtin-face :foreground "#7f0055" :weight bold))))
'(font-lock-string-face ((((class color) (min-colors 88) (background light)) (:foreground "#0000c0"))))
'(font-lock-type-face ((((class color) (min-colors 88) (background light)) (:foreground "#7f0055" :weight bold))))
'(font-lock-variable-name-face ((((class color) (min-colors 88) (background light)) (:foreground "Black"))))
'(minibuffer-prompt ((t (:foreground "medium blue"))))
'(mode-line ((t (:background "#222222" :foreground "White"))))
'(tabbar-button ((t (:inherit tabbar-default :foreground "dark red"))))
'(tabbar-button-highlight ((t (:inherit tabbar-default :background "white" :box (:line-width 2 :color "white")))))
'(tabbar-default ((t (:background "gray90" :foreground "gray50" :box (:line-width 3 :color "gray90") :height 100))))
'(tabbar-highlight ((t (:underline t))))
'(tabbar-selected ((t (:inherit tabbar-default :foreground "blue" :weight bold))))
'(tabbar-separator ((t nil)))
'(tabbar-unselected ((t (:inherit tabbar-default)))))
Any suggestions?
Kind regards,
mefiX
Looks OK to me. The fact that it runs OK with emacs -q is key, since it means you can solve the problem.
Now, I hope that someone offers you a simple diagnosis based on your files, but if not (and hey it's been 7 hours), you can always try the standard .emacs-debugging slow coach. It's not particularly fun, but it'll work.
Chose your pleasure:
(A) Divide and Conquer
Divide your .emacs mentally into 4 parts. Now figure out which quarter is causing your problem by making four separate trial emacs configs: the first with 1/4 of your emacs, the next with half, the next with three quarters, and the final one with everything.
emacs --no-site-file # see if the problem is in your site-wide emacs init
emacs -q -l config1 # is it in the first quarter
emacs -q -l config2 # is it in the first half (i.e. the second quarter)
emacs -q -l config3 # is it in the third quarter
emads -q -l config4 # gotta be here, but test again to be sure
If you don't find the culprit, you can further divide. If you suspect you have a culprit, or just like the look of this method better, try this:
(B) Check each step
load a blank emacs with emacs -q
visit your .emacs in a buffer
visit your 1K line file in another buffer.
use eval-last-sexp C-x C-e, or eval-region to try each section or line in your .emacs, either systematically from the beginning, or starting with any suspect function calls.
Slowly but surely, you'll smoke it out. Sorry I can't offer you instant diagnosis.
In my experience, turning off linum mode solves problem with scroll freeze.
I had the same problem with emacs 24. Turned out to be tabbar-mode that slowed it down.