From 02513c9285b8c2ca31be01a61b815393237f8d41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jurij=20Podgor=C5=A1ek?= Date: Mon, 20 Nov 2023 18:43:42 +0100 Subject: [PATCH] Popravki barv, emacs update, malo sway in foot posodobitev, shell --- .config/foot/foot.ini | 10 +- .config/sway/config | 26 +- .emacs.d/bookmarks | 17 +- .emacs.d/init.el | 681 +++++++++++++++++++++++----------- .ssh/config | 7 + .zshrc | 22 +- applications/arduino2.desktop | 12 + config.scm | 98 +++-- povezi.sh | 2 + 9 files changed, 601 insertions(+), 274 deletions(-) create mode 100644 applications/arduino2.desktop diff --git a/.config/foot/foot.ini b/.config/foot/foot.ini index 0dadfaf..21848cc 100644 --- a/.config/foot/foot.ini +++ b/.config/foot/foot.ini @@ -46,7 +46,7 @@ pad=6x5 [scrollback] # lines=1000 -# multiplier=3.0 +multiplier=25.0 # indicator-position=relative # indicator-format= @@ -66,10 +66,10 @@ pad=6x5 [mouse] # hide-when-typing=no -# alternate-scroll-mode=yes +alternate-scroll-mode=yes [colors] -alpha=0.9 +alpha=0.975 # foreground=dcdccc # background=111111 @@ -114,9 +114,9 @@ alpha=0.9 # -*- conf -*- # Gruvbox -background=282828 +background=2d2b2a foreground=ebdbb2 -regular0=282828 +regular0=2d2b2a regular1=cc241d regular2=98971a regular3=d79921 diff --git a/.config/sway/config b/.config/sway/config index 2903f80..e29c04f 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -37,9 +37,10 @@ output eDP-1 { #output "*" background "~/Slike/☭/bigstock-Sutjeska-National-Park-Bosnia-63011269.jpg" fill output "*" background "~/sredstva/dotfiles/ozadje.jpg" fill # Zamik dobimo z SIRINA / SCALE -output HDMI-A-2 pos 1600 0 scale 1 -output HDMI-A-1 pos 1600 0 scale 1 -output DP-5 pos 1600 0 scale 1 +output HDMI-A-2 pos 1601 0 scale 1 +output HDMI-A-1 pos 1601 0 scale 1 +output DP-5 pos 1601 0 scale 1 +output DP-2 pos 1601 0 scale 1 # start a terminal bindsym $mod+Return exec $term @@ -214,6 +215,9 @@ mode "resize" { } bindsym $mod+r mode "resize" +set $ozadje #32302f +set $ozadjeTrans #32302fcc + # # Status Bar: # @@ -224,13 +228,16 @@ bar { # status_command i3status-rs status_command i3status colors { - focused_background #272727E5 - background #272727B8 + #focused_background #272727E5 + focused_background $ozadje + #background #272727B8 + background $ozadjeTrans #statusline #ebdbb2E5 statusline #DCDCDC - focused_workspace #555555E5 #555555E5 #ffffff - inactive_workspace #272727E5 #272727E5 #888888 + focused_workspace #32302f #32302f #ffffff + active_workspace #32302fcc #32302fcc #888888 + inactive_workspace #32302fcc #32302fcc #888888 } font pango:FontAwesome Regular 12, Iosevka SS01 Medium 12 strip_workspace_numbers yes @@ -261,6 +268,9 @@ hide_edge_borders smart # Mouse focus focus_follows_mouse yes +# Premik kurzorja v aktivno okno +mouse_warping container + # KBD layouti input "type:keyboard" { xkb_layout us,si @@ -350,7 +360,7 @@ workspace 2:λ exec emacs workspace 3: -exec thunderbird +exec icedove workspace 4: #exec revolt diff --git a/.emacs.d/bookmarks b/.emacs.d/bookmarks index f15df3d..c1142ae 100644 --- a/.emacs.d/bookmarks +++ b/.emacs.d/bookmarks @@ -2,16 +2,11 @@ ;;; 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 -*- -(("org-capture-last-stored" - (filename . "~/.notes") - (front-context-string . "** TODO Zaraščen") +(("FLUXUS navodilo" + (filename . "~/sredstva/fluxus/docs/fluxus-manual.[en].org") + (front-context-string . "#+TITLE: Fluxus:") (rear-context-string) - (position . 9) - (last-modified 25598 13456 906334 599000)) + (position . 1) + (last-modified 25693 29993 875550 300000)) ("IRS" - (filename . "~/rs/megla-sync/org/irs.org") - (front-context-string . "- nov X, dizajn\n") - (rear-context-string . "fadeout teksta)\n") - (position . 359) - (last-modified 25583 44635 333675 223000)) -) + (filename . "~/rs/megla-sync/org/irs.org"))) diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 3ec8787..8944f9c 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -1,55 +1,78 @@ +;;;;;;;;;;; +;; DEBUG ;; +;;;;;;;;;;; + +;; Debagiraj napake? +;(setq debug-on-error t) + +;; Make startup faster by reducing the frequency of garbage +;; collection. +(setq gc-cons-threshold (* 50 1024 1024)) + +;; Prikaz statistik nalozenih paketov (prikazi z M-x use-package-report) +;(setq use-package-compute-statistics t) + + + ;;;;;;;;;;;; ;; PAKETI ;; ;;;;;;;;;;;; -;(setq use-package-compute-statistics t) - -(setq debug-on-error t) - -;; Loudamo melpa paketice -(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) - -;; Set up package.el to work with MELPA +;; Loudamo melpa paketice (in pa ORG) (require 'package) - +(setq use-package-always-ensure t) ;; always ensures that a package is installed +(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) +(add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/") t) +(add-to-list 'package-archives '("elpa" . "https://elpa.gnu.org/packages/") t) (package-initialize) -;; Stare funkcije za namescanje paketov. Od use-package z :ensure naprej vec ne -;; Sekvence n'shiat -;(require 'seq) -;; Kaj vse naj bo namesceno? -;(setq paketi '()) -;(setq nema (seq-filter (lambda (p) (not (package-installed-p p))) paketi)) -;(when nema -; (package-initialize) -; (package-refresh-contents) -; (dolist (p nema) -; (package-install p))) -;(use-package benchmark-init -; :ensure t -; :config -; :disabled t -; (benchmark-init/activate) -; (add-hook 'after-init-hook 'benchmark-init/deactivate)) - ;;;;;;;;;; ;; EVIL ;; ;;;;;;;;;; (use-package evil - :ensure t :init (setq evil-want-integration t - evil-want-keybinding nil) + evil-want-keybinding nil + ;org-return-follows-link t + ) :config ;; Evil mode toggle <3 - (evil-mode 1) - (defvar my-header-map (make-sparse-keymap) - "Mapiranje za evil bliznjice (leader trigger)") + (evil-mode 1)) - ;; Keybindings! - (defvar my-leader-map (make-sparse-keymap) - "Mapiranje za evil bliznjice (leader trigger)") +(use-package general + :after (evil evil-collection org projectile) + :config + (general-evil-setup) + + (defun odpri-org-link () + "Odpri link v ORG fajlu pod kurzorjem" + (interactive) + (if (org-in-regexp org-link-any-re nil t) + (org-open-at-point) + nil)) + + (general-evil-define-key + 'normal + org-mode-map + "RET" 'odpri-org-link) + + (general-create-definer start/leader-keys + :states '(normal insert visual emacs) + :keymaps 'override + :prefix "SPC" ;; set leader + :global-prefix "C-SPC") ;; access leader in insert mode + + ;; Osnovne bliznjice + (start/leader-keys + "[" 'previous-buffer + "]" 'next-buffer + "," 'ivy-switch-buffer + "RET" 'counsel-bookmark + "/" 'counsel-projectile-rg + "t" 'treemacs-add-and-display-current-project + "p" 'projectile-command-map + "g" 'magit-status) ;; WINDOW ukazi (define-prefix-command 'evil-window-map) @@ -59,7 +82,8 @@ (define-key evil-window-map "l" 'windmove-right) (define-key evil-window-map "s" 'split-window-below) (define-key evil-window-map "v" 'split-window-right) - (define-key my-leader-map "w" 'evil-window-map) + (define-key evil-window-map "d" 'kill-buffer-and-window) + (start/leader-keys "w" 'evil-window-map) ;; BUFFER ukazi (define-prefix-command 'evil-buffer-map) @@ -69,98 +93,76 @@ (define-key evil-buffer-map "e" 'eval-buffer) (defun switch-to-scratch () (interactive) (switch-to-buffer "*scratch*")) (define-key evil-buffer-map "s" 'switch-to-scratch) - (defun switch-to-home () (interactive) (switch-to-buffer "*GNU Emacs*")) - (define-key evil-buffer-map "h" 'switch-to-home) + (define-key evil-buffer-map "h" 'dashboard-open) (defun open-config () (interactive) (find-file-literally "~/.emacs.d/init.el")) (define-key evil-buffer-map "c" 'open-config) - (define-key my-leader-map "b" 'evil-buffer-map) + (define-key evil-buffer-map "d" 'kill-current-buffer) + (define-key evil-buffer-map "k" 'kill-buffer) + (start/leader-keys "b" 'evil-buffer-map) ;; EVAL ukazi - (define-prefix-command 'eval-eval-map) + (define-prefix-command 'evil-eval-map) (define-key evil-eval-map "b" 'eval-buffer) (define-key evil-eval-map "e" 'eval-expression) (define-key evil-eval-map "r" 'eval-region) - (define-key my-leader-map "e" 'evil-eval-map) + (start/leader-keys "e" 'evil-eval-map) + + ;; Geiser ukazi + (define-prefix-command 'evil-geiser-map) + (define-key evil-geiser-map "b" 'geiser-eval-buffer) + (define-key evil-geiser-map "e" 'geiser-eval-expression) + (defun geiser-start-and-eval-buffer () + (interactive) + (geiser-guile) + (previous-buffer) + (geiser-eval-buffer)) + (define-key evil-geiser-map "s" 'geiser-start-and-eval-buffer) + (define-key evil-geiser-map "g" 'geiser) + (define-key evil-geiser-map "c" 'geiser-connect) + (define-key evil-geiser-map "k" 'geiser-exit-repl) + (defun geiser-restart () + ;(interactive) + (geiser-exit-repl) + (geiser-start-and-eval-buffer)) + (define-key evil-geiser-map "r" 'geiser-restart) + (start/leader-keys "s" 'evil-geiser-map) ;; FILE ukazi (define-prefix-command 'evil-file-map) (define-key evil-file-map "f" 'counsel-find-file) (defun load-config () (interactive) (find-file "~/.emacs.d/init.el")) (define-key evil-file-map "c" 'load-config) - (define-key my-leader-map "f" 'evil-file-map) + (start/leader-keys "f" 'evil-file-map) ;; ORG ukazi (define-prefix-command 'evil-org-map) (define-key evil-org-map "c" 'org-capture) (define-key evil-org-map "a" 'org-agenda) - (define-key my-leader-map "o" 'evil-org-map) + (start/leader-keys "o" 'evil-org-map) - ;; Projectile map! - (define-key my-leader-map "p" 'projectile-command-map) - - ;; Odpri ORG linke kar s tipko enter - (defun odpri-org-link () - (interactive) - (if (org-in-regexp org-link-any-re nil t) - (org-open-at-point) - nil)) - (define-key evil-normal-state-map (kbd "RET") 'odpri-org-link) - - ;; Mapiranje ukazov - ;(define-key evil-normal-state-map (kbd "SPC") my-leader-map) - ;(evil-global-set-key 'motion (kbd "SPC") my-leader-map) - ;(evil-local-set-key 'motion (kbd "SPC") my-leader-map) - ;(define-key evil-normal-state-map (kbd "SPC") my-leader-map) ) -(use-package general - :ensure t - :after evil - :config - (general-evil-setup) - (general-nmap - :prefix "SPC" - :prefix-map 'my-leader-map - ;; Hitri buffer shortcuti - "[" 'previous-buffer - "]" 'next-buffer - "," 'ivy-switch-buffer - "RET" 'counsel-bookmark - "/" 'counsel-rg - "t" 'treemacs-add-and-display-current-project) - (general-nmap - :prefix "SPC" - :states 'normal - :keymaps 'dired-mode-map - :prefix-map 'my-leader-map - ;; Hitri buffer shortcuti - "[" 'previous-buffer - "]" 'next-buffer - "," 'ivy-switch-buffer - "RET" 'counsel-bookmark - "/" 'counsel-rg - "t" 'treemacs-add-and-display-current-project)) - ;; Dodatne evil bližnjice (use-package evil-collection - :ensure t :after evil :config (evil-collection-init)) ;; Evil orgmode (use-package evil-org - :ensure t - :after (evil org) - :hook ((org-mode . (lambda () evil-org-mode))) - :init - (setq org-src-fontify-natively t) + :hook (org-mode . (lambda () + ;; Odpri ORG linke kar s tipko enter + ;(define-key org-mode-map (kbd "RET") 'odpri-org-link) + ;(local-set-key (kbd "RET") 'odpri-org-link) + (evil-org-mode))) :config (require 'evil-org-agenda) (evil-org-set-key-theme '(navigation insert textobjects additional calendar)) (evil-org-agenda-set-keys)) -(use-package treemacs-evil :ensure t :after treemacs) +(use-package treemacs-evil + :defer t + :after treemacs) @@ -185,9 +187,9 @@ ;; Barvna tema (use-package gruvbox-theme - :ensure t :config - (load-theme 'gruvbox-dark-medium t)) + (load-theme 'gruvbox-dark-soft t) + (window-divider-mode 0)) ;(load-theme 'hemisu-light t) ;; hemisu-theme paket ;(require 'doom-themes) ;(setq doom-themes-enable-bold t ; if nil, bold is universally disabled @@ -197,22 +199,26 @@ ;; Doom modeline - lepsi status bar spodaj (use-package doom-modeline - :ensure t -; :disabled t :config (doom-modeline-mode)) ;; Lepse ikone! -(use-package all-the-icons :ensure t) -;; !!! ;; -;; !!! Pognat je treba (1x) all-the-icons-install-fonts !!! ;; -;; !!! ;; +(use-package nerd-icons) + +;; !!! ;; +;; !!! Pognat je treba (1x) nerd-icons-install-fonts !!! ;; +;; !!! ;; +(use-package all-the-icons) ;; y/n namesto yes / no (fset 'yes-or-no-p 'y-or-n-p) ;; Oooo gladko skrolanje! (Emacs 29+) (pixel-scroll-precision-mode) +;; Nisem cist ziher kaj to dela +(setq scroll-conservatively 10) +(setq scroll-margin 8) + @@ -224,9 +230,13 @@ (setq-default tab-width 2) (setq-default indent-tabs-mode nil) +;; Turn on the weird indenting that Emacs does by default. +(electric-indent-mode 1) +;; Turns on automatic parens pairing +(electric-pair-mode 1) + ;; Editorconfig formatiranje fajlov (use-package editorconfig - :ensure t :config (editorconfig-mode 1)) @@ -238,15 +248,13 @@ ;; Lepse file drevo (use-package treemacs - :ensure t :defer t :hook ((treemacs-mode . (lambda () ;; Brez stevilk vrstic v file drevesu! (display-line-numbers-mode -1))))) -(use-package treemacs-projectile :ensure t :after treemacs) +(use-package treemacs-projectile :after treemacs) ;; Uporabi drevesne razveljavitve, undo tree (use-package undo-tree - :ensure t :config (global-undo-tree-mode) (evil-set-undo-system 'undo-tree) @@ -254,13 +262,7 @@ (setq undo-tree-history-directory-alist '(("." . "~/.emacs.d/undo")))) ;; Markdown podpora -(use-package markdown-mode :ensure t) - -;; Zapiraj zaklepaje -(use-package smartparens - :ensure t - :config - (smartparens-global-mode 1)) +(use-package markdown-mode :mode "\\.(md|markdown)\\'") @@ -268,9 +270,30 @@ ;; PROGRAMIRANJE ;; ;;;;;;;;;;;;;;;;;;; +;; Projektni mgmt +(use-package projectile + :after ivy + :config + (setq projectile-globally-ignored-directories '("node_modules")) + (setq projectile-completion-system 'ivy) + + ;; Popravek za projectile prek ssh! + ;(add-to-list 'tramp-remote-path 'tramp-own-remote-path) + ;(setq-default projectile-indexing-method 'alien) + (setq projectile-indexing-method 'native) + (setq projectile-enable-caching t) + + (projectile-mode t)) +(use-package counsel-projectile :after projectile) + +;; Zapiraj zaklepaje +(use-package smartparens + :defer t + :config + (smartparens-global-mode 1)) + ;; Pametni tabi (use-package smart-tabs-mode - :ensure t :disabled t :after js2-mode :config @@ -279,122 +302,175 @@ (smart-tabs-advice js2-indent-line js2-basic-offset)) ;; Twig nacin (in drug web) -(use-package web-mode :ensure t) +(use-package web-mode :mode "\\.(html|twig)\\'") ;; Lepšanje web kode -(use-package web-beautify :ensure t) +(use-package web-beautify :defer t :after web-mode) ;; Kompletiranje ukazov (use-package company - :ensure t - :defer t :config (setq lsp-completion-provider :capf) (company-mode)) ;; LSP potrebuje dependency iz npm: "sudo npm install -g vue-language-server -(use-package lsp-mode - :ensure t - :after company) +(use-package lsp-mode :after company) ;; Vuejs moud (use-package vue-mode - :ensure t :mode "\\.vue\\'" :config (add-hook 'vue-mode-hook #'lsp)) +;; Popravek za grdo ozadje +(add-hook 'mmm-mode-hook + (lambda () + (set-face-background 'mmm-default-submode-face nil))) ;; PHP ko je treba -(use-package php-mode - :ensure t - :mode "\\.(php|module)\\'") +(use-package php-mode :mode "\\.(php|module)\\'") ;; Guile scheme -(use-package geiser - :ensure t - :mode "\\.scm\\'") +(use-package geiser) + (use-package geiser-guile - :ensure t :after geiser :init (setq scheme-program-name "guile")) ;; Racket podpora -(use-package racket-mode - :ensure t - :mode "\\.rkt\\'") +(use-package racket-mode :mode "\\.rkt\\'") ;; Rainbowz (use-package rainbow-delimiters - :ensure t :hook ((prog-mode . rainbow-delimiters-mode))) -;; YAML konfiguracije -(use-package yaml-mode - :ensure t - :mode "\\.yaml\\'") +;; Config fajli +(use-package yaml-mode :mode "\\.yaml\\'") +(use-package toml-mode :mode "\\.toml\\'") ;; Extempore lajv kodiranje! -(use-package extempore-mode - :ensure t - :mode "\\.xtm\\'") +(use-package extempore-mode :mode "\\.xtm\\'") ;; Syntax checker -(use-package flycheck - :ensure t - :defer t) +(use-package flycheck :defer t) ;; Vmesnik za GIT -(use-package magit - :ensure t - :defer t) +(use-package magit :defer t) ;; Drupal pomocnik -(use-package drupal-mode - :ensure t - :after php-mode) +(use-package drupal-mode :after php-mode) ;; Oblikovanje kode za razne jezike -(use-package format-all :ensure t) +(use-package format-all :defer t) ;; Tidal cycles live coding (use-package tidal - :ensure t :defer t :init ;; Tidal cycles lokacija (setq tidal-boot-script-path "~/.cabal/store/ghc-9.0.2/tidal-1.9.2-8e9cf9a217d87a6950880512f51893a6434970cd0690e831c563fc64ebd5de8f/share/BootTidal.hs")) -;; Config fajli -(use-package toml-mode - :ensure t) +;; JS indentacije +(setq js2-strict-missing-semi-warning nil + js2-missing-semi-one-line-override nil + js2-basic-offset 2 + js-indent-level 2 + indent-tabs-mode nil + tab-width 2) ;; js2 za javascript (use-package js2-mode - :ensure t :mode "\\.js\\'" :config ;(add-to-list 'auto-mode-alist '("\\.js$" . js2-mode)) - (setq js2-strict-missing-semi-warning nil - js2-missing-semi-one-line-override nil - js2-basic-offset 2 - js-indent-level 2 - indent-tabs-mode nil - tab-width 2)) + ) ;; Še en mode za JS, bolj react -(use-package rjsx-mode - :ensure t - :after js2-mode) +(use-package rjsx-mode :after js2-mode) ;; css indent (setq css-indent-level 2) (setq css-indent-offset 2) +;; Python indent +(setq python-indent-offset 2) + +;; Arduino +(use-package arduino-mode :mode "\\.ino\\'") + +;; Supercollider +(add-to-list 'load-path "/usr/share/emacs/site-lisp/SuperCollider/") ;; path will depend on your compilation settings +(use-package sclang + :ensure f + :defer t + :config + (global-set-key (kbd "S-RET") 'sclang-eval-region-or-line) + (global-set-key (kbd "C-.") 'sclang-server-free-all)) + +;; FLUXUS! +(use-package fluxus-mode :defer t) + +;; Python virtualenv podpora +(use-package pyvenv + :config + (pyvenv-mode t) + + ;; Set correct Python interpreter + (setq pyvenv-post-activate-hooks + (list (lambda () + (setq python-shell-interpreter (concat pyvenv-virtual-env "bin/python3"))))) + (setq pyvenv-post-deactivate-hooks + (list (lambda () + (setq python-shell-interpreter "python3"))))) + + +;; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +;; SARDINE MODE +;; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +;; Customize the python-mode to run Sardine code using the terminal. + +(setq +; python-shell-interpreter "fishery" +; python-shell-interpreter-args "") + python-shell-interpreter "python3" + python-shell-interpreter-args "") + +(defun sardine/start-sardine () + "Start a new interactive Sardine Session" + (interactive) + (run-python)) + +(defun sardine/eval-block () + "Evaluate a sardine code block" + (interactive) + (mark-paragraph) + (if (and transient-mark-mode mark-active) + (python-shell-send-region (point) (mark)) + (python-shell-send-region (point-at-bol) (point-at-eol))) + (forward-paragraph)) + +(defun sardine/stop-code () + "Stop all the Sardine code currently running" + (interactive) + (python-shell-send-string "panic()")) + +; Unmapping keys from the Python mode +;(add-hook 'python-mode-hook +; (lambda() (local-unset-key (kbd "C-c C-c")))) +;(add-hook 'python-mode-hook +; (lambda() (local-unset-key (kbd "C-c C-s")))) + +; Remapping keys +(global-set-key (kbd "C-M-x") #'sardine/eval-block) +(global-set-key (kbd "C-M-.") #'sardine/stop-code) + ;;;;;;;;;;;;; ;; ORGMODE ;; ;;;;;;;;;;;;; +;; Lepsi fonti +(setq org-src-fontify-natively t) + ;; Stanja taskov (setq org-todo-keywords '((sequence "TODO" "V DELU" "TESTIRANJE" "DOKUMENTIRANJE" "KONČANO"))) @@ -404,32 +480,33 @@ ;; CalDav v orgmode! (use-package org-caldav - :ensure t - :after org-mode + :defer t :init - (setq org-caldav-calendar-id "org" - org-caldav-files '("~/Dokumenti/todo.org") - org-caldav-inbox "~/Dokumenti/koledar-in.org" - org-caldav-url "https://goba.rhiz0.me/remote.php/dav/calendars/g1smo" - org-icalendar-timezone "Europe/Ljubljana")) + (setq org-caldav-url "https://goba.rhiz0.me/remote.php/dav/calendars/g1smo" + org-caldav-files '("~/org/todo.org") + org-icalendar-timezone "Europe/Ljubljana" + org-caldav-calendars '((:calendar-id "org" + ;:files '("~/org/todo.org") + :inbox "~/org/koledarji/org-in.org") + (:calendar-id "personal" + :inbox "~/org/koledarji/osebno-in.org") + (:calendar-id "megla" + :inbox "~/org/koledarji/megla-in.org")))) ;; Nacin za pisanje brez distrakcij (use-package writeroom-mode - :ensure t :config :hook ((org-mode . (lambda () (display-line-numbers-mode -1))))) ;; HTMLize za barvanje kode v org izvozu v HTML -(use-package htmlize - :after org-mode - :ensure t) +(use-package htmlize :after org-mode :defer t) ;; Lokacije ORG agenda vnosov -(setq org-agenda-files (list "~/rs/org" "~/Dokumenti")) +(setq org-agenda-files (list "~/rs/org" "~/org")) ;; Zapiski -(setq org-default-notes-file "~/Dokumenti/zapiski.org") +(setq org-default-notes-file "~/org/zapiski.org") ;; Zacnimo na ponedeljek, kot se spodobi (setq calendar-week-start-day 1) @@ -439,14 +516,13 @@ 'org-babel-load-languages '((dot . t))) -;; enable ditaa +;; enable ditaa (diagrami) (org-babel-do-load-languages 'org-babel-load-languages '((ditaa . t))) ;; Mermaid v orgmode (diagrami) (use-package ob-mermaid - :ensure t :defer t :config ;; sudo npm install -g @mermaid-js/mermaid-cli @@ -456,15 +532,72 @@ '((mermaid . t) (scheme . t)))) + + +;;;;;;;;;;;;; +;; E-pošta ;; +;;;;;;;;;;;;; +(setq mu4e-get-mail-command "mbsync -a") + +;; Ikonice +(use-package mu4e-marker-icons + :defer t + :config + (mu4e-marker-icons-mode 1)) + +;; Email paketi iz githuba +;(use-package quelpa-use-package) + +(use-package mu4e-dashboard + :ensure f + :after mu4e + :vc "https://github.com/rougier/mu4e-dashboard") + ;:quelpa (mu4e-dashboard + ; :fetcher github + ; :repo "rougier/mu4e-dashboard")) + +;; @TODO konfiguracija! +;; - dashboard: https://github.com/rougier/mu4e-dashboard +;; - thread folding: https://github.com/rougier/mu4e-thread-folding +;; - svg tag mode: https://github.com/rougier/svg-tag-mode +;; - views: https://github.com/lordpretzel/mu4e-views +;; +;; Za zgled: +;; 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 ;; +;;;;;;;;;;; + +;; IVY autocomplete! <3 +(use-package ivy + :config + (ivy-mode) + (setq ivy-use-virtual-buffers t) + (setq enable-recursive-minibuffers t) + (local-set-key (kbd "C-j") 'ivy-next-line) + (local-set-key (kbd "C-k") 'ivy-prevous-line) + (local-set-key [remap scroll-up-command] 'ivy-scroll-up-command) + (local-set-key [remap scroll-down-command] 'ivy-scroll-down-command) + (global-set-key (kbd "C-c C-r") 'ivy-resume) + (global-set-key (kbd "") 'ivy-resume)) + +;; Vedno sledi symlinkom v git +(setq vc-follow-symlinks t) + ;; Swiper search (use-package swiper - :ensure t + :defer t :config (global-set-key "\C-s" 'swiper)) ;; Izboljsani default ukazi bolj prijazni (use-package counsel - :ensure t + :defer t :config (global-set-key (kbd "M-x") 'counsel-M-x) (global-set-key (kbd "C-x C-f") 'counsel-find-file) @@ -478,50 +611,37 @@ (global-set-key (kbd "C-c j") 'counsel-git-grep) (global-set-key (kbd "C-c k") 'counsel-ag) (global-set-key (kbd "C-x l") 'counsel-locate) - (global-set-key (kbd "C-S-o") 'counsel-rhythmbox) - (define-key minibuffer-local-map (kbd "C-r") 'counsel-minibuffer-history)) + (define-key minibuffer-local-map (kbd "C-r") 'counsel-minibuffer-history) + + ;; Ripgrep ignore + (defvar my-rg-excludes '("node_modules") + "List of directories to exclude from `counsel-rg' results.") + (define-advice counsel-rg + (:around (fn &optional in dir opts &rest args) my-glob) + "Exclude `my-rg-excludes' from `counsel-rg' results." + (let ((dir (or dir default-directory))) + (dolist (x my-rg-excludes) + (let ((glob (and (file-in-directory-p x dir) + (file-relative-name (expand-file-name "**" x) dir)))) + (when glob (setq opts (concat "-g !" glob (and opts " ") opts)))))) + (apply fn in dir opts args))) + ;; Iskanje po fajlih (fulltext) (use-package rg - :ensure t :defer t :config (rg-enable-default-bindings)) - -;;;;;;;;;;; -;; Razno ;; -;;;;;;;;;;; - -;; IVY -(use-package ivy - :ensure t - :config - (ivy-mode) - (setq ivy-use-virtual-buffers t) - (setq enable-recursive-minibuffers t) - (local-set-key (kbd "C-j") 'ivy-next-line) - (local-set-key (kbd "C-k") 'ivy-prevous-line) - (global-set-key (kbd "C-c C-r") 'ivy-resume) - (global-set-key (kbd "") 'ivy-resume)) - -;; Vedno sledi symlinkom v git -(setq vc-follow-symlinks t) - -;; Projektni mgmt -(use-package projectile - :ensure t - :config (projectile-mode t)) - ;; Pomoc -;(use-package 'helpful :ensure t) +(use-package helpful :defer t) -;; Prikazi nedavne ukaze prej v M-x -(use-package smex :ensure t) +;; Prikazi nedavne ukaze pri vrhu v M-x +(use-package smex :defer t) ;; Pomoc za keybinde (use-package which-key - :ensure t + :defer t :config ;; Allow C-h to trigger which-key before it is done automatically (setq which-key-show-early-on-C-h t) @@ -531,6 +651,8 @@ (setq which-key-idle-secondary-delay 0.05) (which-key-mode)) +(use-package zone-nyan :defer t) + ;; Prikazi startup time (add-to-list 'after-init-hook (lambda () @@ -553,14 +675,92 @@ ;; File asociacije (use-package openwith - :ensure t + :defer t :config (setq openwith-associations '(("\\.pdf\\'" "xdg-open" (file)))) (openwith-mode t)) ;; Kolaborativno urejanje -(use-package crdt - :ensure t) +(use-package crdt :defer t) + +;; 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) + +;; Dashboard - homescreen +(use-package dashboard + ;: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 + :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)) + + @@ -573,12 +773,42 @@ ;; 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)) + '("db3e80842b48f9decb532a1d74e7575716821ee631f30267e4991f4ba2ddf56e" + "d14f3df28603e9517eb8fb7518b662d653b25b26e83bd8e129acea042b774298" + "7661b762556018a44a29477b84757994d8386d6edee909409fabe0631952dad9" + default)) '(iswitchb-mode t) '(org-agenda-files - '("~/Dokumenti/todo.org" "/home/g1smo/Dokumenti/plac.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" "/home/g1smo/Dokumenti/agenda.org" "/home/g1smo/Dokumenti/blurb.org" "/home/g1smo/Dokumenti/delo.org" "/home/g1smo/Dokumenti/emanat.org" "/home/g1smo/Dokumenti/kompot.org" "/home/g1smo/Dokumenti/ljudmila.org" "/home/g1smo/Dokumenti/mu4e-setup.org" "/home/g1smo/Dokumenti/muska.org" "/home/g1smo/Dokumenti/org.org" "/home/g1smo/Dokumenti/projekti.org" "/home/g1smo/Dokumenti/recepti.org" "/home/g1smo/Dokumenti/samozaposlitev-prijava.org" "/home/g1smo/Dokumenti/shta.org" "/home/g1smo/Dokumenti/wtf.org" "/home/g1smo/Dokumenti/zapisi.org")) + '("/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")) '(package-selected-packages - '(toml-mode smartparens crdt.el openwith evil-org-agenda company-org-block org-block-capf writeroom-mode racket-mode htmlize company-lsp web-mode tidal org-caldav format-all company-phpactor phpactor extempore-mode ob-mermaid use-package lsp-mode yaml-mode drupal-mode magit markdown-mode flycheck arduino-mode rjsx-mode gdscript-mode rainbow-delimiters which-key paredit geiser-guile geiser web-beautify vue-mode treemacs-evil treemacs-projectile treemacs smart-tabs-mode smart-tabs js2-mode smex clojure-mode helpful doom-themes counsel swiper all-the-icons doom-modeline evil-collection fennel-mode rg ivy company projectile evil)) + '(quelpa-use-package 2bit counsel-projectile mu4e-dashboard + sclang-extensions mu4e-marker-icons mu4e + pyvenv chuck-mode subed elisp-refs autothemer + posframe avy dashboard sclang php-mode + zone-nyan org-evil guix ess 2048-game + toml-mode smartparens crdt.el openwith + evil-org-agenda company-org-block + org-block-capf writeroom-mode htmlize + company-lsp tidal org-caldav format-all + company-phpactor phpactor extempore-mode + ob-mermaid use-package lsp-mode drupal-mode + magit markdown-mode flycheck arduino-mode + rjsx-mode gdscript-mode rainbow-delimiters + paredit geiser-guile geiser web-beautify + vue-mode treemacs-evil treemacs-projectile + smart-tabs-mode smart-tabs js2-mode smex + clojure-mode helpful doom-themes counsel + swiper all-the-icons doom-modeline + evil-collection fennel-mode rg ivy company + projectile evil)) '(tool-bar-mode nil) '(warning-minimum-level :error) '(which-key-mode t)) @@ -587,4 +817,15 @@ ;; 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))))) + '(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"))))) + + +;; Make gc pauses faster by decreasing the threshold. +(setq gc-cons-threshold (* 10 1000 1000)) +;; Increase the amount of data which Emacs reads from the process +(setq read-process-output-max (* 1024 1024)) ;; 1mb + +;; supercollider mode load +;(require 'sclang) diff --git a/.ssh/config b/.ssh/config index 93d9683..3ce2f67 100644 --- a/.ssh/config +++ b/.ssh/config @@ -10,3 +10,10 @@ Host felis.kreten.si Host a2z.si HostkeyAlgorithms ssh-dss,ssh-rsa KexAlgorithms +diffie-hellman-group1-sha1 + +Host 192.168.64.100 + PubkeyAcceptedAlgorithms +ssh-rsa + HostkeyAlgorithms +ssh-rsa +Host 192.168.32.1 + PubkeyAcceptedAlgorithms +ssh-rsa + HostkeyAlgorithms +ssh-rsa diff --git a/.zshrc b/.zshrc index 1ee1442..a7d20dc 100644 --- a/.zshrc +++ b/.zshrc @@ -124,11 +124,31 @@ alias deb-build="dpkg-buildpackage -b -rfakeroot -us -uc" alias run-gamma="pkill -f gammastep; sleep 3; screen -dm -- gammastep -m wayland -l 46.05108:14.50513" +# Spanje / nespanje +alias insomnia="sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target" +alias pocivanje="sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target" +alias lowdelay="PIPEWIRE_LATENCY=128/48000 " + +# zvok prek mreze! +alias pulse-listen="pactl load-module module-native-protocol-tcp port=4656 listen=" +alias pulse-connect="pactl load-module module-tunnel-sink server=tcp:${PULSEIP}:4656" +alias pulse-virtual-sink="pactl load-module module-null-sink media.class=Audio/Source/Virtual sink_name=my-virtualmic channel_map=front-left,front-right" +alias sardon="source $HOME/mska/sardine/venv/bin/activate" +alias powersave="sudo cpupower frequency-set -g powersave" +alias powerfull="sudo cpupower frequency-set -g ondemand" +alias imgcrop1920="mogrify -resize 1920x1920 " + # Za LXD! export PATH="${PATH}:$(go env GOPATH)/bin:/sbin:/usr/sbin" -export LD_LIBRARY_PATH="$(go env GOPATH)/deps/dqlite/.libs/:$(go env GOPATH)/deps/raft/.libs/:${LD_LIBRARY_PATH}" +#export LD_LIBRARY_PATH="$(go env GOPATH)/deps/dqlite/.libs/:$(go env GOPATH)/deps/raft/.libs/:${LD_LIBRARY_PATH}" + +# ??? fix crashanja +#export LD_LIBRARY_PATH="/lib/x86_64-linux-gnu:/lib/i386-linux-gnu" # JS fix (prevec nov za openssl) #export NODE_OPTIONS="--openssl-legacy-provider" +# Terminal podpora +alias termfix="TERM=rxvt-256color " +#export TERM=rxvt-256color diff --git a/applications/arduino2.desktop b/applications/arduino2.desktop new file mode 100644 index 0000000..419259e --- /dev/null +++ b/applications/arduino2.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=Arduino IDE 2 +Comment=Open-source electronics prototyping platform +GenericName=Arduino IDE 2 +Exec=env LD_LIBRARY_PATH=/lib/x86_64-linux-gnu /home/g1smo/apps/arduino-ide_2.2.0_Linux_64bit.AppImage %f +Icon=arduino +Type=Application +Terminal=false +Categories=Development;Engineering;Electronics;IDE; +MimeType=text/x-arduino +Keywords=embedded electronics;electronics;avr;microcontroller; +StartupWMClass=processing-app-Base diff --git a/config.scm b/config.scm index 30dc826..f0367dd 100644 --- a/config.scm +++ b/config.scm @@ -37,42 +37,42 @@ (type "vfat")) %base-file-systems)) - (swap-devices - (list (swap-space (target "/swapfile")))) - (users (cons* (user-account - (name "g1smo") + (name "yuri") (comment "Yuri") (group "users") (supplementary-groups '("wheel" "netdev" - "audio" "video" "dialout")) + "audio" "video" + "dialout" "users")) (home-directory "/home/g1smo")) - (user-account - (name "bask") - (comment "Balkan Anarchist Bookfair") - (group "users") - (supplementary-groups '("wheel" "netdev" - "audio" "video" "dialout")) - (home-directory "/home/bask")) %base-user-accounts)) - ;; This is where we specify system-wide packages. - (packages (cons* nss-certs ;for HTTPS access - zsh ;Z shell - openssh - git - emacs - vim - bspwm - libinput - xf86-input-libinput - freetype - %base-packages)) + (packages (append (list (specification->package "i3-wm") + (specification->package "i3status") + (specification->package "dmenu") + (specification->package "st") + (specification->package "nss-certs") + ;; sistem + (specification->package "lvm2") + ;; WM zadeve + (specification->package "sway") + (specification->package "swaybg") + (specification->package "rofi") + (specification->package "i3-autotiling") + (specification->package "waybar") + (specification->package "gammastep") + (specification->package "kitty") + (specification->package "eog") + (specification->package "nautilus") + ;; Urejevalniki teksta + (specification->package "emacs") + (specification->package "vim") + ;; Razno + (sepcification->package "zsh") + (specification->package "git") + (specification->package "file")) + %base-packages)) - ;; Add GNOME and/or Xfce---we can choose at the log-in - ;; screen with F1. Use the "desktop" services, which - ;; include the X11 log-in service, networking with Wicd, - ;; and more. (services (cons* (service xfce-desktop-service-type) (service gnome-desktop-service-type) @@ -92,5 +92,45 @@ (eq? network-manager-service-type (service-kind service))) %desktop-services))) + (swap-devices (list (swap-space + (target (uuid + "76019829-e8eb-477c-a08a-d2ccff3fcdd5"))))) + ;(mapped-devices (list (mapped-device + ; (source (uuid + ; "52c83c72-c391-4a71-8405-897603f61363")) + ; (target "gpnx-root") + ; (type luks-device-mapping)) + ; (mapped-device + ; (source (uuid + ; "3020ad8b-ee01-49e2-8a46-3f66c902ef67")) + ; (target "dbn-home") + ; (type luks-device-mapping)) + ; (mapped-device + ; (source "dbn-vg") + ; (targets (list "home")) + ; (type lvm-device-mapping)) + ; )) + ;; Allow resolution of '.local' host names with mDNS. - (name-service-switch %mdns-host-lookup-nss)) + (name-service-switch %mdns-host-lookup-nss) + + (file-systems (cons* (file-system + (mount-point "/") + (device "/dev/mapper/gpnx-root") + (type "ext4") + (dependencies mapped-devices)) + (file-system + (mount-point "/boot") + (device (uuid "65689a28-4afb-4c40-9ff2-2a0df1168a86")) + (type "ext2")) + (file-system + (mount-point "/boot/efi") + (device (uuid "3F44-75AB" + 'fat16)) + (type "vfat")) + ;(file-system + ;(mount-point "/home/g1smo/dbn") + ;(device "/dev/mapper/dbn-home") + ;(type "ext4") + ;(dependencies mapped-devices)) + %base-file-systems))) diff --git a/povezi.sh b/povezi.sh index d06c27d..1a76e54 100755 --- a/povezi.sh +++ b/povezi.sh @@ -88,6 +88,8 @@ ln -s $DIR/.guile ~/.guile # X11 popravki aplikacij ln -s $DIR/applications/dbeaver.desktop ~/.local/share/applications/dbeaver.desktop ln -s $DIR/applications/dbeaver.desktop ~/.local/share/applications/com.obsproject.Studio.desktop +ln -s $DIR/applications/arduino2.desktop ~/.local/share/applications/arduino2.desktop + # Emacs <3 mkdir ~/.emacs.d