add perspeen
[dotfiles.git] / emacs.d / config.org
index 49f9377..9c1ade4 100644 (file)
@@ -515,7 +515,8 @@ Revised powerline-center-theme
                   '("%e"
                     (:eval
                      (let* ((active (powerline-selected-window-active))
-                            (mode-line-buffer-id (if active 'sd/mode-line-buffer-id 'mode-line-buffer-id-inactive))
+                            ;; (mode-line-buffer-id (if active 'sd/mode-line-buffer-id 'mode-line-buffer-id-inactive))
+                            (mode-line-buffer-id (if active 'sd/mode-line-buffer-id 'powerline-inactive1))
                             (mode-line (if active 'mode-line 'mode-line-inactive))
                             (my-face1 (if active 'sd/powerline-active1 'powerline-inactive1))
                             (my-face-buffer-modified (if (and (sd/buffer-is-eshel-or-scratch) (buffer-modified-p) (not buffer-read-only)) 
@@ -574,15 +575,17 @@ Fix the issue in mode line when showing triangle
 
 set height in mode line
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (defconst sd/mode-line-font-heigh 100
+    "Defaulet the fontsize on mode line.")
+
   (with-eval-after-load "powerline"
-    (if window-system
-        (progn 
-          (let* ((base-font-size (face-attribute 'default :height)))
-            ;; 100/140;0.8
-            (set-variable 'powerline-height (/ base-font-size 10))
-            (set-variable 'powerline-text-scale-factor (/ (float 100) base-font-size)))
-          (set-face-attribute 'mode-line nil :height 100)
-          (set-face-attribute 'mode-line-inactive nil :height 100))))
+    (when (display-graphic-p)
+      (set-face-attribute 'mode-line-inactive nil :height sd/mode-line-font-heigh)
+      (set-face-attribute 'mode-line nil :height sd/mode-line-font-heigh)
+      (let* ((base-font-size (face-attribute 'default :height)))
+        ;; 100/140;0.8
+        (set-variable 'powerline-height (/ base-font-size 10))
+        (set-variable 'powerline-text-scale-factor (/ (float sd/mode-line-font-heigh) base-font-size)))))
 #+END_SRC
 
 * IDO & SMEX
@@ -673,28 +676,6 @@ Use [[https://github.com/DarwinAwardWinner/ido-ubiquitous][ido-ubiquitous]] for
     ;; (set-face-attribute 'ivy-current-match nil :background "Orange" :foreground "black")
     (define-key read-expression-map (kbd "C-r") 'counsel-expression-history)
     (global-set-key (kbd "C-c C-r") 'ivy-resume))
-
-
-
-  ;; (global-set-key "\C-s" 'swiper)
-  ;; (global-set-key (kbd "<f6>") 'ivy-resume)
-  ;; ;; (global-set-key (kbd "C-x C-f") 'counsel-find-file)
-  ;; (global-set-key (kbd "<f1> l") 'counsel-load-library)
-  ;; (global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
-  ;; (global-set-key (kbd "<f2> u") 'counsel-unicode-char)
-  ;; (global-set-key (kbd "C-c g") 'counsel-git)
-  ;; (global-set-key (kbd "C-c j") 'counsel-git-grep)
-  ;; (global-set-key (kbd "C-c k") 'counsel-ag)
-  ;; (global-set-key (kbd "C-x l") 'counsel-locate)
-  ;; (global-set-key (kbd "C-S-o") 'counsel-rhythmbox)
-
-  ;; (set-face-attribute
-  ;;  'ivy-current-match nil
-  ;;  :background "Orange"
-  ;;  :foreground "black")
-
-  ;; ivy-resume
-  ;; (define-key swiper-map (kbd "M-%") 'swiper-aa-replace)
 #+END_SRC
 
 ** helm
@@ -1730,17 +1711,18 @@ Fix one elscreen issue when startup emacs https://github.com/knu/elscreen/issues
     :init
     (setq elscreen-tab-display-control nil)
     :config
-    (elscreen-start)
+    ;; (elscreen-start)
     (set-face-attribute 'elscreen-tab-current-screen-face nil :foreground "black" :background "yellow")
     (set-face-attribute 'elscreen-tab-other-screen-face nil :foreground "black" :background "disabledControlTextColor" :underline nil)
     ;; (global-unset-key (kbd)); M-TAB switch screen
-    (global-set-key (kbd "s-`") '(lambda () (interactive) (elscreen-goto 0)))
-    (dotimes (i 8)
-      (global-set-key (kbd (concat "s-" (number-to-string (+ i 1))))
-                      `(lambda () (interactive) (elscreen-goto ,(+ i 1)))))
-    (global-set-key (kbd "s-t") 'elscreen-create)
-    (global-set-key (kbd "s-n") 'elscreen-next)
-    (global-set-key (kbd "s-p") 'elscreen-previous))
+    ;; (global-set-key (kbd "s-`") '(lambda () (interactive) (elscreen-goto 0)))
+    ;; (dotimes (i 8)
+    ;;   (global-set-key (kbd (concat "s-" (number-to-string (+ i 1))))
+    ;;                   `(lambda () (interactive) (elscreen-goto ,(+ i 1)))))
+    ;; (global-set-key (kbd "s-t") 'elscreen-create)
+    ;; (global-set-key (kbd "s-n") 'elscreen-next)
+    ;; (global-set-key (kbd "s-p") 'elscreen-previous)
+    )
 #+END_SRC
 
 * Dired
@@ -1987,7 +1969,7 @@ here on Mac, just use "open" commands to pen =.pdf=,  =.html= and image files
     (define-key company-active-map [tab] #'company-complete-selection)
     (global-company-mode)
     ;; magig-commit is text-modeh
-    (setq company-global-modes '(not org-mode magit-status-mode text-mode eshell-mode)))
+    (setq company-global-modes '(not org-mode magit-status-mode text-mode eshell-mode gfm-mode markdown-mode)))
 
   (use-package company-statistics
     :ensure t
@@ -2139,7 +2121,8 @@ bindings in =lispy-mode-map= after loaded. see [[http://stackoverflow.com/questi
     (with-eval-after-load "lispy"
       (define-key lispy-mode-map (kbd "M-o") nil)
       (define-key lispy-mode-map (kbd "g") 'special-lispy-goto-local)
-      (define-key lispy-mode-map (kbd "G") 'special-lispy-goto))
+      (define-key lispy-mode-map (kbd "G") 'special-lispy-goto)
+      (define-key lispy-mode-map (kbd "M-m") 'back-to-indentation))
     :config
     (add-hook 'emacs-lisp-mode-hook (lambda () (lispy-mode 1))))
 
@@ -2991,7 +2974,7 @@ Most use =C-o C-o= to switch buffers; =C-o x, v= to split window; =C-o o= to del
       (delete-other-windows)))
 
   (defhydra sd/hydra-window (:color red :columns nil)
-    "Window"
+    "C-o"
     ;; windows switch
     ("h" windmove-left nil :exit t)
     ("j" windmove-down nil :exit t)
@@ -3008,36 +2991,37 @@ Most use =C-o C-o= to switch buffers; =C-o x, v= to split window; =C-o o= to del
            (interactive)
            (split-window-right)
            (windmove-right))
-     "vert" :exit t)
+     nil :exit t)
     ("x" (lambda ()
            (interactive)
            (split-window-below)
            (windmove-down))
-     "horz" :exit t)
+     nil :exit t)
     ;; buffer / windows switch
-    ("o" sd/toggle-max-windows "one" :exit t)
-    ("C-k" sd/delete-current-window "del" :exit t)
+    ("o" sd/toggle-max-windows nil :exit t)
+    ("C-k" sd/delete-current-window nil :exit t)
     ("C-d" (lambda ()
              (interactive)
              (kill-buffer)
              (sd/delete-current-window))
-     "kill" :exit t)
+     nil :exit t)
 
     ;; ace-window
     ;; ("'" other-window "other" :exit t)
     ;; ("a" ace-window "ace")
-    ("s" ace-swap-window "swap")
-    ("D" ace-delete-window "ace-one" :exit t)
+    ("s" ace-swap-window nil)
+    ("D" ace-delete-window nil :exit t)
     ;; ("i" ace-maximize-window "ace-one" :exit t)
     ;; Windows undo - redo
-    ("u" (progn (winner-undo) (setq this-command 'winner-undo)) "undo")
-    ("r" (progn (winner-redo) (setq this-command 'winner-redo)) "redo")
+    ("u" (progn (winner-undo) (setq this-command 'winner-undo)) nil)
+    ("r" (progn (winner-redo) (setq this-command 'winner-redo)) nil)
 
     ;; ibuffer, dired, eshell, bookmarks
     ;; ("C-i" other-window nil :exit t)
     ("C-b" ido-switch-buffer nil :exit t)
     ("C-f" projectile-find-file nil :exit t)
-    ("C-p" persp-switch :exit t)
+    ("C-r" ivy-recentf nil :exit t)
+    ("C-p" persp-switch nil :exit t)
     ("C-t" projectile-persp-switch-project nil :exit t)
 
     ;; other special buffers
@@ -3051,17 +3035,17 @@ Most use =C-o C-o= to switch buffers; =C-o x, v= to split window; =C-o o= to del
     ;; ("p" paradox-list-packages nil :exit t)
 
     ;; quit
-    ("q" nil "cancel")
-    ("<ESC>" nil)
+    ("q" nil nil)
+    ("<ESC>" nil nil)
     ("C-h" windmove-left nil :exit t)
     ("C-j" windmove-down nil :exit t)
-    ("C-k" windmove-up :exit t)
+    ("C-k" windmove-up nil :exit t)
     ("C-l" windmove-right nil :exit t)
     ("C-;" nil nil :exit t)
     ("n" nil nil :exit t)
     ("[" nil nil :exit t)
     ("]" nil nil :exit t)
-    ("f" nil))
+    ("f" nil nil))
 
   (global-unset-key (kbd "C-o"))
   (global-set-key (kbd "C-o") 'sd/hydra-window/body)
@@ -3506,7 +3490,25 @@ Refer [[https://github.com/fnwiya/dotfiles/blob/c9ca79f1b22c919d9f4c3a0f944ba828
 
   (global-set-key (kbd "C-w") 'sd/kill-region-or-backward-kill-word)
 #+END_SRC
+* Developing
+** perspeen
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (el-get-bundle seudut/perspeen
+    :features perspeen
+    (setq perspeen-use-tab t)
+    (perspeen-mode))
+  ;; super-i to switch to ith workspace
 
+  (defmacro sd/define-keys (map key func &rest args)
+    "A macro to define multi keys "
+    `(define-key ,map ,key (lambda () (interactive) (,func ,@args))))
+
+
+  (with-eval-after-load "perspeen"
+    (dotimes (ii 9)
+      (sd/define-keys perspeen-mode-map (kbd (concat "s-" (number-to-string (+ ii 1))))
+                           perspeen-goto-ws (+ ii 1))))
+#+END_SRC
 * TODO todolist
 ** Rucket
 ** player video on iphone for 
@@ -3522,3 +3524,11 @@ search music on some music web site
 Use =display-graphic-p= instead of =window-system=
 [[info:elisp#Window%20Systems][Window Systems]]
 ** =Interactive= 
+** List operation
+*** add a element to list
+- ~add-to-list~ functions, append
+- ~push~ macro
+- ~(setcdr (last aa) (list element))~
+blog with modify list
+
+draw one line top of the windows