source: dotfiles/emacs/.emacs.d/nil

Last change on this file was 254aa1d, checked in by Mikhail Kirillov <w96k@…>, on Aug 5, 2024 at 6:53:43 AM

Massively update guix home

  • Property mode set to 100644
File size: 21.3 KB
Line 
1(require 'package)
2
3(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
4 ("melpa" . "http://melpa.org/packages/")))
5
6(when (< emacs-major-version 27)
7 (package-initialize))
8
9(require 'gnutls)
10
11(progn
12 (package-refresh-contents)
13 (package-install 'avy)
14 (package-install 'php-mode)
15 (package-install 'phps-mode)
16 ;; (package-install 'anzu)
17 (package-install 'anaconda-mode)
18 (package-install 'auctex)
19 ;; (package-install 'rmsbolt)
20 ;; (package-install 'beginend)
21 ;; (package-install 'composer)
22 (package-install 'cinspect)
23 (package-install 'debian-el)
24 (package-install 'dpkg-dev-el)
25 (package-install 'edebug-inline-result)
26 ;;(package-install 'haskell-mode)
27 ;;(package-install 'idris-mode)
28 (package-install 'magit)
29 (package-install 'git-timemachine)
30 (package-install 'git-dwim)
31 (package-install 'gitpatch)
32 (package-install 'goto-chg)
33 (package-install 'debbugs)
34 ;;(package-install 'deft)
35 ;; (package-install 'direnv)
36 (package-install 'dumb-jump)
37 (package-install 'docker)
38 (package-install 'docker-cli)
39 (package-install 'docker-tramp)
40 (package-install 'docker-compose-mode)
41 (package-install 'org-sql)
42 ;;(package-install 'eglot)
43 ;; (package-install 'eglot-java)
44 ;; (package-install 'mastodon)
45 ;; (package-install 'exec-path-from-shell)
46 (package-install 'expand-region)
47 ;; (package-install 'flymake-php)
48 (package-install 'flycheck)
49 (package-install 'flycheck-phpstan)
50 (package-install 'phpactor)
51 ;;(package-install 'robe)
52 (package-install 'geiser)
53 (package-install 'geiser-guile)
54 (package-install 'guix)
55 ;; (package-install 'git-gutter)
56 ;; (package-install 'gnuplot)
57 ;;(package-install 'swiper)
58 ;;(package-install 'sqlite3)
59 (package-install 'org-roam)
60 ;; (package-install 'org-roam-ui)
61 ;; (package-install 'org-download)
62 ;; (package-install 'org-babel-eval-in-repl)
63 ;;(package-install 'ob-php)
64 ;; (package-install 'on-screen)
65 ;;(package-install 'nix-mode)
66 (package-install 'pdf-tools)
67 ;;(package-install 'phpactor)
68 ;; (package-install 'company-quickhelp)
69 ;;(package-install 'ac-php)
70 (package-install 'php-mode)
71 (package-install 'php-quickhelp)
72 (package-install 'phan)
73 ;;(package-install 'php-cs-fixer)
74 ;; (package-install 'company-php)
75 ;;(package-install 'php-eldoc)
76 ;;(package-install 'phps-mode)
77 (package-install 'realgud)
78 ;; (package-install 'realgud-xdebug)
79 ;; (package-install 'kiwix)
80 ;;(package-install 'sml-mode)
81 (package-install 'sly)
82 (package-install 'simple-httpd)
83 (package-install 'sudo-edit)
84 ;;(package-install 'treemacs)
85 (package-install 'undo-tree)
86 ;; (package-install 'yasnippet)
87 ;; (package-install 'yasnippet-snippets)
88 ;; (package-install 'vimrc-mode)
89 ;; (package-install 'flymake-phpcs)
90 ;; (package-install 'flymake-phpstan)
91 ;; (package-install 'no-littering)
92 (package-install 'web-mode)
93 ;; (package-install 'which-key)
94 ;; (package-install 'reverse-im)
95 (package-install 'imenu-list)
96 ;; (package-install 'isearch-mb)
97 (package-install 'visual-fill-column)
98 ;; (package-install 'browse-kill-ring)
99 (package-install 'corfu)
100 ;; (package-install 'inf-ruby)
101 (package-install 'yaml-mode)
102 ;; (package-install 'geben)
103 (package-install 'link-hint)
104 (package-install 'whole-line-or-region)
105 (package-install 'quickrun)
106 ;; (package-install 'psysh)
107 ;; (package-install 'restclient)
108 )
109
110(when (eq window-system 'pgtk)
111 (pgtk-use-im-context t))
112
113(when (fboundp 'native-compile-async)
114 (setq comp-async-compilation t
115 package-native-compile t
116
117 native-comp-speed 2
118 native-comp-async-jobs-number 1
119 comp-num-cpus 2
120 ;; JIT Compilation
121 native-comp-deferred-compilation t
122 ;; AOT Compilation
123 package-native-compile t
124 comp-async-report-warnings-errors nil))
125
126;; (native-compile-async "~/.emacs.d/elpa/" 'recursively)
127(native-compile-async "~/.guix-profile/share/emacs/site-lisp" 'recursively)
128
129;; block until native compilation has finished
130 (while (or comp-files-queue
131 (> (comp-async-runnings) 0))
132
133;; Disable guix autoloading and x resources loading
134(setq site-run-file nil)
135
136(require 'exwm)
137(require 'exwm-config)
138(exwm-config-example)
139
140;; Change mode-line-modes to show only major mode
141(defvar mode-line-major-mode
142 (let ((recursive-edit-help-echo "Recursive edit, type C-M-c to get out"))
143 (list (propertize "%[" 'help-echo recursive-edit-help-echo)
144 `(:propertize ("" mode-name)
145 help-echo "Major mode\n\
146 mouse-1: Display major mode menu\n\
147 mouse-2: Show help for major mode\n\
148 mouse-3: Toggle minor modes"
149 mouse-face mode-line-highlight
150 local-map ,mode-line-major-mode-keymap)
151 '("" mode-line-process)
152 (propertize "%n" 'help-echo "mouse-2: Remove narrowing from buffer"
153 'mouse-face 'mode-line-highlight
154 'local-map (make-mode-line-mouse-map
155 'mouse-2 #'mode-line-widen))
156 (propertize "%]" 'help-echo recursive-edit-help-echo)
157 " "))
158 "Mode line construct for displaying major and minor modes.")
159
160(put 'mode-line-major-mode 'risky-local-variable t)
161
162;; Change mode-line-format
163(setq-default mode-line-format
164 '("%e"
165 mode-line-front-space
166 mode-line-mule-info
167
168 mode-line-client
169 mode-line-modified
170 mode-line-remote
171 mode-line-frame-identification
172 ;; long-path
173 mode-line-buffer-identification
174 mode-line-misc-info
175 " "
176 mode-line-major-mode
177 " "
178 vc-mode
179 " "
180
181 mode-line-position
182 mode-line-end-spaces
183 ))
184
185;; Do not resize the frame at this early stage.
186(setq frame-inhibit-implied-resize t)
187(setq use-dialog-box nil)
188
189;;; Disable some gui
190(scroll-bar-mode -1)
191(tool-bar-mode -1)
192(menu-bar-mode -1)
193;;(tooltip-mode -1)
194
195;;; Changing emacs default setting through customize
196(custom-set-variables
197 '(fill-column 72)
198 '(git-gutter:added-sign " ")
199 '(git-gutter:deleted-sign " ")
200 '(git-gutter:modified-sign " ")
201 '(git-gutter:unchanged-sign " ")
202 '(lsp-headerline-breadcrumb-enable nil)
203 '(scroll-bar-mode 'nil)
204 '(scroll-bar-adjust-thumb-portion nil)
205 '(tool-bar-position 'bottom)
206 '(tool-bar-style 'both-horiz))
207
208(custom-set-faces
209 '(default ((t (:height 140 :family "Jetbrains Mono" :embolden t))))
210 '(region ((t (:background "gray85"))))
211 '(mode-line ((t (:background "grey70" :foreground "grey10"))))
212 '(mode-line-inactive ((t (:inherit mode-line :background "grey90" :foreground "grey20" :box (:line-width (-2 . -2) :color "grey85") :weight light))))
213 '(mode-line-buffer-id ((t (:weight bold))))
214 '(mode-line-emphasis ((t (:weight bold))))
215 '(lsp-modeline-code-actions-face ((t :inherit mode-line :height 100)))
216 '(tool-bar ((t (:background "grey80" :foreground "grey10"))))
217 '(fill-column-indicator ((t (:foreground "grey95"))))
218 '(hl-line ((t (:background "gray95"))))
219 '(fringe ((t (:background "grey87"))))
220 '(header-line ((t (:inherit mode-line :background "grey90"))))
221 '(vertical-border ((t (:foreground "grey90"))))
222 '(window-divider ((t (:foreground "gray90")))))
223
224(set-fringe-style (cons 7 7))
225
226(defun switch-gui ()
227 "Disable/enable menu-bar and tool-bar."
228 (interactive)
229 (if menu-bar-mode
230 (progn
231 (menu-bar-mode -1)
232 (tool-bar-mode -1)
233 (scroll-bar-mode -1))
234 (progn
235 (menu-bar-mode 1)
236 (tool-bar-mode 1)
237 (scroll-bar-mode 1))))
238
239(defun switch-scroll-bar ()
240 "Disable/enable scroll-bar."
241 (interactive)
242 (if scroll-bar-mode
243 (scroll-bar-mode -1)
244 (scroll-bar-mode)))
245
246(define-key global-map (kbd "<f5>") 'switch-gui)
247(define-key global-map (kbd "<f8>") 'switch-scroll-bar)
248
249(provide 'early-init)
250 ;;; early-init.el ends here
251
252;;(add-hook 'prog-mode-hook 'flymake-mode)
253
254(require 'psalm)
255
256(define-prefix-command 'flymake-map)
257(global-set-key (kbd "C-q") 'flymake-map)
258(define-key flymake-map (kbd "n") 'flymake-goto-next-error)
259(define-key flymake-map (kbd "p") 'flymake-goto-prev-error)
260(define-key flymake-map (kbd "l") 'flymake-show-diagnostics-buffer)
261(define-key flymake-map (kbd "e") 'flymake-show-diagnostic)
262
263;; (require 'psalm)
264
265(when (package-loaded? "flycheck")
266
267 (defun flycheck-phanclient-start-daemon ()
268 "Start the phan daemon"
269 (interactive)
270 (let* ((default-directory (php-project-get-root-dir))
271 (phan-executable (or flycheck-phanclient--phan-executable
272 (if (file-exists-p "vendor/bin/phan")
273 (concat default-directory "vendor/bin/phan")
274 (executable-find "phan"))))
275 (cmd (list phan-executable "--daemonize-tcp-port" "4846" "--quick")))
276 (apply #'start-process "PhanDaemon" "*phan daemon*" cmd)))
277
278 (flycheck-define-checker php-phanclient
279 "Phan"
280 :command ("phan_client" "-l" source-original "-f" source)
281 :error-patterns
282 ((warning line-start (or "Parse" "Fatal" "syntax" "Phan") " error" (any ":" ",") " " (message) " in " (file-name) " on line " line line-end))
283 :modes (php-mode php+-mode))
284
285 (add-to-list 'flycheck-checkers 'php-phanclient)
286
287 (flycheck-add-next-checker 'php '(warning . php-phanclient))
288
289 (add-hook 'prog-mode-hook 'flycheck-mode))
290
291(when (package-loaded? "treemacs")
292 (progn
293 (setq treemacs-width 50
294 treemacs-show-cursor t
295 treemacs-position 'right
296 treemacs-indentation 1
297 treemacs-tag-follow-mode t
298 treemacs-fringe-indicator-mode nil)
299
300 (define-key global-map
301 (kbd "C-x C-d") 'treemacs)))
302
303(when (package-loaded? "isearch-mb")
304 (progn
305 (isearch-mb-mode t)
306 (global-set-key (kbd "C-s") 'isearch-forward-regexp)
307 (global-set-key (kbd "C-r") 'isearch-backward-regexp)))
308
309(when (package-loaded? "browse-kill-ring")
310 (define-key global-map (kbd "C-M-y") 'browse-kill-ring))
311
312(setq path-to-ctags "~/.guix-profile/bin/ctags")
313
314(defun tags-create (dir-name)
315 "Create tags file."
316 (interactive "DDirectory: ")
317 (shell-command
318 (format "%s -f TAGS -e -R %s" path-to-ctags
319 (directory-file-name dir-name))))
320
321(defun tags-create-python (dir-name)
322 "Create tags with python interpreter"
323 (interactive "DDirectory: ")
324 (shell-command
325 (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
326 (directory-file-name dir-name))))
327
328(when (package-loaded? "realgud")
329 (load "~/.emacs.d/site-lisp/realgud-xdebug/realgud-xdebug.el"))
330
331(when (package-loaded? "geben")
332 (setq geben-dbgp-default-port 9003))
333
334(when (package-loaded? "corfu")
335 (progn
336 (setq corfu-preview-current 'nil
337 corfu-popupinfo-delay t)
338 (corfu-mode 1)
339 (corfu-popupinfo-mode 1)
340 (defun show-default-completion-buffer ()
341 (interactive)
342 (corfu-quit)
343 (corfu-mode -1)
344 (completion-at-point)
345 (corfu-mode 1)
346 (corfu-popupinfo-mode 1))
347 (define-key corfu-map (kbd "M-TAB") 'show-default-completion-buffer)
348 (define-key corfu-map (kbd "TAB") 'show-default-completion-buffer)
349 (define-key corfu-map (kbd "C-M-i") 'show-default-completion-buffer)
350 (corfu-mode -1)
351 (add-hook 'prog-mode-hook 'corfu-mode)
352
353 (defun corfu-send-shell (&rest _)
354 "Send completion candidate when inside comint/eshell."
355 (cond
356 ((and (derived-mode-p 'eshell-mode) (fboundp 'eshell-send-input))
357 (eshell-send-input))
358 ((and (derived-mode-p 'comint-mode) (fboundp 'comint-send-input))
359 (comint-send-input))))
360
361 (advice-add #'corfu-insert :after #'corfu-send-shell)
362
363 (add-hook 'eshell-mode-hook 'corfu-mode)))
364
365(setq completion-styles '(basic partial-completion substring flex emacs22)
366 completion-ignore-case t
367 read-buffer-completion-ignore-case t
368 read-file-name-completion-ignore-case t)
369
370(setq aggressive-completion-delay 0.5)
371(aggressive-completion-mode t)
372
373(load "deft-autoloads")
374
375(define-key global-map
376 (kbd "C-c n s") 'deft)
377
378(setq deft-recursive t
379 deft-use-filter-string-for-filename t
380 deft-default-extension "org md"
381 deft-directory "~/projects/at-w96k/content/digarden")
382
383(when (package-loaded? "yasnippet")
384 (progn
385 (add-hook 'prog-mode-hook #'yas-minor-mode)))
386
387(defun my-php-mode-setup ()
388 "My PHP-mode hook."
389 (require 'flycheck-phpstan)
390 (flycheck-mode t))
391
392(add-hook 'php-mode-hook 'my-php-mode-setup)
393
394;; (add-hook 'php-mode-hook 'flymake-php-load)
395 ;; (add-hook 'php-mode-hook 'flymake-phpstan-turn-on)
396
397 ;; (require 'flycheck-phpstan)
398
399
400;;(add-to-list 'auto-mode-alist '("\\.\\(php\\|phtml\\)\\'" . phps-mode))
401
402;; (phps-mode-flycheck-setup)
403
404;; (setq phps-mode-async-process t)
405;; (setq phps-mode-async-process-using-async-el t)
406
407(desktop-save-mode 1)
408
409(global-anzu-mode t)
410
411(load "swiper-autoloads")
412(global-set-key (kbd "C-s") 'swiper)
413
414(setq swiper-include-line-number-in-search t
415 swiper-use-visual-line t
416 swiper-stay-on-quit t)
417
418(load "which-key-autoloads")
419(which-key-setup-side-window-right)
420(which-key-mode)
421
422(setq which-key-side-window-max-width 0.5
423 which-key-show-remaining-keys t
424 which-key-max-display-columns 50
425 which-key-max-description-length 35
426 which-key-sort-order 'which-key-local-then-key-order
427 which-key-idle-delay 0.25)
428
429(add-hook 'prog-mode-hook 'rmsbolt-mode)
430
431;; (when (package-loaded? "quickrun")
432;; (define-key global-map (kbd "C-c C-c") 'quickrun))
433
434(load "sly-autoloads")
435
436(setq sly-lisp-implementations
437 '((clisp ("clisp"))
438 (cmucl ("cmucl" "-quiet"))
439 (sbcl ("/opt/sbcl/bin/sbcl") :coding-system utf-8-unix)))
440
441(load "erlang-autoloads")
442
443(when (package-loaded? "inf-ruby")
444 (add-hook 'ruby-mode-hook 'inf-ruby-minor-mode))
445
446(when (package-loaded? "inf-ruby")
447 (add-hook 'ruby-mode-hook 'robe-mode))
448
449(when (package-loaded? "anaconda-mode")
450 (progn
451 (add-hook 'python-mode-hook 'anaconda-mode)
452 (add-hook 'python-mode-hook 'anaconda-eldoc-mode)))
453
454;; (when (load "flymake" t)
455;; (defun flymake-pylint-init ()
456;; (let* ((temp-file (flymake-init-create-temp-buffer-copy
457;; 'flymake-create-temp-inplace))
458;; (local-file (file-relative-name
459;; temp-file
460;; (file-name-directory buffer-file-name))))
461;; (list "epylint" (list local-file))))
462
463;; (add-to-list 'flymake-allowed-file-name-masks
464;; '("\\.py\\'" flymake-pylint-init)))
465
466;; (add-hook 'python-mode-hook 'flymake-mode)
467
468(add-hook 'sml-mode-hook 'sml-mode)
469
470;; (add-to-list 'load-path "~/.emacs.d/site-lisp/realgud-xdebug/")
471;; (require 'realgud-xdebug)
472
473;; (defun init-php-mode ()
474;; (eglot-ensure))
475
476(with-eval-after-load 'php-mode
477
478 ;; (add-hook 'php-mode-hook #'init-php-mode)
479 )
480
481(when (package-loaded? "php-mode")
482 (progn
483 (add-hook 'php-mode-hook 'php-enable-symfony2-coding-style)
484 (setq lsp-intelephense-php-version "8.1.16")
485 (defvar phpactor-executable "~/.bin/phpactor")
486 (custom-set-variables '(lsp-phpactor-path "~/usr/local/bin/phpactor"))
487
488 (add-hook 'php-mode-hook
489 '(lambda ()
490 ;; (require 'yasnippet)
491 ;; (require 'yasnippet-snippets)
492
493 (set-fill-column 120)
494
495 ;; (make-local-variable 'eldoc-documentation-function)
496 ;; (setq eldoc-documentation-function
497 ;; 'phpactor-hover)
498 ;; (yas-minor-mode t)
499 (define-key php-mode-map (kbd "C-c h") 'php-quickhelp-at-point)))
500
501 (setq php-manual-path
502 "~/php/php-manual/"
503 php-quickhelp-dir "~/php/php-manual/"
504 php-quickhelp--dest "~/.emacs.d/php-manual/php_manual_en.json")
505
506
507 ;; (add-hook 'php-mode-hook
508 ;; '(lambda ()
509 ;; ;; (auto-complete-mode t)
510
511 ;; ;; (require 'ac-php)
512 ;; (require 'php-quickhelp)
513 ;; (require 'company)
514 ;; (company-mode t)
515 ;; (require 'company-php)
516 ;; (require 'company-quickhelp)
517
518 ;; (require 'yasnippet)
519 ;; (require 'yasnippet-snippets)
520
521 ;; (set (make-local-variable 'company-backends)
522 ;; '((company-ac-php-backend company-dabbrev-code)
523 ;; php-quickhelp-company-php
524 ;; company-capf company-files))
525
526 ;; (company-quickhelp-mode t)
527
528 ;; (define-key php-mode-map (kbd "C-M-i") 'company-complete)
529 ;; (define-key company-mode-map (kbd "M-TAB") 'company-complete)
530
531 ;; ;; (setq ac-sources '(ac-source-php php-quickhelp-company-php))
532 ;; ;; (setq eldoc-documentation-function
533 ;; ;; 'php-quickhelp-eldoc-func)
534
535 ;; (yas-minor-mode t)
536
537 ;; ;; (define-key php-mode-map (kbd "C-M-i") 'auto-complete)
538 ;; ;; (define-key ac-mode-map (kbd "M-TAB") 'auto-complete)
539
540 ;; (define-key php-mode-map (kbd "C-c H")
541 ;; 'php-local-manual-search)
542
543 ;; (define-key php-mode-map (kbd "C-c h") 'php-quickhelp-at-point)
544 ;; (define-key company-mode-map (kbd "C-c h") 'php-quickhelp-at-point)
545
546 ;; ;; (define-key php-mode-map (kbd "C-c t") 'ac-php-show-tip)
547
548 ;; ;; Jump to definition (optional)
549 ;; (define-key php-mode-map
550 ;; (kbd "M-.") 'ac-php-find-symbol-at-point)
551
552 ;; ;; Return back (optional)
553 ;; (define-key php-mode-map
554 ;; (kbd "M-,") 'ac-php-location-stack-back)))
555 ))
556
557(setq phpactor-executable "~/.bin/phpactor")
558(custom-set-variables '(lsp-phpactor-path "~/.bin/phpactor"))
559
560(use-package phpactor :ensure t)
561(use-package company-phpactor :ensure t)
562
563
564
565;; (with-eval-after-load 'php-mode
566;; (define-key php-mode-map (kbd "M-.") #'phpactor-goto-definition)
567;; (define-key php-mode-map (kbd "M-?") #'phpactor-find-references))
568
569(require 'transient)
570(define-transient-command php-menu ()
571 "Php"
572 [["Class"
573 ("cc" "Copy" phpactor-copy-class)
574 ("cn" "New" phpactor-create-new-class)
575 ("cr" "Move" phpactor-move-class)
576 ("ci" "Inflect" phpactor-inflect-class)
577 ("n" "Namespace" phpactor-fix-namespace)]
578 ["Properties"
579 ("a" "Accessor" phpactor-generate-accessors)
580 ("pc" "Constructor" phpactor-complete-constructor)
581 ("pm" "Add missing props" phpactor-complete-properties)
582 ("r" "Rename var locally" phpactor-rename-variable-local)
583 ("R" "Rename var in file" phpactor-rename-variable-file)]
584 ["Extract"
585 ("ec" "constant" phpactor-extract-constant)
586 ("ee" "expression" phpactor-extract-expression)
587 ("em" "method" phpactor-extract-method)]
588 ["Methods"
589 ("i" "Implement Contracts" phpactor-implement-contracts)
590 ("m" "Generate method" phpactor-generate-method)]
591 ["Navigate"
592 ("x" "List refs" phpactor-list-references)
593 ("X" "Replace refs" phpactor-replace-references)
594 ("." "Goto def" phpactor-goto-definition)]
595 ["Phpactor"
596 ("s" "Status" phpactor-status)
597 ("u" "Install" phpactor-install-or-update)]])
598
599;; Empty for now (was using emacsql)
600(setq lsp-sqls-server "~/go/bin/sqls")
601
602;; (setq lsp-sqls-workspace-config-path nil)
603
604(setq lsp-sqls-connections
605 '(((driver . "mysql") (dataSourceName . "dbuser:mangoworms@tcp(localhost:3306)/profile24"))))
606
607(when (package-loaded? "org-sql")
608 (setq org-sql-files "~/projects/profile24/org"))
609
610(add-hook 'sql-interactive-mode-hook
611 (lambda ()
612 (sql-connect "profile24")
613 (toggle-truncate-lines t)))
614
615(setq sql-connection-alist
616 '((profile24
617 (sql-product 'mysql)
618 (sql-server "localhost")
619 (sql-user "dbuser")
620 (sql-password "123456")
621 (sql-database "testdb")
622 (sql-port 3306))))
623
624(load "org-ref-autoloads")
625
626(setq reftex-default-bibliography '("~/Documents/bibliography/references.bib"))
627
628;; see org-ref for use of these variables
629(setq org-ref-bibliography-notes "~/Documents/bibliography/notes.org"
630 org-ref-default-bibliography '("~/Documents/Bibliography/references.bib")
631 org-ref-pdf-directory "~/Documents/bibliography/bibtex-pdfs/")
632
633(when (package-loaded? "mastodon")
634 (setq mastodon-active-user "w96k"
635 mastodon-instance-url "https://fosstodon.org/"))
636
637(global-hl-line-mode 1)
638
639(add-to-list 'special-display-buffer-names "*Buffer List*")
640(setq Buffer-menu-files-only t)
641
642(setq exec-path-from-shell-variables
643 '("PATH" "MANPATH"))
644
645(when (and (memq window-system '(mac ns x))
646 (not (eq system-type 'berkeley-unix)))
647 (exec-path-from-shell-initialize))
648
649(define-key global-map (kbd "C-q C-q") 'previous-buffer)
650(define-key global-map (kbd "C-S-q C-S-q") 'next-buffer)
651
652(define-key global-map (kbd "C-h") 'delete-backward-char)
653(define-key global-map (kbd "C-c h") 'help-command)
654
655(setq browse-url-browser-function #'eww-browse-url)
656
657(add-hook 'eww-mode-hook
658 (lambda ()
659 (set-fill-column 80)
660 (display-fill-column-indicator-mode)
661 (visual-fill-column-mode)))
662
663(add-to-list 'tramp-remote-path 'tramp-own-remote-path)
664
665(load "debian-el-autoloads")
666(load "dpkg-dev-el-autoloads")
667
668(package-loaded? "nix")
669
670(when (package-loaded? "direnv")
671 (direnv-mode))
672
673(defun zoom-in ()
674 (interactive)
675 (let ((x (+ (face-attribute 'default :height)
676 10)))
677 (set-face-attribute 'default nil :height x)
678 (set-face-attribute 'mode-line nil :height x)
679 (set-face-attribute 'mode-line-inactive nil :height x)
680 (set-face-attribute 'mode-line-position-face nil :height x)))
681
682(defun zoom-out ()
683 (interactive)
684 (let ((x (- (face-attribute 'default :height)
685 10)))
686 (set-face-attribute 'default nil :height x)
687 (set-face-attribute 'mode-line nil :height x)
688 (set-face-attribute 'mode-line-inactive nil :height x)
689 (set-face-attribute 'mode-line-position-face nil :height x)))
690
691(define-key global-map (kbd "C-=") 'zoom-in)
692(define-key global-map (kbd "C-+") 'zoom-out)
693
694(add-to-list 'default-frame-alist '(fullscreen . maximized))
695
696(toggle-frame-fullscreen)
697
698(defun fullscreen ()
699"Fullscreen."
700(interactive)
701(x-send-client-message nil 0 nil "_NET_WM_STATE" 32
702 ;; if first parameter is '1', can't toggle fullscreen status
703 '(1 "_NET_WM_STATE_FULLSCREEN" 0)))
704
705;; Better support for files with long lines
706(setq-default bidi-paragraph-direction 'left-to-right)
707(setq-default bidi-inhibit-bpa t)
708(global-so-long-mode 1)
Note: See TracBrowser for help on using the repository browser.