Dodatna ozadja, posodobitve konfiguracij

Jurij Podgoršek 2024-02-01 15:12:21 +01:00
parent a7d51fbc40
commit 3bc40a3cd2
9 changed files with 365 additions and 274 deletions

View File

@ -35,7 +35,7 @@ output eDP-1 {
#output "*" background ~/Slike/Wallpapers/1596344206877.jpg fill
#output "*" background "~/riz0m/Photos/sri lanka/IMG_20220220_120730.jpg" fill
#output "*" background "~/Slike/☭/bigstock-Sutjeska-National-Park-Bosnia-63011269.jpg" fill
output "*" background "~/sredstva/dotfiles/ozadje.jpg" fill
output "*" background "~/sredstva/dotfiles/ozadje2.jpg" fill
# Zamik dobimo z SIRINA / SCALE
output HDMI-A-2 pos 1601 0 scale 1
output HDMI-A-1 pos 1601 0 scale 1

View File

@ -2,11 +2,13 @@
;;; This format is meant to be slightly human-readable;
;;; nevertheless, you probably don't want to edit it.
;;; -*- End Of Bookmark File Format Version Stamp -*-
(("FLUXUS navodilo"
(("org-capture-last-stored" (filename . "~/org/zapiski.org")
(front-context-string . "** TODO Vrstni r")
(rear-context-string . "2024-01-05 pet]\n") (position . 661)
(last-modified 26008 34892 637157 892000))
("FLUXUS navodilo"
(filename . "~/sredstva/fluxus/docs/fluxus-manual.[en].org")
(front-context-string . "#+TITLE: Fluxus:")
(rear-context-string)
(position . 1)
(last-modified 25693 29993 875550 300000))
("IRS"
(filename . "~/rs/megla-sync/org/irs.org")))
(front-context-string . "#+TITLE: Fluxus:") (rear-context-string)
(position . 1) (last-modified 25693 29993 875550 300000))
("IRS" (filename . "~/rs/megla-sync/org/irs.org"))
)

View File

@ -6,8 +6,7 @@ Razdeljena je na poglavja ohlapno glede na vlogo oz področje. Področja so neko
V primeru napak pri nalaganju ne pozabimo na uporaben ukaz ~emacs --debug-init~.
* Sekcije
** Zagon
* Zagon
~debug-on-error~ uresničimo, če bi radi sprožili razhroščevalnik, kadar pride do napake (zelo priročno pri reševanju težav).
@ -38,7 +37,7 @@ Po zagunu izpiši čas nalaganja.
(emacs-init-time)))))
#+end_src
** Nalaganje paketov
* Nalaganje paketov
Vklopi prikazovanje statistik naloženih paketov (prikažemo jih z ~M-x use-package-report~).
@ -67,7 +66,135 @@ Rezultate merjenja lahko pogledamo z ~M-x benchmark-init/show-durations-tabulate
(add-hook 'after-init-hook 'benchmark-init/deactivate))
#+end_src
** EVIL
* Vezane tipke
S paketom ~general~ je definiranih več kategorij tipkovničnih bližnjic, ki so združene po svoji funkciji, podobno kot poglavja tega dokumenta. Če v ukaznem načinu kliknemo ~SPC~ (ali pa v tekstovnem načinu ~C-SPC~), se nam prikažejo tipke kategorij, po kliku na posamezno pa ukazi, ki jih sprožimo (ali pa podkategorije).
V sledečim podpoglavjih so navedene kategorije posameznih bližnjic. Imajo dokaj samoopisna imena. Paket ~which key~ sproti izpisuje, kaj kateri gumb počne oz. kam nas pelje dalje.
#+begin_src emacs-lisp
(setq kategorije-bliznjic '())
(use-package general
:defer t
:config
(general-evil-setup)
;; Leader key nastavitev (za prozenje ukazov)
(general-create-definer start/leader-keys
:states '(normal insert visual emacs)
:keymaps 'override
:prefix "SPC"
:global-prefix "C-SPC")
#+end_src
** Splošne bližnice
Tukaj se nahajate samo bližnjici za preklop med bufferji (kako bi to lepo prevedli?).
In pa ukaz za ponovno naložit konfiguracijo emacsa.
#+begin_src emacs-lisp
(defun ponovno-nalozi-config () (ineractive) (load-file "~/.emacs.d/init.el"))
(start/leader-keys
;; Osnovne bliznjice
"[" 'previous-buffer
"]" 'next-buffer
"r" 'ponovno-nalozi-config
)
#+end_src
** Upravljanje z okni
Navigacijo med okni izvajamo s klasičnimi HJKL UNIX smernimi tipkami, recimo okno pod trenutnim izberemo s ~SPC w j~. Posamezno okno pa lahko razdvojimo vertikalno ali horizontalno s ~SPC w v~ oz. ~SPC w s~. ~SPC w d~ "ubije" trenutni buffer in okno.
#+begin_src emacs-lisp
(start/leader-keys
"w" '(:ignore t :wk "window")
"w j" 'windmove-down
"w k" 'windmove-up
"w h" 'windmove-left
"w l" 'windmove-right
"w s" 'split-window-below
"w v" 'split-window-right
"w d" 'kill-buffer-and-window)
#+end_src
** Upravljanje z bufferji
Bližnjice za delo z bufferji se začnejo z ~b~. Ne pozabimo na splošni
bližnjici (~[~ in ~]~ za prejšnji / naslednji buffer).
#+begin_src emacs-lisp
(start/leader-keys
"b" '(:ignore t :wk "buffer")
"b b" 'switch-to-buffer
"b p" 'previous-buffer
"b n" 'next-buffer
"b e" 'eval-buffer
"b s" (defun scratch-buffer () "Show scratch buffer" (interactive) (switch-to-buffer "*scratch*"))
"b d" 'kill-current-buffer
"b k" 'kill-buffer)
#+end_src
** Evalviranje
TODO napiši navodila
#+begin_src emacs-lisp
(start/leader-keys
;; EVAL ukazi
"e" '(:ignore t :wk "eval")
"e b" 'eval-buffer
"e e" 'eval-expression
"e r" 'eval-region)
#+end_src
** Datoteke
Bližnjice za delo z datotekami se začnejo s ~f~.
#+begin_src emacs-lisp
(defun odpri-konfiguracijo () (interactive) (find-file "~/.emacs.d/config.org"))
(defun odpri-init () (interactive) (find-file "~/.emacs.d/init.el"))
(defun odpri-todo () (interactive) (find-file "~/org/todo.org"))
(defun odpri-zapiske () (interactive) (find-file "~/org/zapiski.org"))
(start/leader-keys
"f" '(:ignore t :wk "file")
"f f" 'counsel-find-file
"f c" 'odpri-konfiguracijo :wk "odpri konfiguracijo (config.org)"
"f i" 'odpri-init :wk "odpri init.el"
"f z" 'odpri-zapiske
"f t" 'odpri-todo)
#+end_src
** Vplogled / introspekcija
Emacs nudi kup uporabnih funkcij, ki so nepogrešljive na poti učenja o funkcionalnosti. Zaenkrat sem definiral bližnjice do štirih od njih; opis funkcije, tipke, simbola (to so recimo rezervirana imena spremenljivk), načina (~mode~).
#+begin_src emacs-lisp
(start/leader-keys
"d" '(:ignore :t :wk "describe")
"d f" 'describe-function
"d k" 'describe-key
"d s" 'describe-symbol
"d m" 'describe-mode)
#+end_src
** Konec
Dodamo manjkajoči zaklepaj. :)
To pa je malo grdo pri pismenem programiranju.
#+begin_src emacs-lisp
)
#+end_src
* EVIL
Ta sekcija vsebuje razne konfiguracije povezane z ~evil-mode~ - modalnim načino editiranja, podobnim vi/vim urejevalnikom.
@ -125,132 +252,25 @@ Evil v ~treemacs~ drevesu datotečnega sistema.
(use-package treemacs-evil :after treemacs)
#+end_src
** Vezane tipke
* Emacs splošno
** Kolaborativno urejanje - CRDT
S paketom ~general~ je definiranih več kategorij tipkovničnih bližnjic, ki so združene po svoji funkciji, podobno kot poglavja tega dokumenta. Če v ukaznem načinu kliknemo ~SPC~ (ali pa v tekstovnem načinu ~C-SPC~), se nam prikažejo tipke kategorij, po kliku na posamezno pa ukazi, ki jih sprožimo (ali pa podkategorije).
V sledečim podpoglavjih so navedene kategorije posameznih bližnjic. Imajo dokaj samoopisna imena. Paket ~which key~ sproti izpisuje, kaj kateri gumb počne oz. kam nas pelje dalje.
Paket ~crdt~ omogoča istočasno urejanje bufferjev, kar je superuporabno :)
Paziti pa moramo na verzije emacsa; zaznali smo težave pri mešanju emacs 30/29 s starejšimi (28, 27) - znaki se lahko med odjemalci pomešajo. Emacs 29 in 30 bi morala vredu sodelovati.
#+begin_src emacs-lisp
(setq kategorije-bliznjic '())
(use-package general
(use-package crdt
:defer t
:config
(general-evil-setup)
;; Leader key nastavitev (za prozenje ukazov)
(general-create-definer start/leader-keys
:states '(normal insert visual emacs)
:keymaps 'override
:prefix "SPC"
:global-prefix "C-SPC")
: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))
#+end_src
*** Splošne bližnice
Tukaj se nahajate samo bližnjici za preklop med bufferji (kako bi to lepo prevedli?).
In pa ukaz za ponovno naložit konfiguracijo emacsa.
#+begin_src emacs-lisp
(defun ponovno-nalozi-config () (load-file "~/.emacs.d/init.el"))
(start/leader-keys
;; Osnovne bliznjice
"[" 'previous-buffer
"]" 'next-buffer
"r" 'ponovno-nalozi-config
)
#+end_src
*** Upravljanje z okni
Navigacijo med okni izvajamo s klasičnimi HJKL UNIX smernimi tipkami, recimo okno pod trenutnim izberemo s ~SPC w j~. Posamezno okno pa lahko razdvojimo vertikalno ali horizontalno s ~SPC w v~ oz. ~SPC w s~. ~SPC w d~ "ubije" trenutni buffer in okno.
#+begin_src emacs-lisp
(start/leader-keys
"w" '(:ignore t :wk "window")
"w j" 'windmove-down
"w k" 'windmove-up
"w h" 'windmove-left
"w l" 'windmove-right
"w s" 'split-window-below
"w v" 'split-window-right
"w d" 'kill-buffer-and-window)
#+end_src
*** Upravljanje z bufferji
Bližnjice za delo z bufferji se začnejo z ~b~. Ne pozabimo na splošni
bližnjici (~[~ in ~]~ za prejšnji / naslednji buffer).
#+begin_src emacs-lisp
(start/leader-keys
"b" '(:ignore t :wk "buffer")
"b b" 'switch-to-buffer
"b p" 'previous-buffer
"b n" 'next-buffer
"b e" 'eval-buffer
"b s" (defun scratch-buffer () "Show scratch buffer" (interactive) (switch-to-buffer "*scratch*"))
"b d" 'kill-current-buffer
"b k" 'kill-buffer)
#+end_src
*** Evalviranje
TODO napiši navodila
#+begin_src emacs-lisp
(start/leader-keys
;; EVAL ukazi
"e" '(:ignore t :wk "eval")
"e b" 'eval-buffer
"e e" 'eval-expression
"e r" 'eval-region)
#+end_src
*** Datoteke
Bližnjice za delo z datotekami se začnejo s ~f~.
#+begin_src emacs-lisp
(defun odpri-konfiguracijo () (interactive) (find-file "~/.emacs.d/config.org"))
(defun odpri-init () (interactive) (find-file "~/.emacs.d/init.el"))
(start/leader-keys
"f" '(:ignore t :wk "file")
"f f" 'counsel-find-file
"f c" 'odpri-konfiguracijo :wk "odpri konfiguracijo (config.org)"
"f i" 'odpri-init :wk "odpri init.el")
#+end_src
*** Vplogled / introspekcija
Emacs nudi kup uporabnih funkcij, ki so nepogrešljive na poti učenja o funkcionalnosti. Zaenkrat sem definiral bližnjice do štirih od njih; opis funkcije, tipke, simbola (to so recimo rezervirana imena spremenljivk), načina (~mode~).
#+begin_src emacs-lisp
(start/leader-keys
"d" '(:ignore :t :wk "describe")
"d f" 'describe-function
"d k" 'describe-key
"d s" 'describe-symbol
"d m" 'describe-mode)
#+end_src
*** Konec
Dodamo manjkajoči zaklepaj. :)
To pa je malo grdo pri pismenem programiranju.
#+begin_src emacs-lisp
)
#+end_src
** Emacs splošno
*** Ivy dopolnjevanje/iskanje
** Ivy dopolnjevanje/iskanje
~ivy~ je sistem za avtomatsko dopolnjevanje, uporaben preko celotnega emacsa.
Nudi tudi prijaznejši način menjave bufferja, kar nastavimo na ~SPC ,~ ter ~SPC b b~.
@ -330,8 +350,63 @@ Nastavimo uporabo rekurzivnih minibufferjev za dopolnjevanje ter nastavimo še n
(when glob (setq opts (concat "-g !" glob (and opts " ") opts))))))
(apply fn in dir opts args)))
#+end_src
** Pomoč / introspekcija
** ORG
Paket ~helpful~ obarva strani za pomoč ter doda več kontekstualnih informacij in pa nekaj funkcij za lažje razumevanje kaj je kje, recimo ~helpful-at-point~, ~helpful-callable~, ~helpful-command~...
#+begin_src emacs-lisp
(use-package helpful :defer t)
#+end_src
~which-key~ prikazuje minibuffer z razlago, katere tipkovnične bližnjice so na voljo.
#+begin_src emacs-lisp
(use-package which-key
:defer t
: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))
#+end_src
** Varnostne kopije
Privzeto emacs dodaja varnostne kopije fajlov v iste direktorije kot so originali, kar zna malo nasmetiti. Zato nastavimo direktorij, kam naj jih shranjuje ter nastavimo nekaj drugih priročnih stvari, naj kopira fajle namesto preimenovanja, brisanje starih (z nastavljenimi omejitvami ter verzioniranje varnostnih kopij.
#+begin_src emacs-lisp
(setq
backup-directory-alist
`(("." . ,(concat user-emacs-directory "saves")))
backup-by-copying t
delete-old-versions t
kept-new-versions 6
kept-old-versions 2
version-control t)
#+end_src
Za vsak odprt fajl emacs ustvari lockfile, kar tudi zna smetiti (so pa zato, da obvestijo če več ljudi istočasno odpre fajl). To izklopimo.
#+begin_src emacs-lisp
(setq create-lockfiles nil)
#+end_src
** Ne odpiraj pdf datotek
PDF dokumenti so včasih zelo veliki, raje jih odpirajmo s sistemskim preglejevalnikom.
#+begin_src emacs-lisp
(use-package openwith
:defer t
:config
(setq openwith-associations '(("\\.pdf\\'" "xdg-open" (file))))
(openwith-mode t))
#+end_src
* ORG
Orgmode je način, v katerem je spisan tale dokument. Orgmode je marsikaj, lahko bi ga pa strnili v razširitev navadnega (plain) teksta.
@ -380,7 +455,7 @@ Koledarski teden naj se začne s ponedeljkom, kot je pri nas konvencija.
(setq calendar-week-start-day 1)
#+end_src
*** Diagrami
** Diagrami
Razširitev orgmode z diagramiranje preko [[https://graphviz.org/docs/layouts/dot/][DOT]] ter [[https://ditaa.sourceforge.net/#usage][ditaa]].
@ -406,7 +481,7 @@ Delovanje tega paketa je odvisno od globalne namestitve javascript paketa z npm:
(scheme . t))))
#+end_src
*** Stanja opravil
** Stanja opravil
Stanja opravil. Stanja (v naslovih) menjamo s ~S-<levo>~ in ~S-<desno>~.
@ -415,7 +490,7 @@ Stanja opravil. Stanja (v naslovih) menjamo s ~S-<levo>~ in ~S-<desno>~.
'((sequence "TODO" "V DELU" "TESTIRANJE" "DOKUMENTIRANJE" "KONČANO"))))
#+end_src
*** Nemoteno pisanje
** Nemoteno pisanje
Način ~writeroom-mode~ omogoča nemoteno pisanje; trenutni buffer raztegne čez cel zaslon in v sredino centrira širinsko-omejen tekst. Tako buffer izgleda bolj kot popisan list papirja.
@ -426,7 +501,7 @@ Način ~writeroom-mode~ omogoča nemoteno pisanje; trenutni buffer raztegne čez
:hook ((org-mode . (lambda () (display-line-numbers-mode -1)))))
#+end_src
*** Sinhronizacija koledarjev
** Sinhronizacija koledarjev
Paket ~org-caldav~ omogoča sinhronizacijo koledarskih dogodkov v org dokumente.
TODO popravi/preveri delovanje?
@ -447,7 +522,7 @@ TODO popravi/preveri delovanje?
:inbox "~/org/koledarji/megla-in.org"))))
#+end_src
*** Izgled
** Izgled
Za šminko olepšamo predpone (pod)poglavij v simbole namesto vrst zvezdic.
@ -503,7 +578,17 @@ Naslov dokumenta ter naslove in podnaslove prikaži z drugimi pisavami in veliko
`(org-document-title ((t (,@headline ,@variable-tuple :height 2.0 :underline nil))))))
#+end_src
*** Izvoz
(lepši) zamiki naslovov. Potrebuje ~svg-lib~.
#+begin_src emacs-lisp
;(use-package svg-lib :defer t)
;(use-package org-margin
; :after org svg-lib
; :vc "https://github.com/rougier/org-margin"
; :init (org-margin-mode 1))
#+end_src
** Izvoz
V HTML org izvozu obarvaj bloke kode.
@ -511,7 +596,7 @@ V HTML org izvozu obarvaj bloke kode.
(use-package htmlize :after org-mode :defer t)
#+end_src
** Grafični vmesnik
* Grafični vmesnik
Barvna tema je [[https://github.com/greduan/emacs-theme-gruvbox][gruvbox]], v varjanti ~gruvbox-dark-soft~.
@ -538,7 +623,7 @@ Uporabimo nerd ikone. ~POZOR~ pisavo naložimo z ukazom ~M-x nerd-icons-install-
;(use-package all-the-icons)
#+end_src
*** Drsenje (skrolanje)
** Drsenje (skrolanje)
Omogočimo gladko piksel skrolanje, v emacsu od verzije 29 dalje in nastavimo dve opciji, ki sta skopirani od drugje in za njih nevem kaj počneta. Mislim da vpivata na to, kako je, ko pridrsaš do dna okna.
@ -549,7 +634,7 @@ Omogočimo gladko piksel skrolanje, v emacsu od verzije 29 dalje in nastavimo dv
(setq scroll-margin 8)
#+end_src
*** Prihranimo prostor
** Prihranimo prostor
Nekaj prostora prihranimo z umikom menija in orodne vrstice, iz katere tudi umaknemo ikone.
@ -585,24 +670,10 @@ Zmanjšamo razmike med okni.
(window-divider-mode t)
#+end_src
** Tekst
* Tekst
V široko paleto funkcionalnosti emacsa spada tudi urejanje navadnega teksta.
Za začetek nastavimo uporabo dveh navadnih presledkov za tab zamik.
#+begin_src emacs-lisp
(setq-default tab-width 2)
(setq-default indent-tabs-mode nil)
#+end_src
Vklopimo avtomatsko zapiranje oklepajev ter emacsovo avtomatsko zamikanje.
#+begin_src emacs-lisp
(electric-indent-mode 1)
(electric-pair-mode 1)
#+end_src
Tekst naj se prelamlja ob robu okna! Skrolanje na stran je naporno...
#+begin_src emacs-lisp
@ -632,9 +703,8 @@ In pa nenazadnje, čeravno je ORGMODE superioren, naložimo še podporo za [[htt
(use-package markdown-mode :mode "\\.(md|markdown)\\'")
#+end_src
** Splošne emacs razširitve
** Delo s projekti
* Splošne emacs razširitve
* Delo s projekti
Knjižnica za projektne interakcije. Vsak projekt je svoja git zbirka. Lajša menjavo med projekti, iskanje datotek v posameznem projektu in tako dalje.
@ -678,7 +748,7 @@ Datoteke sortiraj glede na nedavno uporabljene bufferje in nato nedavno odprte.
(use-package counsel-projectile :after projectile)
#+end_src
*** Oblikovanje teksta
** Oblikovanje teksta
[[https://editorconfig.org/][Editorconfig]] omogoča nastavljanje oblikovanje tekstovnih fajlov na ravni posameznega projekta.
@ -688,7 +758,7 @@ Datoteke sortiraj glede na nedavno uporabljene bufferje in nato nedavno odprte.
(editorconfig-mode 1))
#+end_src
*** Datotečno drevo
** Datotečno drevo
~treemacs~ nudi vizualni drevesni pregled nad datotekami in direktoriji za posamezni projekt.
Vklop je nastavljen na ~SPC t~. Številke vrstic nas v drevesnem bufferju ne zanima. Pridodamo še paket za ~projectile~ podporo.
@ -704,11 +774,24 @@ Vklop je nastavljen na ~SPC t~. Številke vrstic nas v drevesnem bufferju ne zan
(use-package treemacs-projectile :after treemacs)
#+end_src
** Programiranje
* Programiranje
** Splošno
*** Splošno
Za začetek nastavimo uporabo dveh navadnih presledkov za tab zamik.
Samodejno zapiranje oklepajev.
#+begin_src emacs-lisp
(setq-default tab-width 2)
(setq-default indent-tabs-mode nil)
#+end_src
Vklopimo avtomatsko zapiranje oklepajev ter emacsovo avtomatsko zamikanje.
#+begin_src emacs-lisp
(electric-indent-mode 1)
; (electric-pair-mode 1)
#+end_src
Samodejno zapiranje oklepajev. Tega ne rabimo ker imamo ~electric-pair-mode~, ki je vgrajen v emacs in lepše obravnava zamik teksta ob vstopu v novo vrstico.
#+begin_src emacs-lisp
(use-package smartparens-mode
@ -741,7 +824,13 @@ Avtomatsko oblikovanje kode za razne programske jezike. Kličemo ga ročno. TODO
(use-package format-all :defer t)
#+end_src
*** GIT
~direnv~ integracija omogoča uporabo definiranih okoljskih spremenljivk na posameznih projektih (recimo vključitev drush v PATH za drupal).
#+begin_src emacs-lisp
(use-package direnv :config (direnv-mode))
#+end_src
** GIT
~magit~ paket je super za delo z git sistemom za deljeno verzioniranje kode ali drugih podatkov.
@ -751,18 +840,37 @@ Avtomatsko oblikovanje kode za razne programske jezike. Kličemo ga ročno. TODO
:general
(start/leader-keys
"g" '(:ignore t :wk "magit")
"g s" 'magit-status))
"g s" 'magit-status)
:config
#+end_src
Z ~magit-todos~ si malo olajšamo spremlajnje TODO-jev v drevesu kode.
Sledeča konfiguracija prepreči zamrznitev ko stage-amo spremembe preko TRAMP povezave.
#+begin_src emacs-lisp
(use-package magit-todos
:after magit
:config (magit-todos-mode 1))
(defun my--tramp-send-command--workaround-stty-icanon-bug (conn-vec orig-command &rest args)
"See: https://github.com/magit/magit/issues/4720"
(let ((command
(if (string= "stty -icrnl -icanon min 1 time 0" orig-command)
"stty -icrnl"
orig-command)))
(append (list conn-vec command) args)))
(defun my--tramp-send-command--workaround-stty-icanon-bug--filter-args (args)
(apply #'my--tramp-send-command--workaround-stty-icanon-bug args))
(advice-add 'tramp-send-command :filter-args
#'my--tramp-send-command--workaround-stty-icanon-bug--filter-args))
#+end_src
*** Tree-sitter
Z ~magit-todos~ si malo olajšamo spremlajnje TODO-jev v drevesu kode. Zaenkrat onemogočeno, zaradi težavo preko TRAMP povezav.
#+begin_src emacs-lisp
;(use-package magit-todos
; :after magit
; :config (magit-todos-mode 1))
#+end_src
** Tree-sitter
Tree-sitter je knjižnica za inkrementalno razčlenjevanje (parsing) programske kode. Na podlagi definicij slovnic za različne programske jezike (namestimo jih z ~M-x treesit-install-language-grammar~) omogoča obarvanja kode, priporočila in podobno. To počne nekoliko hitreje kot klasični načini. Tukaj so definicije nadomestnih treesit načinov za določene programske jezike.
@ -790,7 +898,7 @@ Spodaj pa je primer nastavitev ročnih asociacij s fajli, za menjavo z klasični
; (add-to-list 'auto-mode-alist item))
#+end_src
*** LISP
** LISP
To poglavje zajema nastavitve raznih LISP dialektov.
@ -804,8 +912,12 @@ Vsi LISPi, tudi vgrajeni emacs-lisp, so bolj berljivi z mavričnim obarvanjem ok
~Geiser~ lajša delo s scheme jeziki, nastavljeno za [[https://www.gnu.org/software/guile/][GNU Guile]]. Omogoča recimo povezovanje v REPL (read-eval-print-loope).
#+begin_src emacs-lisp
(use-package scheme-mode
:ensure f
:mode "\\.scm\\'")
(use-package geiser-guile
:mode "\\.scm\\'"
:defer t
:general
(start/leader-keys
:infix "s"
@ -834,7 +946,15 @@ Kdaj delam tudi z [[https://racket-lang.org/][racket]].
(use-package racket-mode :mode "\\.rkt\\'")
#+end_src
*** Spletno
Poskusimo še common lisp - SLIME!
#+begin_src emacs-lisp
(use-package slime
:defer t
:config (setq inferior-lisp-program "/usr/bin/sbcl"))
#+end_src
** Spletno
Način za obarvanje html, twig in podobne kode (jinja?) se imenuje ~web-mode~.
Dodamo še pripadajoč paket za olepševanje kode (avtomatsko prilagoditev zamikov kode).
@ -865,7 +985,7 @@ Pri spletnem programiranju zelo prav pride tudi [[https://github.com/pashky/rest
(use-package restclient :defer t)
#+end_src
**** PHP
*** PHP
Podpora za programiranje s PHP domačo spletno stranjo oz. hipertekstualnim predprocesorjem.
@ -881,7 +1001,9 @@ Bližnjica za cache rebuild na drupalu (dela tudi preko SSH!).
(start/leader-keys
"d d" (defun drupal-cache-rebuild ()
(interactive)
(shell-command "drush cr"))))
;(shell-command "drush cr")
(projectile-run-shell-command-in-root "./vendor/bin/drush cr")
)))
#+end_src
Sicer obstaja tudi način ki lajša delanje z drupalom.
@ -890,7 +1012,7 @@ Sicer obstaja tudi način ki lajša delanje z drupalom.
(use-package drupal-mode :after php-mode)
#+end_src
**** Javascript
*** Javascript
Najprej nastavimo zamike.
@ -924,7 +1046,7 @@ Vue način lajša razvoj z [[https://vuejs.org/][vue javascript ogrodjem]]. Inte
(use-package rjsx-mode :after js2-mode)
#+end_src
*** Python
** Python
Zamik na 2 presledka.
@ -952,7 +1074,7 @@ Nastavljen naj bo na ~python3~.
(setq python-shell-interpreter "python3")))))
#+end_src
*** Živo kodiranje
** Živo kodiranje
[[https://supercollider.github.io/][supercollider]] je platforma za zvočno sintezo in algoritmično kompozicijo. Uporabna tudi za živo kodiranje. Vključuje svoje integrirano razvijalsko okolje, integrira se pa tudi z emacsom.
@ -1036,7 +1158,7 @@ Nastaviti mu moramo lokacijo ~BootTidal.hs~ datoteke, ki jo lahko namestimo s [[
(global-set-key (kbd "C-M-.") #'sardine/stop-code)
#+end_src
*** Konfiguracijski jeziki
** Konfiguracijski jeziki
YAML in TOML sta dva primera konfiguracijskih jezikov, s katerima kdaj delam.
@ -1045,13 +1167,13 @@ YAML in TOML sta dva primera konfiguracijskih jezikov, s katerima kdaj delam.
(use-package toml-mode :mode "\\.toml\\'")
#+end_src
*** Arduino
** Arduino
#+begin_src emacs-lisp
(use-package arduino-mode :mode "\\.ino\\'")
#+end_src
*** Jezikovni strežnik
** Jezikovni strežnik
Podpora za protokol jezikovnega strežnika (LSP - Language Server Protocol) precej izboljša izkušnjo programiranja s priporočevanjem in dopolnjevanjem. Emacs spremeni v IDE (integrirano razvojno okolje).
@ -1070,20 +1192,20 @@ S sledečimi nastavitvami pospešimo delovanje.
(setq read-process-output-max (* 1024 1024))) ;; 1mb
#+end_src
** E-pošta
* E-pošta
Emacs že vključuje ~mu4e~ ([[https://www.djcbsoftware.nl/code/mu/][mu]] za emacs), modul ki omogoča brskanje po prejeti e-pošti.
Pred uporabo je treba konfigurirati nekaj več stvari, potrebujemo recimo ~isync~ za pridobivanje pošte (tudi starejši ~mbsync~ je vredu), program ~mu~ za indeksiranje prejetih mejlov, oba pa tudi primerno nastavljena.
*** isync
** isync
TODO
*** mu
** mu
TODO
*** mu4e
** mu4e
Vključimo paket in nastavimo ukaz za pridobivanje mejlov, ki ga sproži ~mu4e~.
@ -1114,7 +1236,7 @@ Preglednost lahko izboljšamo s paketom za ikone.
TODO spisat dodatne konfiguracije, tega še ne uporabljam res.
*** Primeri za (i)zgled
** Primeri za (i)zgled
Zanimivi paketi:
- dashboard: https://github.com/rougier/mu4e-dashboard
@ -1126,3 +1248,11 @@ Pedenanje izgleda:
- mu4e look & feel: https://www.reddit.com/r/emacs/comments/mzgsm0/mu4e_look_and_feel/
- nano-mu4e: https://github.com/rougier/nano-emacs/blob/master/nano-mu4e.el
- system crafters o emacs emailu: https://www.youtube.com/watch?v=yZRyEhi4y44&list=PLEoMzSkcN8oM-kA19xOQc8s0gr0PpFGJQ
* Razno
Zone nyancat!
#+begin_src emacs-lisp
(use-package zone-nyan :defer t)
#+end_src

View File

@ -1,3 +1,4 @@
;;; -*- lexical-binding: t -*-
;; Naloži konfiguracije iz ORG datoteke
(org-babel-load-file "~/.emacs.d/config.org")
@ -13,56 +14,6 @@
; :config
; (rg-enable-default-bindings))
;; Pomoc
(use-package helpful :defer t)
;; Pomoc za keybinde
(use-package which-key
:defer t
: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))
(use-package zone-nyan :defer t)
;; Backup fajli emacsa
(setq
backup-by-copying t ; don't clobber symlinks
backup-directory-alist
`(("." . ,(concat user-emacs-directory "backups")))
backup-directory-alist
`(("." . ,(concat user-emacs-directory "saves")))
delete-old-versions t
kept-new-versions 6
kept-old-versions 2
version-control t) ; use versioned backups
;; Ne delaj lock fajlov (smetijo namrec)
(setq create-lockfiles nil)
;; File asociacije
(use-package openwith
:defer t
: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)
@ -98,28 +49,29 @@
(setq dashboard-set-init-info t))
;; Bolj fajni IELM REPL
(defun g-ielm-init-history ()
"Persistent ielm 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))
(defun g-ielm-write-history (&rest _args)
(with-file-modes #o600
(comint-write-input-ring)))
(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)))
(g-ielm-init-history)))
:config
(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))))
'helm-comint-input-ring))
;; Sinhronizacija podnapisov (uporablja mpv!)
(use-package subed
@ -171,19 +123,21 @@
"/home/g1smo/rs/org/irs_old.org" "/home/g1smo/rs/org/kaki.org"
"/home/g1smo/rs/org/prepoznava-komadov.org"))
'(package-selected-packages
'(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))
'(scheme-mode direnv svg-lib slime org-pandoc-import 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))
'(tool-bar-mode nil)
'(warning-minimum-level :error)
'(which-key-mode t))
@ -198,16 +152,17 @@
'(line-number-current-line ((t (:background "#32302f" :foreground "#fe8019"))))
'(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-document-title ((t (:inherit default :weight bold :family "Sans Serif" :height 2.0 :underline nil))))
'(org-level-1 ((t (:inherit default :weight bold :family "Sans Serif" :height 1.75))))
'(org-level-2 ((t (:inherit default :weight bold :family "Sans Serif" :height 1.45))))
'(org-level-3 ((t (:inherit default :weight bold :family "Sans Serif" :height 1.25))))
'(org-level-4 ((t (:inherit default :weight bold :family "Sans Serif" :height 1.1))))
'(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")))))
'(org-verbatim ((t (:foreground "#fb4933"))))
'(window-divider-first-pixel ((t (:foreground "#626262")))))
;; supercollider mode load

View File

@ -1 +1 @@
("~/projekti/jugofuturizem/" "~/sredstva/dotfiles/" "/sshx:jurijp@dev.radiostudent.si:/var/www/new.radiostudent.si/" "~/projekti/glasbeni-indeks/" "~/projekti/PIXELSYNTH/" "~/projekti/hm/" "~/kompot/Kompot/" "~/projekti/radio-muse/" "~/projekti/radio-muse/web/themes/custom/indiere2/")
("~/sredstva/dotfiles/" "~/projekti/kegel/" "~/projekti/jugofuturizem/" "~/projekti/mobilizon/" "~/projekti/hm/" "~/projekti/PIfcamp 2021/" "/sshx:jurijp@dev.radiostudent.si:/var/www/new.radiostudent.si/" "~/projekti/glasbeni-indeks/" "~/projekti/PIXELSYNTH/" "~/kompot/Kompot/" "~/projekti/radio-muse/" "~/projekti/radio-muse/web/themes/custom/indiere2/")

View File

@ -70,8 +70,8 @@ disk "/home" {
}
ipv6 {
format_up = "IPv6"
format_down = "IPv6"
format_up = "IPv6"
format_down = "IPv6"
}
memory {

6
.zshrc
View File

@ -142,7 +142,7 @@ alias imgcrop1920="mogrify -resize 1920x1920 "
# Za LXD!
if command -v go; then
if command -v go &> /dev/null; then
export PATH="${PATH}:$(go env GOPATH)/bin:/sbin:/usr/sbin"
fi
#export LD_LIBRARY_PATH="$(go env GOPATH)/deps/dqlite/.libs/:$(go env GOPATH)/deps/raft/.libs/:${LD_LIBRARY_PATH}"
@ -156,3 +156,7 @@ fi
# Terminal podpora
alias termfix="TERM=rxvt-256color "
#export TERM=rxvt-256color
export ANDROID_HOME="$HOME/Android/Sdk"
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools

BIN
ozadje2.jpg 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 KiB

BIN
ozadje3.jpg 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB