diff --git a/applicationConfiguration/.emacs/jlj-generic.el b/applicationConfiguration/.emacs/jlj-generic.el new file mode 100644 index 0000000..737ca3f --- /dev/null +++ b/applicationConfiguration/.emacs/jlj-generic.el @@ -0,0 +1,159 @@ +(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 + +(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. + +;; lets you find all instance of string @ point with C-; +(use-package iedit + :ensure t) + +(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")))) + +(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 + + +(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))) + +(use-package try + :ensure t) + +(use-package which-key + :ensure t + :config (which-key-mode)) + +(use-package ace-window + :ensure t + :init + (progn + (global-set-key [remap other-window] 'ace-window))) + + +;; I don't remember what this does or why i have it +;; an emacs story +(use-package outline-magic + :ensure t) + + +(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))) + +(use-package flycheck + :ensure t + :init + (global-flycheck-mode t)) + +(use-package markdown-mode + :ensure t) + +(use-package pdf-tools + :ensure t + :config + (pdf-tools-install)) + +(use-package org-pdfview + :ensure t) + +(use-package magit + :ensure t) + +(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) + + +(setq org-reveal-root "http://cdn.jsdelivr.net/reveal.js/3.0.0/") +(setq org-reveal-mathjax t) + +(use-package ox-reveal + :ensure t) + +(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 + +(use-package powershell + :ensure t) + +(server-start) diff --git a/applicationConfiguration/.emacs/jlj-golang.el b/applicationConfiguration/.emacs/jlj-golang.el new file mode 100644 index 0000000..596bac8 --- /dev/null +++ b/applicationConfiguration/.emacs/jlj-golang.el @@ -0,0 +1,44 @@ +;; this is an intermediary golang config. my goals are to: +;; - have gofmt run on save +;; - have good syntax highlighting +;; - compile, test, run gocode through emacs: + +(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)) diff --git a/applicationConfiguration/.emacs/jlj-org.el b/applicationConfiguration/.emacs/jlj-org.el new file mode 100644 index 0000000..cf6997c --- /dev/null +++ b/applicationConfiguration/.emacs/jlj-org.el @@ -0,0 +1,67 @@ +(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)))) diff --git a/applicationConfiguration/.emacs/jlj-python.el b/applicationConfiguration/.emacs/jlj-python.el new file mode 100644 index 0000000..6678a67 --- /dev/null +++ b/applicationConfiguration/.emacs/jlj-python.el @@ -0,0 +1,30 @@ +;; pylint is required (pip install pylint) +;; pep8 (pip install pep8) +;; don't use python-mode because JESUS. CHRIST. it throws everything off. +;; using jedi requires virtualenv to be installed +;; pipenv is mostly acceptable but i could not make a full IDE experience happen + +(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) diff --git a/applicationConfiguration/.emacs/jlj-rust.el b/applicationConfiguration/.emacs/jlj-rust.el new file mode 100644 index 0000000..6eafc9f --- /dev/null +++ b/applicationConfiguration/.emacs/jlj-rust.el @@ -0,0 +1,22 @@ +(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 ") #'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) diff --git a/applicationConfiguration/.emacs/jlj-social.el b/applicationConfiguration/.emacs/jlj-social.el new file mode 100644 index 0000000..5ff4ecf --- /dev/null +++ b/applicationConfiguration/.emacs/jlj-social.el @@ -0,0 +1,61 @@ +;; 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. + +(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))) + + +;; 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. + +(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))))