Delete the literate config file.

s2svpn
jowj 5 years ago
parent 8ca680d7e4
commit 917a380fce

@ -1,571 +0,0 @@
* interface tweaks
This section is configuring some global defaults i like.
#+BEGIN_SRC emacs-lisp
(setq inhibit-splash-screen t) ; Disable the splash screen
;; (when (version<= "26.0.50" emacs-version )
;; (global-display-line-numbers-mode)); show line numbers; use this instead of linum if you can
(global-visual-line-mode t) ; turn on word-wrap globally
(menu-bar-mode -1) ; disable visual menu on emacs
(tool-bar-mode -1) ; disable toolbar
(setq case-fold-search t) ; ignore case when searching
(fset 'yes-or-no-p 'y-or-n-p) ; make it easier to answer qs.
(set-frame-font "Consolas 12") ; set default font
(transient-mark-mode 1) ; Enable transient mark mode (highlights)
(load-theme 'manoj-dark) ; loads my favorite default theme
(global-hl-line-mode t) ; highlights the line you're on
#+END_SRC
#+RESULTS:
: t
* OS specific tweaks
This helps with work-device configuration, as well as handling a specific windows edge-case.
#+BEGIN_SRC emacs-lisp
(when (eq system-type 'darwin)
(setq mac-command-modifier 'meta)
;; Make emacs use a different default than the OS
;; only really useful on work computers, but there we go.
(setq browse-url-browser-function #'browse-url-generic
browse-url-generic-program "open"
browse-url-generic-args '("-a" "Firefox")))
(if (eq system-type 'windows-nt)
(message "i am windows and suck") ; deal with mac command key problems
(exec-path-from-shell-copy-env "PATH"))
;; (if (string-equal "darwin" (symbol-name system-type))
;; (setenv "PATH" (concat "/usr/local/bin:/usr/local/sbin:" (getenv "PATH"))))
#+END_SRC
#+RESULTS:
: /opt/local/bin:/opt/local/sbin:/Users/jowj/Library/Python/3.6/bin:/usr/local/share/python:/usr/local/bin:/usr/local/lib/python3.7/site-packages:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin:/Users/jowj/Library/Python/3.6/bin:/usr/local/share/python:/Applications/Emacs.app/Contents/MacOS/bin-x86_64-10_14:/Applications/Emacs.app/Contents/MacOS/libexec-x86_64-10_14
* custom functions, package independent hotkeys.
#+BEGIN_SRC emacs-lisp
;; custom emacsland functions
(defun find-user-init-file ()
"Edit the `user-init-file', in another window."
(interactive)
(find-file-other-window user-init-file))
(global-set-key (kbd "C-c J") 'find-user-init-file)
(setq user-home-file "~/Nextcloud/Documents/org/personal.org")
(defun find-user-home-file ()
"Edit the `user-home-file' in this window"
(interactive)
(find-file user-home-file))
(global-set-key (kbd "C-c C-j h") 'find-user-home-file)
;; Custom frame management chords
(global-set-key (kbd "C-x O") 'other-frame)
(global-set-key (kbd "C-x T") 'make-frame-command)
(global-set-key (kbd "C-x W") 'delete-frame)
(global-set-key "\M-`" 'other-frame) ; mimic the way macosx switches
#+END_SRC
#+RESULTS:
: other-frame
* smex
#+BEGIN_SRC emacs-lisp
(use-package smex
:ensure t
:config
(progn
(defadvice smex (around space-inserts-hyphen activate compile)
(let ((ido-cannot-complete-command
`(lambda ()
(interactive)
(if (string= " " (this-command-keys))
(insert ?-)
(funcall ,ido-cannot-complete-command)))))
ad-do-it))
(global-set-key (kbd "M-x") 'smex)
(global-set-key (kbd "M-X") 'smex-major-mode-commands)
;; This is your old M-x.
(global-set-key (kbd "C-c C-c M-x") 'execute-extended-command)))
#+END_SRC
* org-mode
#+BEGIN_SRC emacs-lisp
(use-package org
:ensure t
:config
(progn
;;Org mode configuration
(require 'org) ; Enable Org mode
(setq ispell-program-name "/usr/local/bin/ispell") ; set flyspell's spellchecker
(add-hook 'org-mode-hook 'turn-on-flyspell) ; enable flyspell-mode in all org-mode enabled files
(setq org-src-fontify-natively t
org-src-window-setup 'current-window
org-src-strip-leading-and-trailing-blank-lines t
org-src-preserve-indentation t
org-src-tab-acts-natively t
x-selection-timeout 10 ;; this fixes a freeze when org-capture is called. lol.
org-edit-src-content-indentation 0)
(add-hook 'org-agenda-mode-hook
(lambda ()
(visual-line-mode -1)
(toggle-truncate-lines 1)))
(org-babel-do-load-languages
'org-babel-load-languages
'((python . t)
(matlab . t)))
(setq org-babel-python-command "/usr/local/bin/python3")
;; org-agenda configs
(setq org-habit-show-habits-only-for-today nil)
(setq org-agenda-repeating-timestamp-show-all nil)
(setq org-deadline-warning-days 1)
(setq org-global-properties
'(("Effort_ALL". "0 0:10 0:30 1:00 2:00 3:00 4:00")))
(setq org-columns-default-format
'(("%25ITEM %TODO %3PRIORITY %TAGS")))
;;;; custom org mode hotkeys
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cc" 'org-capture)
(global-set-key "\C-cb" 'org-iswitchb)
;;;; search across agenda files when refiling:
(setq org-refile-targets '((nil :maxlevel . 9)
(org-agenda-files :maxlevel . 9)))
(setq org-outline-path-complete-in-steps nil) ; Refile in a single go
(setq org-refile-use-outline-path t) ; Show full paths for refiling
(setq org-agenda-files '("~/Nextcloud/Documents/org/")) ; add files to agenda:
(setq org-directory "~/Nextcloud/Documents/org/") ; define generic org capture shit
(setq org-default-notes-file (concat org-directory "/refile-beorg.org"))))
;; org-capture templates
(setq org-capture-templates
'(("c" "Context-include Todo" entry (file "~/Nextcloud/Documents/org/refile-beorg.org")
"* TODO %?\n%U \n '%a'" :empty-lines 1 :prepend t)
("t" "Todo" entry (file "~/Nextcloud/Documents/org/refile-beorg.org")
"* TODO %?\n%U" :empty-lines 1 :prepend t)))
;; Set up bullets
(use-package org-bullets
:ensure t
:config
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
#+END_SRC
#+RESULTS:
: t
* try
#+BEGIN_SRC emacs-lisp
(use-package try
:ensure t)
#+END_SRC
* which-key
#+BEGIN_SRC emacs-lisp
(use-package which-key
:ensure t
:config (which-key-mode))
#+END_SRC
* ace-window
#+BEGIN_SRC emacs-lisp
(use-package ace-window
:ensure t
:init
(progn
(global-set-key [remap other-window] 'ace-window)))
#+END_SRC
* outline-magic
I don't remember what this does or why i have it.
- an emacs story
#+BEGIN_SRC emacs-lisp
(use-package outline-magic
:ensure t)
#+END_SRC
* multiple-cursors
#+BEGIN_SRC emacs-lisp
(use-package multiple-cursors
:ensure t
:config
(progn
(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
(global-set-key (kbd "C->") 'mc/mark-next-like-this)
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this)
(global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)))
#+END_SRC
* rust stuff
I fucked around with rust like 4 times and that's it.
- this configuration i stole from a website that I don't remember (sorry guy who wrote that)
- it worked pretty well
- Cargo was weird to get used to but eventually made sense.
#+BEGIN_SRC emacs-lisp
(use-package rust-mode
:ensure t
:config
(progn
(add-hook 'rust-mode-hook 'cargo-minor-mode)
(add-hook 'flycheck-mode-hook #'flycheck-rust-setup)
(add-hook 'rust-mode-hook
(lambda ()
(local-set-key (kbd "C-c <tab>") #'rust-format-buffer)))
(setq racer-cmd "~/.cargo/bin/racer") ;; Rustup binaries PATH
(setq racer-rust-src-path "~/gitshit/rust/src") ;; Rust source code PATH
(add-hook 'rust-mode-hook #'racer-mode)
(add-hook 'racer-mode-hook #'eldoc-mode)
(add-hook 'racer-mode-hook #'company-mode)))
(use-package flycheck-rust
:ensure t)
(use-package racer
:ensure t)
#+END_SRC
* eyebrowse
this is a mostly aspirational package; i don't do anything with it.
- eventually i'd maybe like to
- but running a ton of shit in emacs is almost counter productive
#+BEGIN_SRC emacs-lisp
(use-package eyebrowse
:ensure t)
#+END_SRC
* helm
I really use this for just the searching from emacs
- this ties to the [[OS specific tweaks]] entry
#+BEGIN_SRC emacs-lisp
(use-package helm
:ensure t
:config
(progn
(defun helm-surfraw-duck (x)
"Search duckduckgo in default browser"
(interactive "sSEARCH:")
(helm-surfraw x "duckduckgo" ))
(global-set-key (kbd "C-c s") 'helm-surfraw-duck)))
#+END_SRC
* python stuff
- pylint is required (pip install pylint, yada yada)
- pep8 (pip install pep8)
- don't use python-mode because JESUS CHRIST.
- it throws everything off!
- Jedi requires virtualenv to be installed
virtualenvs in emacs fucking suck and i can't believe how bad these are.
- pipenv seems pretty good, but has a depency on pyvenv which i cannot get to /work/.
#+BEGIN_SRC elisp
(use-package pylint
:ensure t)
(setq python-shell-interpreter "/usr/local/bin/python3"
python-shell-interpreter-args "-i")
(use-package py-autopep8
:ensure t
:config
(progn
(add-hook 'python-mode-hook 'py-autopep8-enable-on-save)))
(use-package jedi
:ensure t
:init
(add-hook 'python-mode-hook 'jedi:setup)
(add-hook 'python-mode-hook 'jedi:ac-setup))
(use-package pipenv
:ensure t)
(use-package pyvenv
:ensure t)
#+END_SRC
#+RESULTS:
: t
* markdown-mode
#+BEGIN_SRC emacs-lisp
(use-package markdown-mode
:ensure t)
#+END_SRC
* powershell
#+BEGIN_SRC emacs-lisp
(use-package powershell
:ensure t)
#+END_SRC
* ein
lets you run jupyter notebooks within emacs.
- i've never used this feature once, but it seems cool.
#+BEGIN_SRC emacs-lisp
(use-package ein
:ensure t)
#+END_SRC
* flycheck
#+BEGIN_SRC emacs-lisp
(use-package flycheck
:ensure t
:init
(global-flycheck-mode t))
#+END_SRC
#+RESULTS:
* znc / erc config
This is such a pain in the dick. Its really nice to be able to chat within emacs
- but i think i regret not using weechat
The bit about ~;(setf epa-pinentry-mode 'loopback)~ is important:
- uncomment if you want to only use emacs to input/manage the gpg key
- comment out if you want gpg to be handled through seahorse/gnome keyring.
#+BEGIN_SRC emacs-lisp
(when (eq system-type 'darwin)
(setf epa-pinentry-mode 'loopback))
(use-package znc
:ensure t
:config
(progn
(custom-set-variables '(epg-gpg-program "/usr/local/bin/gpg"))
(setq auth-sources `("~/Documents/projects/agares/applicationConfiguration/.emacs/jlj-secrets.gpg"))
(require 'epa)
;; handle annoying gpg shit.
(defun lookup-password (host user port)
"Lookup encrypted password given HOST, USER and PORT for service."
(require 'auth-source)
(funcall (plist-get
(car (auth-source-search
:host host
:user user
:type 'netrc
:port port))
:secret)))
(setq znc-password(lookup-password "bouncer.awful.club" "blindidiotgod/OFTC" 5000))
;; by default, erc alerts you on any activity. I only want to hear
;; about mentions of nick or keyword
(custom-set-variables
'(znc-servers
`(("bouncer.awful.club" 5000 t
((freenode "blindidiotgod/freenode" ,znc-password)
(OFTC "blindidiotgod/OFTC" ,znc-password))))))
(setq erc-current-nick-highlight-type 'all)
(setq erc-keywords '("security"))
(setq erc-track-exclude-types '("JOIN" "PART" "NICK" "MODE" "QUIT"))
(setq erc-track-use-faces t)
(setq erc-track-faces-priority-list
'(erc-current-nick-face erc-keyword-face))
(setq erc-track-priority-faces-only 'all)
(setq erc-hide-list '("PART" "QUIT" "JOIN"))
(setq erc-join-buffer 'bury)))
#+END_SRC
#+RESULTS:
: t
* twittering-mode
the only thing that isn't pretty much stock is
- i rebound C-c C-o to open links, so it would mimic org-mode's layout.
#+BEGIN_SRC emacs-lisp
(use-package twittering-mode
:ensure t
:config
(progn
(setq twittering-icon-mode t)
(setq twittering-reverse-mode t)
(setq twittering-enable-unread-status-notifier t)
(with-eval-after-load "twittering-mode" (define-key twittering-mode-map (kbd "C-c C-o") `twittering-view-user-page))))
#+END_SRC
#+RESULTS:
: t
* pdf-tools
#+BEGIN_SRC emacs-lisp
(use-package pdf-tools
:ensure t
:config
(pdf-tools-install))
(use-package org-pdfview
:ensure t)
#+END_SRC
#+RESULTS:
* magit
#+BEGIN_SRC emacs-lisp
(use-package magit
:ensure t)
#+END_SRC
#+RESULTS:
* desktop configuration
#+BEGIN_SRC emacs-lisp
(require 'desktop)
(desktop-save-mode 1)
(defun jlj-desktop-save ()
(interactive)
;; Don't call desktop-save-in-desktop-dir, as it prints a message.
(if (eq (desktop-owner) (emacs-pid))
(desktop-save desktop-dirname)))
(add-hook 'auto-save-hook 'jlj-desktop-save)
#+END_SRC
#+RESULTS:
| jlj-desktop-save |
* presentations
The idea here is to use reveal.js and org-mode to present stuff
- reveal.js is required
- htmlize.el (for syntax highlighting)
- obvs, ox-reveal.el package.
You can either use a CDN to deliver the reveal.js, or you can download source. Both examples are given here:
~(setq org-reveal-root "file:///~/Documents/projects/agares/applicationConfiguration/.emacs/src/reveal.js-3.8.0"))~
~(setq org-reveal-root "http://cdn.jsdelivr.net/reveal.js/3.0.0/"))~
#+BEGIN_SRC emacs-lisp
(setq org-reveal-root "http://cdn.jsdelivr.net/reveal.js/3.0.0/")
(setq org-reveal-mathjax t)
(use-package ox-reveal
:ensure t)
#+END_SRC
#+RESULTS:
* web-mode
This is for basic web development usage;
- html
- css
I probably don't need it for much, but it should help when editing any of my own pages.
#+BEGIN_SRC emacs-lisp
(use-package web-mode
:ensure t
:config
(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))
(setq web-mode-engines-alist
'(("django" . "\\.html\\'")))
(setq web-mode-ac-sources-alist
'(("css" . (ac-source-css-property))
("html" . (ac-source-words-in-buffer ac-source-abbrev))))
(setq web-mode-enable-auto-closing t)
(setq web-mode-enable-auto-quoting t)) ; this fixes the quote problem I mentioned
#+END_SRC
#+RESULTS:
: t
* misc
#+BEGIN_SRC elisp
(setq indent-tabs-mode nil) ; always use spaces when indenting
(setq require-final-newline t)
(setq backup-directory-alist `(("." . "~/Nextcloud/Documents/org/.saves")))
(find-file "~/Nextcloud/Documents/org/personal.org") ;open primary org file on launch
(electric-pair-mode 1) ; create paired brackets.
#+END_SRC
#+RESULTS:
: t
Iedit lets you "find all instances of this string" with C-;
- its /great/
- same sorta niche as ~multiple-cursors~
#+BEGIN_SRC emacs-lisp
(use-package iedit
:ensure t)
#+END_SRC
#+RESULTS:
Unbound the idiot org-goto function that i have never used ( I HAVE PLAINTEXT SEARCH YOU FOOL ). Now I should be able to create my own hotkeys off of C-c C-j as I want.
#+BEGIN_SRC emacs-lisp
(define-key org-mode-map (kbd "C-c C-j") nil)
(with-eval-after-load "python-mode" (define-key python-mode-map (kbd "C-c C-j") nil))
(global-set-key (kbd "C-c C-j p") 'run-python)
#+END_SRC
#+RESULTS:
: run-python
why isn't this handled for me :(
#+BEGIN_SRC emacs-lisp
(server-start)
#+END_SRC
#+RESULTS:
* golang
this is a remediary golang config. my goals are to:
- have gofmt run on save
- have good syntax highlighting
- compile, test, run gocode through emacs:
#+BEGIN_SRC emacs-lisp
(use-package go-eldoc
:ensure)
(use-package gotest
:ensure)
(use-package company-go
:ensure)
(use-package go-guru
:ensure)
(use-package go-mode
:init
:ensure t
:config
(add-hook 'before-save-hook #'gofmt-before-save)
;; stolen from luipan.pl/dotemacs/
(defun jlj-go-mode-hook ()
(go-eldoc-setup)
(set (make-local-variable 'company-backends) '(company-go))
(company-mode)
;; Customize compile command to run go build
(let ((goimports (executable-find "goimports")))
(when goimports
(setq gofmt-command goimports)))
(smartparens-mode 1)
(flycheck-mode 1)
(setq imenu-generic-expression
'(("type" "^type *\\([^ \t\n\r\f]*\\)" 1)
("func" "^func *\\(.*\\) {" 1))))
(setq compile-command "echo Building... && go build -v && go test -v && go vet")
(add-hook 'go-mode-hook 'jlj-go-mode-hook))
(with-eval-after-load "go-mode" (define-key go-mode-map (kbd "C-c C-c") 'compile))
#+END_SRC
#+RESULTS:
: compile
Loading…
Cancel
Save