summaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/nil
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/.emacs.d/nil')
-rw-r--r--emacs/.emacs.d/nil708
1 files changed, 708 insertions, 0 deletions
diff --git a/emacs/.emacs.d/nil b/emacs/.emacs.d/nil
new file mode 100644
index 0000000..08c3961
--- /dev/null
+++ b/emacs/.emacs.d/nil
@@ -0,0 +1,708 @@
+(require 'package)
+
+(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
+ ("melpa" . "http://melpa.org/packages/")))
+
+(when (< emacs-major-version 27)
+ (package-initialize))
+
+(require 'gnutls)
+
+(progn
+ (package-refresh-contents)
+ (package-install 'avy)
+ (package-install 'php-mode)
+ (package-install 'phps-mode)
+ ;; (package-install 'anzu)
+ (package-install 'anaconda-mode)
+ (package-install 'auctex)
+ ;; (package-install 'rmsbolt)
+ ;; (package-install 'beginend)
+ ;; (package-install 'composer)
+ (package-install 'cinspect)
+ (package-install 'debian-el)
+ (package-install 'dpkg-dev-el)
+ (package-install 'edebug-inline-result)
+ ;;(package-install 'haskell-mode)
+ ;;(package-install 'idris-mode)
+ (package-install 'magit)
+ (package-install 'git-timemachine)
+ (package-install 'git-dwim)
+ (package-install 'gitpatch)
+ (package-install 'goto-chg)
+ (package-install 'debbugs)
+ ;;(package-install 'deft)
+ ;; (package-install 'direnv)
+ (package-install 'dumb-jump)
+ (package-install 'docker)
+ (package-install 'docker-cli)
+ (package-install 'docker-tramp)
+ (package-install 'docker-compose-mode)
+ (package-install 'org-sql)
+ ;;(package-install 'eglot)
+ ;; (package-install 'eglot-java)
+ ;; (package-install 'mastodon)
+ ;; (package-install 'exec-path-from-shell)
+ (package-install 'expand-region)
+ ;; (package-install 'flymake-php)
+ (package-install 'flycheck)
+ (package-install 'flycheck-phpstan)
+ (package-install 'phpactor)
+ ;;(package-install 'robe)
+ (package-install 'geiser)
+ (package-install 'geiser-guile)
+ (package-install 'guix)
+ ;; (package-install 'git-gutter)
+ ;; (package-install 'gnuplot)
+ ;;(package-install 'swiper)
+ ;;(package-install 'sqlite3)
+ (package-install 'org-roam)
+ ;; (package-install 'org-roam-ui)
+ ;; (package-install 'org-download)
+ ;; (package-install 'org-babel-eval-in-repl)
+ ;;(package-install 'ob-php)
+ ;; (package-install 'on-screen)
+ ;;(package-install 'nix-mode)
+ (package-install 'pdf-tools)
+ ;;(package-install 'phpactor)
+ ;; (package-install 'company-quickhelp)
+ ;;(package-install 'ac-php)
+ (package-install 'php-mode)
+ (package-install 'php-quickhelp)
+ (package-install 'phan)
+ ;;(package-install 'php-cs-fixer)
+ ;; (package-install 'company-php)
+ ;;(package-install 'php-eldoc)
+ ;;(package-install 'phps-mode)
+ (package-install 'realgud)
+ ;; (package-install 'realgud-xdebug)
+ ;; (package-install 'kiwix)
+ ;;(package-install 'sml-mode)
+ (package-install 'sly)
+ (package-install 'simple-httpd)
+ (package-install 'sudo-edit)
+ ;;(package-install 'treemacs)
+ (package-install 'undo-tree)
+ ;; (package-install 'yasnippet)
+ ;; (package-install 'yasnippet-snippets)
+ ;; (package-install 'vimrc-mode)
+ ;; (package-install 'flymake-phpcs)
+ ;; (package-install 'flymake-phpstan)
+ ;; (package-install 'no-littering)
+ (package-install 'web-mode)
+ ;; (package-install 'which-key)
+ ;; (package-install 'reverse-im)
+ (package-install 'imenu-list)
+ ;; (package-install 'isearch-mb)
+ (package-install 'visual-fill-column)
+ ;; (package-install 'browse-kill-ring)
+ (package-install 'corfu)
+ ;; (package-install 'inf-ruby)
+ (package-install 'yaml-mode)
+ ;; (package-install 'geben)
+ (package-install 'link-hint)
+ (package-install 'whole-line-or-region)
+ (package-install 'quickrun)
+ ;; (package-install 'psysh)
+ ;; (package-install 'restclient)
+ )
+
+(when (eq window-system 'pgtk)
+ (pgtk-use-im-context t))
+
+(when (fboundp 'native-compile-async)
+ (setq comp-async-compilation t
+ package-native-compile t
+
+ native-comp-speed 2
+ native-comp-async-jobs-number 1
+ comp-num-cpus 2
+ ;; JIT Compilation
+ native-comp-deferred-compilation t
+ ;; AOT Compilation
+ package-native-compile t
+ comp-async-report-warnings-errors nil))
+
+;; (native-compile-async "~/.emacs.d/elpa/" 'recursively)
+(native-compile-async "~/.guix-profile/share/emacs/site-lisp" 'recursively)
+
+;; block until native compilation has finished
+ (while (or comp-files-queue
+ (> (comp-async-runnings) 0))
+
+;; Disable guix autoloading and x resources loading
+(setq site-run-file nil)
+
+(require 'exwm)
+(require 'exwm-config)
+(exwm-config-example)
+
+;; Change mode-line-modes to show only major mode
+(defvar mode-line-major-mode
+ (let ((recursive-edit-help-echo "Recursive edit, type C-M-c to get out"))
+ (list (propertize "%[" 'help-echo recursive-edit-help-echo)
+ `(:propertize ("" mode-name)
+ help-echo "Major mode\n\
+ mouse-1: Display major mode menu\n\
+ mouse-2: Show help for major mode\n\
+ mouse-3: Toggle minor modes"
+ mouse-face mode-line-highlight
+ local-map ,mode-line-major-mode-keymap)
+ '("" mode-line-process)
+ (propertize "%n" 'help-echo "mouse-2: Remove narrowing from buffer"
+ 'mouse-face 'mode-line-highlight
+ 'local-map (make-mode-line-mouse-map
+ 'mouse-2 #'mode-line-widen))
+ (propertize "%]" 'help-echo recursive-edit-help-echo)
+ " "))
+ "Mode line construct for displaying major and minor modes.")
+
+(put 'mode-line-major-mode 'risky-local-variable t)
+
+;; Change mode-line-format
+(setq-default mode-line-format
+ '("%e"
+ mode-line-front-space
+ mode-line-mule-info
+
+ mode-line-client
+ mode-line-modified
+ mode-line-remote
+ mode-line-frame-identification
+ ;; long-path
+ mode-line-buffer-identification
+ mode-line-misc-info
+ " "
+ mode-line-major-mode
+ " "
+ vc-mode
+ " "
+
+ mode-line-position
+ mode-line-end-spaces
+ ))
+
+;; Do not resize the frame at this early stage.
+(setq frame-inhibit-implied-resize t)
+(setq use-dialog-box nil)
+
+;;; Disable some gui
+(scroll-bar-mode -1)
+(tool-bar-mode -1)
+(menu-bar-mode -1)
+;;(tooltip-mode -1)
+
+;;; Changing emacs default setting through customize
+(custom-set-variables
+ '(fill-column 72)
+ '(git-gutter:added-sign " ")
+ '(git-gutter:deleted-sign " ")
+ '(git-gutter:modified-sign " ")
+ '(git-gutter:unchanged-sign " ")
+ '(lsp-headerline-breadcrumb-enable nil)
+ '(scroll-bar-mode 'nil)
+ '(scroll-bar-adjust-thumb-portion nil)
+ '(tool-bar-position 'bottom)
+ '(tool-bar-style 'both-horiz))
+
+(custom-set-faces
+ '(default ((t (:height 140 :family "Jetbrains Mono" :embolden t))))
+ '(region ((t (:background "gray85"))))
+ '(mode-line ((t (:background "grey70" :foreground "grey10"))))
+ '(mode-line-inactive ((t (:inherit mode-line :background "grey90" :foreground "grey20" :box (:line-width (-2 . -2) :color "grey85") :weight light))))
+ '(mode-line-buffer-id ((t (:weight bold))))
+ '(mode-line-emphasis ((t (:weight bold))))
+ '(lsp-modeline-code-actions-face ((t :inherit mode-line :height 100)))
+ '(tool-bar ((t (:background "grey80" :foreground "grey10"))))
+ '(fill-column-indicator ((t (:foreground "grey95"))))
+ '(hl-line ((t (:background "gray95"))))
+ '(fringe ((t (:background "grey87"))))
+ '(header-line ((t (:inherit mode-line :background "grey90"))))
+ '(vertical-border ((t (:foreground "grey90"))))
+ '(window-divider ((t (:foreground "gray90")))))
+
+(set-fringe-style (cons 7 7))
+
+(defun switch-gui ()
+ "Disable/enable menu-bar and tool-bar."
+ (interactive)
+ (if menu-bar-mode
+ (progn
+ (menu-bar-mode -1)
+ (tool-bar-mode -1)
+ (scroll-bar-mode -1))
+ (progn
+ (menu-bar-mode 1)
+ (tool-bar-mode 1)
+ (scroll-bar-mode 1))))
+
+(defun switch-scroll-bar ()
+ "Disable/enable scroll-bar."
+ (interactive)
+ (if scroll-bar-mode
+ (scroll-bar-mode -1)
+ (scroll-bar-mode)))
+
+(define-key global-map (kbd "<f5>") 'switch-gui)
+(define-key global-map (kbd "<f8>") 'switch-scroll-bar)
+
+(provide 'early-init)
+ ;;; early-init.el ends here
+
+;;(add-hook 'prog-mode-hook 'flymake-mode)
+
+(require 'psalm)
+
+(define-prefix-command 'flymake-map)
+(global-set-key (kbd "C-q") 'flymake-map)
+(define-key flymake-map (kbd "n") 'flymake-goto-next-error)
+(define-key flymake-map (kbd "p") 'flymake-goto-prev-error)
+(define-key flymake-map (kbd "l") 'flymake-show-diagnostics-buffer)
+(define-key flymake-map (kbd "e") 'flymake-show-diagnostic)
+
+;; (require 'psalm)
+
+(when (package-loaded? "flycheck")
+
+ (defun flycheck-phanclient-start-daemon ()
+ "Start the phan daemon"
+ (interactive)
+ (let* ((default-directory (php-project-get-root-dir))
+ (phan-executable (or flycheck-phanclient--phan-executable
+ (if (file-exists-p "vendor/bin/phan")
+ (concat default-directory "vendor/bin/phan")
+ (executable-find "phan"))))
+ (cmd (list phan-executable "--daemonize-tcp-port" "4846" "--quick")))
+ (apply #'start-process "PhanDaemon" "*phan daemon*" cmd)))
+
+ (flycheck-define-checker php-phanclient
+ "Phan"
+ :command ("phan_client" "-l" source-original "-f" source)
+ :error-patterns
+ ((warning line-start (or "Parse" "Fatal" "syntax" "Phan") " error" (any ":" ",") " " (message) " in " (file-name) " on line " line line-end))
+ :modes (php-mode php+-mode))
+
+ (add-to-list 'flycheck-checkers 'php-phanclient)
+
+ (flycheck-add-next-checker 'php '(warning . php-phanclient))
+
+ (add-hook 'prog-mode-hook 'flycheck-mode))
+
+(when (package-loaded? "treemacs")
+ (progn
+ (setq treemacs-width 50
+ treemacs-show-cursor t
+ treemacs-position 'right
+ treemacs-indentation 1
+ treemacs-tag-follow-mode t
+ treemacs-fringe-indicator-mode nil)
+
+ (define-key global-map
+ (kbd "C-x C-d") 'treemacs)))
+
+(when (package-loaded? "isearch-mb")
+ (progn
+ (isearch-mb-mode t)
+ (global-set-key (kbd "C-s") 'isearch-forward-regexp)
+ (global-set-key (kbd "C-r") 'isearch-backward-regexp)))
+
+(when (package-loaded? "browse-kill-ring")
+ (define-key global-map (kbd "C-M-y") 'browse-kill-ring))
+
+(setq path-to-ctags "~/.guix-profile/bin/ctags")
+
+(defun tags-create (dir-name)
+ "Create tags file."
+ (interactive "DDirectory: ")
+ (shell-command
+ (format "%s -f TAGS -e -R %s" path-to-ctags
+ (directory-file-name dir-name))))
+
+(defun tags-create-python (dir-name)
+ "Create tags with python interpreter"
+ (interactive "DDirectory: ")
+ (shell-command
+ (format "%s -f TAGS -e -R --fields=+l --languages=python --python-kinds=-iv $(python -c \"import os, sys; print(' '.join('{}'.format(d) for d in sys.path if os.path.isdir(d)))\") %s" path-to-ctags
+ (directory-file-name dir-name))))
+
+(when (package-loaded? "realgud")
+ (load "~/.emacs.d/site-lisp/realgud-xdebug/realgud-xdebug.el"))
+
+(when (package-loaded? "geben")
+ (setq geben-dbgp-default-port 9003))
+
+(when (package-loaded? "corfu")
+ (progn
+ (setq corfu-preview-current 'nil
+ corfu-popupinfo-delay t)
+ (corfu-mode 1)
+ (corfu-popupinfo-mode 1)
+ (defun show-default-completion-buffer ()
+ (interactive)
+ (corfu-quit)
+ (corfu-mode -1)
+ (completion-at-point)
+ (corfu-mode 1)
+ (corfu-popupinfo-mode 1))
+ (define-key corfu-map (kbd "M-TAB") 'show-default-completion-buffer)
+ (define-key corfu-map (kbd "TAB") 'show-default-completion-buffer)
+ (define-key corfu-map (kbd "C-M-i") 'show-default-completion-buffer)
+ (corfu-mode -1)
+ (add-hook 'prog-mode-hook 'corfu-mode)
+
+ (defun corfu-send-shell (&rest _)
+ "Send completion candidate when inside comint/eshell."
+ (cond
+ ((and (derived-mode-p 'eshell-mode) (fboundp 'eshell-send-input))
+ (eshell-send-input))
+ ((and (derived-mode-p 'comint-mode) (fboundp 'comint-send-input))
+ (comint-send-input))))
+
+ (advice-add #'corfu-insert :after #'corfu-send-shell)
+
+ (add-hook 'eshell-mode-hook 'corfu-mode)))
+
+(setq completion-styles '(basic partial-completion substring flex emacs22)
+ completion-ignore-case t
+ read-buffer-completion-ignore-case t
+ read-file-name-completion-ignore-case t)
+
+(setq aggressive-completion-delay 0.5)
+(aggressive-completion-mode t)
+
+(load "deft-autoloads")
+
+(define-key global-map
+ (kbd "C-c n s") 'deft)
+
+(setq deft-recursive t
+ deft-use-filter-string-for-filename t
+ deft-default-extension "org md"
+ deft-directory "~/projects/at-w96k/content/digarden")
+
+(when (package-loaded? "yasnippet")
+ (progn
+ (add-hook 'prog-mode-hook #'yas-minor-mode)))
+
+(defun my-php-mode-setup ()
+ "My PHP-mode hook."
+ (require 'flycheck-phpstan)
+ (flycheck-mode t))
+
+(add-hook 'php-mode-hook 'my-php-mode-setup)
+
+;; (add-hook 'php-mode-hook 'flymake-php-load)
+ ;; (add-hook 'php-mode-hook 'flymake-phpstan-turn-on)
+
+ ;; (require 'flycheck-phpstan)
+
+
+;;(add-to-list 'auto-mode-alist '("\\.\\(php\\|phtml\\)\\'" . phps-mode))
+
+;; (phps-mode-flycheck-setup)
+
+;; (setq phps-mode-async-process t)
+;; (setq phps-mode-async-process-using-async-el t)
+
+(desktop-save-mode 1)
+
+(global-anzu-mode t)
+
+(load "swiper-autoloads")
+(global-set-key (kbd "C-s") 'swiper)
+
+(setq swiper-include-line-number-in-search t
+ swiper-use-visual-line t
+ swiper-stay-on-quit t)
+
+(load "which-key-autoloads")
+(which-key-setup-side-window-right)
+(which-key-mode)
+
+(setq which-key-side-window-max-width 0.5
+ which-key-show-remaining-keys t
+ which-key-max-display-columns 50
+ which-key-max-description-length 35
+ which-key-sort-order 'which-key-local-then-key-order
+ which-key-idle-delay 0.25)
+
+(add-hook 'prog-mode-hook 'rmsbolt-mode)
+
+;; (when (package-loaded? "quickrun")
+;; (define-key global-map (kbd "C-c C-c") 'quickrun))
+
+(load "sly-autoloads")
+
+(setq sly-lisp-implementations
+ '((clisp ("clisp"))
+ (cmucl ("cmucl" "-quiet"))
+ (sbcl ("/opt/sbcl/bin/sbcl") :coding-system utf-8-unix)))
+
+(load "erlang-autoloads")
+
+(when (package-loaded? "inf-ruby")
+ (add-hook 'ruby-mode-hook 'inf-ruby-minor-mode))
+
+(when (package-loaded? "inf-ruby")
+ (add-hook 'ruby-mode-hook 'robe-mode))
+
+(when (package-loaded? "anaconda-mode")
+ (progn
+ (add-hook 'python-mode-hook 'anaconda-mode)
+ (add-hook 'python-mode-hook 'anaconda-eldoc-mode)))
+
+;; (when (load "flymake" t)
+;; (defun flymake-pylint-init ()
+;; (let* ((temp-file (flymake-init-create-temp-buffer-copy
+;; 'flymake-create-temp-inplace))
+;; (local-file (file-relative-name
+;; temp-file
+;; (file-name-directory buffer-file-name))))
+;; (list "epylint" (list local-file))))
+
+;; (add-to-list 'flymake-allowed-file-name-masks
+;; '("\\.py\\'" flymake-pylint-init)))
+
+;; (add-hook 'python-mode-hook 'flymake-mode)
+
+(add-hook 'sml-mode-hook 'sml-mode)
+
+;; (add-to-list 'load-path "~/.emacs.d/site-lisp/realgud-xdebug/")
+;; (require 'realgud-xdebug)
+
+;; (defun init-php-mode ()
+;; (eglot-ensure))
+
+(with-eval-after-load 'php-mode
+
+ ;; (add-hook 'php-mode-hook #'init-php-mode)
+ )
+
+(when (package-loaded? "php-mode")
+ (progn
+ (add-hook 'php-mode-hook 'php-enable-symfony2-coding-style)
+ (setq lsp-intelephense-php-version "8.1.16")
+ (defvar phpactor-executable "~/.bin/phpactor")
+ (custom-set-variables '(lsp-phpactor-path "~/usr/local/bin/phpactor"))
+
+ (add-hook 'php-mode-hook
+ '(lambda ()
+ ;; (require 'yasnippet)
+ ;; (require 'yasnippet-snippets)
+
+ (set-fill-column 120)
+
+ ;; (make-local-variable 'eldoc-documentation-function)
+ ;; (setq eldoc-documentation-function
+ ;; 'phpactor-hover)
+ ;; (yas-minor-mode t)
+ (define-key php-mode-map (kbd "C-c h") 'php-quickhelp-at-point)))
+
+ (setq php-manual-path
+ "~/php/php-manual/"
+ php-quickhelp-dir "~/php/php-manual/"
+ php-quickhelp--dest "~/.emacs.d/php-manual/php_manual_en.json")
+
+
+ ;; (add-hook 'php-mode-hook
+ ;; '(lambda ()
+ ;; ;; (auto-complete-mode t)
+
+ ;; ;; (require 'ac-php)
+ ;; (require 'php-quickhelp)
+ ;; (require 'company)
+ ;; (company-mode t)
+ ;; (require 'company-php)
+ ;; (require 'company-quickhelp)
+
+ ;; (require 'yasnippet)
+ ;; (require 'yasnippet-snippets)
+
+ ;; (set (make-local-variable 'company-backends)
+ ;; '((company-ac-php-backend company-dabbrev-code)
+ ;; php-quickhelp-company-php
+ ;; company-capf company-files))
+
+ ;; (company-quickhelp-mode t)
+
+ ;; (define-key php-mode-map (kbd "C-M-i") 'company-complete)
+ ;; (define-key company-mode-map (kbd "M-TAB") 'company-complete)
+
+ ;; ;; (setq ac-sources '(ac-source-php php-quickhelp-company-php))
+ ;; ;; (setq eldoc-documentation-function
+ ;; ;; 'php-quickhelp-eldoc-func)
+
+ ;; (yas-minor-mode t)
+
+ ;; ;; (define-key php-mode-map (kbd "C-M-i") 'auto-complete)
+ ;; ;; (define-key ac-mode-map (kbd "M-TAB") 'auto-complete)
+
+ ;; (define-key php-mode-map (kbd "C-c H")
+ ;; 'php-local-manual-search)
+
+ ;; (define-key php-mode-map (kbd "C-c h") 'php-quickhelp-at-point)
+ ;; (define-key company-mode-map (kbd "C-c h") 'php-quickhelp-at-point)
+
+ ;; ;; (define-key php-mode-map (kbd "C-c t") 'ac-php-show-tip)
+
+ ;; ;; Jump to definition (optional)
+ ;; (define-key php-mode-map
+ ;; (kbd "M-.") 'ac-php-find-symbol-at-point)
+
+ ;; ;; Return back (optional)
+ ;; (define-key php-mode-map
+ ;; (kbd "M-,") 'ac-php-location-stack-back)))
+ ))
+
+(setq phpactor-executable "~/.bin/phpactor")
+(custom-set-variables '(lsp-phpactor-path "~/.bin/phpactor"))
+
+(use-package phpactor :ensure t)
+(use-package company-phpactor :ensure t)
+
+
+
+;; (with-eval-after-load 'php-mode
+;; (define-key php-mode-map (kbd "M-.") #'phpactor-goto-definition)
+;; (define-key php-mode-map (kbd "M-?") #'phpactor-find-references))
+
+(require 'transient)
+(define-transient-command php-menu ()
+ "Php"
+ [["Class"
+ ("cc" "Copy" phpactor-copy-class)
+ ("cn" "New" phpactor-create-new-class)
+ ("cr" "Move" phpactor-move-class)
+ ("ci" "Inflect" phpactor-inflect-class)
+ ("n" "Namespace" phpactor-fix-namespace)]
+ ["Properties"
+ ("a" "Accessor" phpactor-generate-accessors)
+ ("pc" "Constructor" phpactor-complete-constructor)
+ ("pm" "Add missing props" phpactor-complete-properties)
+ ("r" "Rename var locally" phpactor-rename-variable-local)
+ ("R" "Rename var in file" phpactor-rename-variable-file)]
+ ["Extract"
+ ("ec" "constant" phpactor-extract-constant)
+ ("ee" "expression" phpactor-extract-expression)
+ ("em" "method" phpactor-extract-method)]
+ ["Methods"
+ ("i" "Implement Contracts" phpactor-implement-contracts)
+ ("m" "Generate method" phpactor-generate-method)]
+ ["Navigate"
+ ("x" "List refs" phpactor-list-references)
+ ("X" "Replace refs" phpactor-replace-references)
+ ("." "Goto def" phpactor-goto-definition)]
+ ["Phpactor"
+ ("s" "Status" phpactor-status)
+ ("u" "Install" phpactor-install-or-update)]])
+
+;; Empty for now (was using emacsql)
+(setq lsp-sqls-server "~/go/bin/sqls")
+
+;; (setq lsp-sqls-workspace-config-path nil)
+
+(setq lsp-sqls-connections
+ '(((driver . "mysql") (dataSourceName . "dbuser:mangoworms@tcp(localhost:3306)/profile24"))))
+
+(when (package-loaded? "org-sql")
+ (setq org-sql-files "~/projects/profile24/org"))
+
+(add-hook 'sql-interactive-mode-hook
+ (lambda ()
+ (sql-connect "profile24")
+ (toggle-truncate-lines t)))
+
+(setq sql-connection-alist
+ '((profile24
+ (sql-product 'mysql)
+ (sql-server "localhost")
+ (sql-user "dbuser")
+ (sql-password "123456")
+ (sql-database "testdb")
+ (sql-port 3306))))
+
+(load "org-ref-autoloads")
+
+(setq reftex-default-bibliography '("~/Documents/bibliography/references.bib"))
+
+;; see org-ref for use of these variables
+(setq org-ref-bibliography-notes "~/Documents/bibliography/notes.org"
+ org-ref-default-bibliography '("~/Documents/Bibliography/references.bib")
+ org-ref-pdf-directory "~/Documents/bibliography/bibtex-pdfs/")
+
+(when (package-loaded? "mastodon")
+ (setq mastodon-active-user "w96k"
+ mastodon-instance-url "https://fosstodon.org/"))
+
+(global-hl-line-mode 1)
+
+(add-to-list 'special-display-buffer-names "*Buffer List*")
+(setq Buffer-menu-files-only t)
+
+(setq exec-path-from-shell-variables
+ '("PATH" "MANPATH"))
+
+(when (and (memq window-system '(mac ns x))
+ (not (eq system-type 'berkeley-unix)))
+ (exec-path-from-shell-initialize))
+
+(define-key global-map (kbd "C-q C-q") 'previous-buffer)
+(define-key global-map (kbd "C-S-q C-S-q") 'next-buffer)
+
+(define-key global-map (kbd "C-h") 'delete-backward-char)
+(define-key global-map (kbd "C-c h") 'help-command)
+
+(setq browse-url-browser-function #'eww-browse-url)
+
+(add-hook 'eww-mode-hook
+ (lambda ()
+ (set-fill-column 80)
+ (display-fill-column-indicator-mode)
+ (visual-fill-column-mode)))
+
+(add-to-list 'tramp-remote-path 'tramp-own-remote-path)
+
+(load "debian-el-autoloads")
+(load "dpkg-dev-el-autoloads")
+
+(package-loaded? "nix")
+
+(when (package-loaded? "direnv")
+ (direnv-mode))
+
+(defun zoom-in ()
+ (interactive)
+ (let ((x (+ (face-attribute 'default :height)
+ 10)))
+ (set-face-attribute 'default nil :height x)
+ (set-face-attribute 'mode-line nil :height x)
+ (set-face-attribute 'mode-line-inactive nil :height x)
+ (set-face-attribute 'mode-line-position-face nil :height x)))
+
+(defun zoom-out ()
+ (interactive)
+ (let ((x (- (face-attribute 'default :height)
+ 10)))
+ (set-face-attribute 'default nil :height x)
+ (set-face-attribute 'mode-line nil :height x)
+ (set-face-attribute 'mode-line-inactive nil :height x)
+ (set-face-attribute 'mode-line-position-face nil :height x)))
+
+(define-key global-map (kbd "C-=") 'zoom-in)
+(define-key global-map (kbd "C-+") 'zoom-out)
+
+(add-to-list 'default-frame-alist '(fullscreen . maximized))
+
+(toggle-frame-fullscreen)
+
+(defun fullscreen ()
+"Fullscreen."
+(interactive)
+(x-send-client-message nil 0 nil "_NET_WM_STATE" 32
+ ;; if first parameter is '1', can't toggle fullscreen status
+ '(1 "_NET_WM_STATE_FULLSCREEN" 0)))
+
+;; Better support for files with long lines
+(setq-default bidi-paragraph-direction 'left-to-right)
+(setq-default bidi-inhibit-bpa t)
+(global-so-long-mode 1)