Monday, June 24, 2019

Emacs Fixed ratio font - Korean, Chinese, Russian Cyrillic



#+title: emacs daemon startup script
#+begin_src sh
#!/bin/sh
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export LC_CTYPE=ko_KR.UTF-8
emacs --daemon
sleep 3
echo "Emacs daemon started"
#+end_src

#+title: emacs client script
#+begin_src sh
[Desktop Entry]
Name=emacsclient
Exec=~/bin/emacsclient_v26
Comment=emacsclient
Terminal=false
Type=Application
Icon=~/bin/icon/emacs_icon_black.png
Name[ko_KR]=Eclient
#+end_src

#+title: dot emas
#+begin_src lisp
;; -- socket dir
(setq server-socket-dir "~/.emacs.d")

;; -- check system name
(defun my-system-is () ;"system name"
  (if (or (string-equal system-name "PII") (string-equal system-name "pii"))
      (defconst my-system-is "PII"))

  (if (or (string-equal system-name "WIGIG") (string-equal system-name "gig"))
      (defconst my-system-is "WIGIG"))

  (if (or (string-equal system-name "kysui-MacBook.local")
      (string-equal system-name "mac")
      (string-equal system-name "mbl.local")
      (string-equal system-name "mac.local"))
      (defconst my-system-is "MAC"))
)
#+end_src

;; font: https://www.freechinesefont.com/wenquanyi-zen-hei-mono-download/
;; -- standalone mode
(cond ((display-graphic-p) ;; this need for daemon with emacsclient
   (when (string-equal my-system-is "WIGIG")

      (set-face-font 'default "D2Coding")
      (set-fontset-font "fontset-default" 'hangul '("D2Coding" . "unicode-bmp"))

      (set-language-info-alist "Cyrillic-CP1251" `((charset cyrillic-iso8859-5)
                (coding-system cp1251)
                (coding-priority cp1251)
                (input-method . "cyrillic-jcuken")
                (features cyril-util)
                (unibyte-display . cp1251)
                (sample-text . "Russian (Русский) Здравствуйте!")
                (documentation . "Support for Cyrillic CP1251."))   '("Cyrillic"))

     (set-fontset-font "fontset-default" 'latin '("DejaVu Sans Mono" . "unicode-bmp"))
     (set-fontset-font "fontset-default" 'hangul '("D2Coding" . "unicode-bmp"))
     (set-fontset-font t 'han (font-spec :family "WenQuanYi Micro Hei Mono" :size 24))
     (dolist (charset '(kana han symbol cjk-misc bopomofo))
        (set-fontset-font (frame-parameter nil 'font)
                          charset
                          (font-spec :family "WenQuanYi Micro Hei Mono" :size 24)
                          )
      )

    (setq face-font-rescale-alist
         '((".*hiragino.*" . 1.2)
          ("WenQuanYi Micro Hei Mono" . 0.84)
          ("NanumGothicCoding" . 1.2307692307692308)))
  ) ; -- end of GIG
 ) ; -- end of display-graphic
) ; -- end of standalone


;; -- running in daemon with graphic
(defun daemon-and-graphic() (interactive)
   (when (string-equal my-system-is "WIGIG")

      (set-face-font 'default "D2Coding")
      (set-fontset-font "fontset-default" 'hangul '("D2Coding" . "unicode-bmp"))

      (set-language-info-alist "Cyrillic-CP1251" `((charset cyrillic-iso8859-5)
                (coding-system cp1251)
                (coding-priority cp1251)
                (input-method . "cyrillic-jcuken")
                (features cyril-util)
                (unibyte-display . cp1251)
                (sample-text . "Russian (Русский) Здравствуйте!")
                (documentation . "Support for Cyrillic CP1251."))   '("Cyrillic"))

     (set-fontset-font "fontset-default" 'latin '("DejaVu Sans Mono" . "unicode-bmp"))
     (set-fontset-font "fontset-default" 'hangul '("D2Coding" . "unicode-bmp"))
     (set-fontset-font t 'han (font-spec :family "WenQuanYi Micro Hei Mono" :size 24))
     (dolist (charset '(kana han symbol cjk-misc bopomofo))
        (set-fontset-font (frame-parameter nil 'font)
                          charset
                          (font-spec :family "WenQuanYi Micro Hei Mono" :size 24)
                          )
      )

    (setq face-font-rescale-alist
         '((".*hiragino.*" . 1.2)
          ("WenQuanYi Micro Hei Mono" . 0.84)
          ("NanumGothicCoding" . 1.2307692307692308)))
  ) ; -- end of WIGIG
) ; -- end of daemon-and-graphic

(add-to-list 'after-make-frame-functions
    (lambda (new-frame)
    (select-frame new-frame)
    (if window-system
    (daemon-and-graphic))))

(if window-system (daemon-and-graphic))
#+end_src

No comments:

Pranten

 Pranten