1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2;;;;
  3;;;;           use packages
  4;;;;
  5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  6
  7(require 'package)
  8(setq package-check-signature nil)
  9(add-to-list 'package-archives
 10       '("melpa" . "https://melpa.org/packages/") t)
 11(package-initialize)
 12
 13(eval-when-compile
 14  (require 'use-package))
 15
 16
 17(use-package magit
 18  :init
 19  (setq magit-git-executable "c:/Program Files/Git/bin/git.exe"))
 20
 21(use-package exec-path-from-shell
 22  :config
 23  (when (memq window-system '(mac ns x))
 24  (exec-path-from-shell-initialize)))
 25
 26
 27(use-package company
 28  :init
 29  (setq company-minimum-prefix-length 3
 30    company-text-icons-add-background t
 31    company-tooltip-idle-delay 10
 32    company-tooltip-minimum-width 40
 33    company-tooltip-minimum 4
 34    company-show-numbers t
 35    company-idle-delay 0
 36    completion-ignore-case nil
 37    company-dabbrev-downcase nil
 38    company-text-face-extra-attributes '(:weight bold :slant italic)
 39    company-format-margin-function 'company-text-icons-margin)
 40  :config
 41  (global-company-mode)
 42  (define-key company-active-map (kbd "<tab>") #'company-complete-selection)
 43  (define-key company-active-map (kbd "C-n") #'company-select-next-or-abort)
 44  (define-key company-active-map (kbd "C-p") #'company-select-previous-or-abort))
 45
 46(use-package company-posframe
 47  :config
 48  (company-posframe-mode 1))
 49
 50(use-package aggressive-indent
 51  :config
 52  (add-hook 'emacs-lisp-mode-hook #'aggressive-indent-mode))
 53
 54(use-package ivy-prescient
 55  :config
 56  (setq prescient-history-length 30)
 57  (setq prescient-aggressive-file-save t))
 58
 59(use-package auto-complete
 60  :init
 61  (setq ac-use-menu-map t)
 62  (setq ac-ignore-case t)
 63  (setq ac-auto-start 3)
 64  :config
 65  (define-key ac-completing-map "\C-n" 'ac-next)
 66  (define-key ac-completing-map "\C-p" 'ac-previous)
 67  (when (file-remote-p default-directory) (auto-complete-mode))
 68  (ac-linum-workaround))
 69
 70(use-package undo-tree
 71  :init
 72  (setq undo-tree-auto-save-history nil)
 73  (setq undo-tree-history-directory-alist '(("." . "~/.emacs.d/undo")))
 74  :config
 75  (global-undo-tree-mode))
 76
 77(use-package evil
 78  :init
 79  (setq evil-emacs-state-cursor '("black" box)
 80	evil-normal-state-cursor '("purple" box)
 81	evil-visual-state-cursor '("orange" box)
 82	evil-insert-state-cursor '("magenta" bar))
 83  :config
 84  (evil-mode 1)
 85  (evil-set-initial-state 'magit-diff-mode 'motion)
 86  (evil-set-undo-system 'undo-tree)
 87  (define-key evil-normal-state-map (kbd "SPC") 'avy-goto-char-2)
 88  (setq evil-emacs-state-modes (delq 'ibuffer-mode evil-emacs-state-modes))
 89  (evil-define-key 'normal org-mode-map (kbd "<tab>") #'org-cycle))
 90
 91(use-package swiper
 92  :init
 93  (global-set-key "\C-s" 'swiper))
 94
 95(use-package counsel
 96  :init
 97  (global-set-key (kbd "C-x C-f") 'counsel-find-file)
 98  (global-set-key (kbd "C-x C-r") 'counsel-recentf)
 99  (global-set-key (kbd "M-x") 'counsel-M-x)
100  :config
101  (counsel-mode))
102
103(use-package ivy
104  :init
105  (setq ivy-count-format "(%d/%d) ")
106  (setq ivy-use-virtual-buffers t)
107  (setq ivy-extra-directories nil)
108  (setq ivy-height 10)
109  :config
110  (setq enable-recursive-minibuffers t)
111  (ivy-mode 1)
112  (global-set-key (kbd "C-x b") 'ivy-switch-buffer))
113
114(use-package avy
115  :init
116  (setq avy-background t)
117  (setq avy-orders-alist
118        '((avy-goto-char . avy-order-closest)
119          (avy-goto-word-0 . avy-order-closest))))
120
121(use-package helm
122  :no-require t
123  :init
124  (setq helm-recentf-fuzzy-match t)
125  (setq helm-buffers-fuzzy-matching t))
126
127(use-package rainbow-delimiters
128  :commands rainbow-delimiters-mode
129  :init
130  (add-hook 'prog-mode-hook #'rainbow-delimiters-mode))
131
132(use-package telephone-line
133  :init
134  (setq telephone-line-lhs
135        '((evil   . (telephone-line-evil-tag-segment))
136          (accent . (telephone-line-vc-segment
137                      telephone-line-erc-modified-channels-segment
138                      telephone-line-process-segment))
139          (nil    . (telephone-line-minor-mode-segment
140                      telephone-line-buffer-segment))))
141  (setq telephone-line-rhs
142        '((nil    . (telephone-line-misc-info-segment))
143          (accent . (telephone-line-major-mode-segment))
144          (evil   . (telephone-line-airline-position-segment))))
145  :config
146  (telephone-line-evil-config))
147
148(use-package org-superstar
149  :commands org-superstar-mode
150  :hook
151  (add-hook 'org-mode-hook org-superstar-mode))
152
153
154(use-package projectile
155  :config
156  (projectile-mode +1)
157  (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map))
158
159(use-package anzu
160  :config
161  (global-anzu-mode +1))
162
163(use-package org-tempo)
164
165(use-package sql-indent
166  :config
167  ;;(define-key map (kbd "M-=") #'align))
168  )
169
170(use-package diminish
171  :config
172  (dolist (mode '(auto-fill-function
173                  projectile-mode
174                  company-mode
175                  company-posframe-mode
176                  ivy-mode
177                  eldoc-mode
178                  undo-tree-mode
179                  anzu-mode
180                  flyspell-mode
181                  counsel-mode
182                  company-box-mode
183                  sqlind-minor-mode
184                  auto-complete-mode))
185    (diminish mode)))
186
187
188(use-package deft
189  ;; https://github.com/jrblevin/deft
190  ;; c-l
191  ;; c-c c-t toggle search
192  ;; c-c c-c to clear filter
193  ;; c-c c-l filter
194  ;; c-c c-g refresh deft
195  :bind ("<f8>" . deft)
196  :commands (deft)
197  :config
198  (setq deft-file-naming-rules
199	'((noslash . "-")
200	  (nospace . "-")
201	  (case-fn . upcase)))
202
203  (setq deft-extensions '("org" "md")
204	deft-directory "c:/Users/hzhang/notes/"
205	deft-use-filename-as-title t
206	deft-time-format " %Y-%m-%d %H:%M"
207	deft-recursive t)
208  (setq deft-window-width 70)
209
210  (setq deft-ignore-file-regexp "\\(tmp\\|prep-debrief\\|cheetsheet\\|readme\\)"))
211
212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
213;;;;
214;;;;          end of use packages
215;;;;
216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
217
218(use-package hz-mode
219  :load-path "~/.emacs.d/hz-mode/"
220  :config
221  (hz-mode 1))
222
223(use-package tramp
224  :config
225  (add-to-list 'tramp-remote-path 'tramp-own-remote-path)
226  (add-to-list 'tramp-remote-path "/usr/bin"))
227
228(use-package recentf
229  :init
230  (setq recentf-save-file "~/.emacs.d/.recentf")
231  (setq recentf-auto-cleanup 'never)
232  :config
233  (setq recentf-max-saved-items 100)
234  (recentf-mode 1)
235  (run-at-time nil (* 25 60) 'recentf-save-list))
236
237
238;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
239;;;;
240;;;;          Org Mode Settings
241;;;;
242;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
243
244(setq org-log-into-drawer t
245      org-log-state-notes-into-drawer t
246      org-log-done 'time
247      org-log-repeat 'time
248      org-log-reschedule 'time
249      org-log-redeadline 'time
250      org-log-note-clock-out t)
251
252(use-package org
253  :init
254  ;; General settings
255  (setq org-use-sub-superscripts nil
256        org-auto-align-tags nil
257        org-tags-column -80
258        org-catch-invisible-edits 'show-and-error
259        org-special-ctrl-a/e t
260        org-insert-heading-respect-content t
261        org-hide-emphasis-markers t
262        org-pretty-entities t
263        org-export-with-sub-superscripts nil
264        org-image-actual-width nil
265        org-descriptive-links nil
266        org-blank-before-new-entry '((heading . t) (plain-list-item . auto))
267        org-clock-auto-clockout-timer 3600
268        org-clock-report-include-clocking-task 1
269        org-clock-mode-line-total 'current
270        org-default-notes-file "~/notes/tmp/default_notes.org"
271        org-archive-location "~/notes/archive/archive_%s::"
272        fill-column 80)
273
274  ;; Agenda files
275  (setq org-agenda-files '("~/notes/todo.org" "~/notes/backlog.org"))
276
277  ;; TODO keywords and faces
278  (setq org-todo-keywords '((sequence "IN-PRG(!)" "TODO(!)" "WAIT(!)" "|" "PAUSE(!)" "DONE(!)")))
279  (setq org-todo-keyword-faces '(("IN-PRG" . "orange") ("WAIT" . "#0000ff") ("PAUSE" . "#6600ff")))
280
281  (defun my/org-agenda-scheduled-format (scheduled)
282    "Format the scheduled date for agenda view."
283    (let ((date (org-time-string-to-time scheduled)))
284      (format "SCHEDULED on %s: " (format-time-string "%Y-%m-%d %a" date))))
285
286  (defun my/org-agenda-format-date-aligned (date)
287    "Format a DATE string for display in the agenda, aligned to the left."
288    (require 'cal-iso)
289    (let* ((day (calendar-day-of-week date))
290           (dayname (calendar-day-name date t))
291           (month (car date))
292           (daynum (cadr date))
293           (year (nth 2 date)))
294      (format "%s, %04d-%02d-%02d" dayname year month daynum)))
295
296  (setq org-agenda-format-date 'my/org-agenda-format-date-aligned)
297
298
299  ;; (defun my-org-agenda-highlight-today ()
300  ;;   "Highlight today in the org-agenda with a green background."
301  ;;   (save-excursion
302  ;;     (goto-char (point-min))
303  ;;     (while (re-search-forward (format-time-string "%Y-%m-%d") nil t)
304  ;; 	(add-text-properties (match-beginning 0) (match-end 0)
305  ;;                            '(face (:background "green" :foreground "black" :weight bold))))))
306
307  (setq org-agenda-custom-commands
308	'(("w" "hz-week-agenda"
309           ((agenda ""
310                    ((org-agenda-prefix-format
311		      '((agenda . " %i %-12:s%-12t")
312			(todo . " %i %-12:c")
313			(tags . " %i %-12:c")
314			(search . " %i %-12:c")))
315		     (org-agenda-time-grid
316		      '((daily today require-timed)
317			(800 1000 1200 1400 1600 1800)
318			"......" "----------------"))
319		     ;; (org-agenda-format-date 'my-org-agenda-highlight-today)
320		     (org-agenda-overriding-header "*My week")
321                     (org-agenda-start-on-weekday nil)
322                     (org-agenda-span 15)
323		     (org-agenda-start-day "-3d")
324		     ))
325
326            (tags "Today"
327                  ((org-agenda-sorting-strategy '(priority-up))))))
328
329	  ("s" "Scheduled things "
330	   ((agenda ""
331		    ((org-agenda-entry-types '(:scheduled :deadline))
332		     (org-agenda-prefix-format
333                      '((scheduled . my/org-agenda-scheduled-format)
334			(deadline . my/org-agenda-scheduled-format)))
335                     (org-agenda-overriding-header "Scheduled Items")))))
336
337          ("g" "Get Things Done"
338           ((agenda ""
339                    ((org-agenda-entry-types '(:deadline :scheduled))
340                     (org-deadline-warning-days 7)
341                     (org-agenda-prefix-format
342                      '((deadline . "  DEADLINE: %d d (%s) : %s")
343			(scheduled . "  SCHEDULED: %d d (%s) : %s")))
344                     (org-agenda-overriding-header "\nDeadlines and Scheduled Items")))
345
346	    (agenda ""
347                    ((org-agenda-entry-types '(:deadline :scheduled))
348                     (org-deadline-warning-days 7)
349		     (org-agenda-deadline-leaders '("!D!: " "In %3d d.: " "Overdue %3d d.: "))
350                     (org-agenda-prefix-format
351		      `((agenda . " %?-12t% s")
352			(timeline . "  % s")))
353                     (org-agenda-overriding-header "Test items")))
354
355            (tags-todo "paul"
356                       ((org-agenda-prefix-format "  %?-12t% s")
357			(org-agenda-overriding-header "Paul")))
358            (todo "IN-PRG"
359                  ((org-agenda-prefix-format "  %s")
360                   (org-agenda-overriding-header "IN Progress Tasks")))))))
361
362
363
364  ;; Capture templates
365  (setq org-capture-templates
366	'(("n" "Note" entry (file org-default-notes-file) "* %? %i\n%U\tFile:%F" :empty-lines 1)
367          ("t" "TODO" entry (file org-default-notes-file) "* TODO %? %i\n%U\tFile:%F" :empty-lines 1)))
368
369  ;; Key bindings
370  (global-set-key "\C-cc" 'org-capture)
371  (global-set-key "\C-ca" 'org-agenda)
372
373  :config
374  ;; (custom-set-faces
375  ;;  '(org-agenda-deadline ((t (:foreground "orange"))))
376  ;;  '(org-scheduled ((t (:foreground "orange"))))
377  ;;  '(org-scheduled-overdue ((t (:foreground "orange"))))
378  ;;  '(org-scheduled-today ((t (:foreground "orange")))))
379
380  (custom-set-faces
381   '(org-agenda-weekend-header ((t (:weight normal)))))
382
383  (setq org-agenda-current-time-string ">>>> now <<<<")
384  (custom-set-faces
385   '(org-agenda-current-time ((t (:foreground "blue" :weight bold)))))
386
387
388  ;; ;; Customize the display of deadline and scheduled values
389  ;; (setq org-agenda-deadline-leaders '("Deadline: " "In %d days: " "%d days ago: "))
390  ;; (setq org-agenda-scheduled-leaders '("Scheduled: " "Sched.%2dx: "))
391
392
393  ;; Priority faces
394  (defun my/org-priority-faces-box ()
395    "Set custom faces for Org mode priorities."
396    (setq org-priority-faces '((?A . (:background "darkgray" :foreground "black" :weight bold))
397                               (?B . (:background "gray" :foreground "black"))
398                               (?C . (:background "lightgray" :foreground "black")))))
399  (add-hook 'org-mode-hook 'my/org-priority-faces-box)
400
401
402  ;; Automatically align tags when saving the file
403  (add-hook 'org-mode-hook
404            (lambda ()
405              (add-hook 'before-save-hook 'org-align-all-tags nil 'local)))
406
407  ;; Done face modification
408  (defun my/modify-org-done-face ()
409    (setq org-fontify-done-headline t)
410    (set-face-attribute 'org-done nil :strike-through t)
411    (set-face-attribute 'org-headline-done nil :strike-through t :foreground "light gray"))
412  (add-hook 'org-mode-hook 'my/modify-org-done-face)
413
414  ;; Emphasis settings
415  (add-to-list 'org-emphasis-alist '("=" (:foreground "red")))
416
417  ;; Fill column settings
418  (defun my-set-fill-column () (setq-local fill-column 80))
419  (add-hook 'org-mode-hook #'my-set-fill-column)
420  (add-hook 'org-log-buffer-setup-hook #'my-set-fill-column)
421  (add-hook 'org-mode-hook 'turn-on-auto-fill)
422
423  ;; Creation date for TODOs
424  (defun set-creation-date-heading-property ()
425    (save-excursion
426      (org-back-to-heading)
427      (org-set-property "CREATED" (format-time-string "[%Y-%m-%d %a %H:%M]"))))
428
429  (defun my-org-mode-date-heading-on ()
430    "Turn on heading creation date property"
431    (interactive)
432    (add-hook 'org-insert-heading-hook #'set-creation-date-heading-property))
433
434  (defun my-org-mode-date-heading-off ()
435    "Turn off heading creation date property"
436    (interactive)
437    (remove-hook 'org-insert-heading-hook #'set-creation-date-heading-property))
438
439  (defun my-org-mode-date-heading-toggle ()
440    "Toggle on/off heading creation date property"
441    (interactive)
442    (if (memq #'set-creation-date-heading-property org-insert-heading-hook)
443	(progn
444          (my-org-mode-date-heading-off)
445          (message "off - heading creation date"))
446      (progn
447	(my-org-mode-date-heading-on)
448	(message "on - heading creation date"))))
449
450  (add-hook 'org-mode-hook #'my-org-mode-date-heading-on)
451
452  ;; Clock settings
453  (org-clock-auto-clockout-insinuate))
454
455
456
457
458;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
459;;;;
460;;;;          Org-Mode Settings end
461;;;;
462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
463
464
465
466
467(defun my-org-screenshot ()
468  "Take a screenshot into a time stamped unique-named file in the
469same directory as the org-buffer and insert a link to this file."
470  (interactive)
471  (setq $fileprefix (car (last (split-string (buffer-file-name) "/"))))
472  (setq filename
473        (concat
474         (make-temp-name
475          (concat "C:/Users/hzhang/notes/assets/"
476		  $fileprefix
477                  "_"
478                  (format-time-string "%Y%m%d_%H%M%S_")) ) ".png"))
479  (shell-command "snippingtool /clip")
480  (shell-command (concat "powershell -command \"Add-Type -AssemblyName System.Windows.Forms;if ($([System.Windows.Forms.Clipboard]::ContainsImage())) {$image = [System.Windows.Forms.Clipboard]::GetImage();[System.Drawing.Bitmap]$image.Save('" filename "',[System.Drawing.Imaging.ImageFormat]::Png); Write-Output 'clipboard content saved as file'} else {Write-Output 'clipboard does not contain image data'}\""))
481  (insert (concat "[[file:" filename "]]"))
482  (org-display-inline-images))
483
484;;(global-set-key "\C-cs" 'my-org-screenshot)
485
486
487;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
488;;;;
489;;;;          General Emacs Settings
490;;;;
491;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
492
493;; Spell checking settings
494(setq ispell-program-name "c:/prgms/msys2/mingw64/bin/hunspell.exe")
495(setenv "DICTIONARY" "en_US")
496(setenv "DICPATH" "c:/prgms/msys2/mingw64/share/hunspell")
497
498
499(defun my-jump-to-outermost-bracket ()
500  "Jump to the outermost bracket."
501  (interactive)
502  (while (condition-case nil
503             (progn
504               (up-list)
505               t)
506           (scan-error nil))))
507(global-set-key (kbd "C-c o") 'my-jump-to-outermost-bracket)
508
509(use-package emacs
510  :init
511  ;; Add paths to exec-path
512  (dolist (path '("C:/Program Files/Git/bin/"
513                  "c:/prgms/msys2/usr/bin/"
514                  "C:/prgms/msys2/mingw64/bin/"
515                  "c:/Program Files/condaplus/"))
516    (add-to-list 'exec-path path))
517
518  ;; Backup settings
519  (setq backup-by-copying t
520        backup-directory-alist '(("." . "~/.saves"))
521        delete-old-versions t
522        kept-new-versions 6
523        kept-old-versions 2
524        version-control t)
525
526  ;; General settings
527  (setq visible-bell t
528        find-program "c:/prgms/msys2/usr/bin/find.exe"
529        grep-program "c:/prgms/msys2/usr/bin/grep.exe"
530        prescient-save-file "c:/Users/hzhang/.emacs.d/var/prescient-save.el"
531        inhibit-splash-screen t
532        dired-listing-switches "-alht --group-directories-first"
533        scroll-conservatively 101
534        whitespace-display-mappings '((space-mark 32 [?ยท]))
535        tab-width 4
536        tab-stop-list (number-sequence 4 200 4)
537        delete-trailing-lines nil
538        display-fill-column-indicator-column 80
539        ls-lisp-format-time-list '("%Y-%m-%d %H:%M" "%Y-%m-%d %H:%M")
540        ls-lisp-use-localized-time-format t)
541
542  ;; Key bindings
543  (global-set-key "\C-x\ \C-b" 'ibuffer)
544
545  ;; Ibuffer settings
546  (setq ibuffer-formats
547        '((mark modified read-only " "
548                (name 35 35 :left :elide) " "
549                (mode 16 16 :left :elide) " "
550                filename-and-process)))
551
552  (setq ibuffer-saved-filter-groups
553        '(("default"
554           ("org" (mode . org-mode))
555           ("sql" (mode . sql-mode))
556           ("stat" (filename . ".sas"))
557           ("python" (mode . python-mode))
558           ("sas-log" (filename . ".log"))
559           ("sas-lst" (filename . ".lst"))
560           ("dired" (mode . dired-mode))
561           ("markdown" (filename . ".md"))
562           ("el" (mode . emacs-lisp-mode))
563           ("bookmark" (name . "*bookmark list*"))
564           ("sh" (mode . sh-mode)))))
565
566  (setq ibuffer-show-empty-filter-groups nil)
567
568  (add-hook 'ibuffer-mode-hook
569            (lambda ()
570              (ibuffer-switch-to-saved-filter-groups "default")))
571
572  :config
573  ;; Disable global highlight line mode
574  (global-hl-line-mode -1)
575
576  ;; Enable various modes
577  (ivy-prescient-mode 1)
578  (prescient-persist-mode 1)
579  (blink-cursor-mode -1)
580  (tool-bar-mode -1)
581  (scroll-bar-mode 1)
582  (menu-bar-mode -1)
583  (column-number-mode 1)
584  (global-linum-mode t)
585  (global-auto-revert-mode t)
586  (show-paren-mode 1)
587  (electric-pair-mode 1)
588  (electric-indent-mode 1)
589
590  ;; Set language environment
591  (set-language-environment "UTF-8")
592
593  ;; Load theme
594  ;; (load-theme 'modus-operandi t)
595
596  ;; Roswell settings
597  (load (expand-file-name "~/.roswell/helper.el"))
598  (setq inferior-lisp-program "ros -Q run")
599
600  ;; Syntax entry modifications
601  (modify-syntax-entry ?_ "w" sql-mode-syntax-table)
602  (add-hook 'python-mode-hook (lambda () (modify-syntax-entry ?_ "w")))
603  (add-hook 'sql-mode-hook 'sqlind-minor-mode)
604
605  ;; Truncate lines
606  (setq-default truncate-lines nil)
607
608  ;; Hooks
609  (add-hook 'prog-mode-hook 'display-fill-column-indicator-mode)
610  (add-hook 'before-save-hook 'delete-trailing-whitespace)
611
612  ;; Remote mode setup
613  (defun my-remote-mode-setup-function ()
614    (when (and (fboundp 'company-mode)
615               (file-remote-p default-directory))
616      (progn
617        (company-mode -1)
618        (company-posframe-mode -1)
619        (auto-complete-mode 1))))
620  (add-hook 'find-file-hook 'my-remote-mode-setup-function))
621
622(set-face-attribute 'default nil
623                    ;; :family "Fira Code"
624                    :foundry "outline"
625                    :slant 'normal
626                    :weight 'normal
627                    :height 140
628                    :width 'normal)
629
630(add-to-list 'default-frame-alist '(width . 100))
631(add-to-list 'default-frame-alist '(height . 40))
632
633;; run server automatically
634;; (require 'server)
635;; (unless (server-running-p)
636;;   (server-start))
637(message "Frame width: %d, Frame height: %d" (frame-width) (frame-height))
638(custom-set-variables
639 ;; custom-set-variables was added by Custom.
640 ;; If you edit it by hand, you could mess it up, so be careful.
641 ;; Your init file should contain only one such instance.
642 ;; If there is more than one, they won't work right.
643 '(org-agenda-files '("~/notes/todo.org" "c:/Users/hzhang/notes/backlog.org")))
644(custom-set-faces
645 ;; custom-set-faces was added by Custom.
646 ;; If you edit it by hand, you could mess it up, so be careful.
647 ;; Your init file should contain only one such instance.
648 ;; If there is more than one, they won't work right.
649 '(org-agenda-current-time ((t (:foreground "blue" :weight bold))))
650 '(org-agenda-weekend-header ((t (:weight normal)))))