(require 'package) (setq package-archives '(("melpa" . "https://melpa.org/packages/") ("melpa-stable" . "https://stable.melpa.org/packages/") ;;("org" . "https://orgmode.org/elpa/") ("nongnu" . "https://elpa.nongnu.org/nongnu/") ("elpa" . "https://elpa.gnu.org/packages/"))) (package-initialize) (unless package-archive-contents (package-refresh-contents)) (unless (package-installed-p 'use-package) (package-install 'use-package)) (require 'use-package) (setq use-package-always-ensure t) (set-face-attribute 'default nil :height 120) (menu-bar-mode -1) (scroll-bar-mode -1) (tool-bar-mode -1) (tooltip-mode -1) ;; disable tooltips (add-hook 'prog-mode-hook #'display-line-numbers-mode) (setq display-line-numbers-type 'relative) (setq inhibit-startup-message t) (setq visible-bell t) (set-fringe-mode 10) (use-package doom-themes :config (load-theme 'doom-solarized-dark t)) (use-package doom-modeline :ensure t :init (doom-modeline-mode 1)) (column-number-mode) (use-package olivetti :bind ("C-c f" . olivetti-mode) :hook (org-mode . olivetti-mode) (text-mode . olivetti-mode) (prog-mode . olivetti-mode) :init (setq-default olivetti-body-width 105)) (use-package ivy :bind (("C-s" . swiper) :map ivy-minibuffer-map ("TAB" . ivy-alt-done)) :config (ivy-mode 1)) (use-package ivy-rich :init (ivy-rich-mode 1)) (use-package counsel :bind (("M-x" . counsel-M-x) ("C-x b" . counsel-ibuffer) ("C-x C-f" . counsel-find-file)) :config (setq ivy-initial-inputs-alist nil)) ;; Don't start searches with ^ (use-package which-key :init (which-key-mode) :config (setq which-key-idle-delay 0.3)) (custom-set-faces '(org-block-begin-line ((t (:inherit default :background nil)))) '(org-block-end-line ((t (:inherit default :background nil))))) (setq org-startup-indented t) (org-babel-do-load-languages 'org-babel-load-languages '((python . t))) (use-package org-contrib :config (require 'ox-extra) (ox-extras-activate '(ignore-headlines))) (use-package pdf-tools :config (pdf-tools-install)) (use-package projectile :bind-keymap ("C-c p" . projectile-command-map) :config ;; (setq counsel-projectile-switch-project-action #'dired) (setq projectile-switch-project-action #'magit-status) :init (projectile-mode +1)) (use-package counsel-projectile :after (projectile counsel) :config (counsel-projectile-mode)) (use-package direnv :config (direnv-mode)) (use-package treemacs :bind (("C-c t" . dk/treemacs-toggle))) (use-package treemacs-projectile :after (treemacs projectile) :ensure t) (use-package lsp-treemacs :after lsp) (lsp-treemacs-sync-mode 1) (defun dk/treemacs-toggle () "Toggle treemacs-projectile and lsp symbols" (interactive) (if (treemacs-current-visibility) (treemacs) (progn (treemacs-projectile) (treemacs-add-and-display-current-project-exclusively) ))) (use-package magit :commands (magit-status magit-get-current-branch) :custom (magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) (use-package lsp-mode :init (setq lsp-keymap-prefix "C-c l") :hook (prog-mode . lsp) :config (lsp-enable-which-key-integration t) (lsp-register-client (make-lsp-client :new-connection (lsp-stdio-connection "glsl_analyzer") :major-modes '(glsl-mode) :server-id 'glsl-analyzer))) :commands lsp) (use-package company :after lsp-mode :hook (lsp-mode . company-mode) :bind (:map company-active-map ("" . company-complete-selection)) (:map lsp-mode-map ("" . company-indent-or-complete-common)) :custom (company-minimum-prefix-lenght 1) (company-idle-delay 0.0)) (use-package evil-nerd-commenter :bind ("M-/" . evilnc-comment-or-uncomment-lines)) (setq lsp-clients-clangd-args '("-compile-commands-dir=build")) (use-package rust-mode :hook (rust-mode . (lambda () (setq indent-tabs-mode nil))) (rust-mode . prettify-symbols-mode) :config (setq rust-format-on-save t)) (use-package nix-mode :mode "\\.nix\\'") (use-package wgsl-mode :mode "\\.wgsl\\'") (use-package glsl-mode :ensure t) (use-package simple-httpd :ensure t) (setq backup-inhibited t) (setq auto-save-default nil)