- User Information
- Font Settings
- Theme
- Line Numbers
- Org Directory
- Keybindings for Navigation
- Exit insert mode by pressing j and then j quickly
- Buffer Navigation
- Toggle Term
- Custom Zen Mode
- Company Mode
- LSP settings for Python
- Scrolling Settings
- Neotree
- Projectile
- Org Bullets
- Table of Contents
- Org Modern Mode
- Fill Column Indicator
(setq doom-font (font-spec :family "SauceCodePro Nerd Font Mono" :size 20))
;; (setq doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
(setq doom-theme 'doom-gruvbox)
(setq display-line-numbers-type t)
(setq org-directory "~/org/")
(map! :nv "J" (lambda () (interactive) (evil-next-visual-line 5)))
(map! :nv "K" (lambda () (interactive) (evil-previous-visual-line 5)))
(map! :nv "H" (lambda () (interactive) (evil-backward-char 5)))
(map! :nv "L" (lambda () (interactive) (evil-forward-char 5)))
(use-package! evil-escape
:init
(setq evil-escape-key-sequence "jj"))
(map! :nmv "<tab>" #'centaur-tabs-forward)
(map! :nmv "<S-tab>" #'centaur-tabs-backward)
(map! :leader
(:prefix ("t" . "toggle")
:desc "Toggle vterm" "t" #'+vterm/toggle))
(defun my-zen-mode-toggle ()
"Toggle custom Zen Mode to center text without increasing font size."
(interactive)
(if (bound-and-true-p visual-fill-column-mode)
(my-zen-mode-exit)
(my-zen-mode)))
(defun my-zen-mode ()
"Activate custom Zen Mode."
(visual-line-mode 1)
(visual-fill-column-mode 1)
(setq-local visual-fill-column-center-text t)
(setq-local visual-fill-column-width 90)
(let* ((margin (max 0 (/ (- (window-total-width) visual-fill-column-width) 2))))
(setq left-margin-width margin)
(setq right-margin-width margin)
(set-window-buffer (selected-window) (current-buffer)))
(setq-local mode-line-format nil)
(setq-local header-line-format nil)
(add-hook 'kill-buffer-hook #'my-zen-mode-exit nil t))
(defun my-zen-mode-exit ()
"Restore settings after exiting custom Zen Mode."
(visual-line-mode -1)
(visual-fill-column-mode -1)
(kill-local-variable 'mode-line-format)
(kill-local-variable 'header-line-format))
(map! :leader
:desc "Toggle Zen-mode"
"z" #'my-zen-mode-toggle)
(use-package company
:ensure t
:config
(setq company-idle-delay 0.1
company-minimum-prefix-length 1))
(use-package! lsp-mode
:hook (python-mode . lsp)
:commands lsp
:config
(setq lsp-pylsp-plugins-pylint-enabled nil
lsp-pylsp-plugins-flake8-enabled t
lsp-pylsp-plugins-pycodestyle-enabled nil
lsp-pylsp-plugins-mccabe-enabled nil))
(after! lsp-python-ms
(set-lsp-priority! 'pyright 1))
(setq scroll-margin 10)
(setq scroll-step 1)
(setq scroll-conservatively 10000)
(setq auto-window-vscroll nil)
(use-package neotree
:ensure t
:config
(setq neo-smart-open t
neo-window-fixed-size nil))
(map! :leader
:desc "Toggle Neotree"
"e" #'neotree-toggle)
(use-package projectile
:ensure t
:config
(projectile-mode +1)
(setq projectile-switch-project-action 'neotree-projectile-action)
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map))
(global-auto-revert-mode 1)
;; (use-package org-bullets
;; :hook (org-mode . org-bullets-mode))
(use-package toc-org
:commands toc-org-enable
:init (add-hook 'org-mode-hook 'toc-org-enable))
(setq
org-auto-align-tags nil
org-tags-column 0
org-catch-invisible-edits 'show-and-error
org-special-ctrl-a/e t
org-insert-heading-respect-content t
org-hide-emphasis-markers t
org-pretty-entities t
org-agenda-tags-column 0
org-agenda-block-separator ?─
org-agenda-time-grid
'((daily today require-timed)
(800 1000 1200 1400 1600 1800 2000)
" ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄")
org-agenda-current-time-string
"◀── now ─────────────────────────────────────────────────")
(global-org-modern-mode)
(setq-default fill-column 90)
(global-display-fill-column-indicator-mode t)
(custom-set-faces
'(fill-column-indicator ((t (:foreground "black")))))