emacs.d/init.el
2020-05-15 16:07:46 +02:00

181 lines
7 KiB
EmacsLisp
Executable file

(require 'server)
(unless (server-running-p) (server-start))
;; DISPLAY SETTINGS
;; General userinterface and appearance
(tool-bar-mode -1) ; No toolbar
(menu-bar-mode -1) ; No Menubar
(set-scroll-bar-mode 'right) ; Scrollbar on the right
(scroll-bar-mode -1) ; No scrollbar
(global-font-lock-mode t) ; Color enabled
(global-prettify-symbols-mode t) ; Prettify symbols
(global-hl-line-mode 1) ; Highlight cursor line
(global-whitespace-mode -1) ; Show whitespace globally
(show-paren-mode 1) ; Visual matching parens
(global-display-line-numbers-mode -1) ; Display line numbers
;; Mode line specific
(column-number-mode 1) ; Display column number in the mode line
(size-indication-mode -1) ; Display buffer size in the mode line
(line-number-mode 1) ; Display line number in the mode line
(display-battery-mode -1) ; Display battery status in the mode line
(display-time-mode 1) ; Display time in the mode line
(add-to-list 'default-frame-alist '(fullscreen . maximized)) ; Maximize Window
(add-to-list 'default-frame-alist '(font . "Iosevka Term-12"))
(add-to-list 'default-frame-alist '(undecorated . t))
(when (eq system-type 'gnu/linux)
(add-to-list 'default-frame-alist '(undecorated . t)))
;; GLOBAL KEYS
(global-set-key (kbd "C-c l") 'org-store-link)
(global-set-key (kbd "C-c a") 'org-agenda)
(global-set-key (kbd "C-c c") 'org-capture)
(global-set-key (kbd "C-c b") 'org-switchb)
;; (global-set-key (kbd "C-c C-x m") 'org-pomodoro)
(global-set-key (kbd "C-x g") 'magit-status)
(global-set-key (kbd "C-x M-g") 'magit-dispatch)
(global-set-key (kbd "M-i") 'imenu)
(global-set-key (kbd "C-c n") 'newsticker-start)
(global-set-key (kbd "M-o") 'ace-window)
;; OS SETTINGS
(defun evo-load-paths ()
(unless (file-directory-p (expand-file-name "~/Documents"))
(defvar *docs-path* (getenv "DOCS_PATH"))))
(when (eq system-type 'windows-nt)
(setq python-shell-interpreter "python")
(add-to-list 'load-path (expand-file-name "~/AppData/Roaming/__secrets"))
(cd "~/opt")
(when (string= (system-name) "EVG02667NB")
(evo-load-paths))
(when (string= (system-name) "XPS-8930")))
;; UTF-8 FTW
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(defalias 'yes-or-no-p 'y-or-n-p)
(with-current-buffer "*scratch*" (emacs-lock-mode 'kill))
;; CUSTOM_FILE
(setq custom-file "~/.emacs.d/bundle/custom.el")
(load custom-file :noerror)
;; PACKAGE
(require 'package)
;; Added by Package.el. This must come before configurations of
;; installed packages. Don't delete this line. If you don't want it,
;; just comment it out by adding a semicolon to the start of the line.
;; You may delete these explanatory comments.
(let* ((no-ssl (and (memq system-type '(windows-nt ms-dos))
(not (gnutls-available-p))))
(proto (if no-ssl "http" "https")))
(when no-ssl
(warn "\
Your version of Emacs does not support SSL connections,
which is unsafe because it allows man-in-the-middle attacks.
There are two things you can do about this warning:
1. Install an Emacs version that does support SSL and be safe.
2. Remove this warning from your init file so you won't see it again."))
;; Comment/uncomment these two lines to enable/disable MELPA and MELPA Stable as desired
(add-to-list 'package-archives (cons "melpa" (concat proto "://melpa.org/packages/")) t)
;;(add-to-list 'package-archives (cons "melpa-stable" (concat proto "://stable.melpa.org/packages/")) t)
(when (< emacs-major-version 24)
;; For important compatibility libraries like cl-lib
(add-to-list 'package-archives (cons "gnu" (concat proto "://elpa.gnu.org/packages/")))))
(package-initialize)
(ivy-mode 1)
;; ORG_MODE SETTINGS
(setq org-agenda-dim-blocked-tasks nil
org-agenda-files (quote
("~/Documents/Journal"))
org-agenda-inhibit-startup nil
org-babel-load-languages (quote
((js . t)
(gnuplot . t)
(emacs-lisp . t)
(python . t)
(sqlite . t)
(lisp . t)
(shell . t)
(css . t)
(calc . t)
(plantuml . t)
(dot . t)))
org-babel-shell-names (quote ("sh" "bash" "csh" "ash" "dash" "ksh" "mksh" "posh"))
org-clock-persist t
org-confirm-babel-evaluate nil
org-default-notes-file "~/Documents/Journal/notes.org"
org-html-doctype "html5"
org-html-html5-fancy t
org-log-done (quote time)
org-startup-folded nil
org-startup-truncated nil
org-babel-python-command "python3"
org-todo-keywords (quote ((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED"))))
(setq org-use-property-inheritance nil)
(org-clock-persistence-insinuate)
(org-display-inline-images)
(when (eq system-type 'windows-nt)
(setq org-duration-format (quote h:mm))
(setq org-babel-python-command "python")
(setq org-plantuml-jar-path (expand-file-name
"~/AppData/Local/Programs/plantuml/plantuml.jar"))
(when (string= (system-name) "EVG02667NB")
(when *docs-path*
(setq org-agenda-files `(,(concat *docs-path* "\\Journal")))
(setq org-default-notes-file (concat *docs-path* "\\Journal\\notes.org")))))
(when (eq system-type 'gnu/linux)
(setq org-plantuml-jar-path
(expand-file-name "~/.local/bin/plantuml.jar")))
;; HOOKS
(add-hook 'diary-display-hook 'fancy-diary-display)
(add-hook 'today-visible-calendar-hook 'calendar-mark-today)
(add-hook 'write-file-hooks 'delete-trailing-whitespace)
(add-hook 'org-mode-hook 'turn-on-auto-fill)
(add-hook 'rst-mode-hook 'turn-on-orgstruct)
(setq my-hooks '(python-mode-hook emacs-lisp-mode-hook json-mode-hook))
(while my-hooks (add-hook (car my-hooks)
(lambda ()
(display-line-numbers-mode 1)))
(setq my-hooks (cdr my-hooks)))
(add-hook 'newsticker-mode-hook 'imenu-add-menubar-index)
(add-to-list 'auto-mode-alist '("\\.tmpl\\'" . web-mode))
;; DIARY
(setq cal-html-directory "~/Documents/Diary"
view-diary-entries-initially t
mark-diary-entries-in-calendar t
number-of-diary-entries 7
calendar-date-style (quote iso)
calendar-week-start-day 1)
(setq calendar-intermonth-text
(quote
(propertize
(format "%2d"
(car
(calendar-iso-from-absolute
(calendar-absolute-from-gregorian
(list month day year)))))
(quote font-lock-face)
(quote font-lock-function-name-face))))
(when (string= (system-name) "EVG02667NB")
(unless (file-directory-p (expand-file-name "~/Documents"))
(let ((docs-path (getenv "DOCS_PATH")))
(setq cal-html-directory (concat docs-path "\\Diary")
diary-file (concat docs-path "\\Diary\\diary")
timeclock-file (concat docs-path "\\Diary\\timelog")))))
(provide 'calendar-settings)
;; Local Variables:
;; mode: emacs-lisp
;; coding: utf-8
;; fill-column: 79
;; End: