182 lines
7.2 KiB
EmacsLisp
182 lines
7.2 KiB
EmacsLisp
;; -*- lexical-binding: t; -*-
|
|
;; TURN ON IN INIT FILE!!!!!
|
|
|
|
;; Make gc pauses faster by decreasing the threshold.
|
|
(setq gc-cons-threshold (* 2 1000 1000))
|
|
|
|
;; disable warnings from popping up, they are still logged
|
|
(setq warning-suppress-types '((comp)))
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; helper functions
|
|
;; Figure out if inside Termux
|
|
(require 'subr-x)
|
|
(setq kmn/is-termux
|
|
(string-suffix-p "Android" (string-trim (shell-command-to-string "uname -a"))))
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; os specific config
|
|
(when (eq system-type 'windows-nt)
|
|
; Fix resolution of ~ to match other client paths
|
|
(setenv "HOME" "C:/Users/mcros/Nextcloud")
|
|
(setq default-directory "C:/Users/mcros/Nextcloud")
|
|
|
|
; add executables to path ahead of them being used by extensions / emacs stuff
|
|
(add-to-list 'exec-path "C:/Users/mcros/OneDrive/Programs/PortableApps/sqlite3")
|
|
(add-to-list 'exec-path "C:/Users/mcros/OneDrive/Programs/PortableApps/MultiMarkdown-Windows-6.6.0/bin")
|
|
)
|
|
(when kmn/is-termux
|
|
; setup storage locations -- cheat so mobile/desktop look alike for file urls
|
|
;(setq user-init-file "/data/data/com.termux/files/home/storage/shared/.emacs")
|
|
;(setq user-emacs-directory "/data/data/com.termux/files/home/storage/shared/.emacs.d/")
|
|
;(setenv "HOME" "/data/data/com.termux/files/home/storage/shared/")
|
|
;(load user-init-file)
|
|
|
|
; Fix resolution of ~ to match other client paths
|
|
(setenv "HOME" "/data/data/com.termux/files/home/")
|
|
(setq default-directory "/data/data/com.termux/files/home/")
|
|
|
|
; Better fonts
|
|
(setq org-src-fontify-natively t)
|
|
|
|
; Setup xdg-open as the default for opening files (except for the few we want emacs to open native)
|
|
; xdg-open is linked to termux-open by default ; if you need 'more' look into tmux-open and adjust accordingly
|
|
; (add-to-list 'org-file-apps '("\\.doc.*" . "open %s"))
|
|
(setq browse-url-browser-function 'browse-url-xdg-open)
|
|
(setq org-file-apps
|
|
'(;; default
|
|
(auto-mode . emacs)
|
|
("\\.org" . emacs)
|
|
("\\.txt" . emacs)
|
|
(".*" . "xdg-open %s")))
|
|
)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; global config
|
|
(load "~/.emacs.d.profiles/common/_global.el")
|
|
(load "~/.emacs.d.profiles/common/generic_functions.el")
|
|
(load "~/.emacs.d.profiles/common/workspaces.el")
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; compile bytecode for this profile
|
|
(unless (was-compiled-p "~/.emacs.d.profiles/code")
|
|
(byte-recompile-directory "~/.emacs.d.profiles/code" 0))
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; additional packages
|
|
(add-to-list 'package-selected-packages
|
|
'(centaur-tabs auctex-latexmk auctex json-mode python-mode powershell rust-mode origami go-mode yaml-mode dockerfile-mode lua-mode)
|
|
)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; misc config
|
|
(set-default 'truncate-lines t)
|
|
; highlight current line
|
|
(global-hl-line-mode +1)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; activate helm after its fully configured (may be configured beyond global defaults in other profiles so we have to activate locally)
|
|
(helm-mode 1)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; tab line via centaur tabs
|
|
(require 'centaur-tabs)
|
|
(setq centaur-tabs-set-bar 'under)
|
|
(setq centaur-tabs-set-close-button nil)
|
|
(setq centaur-tabs-set-modified-marker t)
|
|
(setq centaur-tabs-set-icons t)
|
|
(setq centaur-tabs-plain-icons t)
|
|
(setq centaur-tabs-cycle-scope 'tabs)
|
|
(setq centaur-tabs-show-new-tab-button nil)
|
|
(add-hook 'dired-mode-hook 'centaur-tabs-local-mode)
|
|
(add-hook 'org-agenda-mode 'centaur-tabs-local-mode)
|
|
(global-set-key (kbd "C-c t i") 'centaur-tabs-backward)
|
|
(global-set-key (kbd "C-c t <left>") 'centaur-tabs-backward)
|
|
(global-set-key (kbd "C-c t e") 'centaur-tabs-forward)
|
|
(global-set-key (kbd "C-c t <right>") 'centaur-tabs-forward)
|
|
(global-set-key (kbd "C-c t y") 'centaur-tabs-local-mode)
|
|
(global-set-key (kbd "C-c t <down>") 'centaur-tabs-local-mode)
|
|
(global-set-key (kbd "C-c t <up>") 'centaur-tabs-local-mode)
|
|
(centaur-tabs-mode t)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; programming
|
|
; code folding
|
|
(require 'origami)
|
|
|
|
; lua
|
|
(autoload 'lua-mode "lua-mode" "Lua editing mode." t)
|
|
(add-to-list 'auto-mode-alist '("\\.lua$" . lua-mode))
|
|
(add-to-list 'interpreter-mode-alist '("lua" . lua-mode))
|
|
(setq lua-indent-level 4)
|
|
|
|
; dockerfile
|
|
(autoload 'dockerfile-mode "dockerfile-mode" "Dockerfile editing mode." t)
|
|
(add-to-list 'auto-mode-alist '("Dockerfile\\'" . dockerfile-mode))
|
|
|
|
; yaml
|
|
(autoload 'yaml-mode "yaml-mode" "YAML editing mode." t)
|
|
(add-to-list 'auto-mode-alist '("\\.ya?ml\\'" . yaml-mode))
|
|
|
|
; go
|
|
(autoload 'go-mode "go-mode" "go editing mode." t)
|
|
(add-to-list 'auto-mode-alist '("\\.go\\'" . go-mode))
|
|
|
|
; rust
|
|
(autoload 'rust-mode "rust-mode" "rust editing mode" t)
|
|
(add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-mode))
|
|
|
|
; c/cpp
|
|
(autoload 'cc-mode "cc-mode" "c/cpp editing mode" t)
|
|
(add-to-list 'auto-mode-alist '("\\.h\\'" . cc-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.c\\'" . cc-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.cpp\\'" . cc-mode))
|
|
|
|
; shell
|
|
(autoload 'sh-script "sh-script" "shell script editing mode" t)
|
|
(add-to-list 'auto-mode-alist '("\\.sh\\'" . sh-script))
|
|
|
|
; makefile
|
|
(autoload 'make-mode "make-mode" "makefile editing mode" t)
|
|
(add-to-list 'auto-mode-alist '("Makefile\\'" . make-mode))
|
|
|
|
; powershell
|
|
(autoload 'powershell "powershell" "powershell editing mode" t)
|
|
(add-to-list 'auto-mode-alist '("\\.ps1\\'" . powershell))
|
|
|
|
; [la]tex
|
|
(use-package tex
|
|
:ensure auctex)
|
|
(setq TeX-parse-self t)
|
|
(setq-default TeX-master nil)
|
|
|
|
; python
|
|
(autoload 'python-mode "python-mode" "python editing mode" t)
|
|
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
|
|
|
|
; json
|
|
(autoload 'json-mode "json-mode" "json editing mode" t)
|
|
(add-to-list 'auto-mode-alist '("\\.json\\'" . json-mode))
|
|
(custom-set-variables
|
|
;; custom-set-variables was added by Custom.
|
|
;; If you edit it by hand, you could mess it up, so be careful.
|
|
;; Your init file should contain only one such instance.
|
|
;; If there is more than one, they won't work right.
|
|
'(custom-safe-themes
|
|
'("dde643b0efb339c0de5645a2bc2e8b4176976d5298065b8e6ca45bc4ddf188b7" default)))
|
|
(custom-set-faces
|
|
;; custom-set-faces was added by Custom.
|
|
;; If you edit it by hand, you could mess it up, so be careful.
|
|
;; Your init file should contain only one such instance.
|
|
;; If there is more than one, they won't work right.
|
|
'(default ((t (:family "MonoLisa Variable" :height 100))))
|
|
'(fixed-pitch ((t (:family "MonoLisa Variable" :height 120))))
|
|
'(variable-pitch ((t (:family "Atkinson Hyperlegible" :height 120)))))
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; set ui to standard org-workspace at launch
|
|
(add-hook 'after-init-hook (lambda ()
|
|
(kmn/workspace-code-empty)
|
|
))
|