dotfiles/.emacs.d/init.el

215 lines
8.1 KiB
EmacsLisp
Raw Normal View History

;; Naloži konfiguracije iz ORG datoteke
(org-babel-load-file "~/.emacs.d/config.org")
2023-02-16 19:09:11 +01:00
;;;;;;;;;;;
;; Razno ;;
;;;;;;;;;;;
2023-02-16 19:09:11 +01:00
;; Izboljsani default ukazi bolj prijazni
;; Iskanje po fajlih (fulltext)
2023-12-27 19:44:27 +01:00
;(use-package rg
; :defer t
; :config
; (rg-enable-default-bindings))
2021-04-25 00:43:50 +02:00
;; Pomoc
(use-package helpful :defer t)
2023-02-16 19:09:11 +01:00
;; Pomoc za keybinde
(use-package which-key
:defer t
2023-02-16 19:09:11 +01:00
:config
;; Allow C-h to trigger which-key before it is done automatically
(setq which-key-show-early-on-C-h t)
;; make sure which-key doesn't show normally but refreshes quickly after it is
;; triggered.
(setq which-key-idle-delay 0.4)
(setq which-key-idle-secondary-delay 0.05)
(which-key-mode))
2021-04-25 00:43:50 +02:00
(use-package zone-nyan :defer t)
2021-04-25 00:43:50 +02:00
;; Backup fajli emacsa
(setq
backup-by-copying t ; don't clobber symlinks
backup-directory-alist
2022-06-16 16:26:11 +02:00
`(("." . ,(concat user-emacs-directory "backups")))
backup-directory-alist
`(("." . ,(concat user-emacs-directory "saves")))
2021-04-25 00:43:50 +02:00
delete-old-versions t
kept-new-versions 6
kept-old-versions 2
version-control t) ; use versioned backups
2022-06-16 16:26:11 +02:00
;; Ne delaj lock fajlov (smetijo namrec)
(setq create-lockfiles nil)
2023-02-16 19:09:11 +01:00
;; File asociacije
(use-package openwith
:defer t
2023-02-16 19:09:11 +01:00
:config
(setq openwith-associations '(("\\.pdf\\'" "xdg-open" (file))))
(openwith-mode t))
;; Kolaborativno urejanje
(use-package crdt
:defer t
:general
(start/leader-keys
"c" '(:ignore t :wk "crdt")
"c c" 'crdt-connect
"c u" 'crdt-list-users
"c s" 'crdt-share-buffer
"c b" 'crdt-list-buffers))
;; ELISP test
(defun odpri-dnevnik ()
(interactive)
(find-file (format-time-string "/tmp/%Y-%m-%d_dnevnik.org"))
(insert (concat "\n=====================\n"
(shell-command-to-string "date") "\n"
(format-time-string "%Y-%m-%d") "\n"
"ŠE VEČ TEKSTA!" "\n")))
(global-set-key (kbd "C-M-d") 'odpri-dnevnik)
;; GNU guix
(use-package guix :defer t)
;; Dashboard - homescreen
(use-package dashboard
:general
(start/leader-keys
"b h" 'dashboard-open)
;:after nerd-icons
:init
(dashboard-setup-startup-hook)
(setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*")))
(setq dashboard-banner-logo-title "EMA☭S")
(setq dashboard-startup-banner 3)
(setq dashboard-center-content t)
(setq dashboard-items '((agenda . 5)
(recents . 5)))
;(setq dashboard-display-icons-p t) ;; display icons on both GUI and terminal
;(setq dashboard-icon-type 'nerd-icons) ;; use `nerd-icons' package
(setq dashboard-set-heading-icons t)
(setq dashboard-set-file-icons t)
(setq dashboard-set-navigator t)
(setq dashboard-set-init-info t))
;; Bolj fajni IELM REPL
(use-package ielm
:defer t
:hook (ielm-mode-hook . (lambda ()
(eldoc-mode)
;(paredit-mode)
(defun g-ielm-init-history ()
(let ((path (expand-file-name "ielm/history" user-emacs-directory)))
(make-directory (file-name-directory path) t)
(setq-local comint-input-ring-file-name path))
(setq-local comint-input-ring-size 10000)
(setq-local comint-input-ignoredups t)
(comint-read-input-ring))
(g-ielm-init-history)
(defun g-ielm-write-history (&rest _args)
(with-file-modes #o600
(comint-write-input-ring)))
(advice-add 'ielm-send-input :after 'g-ielm-write-history)
(define-key inferior-emacs-lisp-mode-map (kbd "C-l")
'comint-clear-buffer)
(define-key inferior-emacs-lisp-mode-map (kbd "C-r")
'helm-comint-input-ring))))
;; Sinhronizacija podnapisov (uporablja mpv!)
(use-package subed
:defer t
:config
;; Remember cursor position between sessions
(add-hook 'subed-mode-hook 'save-place-local-mode)
;; Break lines automatically while typing
(add-hook 'subed-mode-hook 'turn-on-auto-fill)
;; Break lines at 40 characters
(add-hook 'subed-mode-hook (lambda () (setq-local fill-column 40)))
;; Some reasonable defaults
(add-hook 'subed-mode-hook 'subed-enable-pause-while-typing)
;; As the player moves, update the point to show the current subtitle
(add-hook 'subed-mode-hook 'subed-enable-sync-point-to-player)
;; As your point moves in Emacs, update the player to start at the current subtitle
(add-hook 'subed-mode-hook 'subed-enable-sync-player-to-point)
;; Replay subtitles as you adjust their start or stop time with M-[, M-], M-{, or M-}
(add-hook 'subed-mode-hook 'subed-enable-replay-adjusted-subtitle)
;; Loop over subtitles
(add-hook 'subed-mode-hook 'subed-enable-loop-over-current-subtitle)
;; Show characters per second
(add-hook 'subed-mode-hook 'subed-enable-show-cps))
2023-02-16 19:09:11 +01:00
;;;;;;;;;;;;
;; CUSTOM ;;
;;;;;;;;;;;;
(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
'("db3e80842b48f9decb532a1d74e7575716821ee631f30267e4991f4ba2ddf56e"
"d14f3df28603e9517eb8fb7518b662d653b25b26e83bd8e129acea042b774298"
"7661b762556018a44a29477b84757994d8386d6edee909409fabe0631952dad9"
default))
2023-02-16 19:09:11 +01:00
'(iswitchb-mode t)
'(org-agenda-files
'("/home/g1smo/org/todo.org"
"/home/g1smo/rs/org/2021-05-25-spletna-stran.org"
"/home/g1smo/rs/org/2021-07-02-spletna.org"
"/home/g1smo/rs/org/README.org"
"/home/g1smo/rs/org/git-delavnica.org"
"/home/g1smo/rs/org/irs-plan-period.org"
"/home/g1smo/rs/org/irs-plan.org" "/home/g1smo/rs/org/irs.org"
"/home/g1smo/rs/org/irs_old.org" "/home/g1smo/rs/org/kaki.org"
"/home/g1smo/rs/org/prepoznava-komadov.org"))
2023-02-16 19:09:11 +01:00
'(package-selected-packages
2023-12-27 19:44:27 +01:00
'(mu4e org-mode restclient php-ts-mode org-bullets magit-todos
treesit-auto eat zone-nyan yaml-mode writeroom-mode
which-key web-mode web-beautify vue-mode undo-tree
treemacs-projectile treemacs-evil toml-mode tidal subed smex
smartparens sclang-extensions rjsx-mode rg
rainbow-delimiters racket-mode quelpa-use-package pyvenv
org-caldav openwith ob-mermaid mu4e-marker-icons
mu4e-dashboard magit lsp-mode htmlize helpful guix
gruvbox-theme general geiser-guile format-all flycheck
fluxus-mode extempore-mode evil-org evil-collection
editorconfig drupal-mode doom-modeline dashboard crdt
counsel-projectile company benchmark-init arduino-mode
all-the-icons 2bit))
2023-02-16 19:09:11 +01:00
'(tool-bar-mode nil)
'(warning-minimum-level :error)
2023-02-16 19:09:11 +01:00
'(which-key-mode t))
2023-12-27 19:44:27 +01:00
2023-02-16 19:09:11 +01:00
(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 "Iosevka SS01" :foundry "BE5N" :slant normal :weight semi-bold :height 120 :width normal))))
'(line-number ((t (:background "#32302f" :foreground "#7c6f64"))))
'(line-number-current-line ((t (:background "#32302f" :foreground "#fe8019"))))
2023-12-27 19:44:27 +01:00
'(org-block ((t (:extend t :background "#3c3836"))))
'(org-code ((t (:foreground "#dd6f48"))))
'(org-document-title ((t (:underline nil :weight bold :height 2.0 :family "Sans Serif"))))
'(org-level-1 ((t (:extend nil :weight bold :height 1.75 :family "Sans Serif"))))
'(org-level-2 ((t (:extend nil :weight bold :height 1.45 :family "Sans Serif"))))
'(org-level-3 ((t (:extend nil :weight bold :height 1.25 :family "Sans Serif"))))
'(org-level-4 ((t (:extend nil :weight bold :height 1.1 :family "Sans Serif"))))
'(org-level-5 ((t (:extend nil :weight bold :family "Sans Serif"))))
'(org-level-6 ((t (:inherit default :weight bold :foreground "#DCDCCC" :family "Sans Serif"))))
'(org-level-7 ((t (:inherit default :weight bold :foreground "#DCDCCC" :family "Sans Serif"))))
'(org-level-8 ((t (:inherit default :weight bold :foreground "#DCDCCC" :family "Sans Serif"))))
'(org-verbatim ((t (:foreground "#fb4933")))))
;; supercollider mode load
;(require 'sclang)