diff --git a/.config/sway/config b/.config/sway/config index 3934f8b..b1a798a 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -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 diff --git a/.emacs.d/bookmarks b/.emacs.d/bookmarks index c1142ae..209aaa4 100644 --- a/.emacs.d/bookmarks +++ b/.emacs.d/bookmarks @@ -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")) +) diff --git a/.emacs.d/config.org b/.emacs.d/config.org index 8da3e11..8a6f114 100644 --- a/.emacs.d/config.org +++ b/.emacs.d/config.org @@ -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-~ in ~S-~. @@ -415,7 +490,7 @@ Stanja opravil. Stanja (v naslovih) menjamo s ~S-~ in ~S-~. '((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 diff --git a/.emacs.d/init.el b/.emacs.d/init.el index a52de6c..1434be0 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -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 diff --git a/.emacs.d/projectile-bookmarks.eld b/.emacs.d/projectile-bookmarks.eld index 3b012b5..b0600c5 100644 --- a/.emacs.d/projectile-bookmarks.eld +++ b/.emacs.d/projectile-bookmarks.eld @@ -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/") \ No newline at end of file +("~/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/") \ No newline at end of file diff --git a/.i3status.conf b/.i3status.conf index b733e64..f93b5cc 100644 --- a/.i3status.conf +++ b/.i3status.conf @@ -70,8 +70,8 @@ disk "/home" { } ipv6 { - format_up = "IPv6 " - format_down = "IPv6 " + format_up = " IPv6" + format_down = " IPv6" } memory { diff --git a/.zshrc b/.zshrc index 8095f5f..eeb119c 100644 --- a/.zshrc +++ b/.zshrc @@ -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 diff --git a/ozadje2.jpg b/ozadje2.jpg new file mode 100644 index 0000000..74d9961 Binary files /dev/null and b/ozadje2.jpg differ diff --git a/ozadje3.jpg b/ozadje3.jpg new file mode 100644 index 0000000..0c46398 Binary files /dev/null and b/ozadje3.jpg differ