sdf_frankenscript/emacs/.emacs.d/gb-init.el

1504 lines
44 KiB
EmacsLisp

;;; gb-init.el --- Emacs tangled config -*- mode: emacs-lisp; lexical-binding: t; -*-
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ATTENZIONE: NON MODIFICARE QUESTO FILE!
;; File generato automaticamente
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Copyright (C) 2020 Geraldo Biotti
;; Compatiblity: emacs-version >= 27
;; This file is not part of GNU Emacs.
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or (at
;; your option) any later version.
;; This program is distributed in the hope that it will be useful, but
;; WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
;; Questo file viene generato automaticamente a partire dal
;; suo file sorgente scritto in org-mode usando la tecnica
;; del "literate-programming"
;; Non modificare questo file. Ogni modifica a questo file
;; e' destinata ad essere persa e sovrascritta alla prossima
;; generazione dal file sorgente.
;; ATTENZIONE: NON MODIFICARE QUESTO FILE!
;;; Code:
(defun gb/emacs/config-visit ()
"Visita il file di configurazione 'literate programming'.
Da notare che il file deve essere impostato nella variabile
'gb/emacs/org-conf-filename' che deve essere definita in 'init.el'"
(interactive)
(find-file gb/emacs/org-conf-filename)
)
(defun gb/emacs/config-reload ()
"Effettual il reload del file di configurazione.
Esegue quindi nuovamente quelle operazioni sul file di configurazione
'literate programming' che sono state eseguite in 'int.el' all'avvio di Emacs.
Da notare che il file deve essere impostato nella variabile
'gb/emacs/org-conf-filename' che deve essere definita in 'init.el'
Assume che 'org' sia gia' stato caricato."
(interactive)
(org-babel-load-file gb/emacs/org-conf-filename)
)
(when (eq system-type 'windows-nt)
(cond ((find-font (font-spec :name "Cascadia Code PL"))
(add-to-list 'default-frame-alist '(font . "Cascadia Code PL-10"))
(set-face-attribute 'default nil :font "Cascadia Code PL-10"))
((find-font (font-spec :name "DejaVu Sans mono"))
(add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-10"))
(set-face-attribute 'default nil :font "DejaVu Sans Mono-10"))
((find-font (font-spec :name "Consolas"))
(add-to-list 'default-frame-alist '(font . "Consolas-10"))
(set-face-attribute 'default nil :font "Consolas-10"))
((find-font (font-spec :name "Inconsolata"))
(add-to-list 'default-frame-alist '(font . "Inconsolata-10"))
(set-face-attribute 'default nil :font "Inconsolata-10"))
)
)
(setq inhibit-startup-screen t)
(menu-bar-mode -1)
(tool-bar-mode -1)
(setq tool-bar-style 'image)
(toggle-scroll-bar -1)
(setq use-file-dialog nil)
(setq use-dialog-box nil)
(setq make-backup-files t
auto-save-default t)
(use-package emacs
:bind (("C-z" . nil)
("C-h h" . nil))
)
;; (use-package emacs
;; :bind ([remap list-buffers] . ibuffer)
;; )
(global-set-key [remap list-buffers] 'ibuffer)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
;; backwards compatibility as default-buffer-file-coding-system
;; is deprecated in 23.2.
(if (boundp 'buffer-file-coding-system)
(setq-default buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8))
;; Treat clipboard input as UTF-8 string first; compound text next, etc.
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))
;; Messages encoding system
(setq locale-coding-system 'utf-8)
(when (window-system)
(global-hl-line-mode 1))
(setq-default truncate-lines t)
(show-paren-mode 1)
(setq scroll-conservatively most-positive-fixnum)
(setq hscroll-step 1)
(setq visible-bell t
ring-bell-function 'ignore)
(delete-selection-mode t)
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
(setq tab-stop-list
(number-sequence 4 200 4))
;; Devo caricare il modulo di supporto per la stgampa
(require 'ps-print)
;; Imposto il formato pagina a "A4"
(setq ps-paper-type 'a4)
;; (setq ps-print-color-p 'black-white)
(setq doc-view-continuous t)
(cond ((eq system-type 'windows-nt)
;; Windows-specific code goes here.
;; ATTENZIONE
;; Se si installa una versione diversa di GhostScript RICORDARSI
;; di modificare qui i percorsi!!!!!
(setq ps-lpr-command "C:/Program Files/gs/gs9.50/bin/gswin64c.exe")
(setq ps-lpr-switches '("-q"
"-dNOPAUSE"
"-dBATCH"
"-dNoCancel"
"-sDEVICE=mswinpr2"
;; "-IC:/Program Files/gs/gs9.50/lib"
;; "-sFONTPATH=C:/Windows/Fonts"
;; "-sOutputICCProfile=default_cmyk.icc"
;; "-dBitsPerPixel=24"
;; "-dEmbedAllFonts=true"
))
(setq doc-view-ghostscript-program "C:/Program Files/gs/gs9.50/bin/gswin64c.exe")
(setq ps-printer-name t)
(setq ps-printer-name-option nil)
)
((eq system-type 'gnu/linux)
;; Linux-specific code goes here.
))
;; Start Emacs fullscreen mode
;; (add-hook 'emacs-startup-hook 'toggle-frame-maximized)
(use-package async
:ensure t
:init
(dired-async-mode 1)
)
(use-package all-the-icons
:if (window-system)
:ensure t
:demand t
)
(use-package all-the-icons-dired
:if (window-system)
:ensure t
:defer t
:after all-the-icons
:hook (dired-mode-hook . all-the-icons-dired-mode)
)
(use-package all-the-icons-ibuffer
:if (window-system)
:ensure t
:defer t
:hook (ibuffer-mode-hook . all-the-icons-ibuffer-mode)
:after all-the-icons
)
(use-package doom-themes
:if (window-system)
:ensure t
:defer t
:config
;; Global settings (defaults)
(setq doom-themes-enable-bold t ; if nil, bold is universally disabled
doom-themes-enable-italic t) ; if nil, italics is universally disabled
;; Enable flashing mode-line on errors
(doom-themes-visual-bell-config)
;; Enable custom neotree theme (all-the-icons must be installed!)
;; (doom-themes-neotree-config)
;; or for treemacs users
(setq doom-themes-treemacs-theme "doom-colors") ; use the colorful treemacs theme
(doom-themes-treemacs-config)
;; Corrects (and improves) org-mode's native fontification.
(doom-themes-org-config)
)
(use-package spacemacs-theme
:if (window-system)
:ensure t
:defer t
)
(use-package material-theme
:if (window-system)
:ensure t
:defer t
)
(use-package zenburn-theme
:if (window-system)
:ensure t
:defer t
)
(use-package monokai-theme
:if (window-system)
:ensure t
:defer t
)
(use-package gruvbox-theme
:if (window-system)
:ensure t
:defer t
)
(use-package modus-themes
;; Da notare che questo tema e' valido sia in ambiente grafico
;; che in ambiente terminale. Per questo lo carico comunque
;; indipendentemente dal fatto che sia in "window-system" o meno
;; :if (window-system)
:ensure t
:defer t
)
(use-package zerodark-theme
:if (window-system)
:ensure t
:defer t
)
(use-package atom-one-dark-theme
:if (window-system)
:ensure t
:defer t
)
(use-package dracula-theme
:if (window-system)
:ensure t
:defer t
)
(use-package color-theme-sanityinc-tomorrow
:if (window-system)
:ensure t
:defer t
)
(use-package solarized-theme
:if (window-system)
:ensure t
:defer t
)
(use-package moe-theme
:if (window-system)
:ensure t
:defer t
)
(use-package seti-theme
:if (window-system)
:ensure t
:defer t
)
(use-package base16-theme
:if (window-system)
:ensure t
:defer t
)
(if (display-graphic-p)
(progn
;; Add all your customizations prior to loading the themes
(setq modus-themes-slanted-constructs t
modus-themes-bold-constructs nil
modus-themes-region 'no-extend)
;; Load the theme files before enabling a theme (else you get an error).
(modus-themes-load-themes)
;; Load the theme of your choice:
;; OR (modus-themes-load-vivendi)
;; OR (modus-themes-load-operandi)
(modus-themes-load-vivendi))
(progn
;; Add all your customizations prior to loading the themes
(setq modus-themes-slanted-constructs t
modus-themes-bold-constructs nil
modus-themes-region 'no-extend)
;; Load the theme files before enabling a theme (else you get an error).
(modus-themes-load-themes)
;; Load the theme of your choice:
;; OR (modus-themes-load-vivendi)
;; OR (modus-themes-load-operandi)
(modus-themes-load-vivendi))
)
(use-package doom-modeline
:if (window-system)
:ensure t
:after all-the-icons
;;:init (doom-modeline-mode 1)
:hook (after-init-hook . doom-modeline-mode)
)
(use-package minions
:if (window-system)
:ensure t
:hook (after-init-hook . minions-mode)
:custom (doom-modeline-minor-modes t)
)
(setq line-number-mode t
column-number-mode t)
;; Per adesso non mostro i numeri di riga sul lato della window
;; (global-display-line-numbers-mode)
(use-package dashboard
:ensure t
:if (window-system)
:config
(dashboard-setup-startup-hook)
;; (setq dashboard-startup-banner "~/.emacs.d/img/Logog-b.png")
(setq dashboard-startup-banner "~/.emacs.d/img/Logog-b.png"
;; dashboard-startup-banner "~/.emacs.d/img/Logob-w.png"
dashboard-set-heading-icons t
dashboard-set-file-icons t
dashboard-image-banner-max-height 250
dashboard-image-banner-max-width 250)
)
(use-package which-key
:ensure t
:defer 5
:delight
:commands which-key-mode
:config
(which-key-mode)
)
(use-package hydra
:ensure t
:defer t
)
(use-package dashboard
:ensure t
:if (window-system)
:config
(dashboard-setup-startup-hook)
;; (setq dashboard-startup-banner "~/.emacs.d/img/Logog-b.png")
(setq dashboard-startup-banner "~/.emacs.d/img/Logog-b.png"
;; dashboard-startup-banner "~/.emacs.d/img/Logob-w.png"
dashboard-set-heading-icons t
dashboard-set-file-icons t
dashboard-image-banner-max-height 250
dashboard-image-banner-max-width 250)
)
(use-package ivy
:ensure t
:delight
;; :hook (after-init-hook . ivy-mode)
:custom
(ivy-use-virtual-buffers t)
(enable-recursive-minibuffers t)
(ivy-count-format "%d/%d ")
:config
;; Key bingings - Ivy based interface to stanard commands
;; (global-set-key (kbd "C-x b") 'ivy-switch-buffer)
(global-set-key (kbd "C-c v") 'ivy-push-view)
(global-set-key (kbd "C-c V") 'ivy-pop-view)
;; Key bindints - Ivy resume
(global-set-key (kbd "C-c C-r") 'ivy-resume)
(ivy-mode 1)
)
(use-package swiper
:ensure t
:after ivy
:config
;; Key bindings - Ivy based interface to standard commands
(global-set-key (kbd "C-s") 'swiper-isearch)
)
(use-package counsel
:ensure t
:delight
:after (ivy swiper)
:config
(counsel-mode t)
;; (global-set-key (kbd "<f2> u") 'counsel-unicode-char)
;; (global-set-key (kbd "C-c g") 'counsel-git)
;; (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 read-expression-map (kbd "C-r") 'counsel-expression-history)
;; Key bindings - Ivy/Counsel interface to standard commands
(global-set-key (kbd "M-x") 'counsel-M-x)
(global-set-key (kbd "C-x C-f") 'counsel-find-file)
(global-set-key (kbd "M-y") 'counsel-yank-pop)
(global-set-key (kbd "<f1> f") 'counsel-describe-function)
(global-set-key (kbd "<f1> v") 'counsel-describe-variable)
(global-set-key (kbd "<f1> l") 'counsel-find-library)
(global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
(global-set-key (kbd "<f2> u") 'counsel-unicode-char)
(global-set-key (kbd "<f2> j") 'counsel-set-variable)
(global-set-key (kbd "C-x b") 'counsel-switch-buffer)
;; Key bindings - Ivy/Counsel interface to shell and system tools
(global-set-key (kbd "C-c c") 'counsel-compile)
(global-set-key (kbd "C-c g") 'counsel-git)
(global-set-key (kbd "C-c j") 'counsel-git-grep)
(global-set-key (kbd "C-c L") 'counsel-git-log)
(global-set-key (kbd "C-c k") 'counsel-rg)
(global-set-key (kbd "C-c m") 'counsel-linux-app)
(global-set-key (kbd "C-c n") 'counsel-fzf)
(global-set-key (kbd "C-x l") 'counsel-locate)
(global-set-key (kbd "C-c J") 'counsel-file-jump)
(global-set-key (kbd "C-S-o") 'counsel-rhythmbox)
(global-set-key (kbd "C-c w") 'counsel-wmctrl)
;; Key bindings - Counsel other commands
(global-set-key (kbd "C-c b") 'counsel-bookmark)
(global-set-key (kbd "C-c d") 'counsel-descbinds)
(global-set-key (kbd "C-c g") 'counsel-git)
(global-set-key (kbd "C-c o") 'counsel-outline)
(global-set-key (kbd "C-c t") 'counsel-load-theme)
(global-set-key (kbd "C-c F") 'counsel-org-file)
)
(use-package counsel-etags
:disabled
:ensure t
:after counsel
;; :bind (("C-]" . counsel-etags-find-tag-at-point))
:init
(add-hook 'prog-mode-hook
(lambda ()
(add-hook 'after-save-hook
'counsel-etags-virtual-update-tags 'append 'local)))
:custom
(counsel-etags-update-interval 60)
:config
(push "build" counsel-etags-ignore-directories)
)
(use-package counsel-css
:disabled
:ensure t
:defer t
:after counsel
:hook (css-mode-hook . counsel-css-imenu-setup)
)
(use-package ivy-rich
:ensure t
:after (ivy counsel)
;; :init
;; (ivy-rich-mode 1)
:config
(ivy-rich-mode 1)
)
(use-package all-the-icons-ivy-rich
:if (window-system)
:ensure t
:after (ivy counsel ivy-rich all-the-icons)
;; :init
;; (all-the-icons-ivy-rich-mode 1)
:config
(all-the-icons-ivy-rich-mode 1)
)
(use-package ivy-hydra
:ensure t
:defer t
:after (ivy hydra)
)
(use-package amx
:ensure t
:defer t
:after (:all counsel)
;; :bind (("M-X" . amx-major-mode-commands))
:config (amx-mode t)
)
(use-package org
:defer t
:config
;; Aggiungo exporter normalmente non abilitati
(add-to-list 'org-export-backends 'ascii)
(add-to-list 'org-export-backends 'beamer)
(add-to-list 'org-export-backends 'md)
(add-to-list 'org-export-backends 'org)
(progn (add-to-list 'org-latex-packages-alist '("" "tabularx" nil))
(add-to-list 'org-latex-packages-alist '("" "tabu" nil))
)
)
(use-package org-bullets
:if (window-system)
:ensure t
:defer t
:hook (org-mode-hook . org-bullets-mode)
:after (org)
:custom
(org-hide-leading-stars t)
)
(use-package org-superstar
:disabled
:if (window-system)
:ensure t
:defer t
:after org
:hook (org-mode-hook . org-superstar-mode)
:custom
(org-hide-leading-stars t)
)
(use-package org-edna
:ensure t
:defer t
:after org
:hook (org-mode-hook . org-edna-mode)
:config
(org-edna-load)
)
(use-package htmlize
:ensure t
:defer t
)
(use-package beacon
:if (window-system)
:ensure t
:defer t
:delight
:hook (after-init-hook . beacon-mode)
:custom
(beacon-blink-when-focused t)
;;(beacon-size 64)
:config
(beacon-mode 1)
)
(use-package symon
:ensure t
:defer t
)
(use-package try
:disabled
:ensure t
:defer t
)
(use-package avy
:ensure t
)
(use-package ace-window
:ensure t
:defer t
:after avy
:bind ([remap other-window] . ace-window)
)
(use-package company
:ensure t
:defer t
:delight
;; :after yasnippet
:custom
(company-idle-delay 0.5)
(company-mimimum-prefix-length 3)
:hook (;;(prog-mode-hook . company-mode)
(after-init-hook . global-company-mode))
)
(use-package company-quickhelp
:ensure t
:defer t
:after company
:custom
(company-quickhelp-delay 0.1)
:config
(company-quickhelp-mode 1)
)
(use-package origami
:ensure t
:defer t
:commands origami-mode
)
(use-package undo-tree
;; Treat undo history as a tree
:ensure t
:defer t
:delight "Ut"
:bind (("C-z" . undo)
("C-S-z" . undo-tree-redo))
:config
(progn
(global-undo-tree-mode)
(setq undo-tree-visualizer-timestamps t)
(setq undo-tree-visualizer-diff t))
)
(use-package magit
:ensure t
:defer t
:after (ivy)
:bind ("C-x g" . 'magit-status)
)
(use-package gitconfig-mode
:ensure t
:defer 5
:mode ("/\\.gitconfig\\'"
"/\\.git/config\\'"
"/modules/.*/config\\'"
"/git/config\\'"
"/\\.gitmodules\\'"
"/etc/gitconfig\\'")
)
(use-package gitignore-mode
:ensure t
:defer 5
:mode ("/\\.gitignore\\'"
"/info/exclude\\'"
"/git/ignore\\'")
)
(use-package gitattributes-mode
:ensure t
:defer 5
:mode ("/\\.gitattributes\\'"
"/info/attributes\\'"
"/git/attributes\\'")
)
(use-package git-timemachine
:ensure t
:defer t
:commands git-timemachine
)
(use-package treemacs
:ensure t
:defer t
:commands treemacs
:init
(with-eval-after-load 'winum
(define-key winum-keymap (kbd "M-0") #'treemacs-select-window))
:config
(progn
(setq treemacs-collapse-dirs (if treemacs-python-executable 3 0)
treemacs-deferred-git-apply-delay 0.5
treemacs-directory-name-transformer #'identity
treemacs-display-in-side-window t
treemacs-eldoc-display t
treemacs-file-event-delay 5000
treemacs-file-extension-regex treemacs-last-period-regex-value
treemacs-file-follow-delay 0.2
treemacs-file-name-transformer #'identity
treemacs-follow-after-init t
treemacs-git-command-pipe ""
treemacs-goto-tag-strategy 'refetch-index
treemacs-indentation 2
treemacs-indentation-string " "
treemacs-is-never-other-window nil
treemacs-max-git-entries 5000
treemacs-missing-project-action 'ask
treemacs-move-forward-on-expand nil
treemacs-no-png-images nil
treemacs-no-delete-other-windows t
treemacs-project-follow-cleanup nil
treemacs-persist-file (expand-file-name ".cache/treemacs-persist" user-emacs-directory)
treemacs-position 'left
treemacs-recenter-distance 0.1
treemacs-recenter-after-file-follow nil
treemacs-recenter-after-tag-follow nil
treemacs-recenter-after-project-jump 'always
treemacs-recenter-after-project-expand 'on-distance
treemacs-show-cursor nil
treemacs-show-hidden-files t
treemacs-silent-filewatch nil
treemacs-silent-refresh nil
treemacs-sorting 'alphabetic-asc
treemacs-space-between-root-nodes t
treemacs-tag-follow-cleanup t
treemacs-tag-follow-delay 1.5
treemacs-user-mode-line-format nil
treemacs-user-header-line-format nil
treemacs-width 35
treemacs-workspace-switch-cleanup nil)
;; The default width and height of the icons is 22 pixels. If you are
;; using a Hi-DPI display, uncomment this to double the icon size.
;;(treemacs-resize-icons 44)
(treemacs-follow-mode t)
(treemacs-filewatch-mode t)
(treemacs-fringe-indicator-mode t)
(pcase (cons (not (null (executable-find "git")))
(not (null treemacs-python-executable)))
(`(t . t)
(treemacs-git-mode 'deferred))
(`(t . _)
(treemacs-git-mode 'simple))))
:bind
(:map global-map
("M-0" . treemacs-select-window)
("C-x t 1" . treemacs-delete-other-windows)
("C-x t t" . treemacs)
("C-x t B" . treemacs-bookmark)
("C-x t C-t" . treemacs-find-file)
("C-x t M-t" . treemacs-find-tag)))
(use-package treemacs-magit
:after (treemacs magit)
:ensure t
:defer t
)
(use-package treemacs-projectile
:after (treemacs projectile)
:ensure t
:defer t
)
(use-package treemacs-all-the-icons
:after (treemacs all-the-icons)
:ensure t
:defer t
)
(use-package restclient
:ensure t
:defer t
)
(use-package company-restclient
:ensure t
:after (company restclient)
:config
(add-to-list 'company-backends 'company-restclient)
)
(use-package elfeed
;;
:disabled
;;
:ensure t
:defer t
;; Imposto la directory del db di elfeed per stare dentro .emacs.d
:custom ((elfeed-db-directory "~/Dropbox/Sync/emacs/elfeed/db")
(elfeed-enclosure-default-dir "~/Downloads/elfeed"))
:config
;; (setq elfeed-feeds
;; '("http://status.register.it/history.rss"
;; "https://golem.linux.it/wp/feed/"
;; ("http://dilbert.com/feed" Divertimento Webcomic)
;; ("https://xkcd.com/rss.xml" Divertimento Webcomic)
;; ("http://www.soft-land.org/rss/softland/commenti.rss" Divertimento Soft-land)
;; ("http://www.soft-land.org/rss/softland/sdsm.rss" Divertimento Soft-land)
;; ("http://www.soft-land.org/rss/softland/ospiti.rss" Divertimento Soft-land)
;; ("https://bufalopedia.blogspot.com/feeds/posts/default" Antibufala Attivissimo)
;; ("http://feeds.feedburner.com/Disinformatico" Antibufala Attivissimo)
;; ("https://undicisettembre.blogspot.com/feeds/posts/default" Antibufala Attivissimo)
;; ("https://complottilunari.blogspot.com/feeds/posts/default" Antibufala Attivissimo)
;; ("http://www.valigiablu.it/feed/" Antibufala)
;; ("https://blog.mikrotik.com/rss/?cat=security" CyberSecurity MikroTi)
;; ("https://www.cert.garr.it/certrss" CyberSecurity CERT Cert-Italiani)
;; ("https://www.certnazionale.it/news/feed/" CiberSecurity CERT Cert-Italiani)
;; ("https://www.commissariatodips.it/feeds/rss.xml" CiberSecurity CERT Cert-Italiani)
;; ("https://www.cert-pa.it/feed/" CiberSecurity CERT Cert-Italiani)
;; ("https://www.us-cert.gov/ncas/all.xml" CiberSecurity CERT Cert-USA)
;; ("https://www.us-cert.gov/ncas/alerts.xml" CiberSecurity CERT Cert-USA)
;; ("https://www.us-cert.gov/ncas/bulletins.xml" CiberSecurity CERT Cert-USA)
;; ("https://www.us-cert.gov/ncas/tips.xml" CiberSecurity CERT Cert-USA)
;; ("https://www.us-cert.gov/ncas/current-activity.xml" CiberSecurity CERT Cert-USA)
;; ("https://www.microsoft.com/technet/security/bulletin/secrss.aspx" CiberSecurity CERT Cert-USA Cert-Microsoft)
;; ("https://www.microsoft.com/technet/security/bulletin/RssFeed.aspx?snscomprehensive" CiberSecurity CERT Cert-USA Cert-Microsoft)
;; ("https://blogs.technet.microsoft.com/msrc/feed/" CiberSecurity CERT Cert-USA Cert-Microsoft)
;; ("https://www.kaspersky.com/blog/feed/" CiberSecurity Kaspersky)
;; ("https://securelist.com/feed/" CiberSecurity Kaspersky)
;; ("https://threatpost.com/feed/" CiberSecurity Kaspersky)
;; ("http://securityinfo.it/feed/?cat=251" CiberSecurity SecurityInfo)
;; ("https://protesilaos.com/news.xml" Emacs)
;; ("https://protesilaos.com/codelog.xml" Emacs)
;; ("http://www.virtuouscode.com/feed/" Emacs)
;; ("http://www.virtuouscode.com/comments/feed/" Emacs)
;; ("http://ergoemacs.org/emacs/blog.xml" Emacs)
;; ("http://xahlee.info/comp/blog.xml" Emacs)
;; ("http://xahlee.info/js/blog.xml" Emacs)
;; ("http://xahlee.info/math/blog.xml" Emacs)
;; ("https://alexschroeder.ch/wiki/feed/full/" Emacs)
;; ("http://emacshorrors.com/feed.atom" Emacs)
;; ("http://emacsredux.com/atom.xml" Emacs)
;; ("https://emacspeak.blogspot.com/feeds/posts/default" Emacs)
;; ("https://endlessparentheses.com/atom.xml" Emacs)
;; ("http://www.howardism.org/index.xml" Emacs)
;; ("http://irreal.org/blog/?feed=rss2" Emacs)
;; ("https://www.masteringemacs.org/feed" Emacs)
;; ("http://mbork.pl?action=rss" Emacs)
;; ("http://emacsblog.org/feed/" Emacs)
;; ("http://nullprogram.com/feed/" Emacs)
;; ("https://oremacs.com/atom.xml" Emacs)
;; ("http://planet.emacsen.org/atom.xml" Emacs)
;; ("https://planet.emacslife.com/atom.xml" Emacs)
;; ("http://pragmaticemacs.com/feed/" Emacs)
;; ("https://emacs.stackexchange.com/feeds" Emacs)
;; ("http://sachachua.com/blog/feed/" Emacs)
;; ("https://babbagefiles.xyz/index.xml" Emacs)
;; ("https://babbagefiles.blogspot.com/feeds/posts/default" Emacs)
;; ("http://whattheemacsd.com/atom.xml" Emacs)
;; ("https://www.wisdomandwonder.com/feed" Emacs)
;; ("https://cestlaz.github.io/rss.xml" Emacs)
;; ("https://bzg.fr/index.xml" Emacs)
;; ("http://kitchinresearchgroup.disqus.com/latest.rss" Emacs)
;; ("https://noonker.github.io/index.xml" Emacs)
;; ("https://codingquark.com/feed.xml" Emacs)
;; ("http://xenodium.com/rss.xml" Emacs)
;; ("https://karthinks.com/blog/index.xml" Emacs)
;; ("http://joshrollinswrites.com/index.xml" Emacs)
;; ("https://punchagan.muse-amuse.in/feed.xml" Emacs)
;; ("https://willschenk.com/feed.xml" Emacs)
;; ("https://emacs.cafe/feed.xml" Emacs)
;; ("https://groups.google.com/forum/feed/git-for-windows/msgs/rss.xml?num=50" Git)
;; ("https://groups.google.com/forum/feed/git-users/msgs/rss.xml?num=50" Git)
;; ("https://groups.google.com/forum/feed/git-packagers/topics/rss.xml?num=50" Git)
;; ("https://groups.google.com/group/idempiere/feed/rss_v2_0_msgs.xml" iDempiere)
;; ("https://groups.google.com/group/adempiere-colombia/feed/rss_v2_0_msgs.xml" iDempiere)
;; ("https://groups.google.com/group/idempiere-dev/feed/rss_v2_0_msgs.xml" iDempiere)
;; ("https://groups.google.com/group/idempiere-es/feed/rss_v2_0_msgs.xml" iDempiere)
;; ("https://groups.google.com/group/idempiere-italia/feed/rss_v2_0_msgs.xml" iDempiere)
;; ("https://www.liberliber.it/online/feed/" Ebooks Letteratura)
;; ("https://www.paginatre.it/online/feed/" Ebooks Letteratura)
;; ("http://it.feedbooks.com/books/recent.atom?lang=it" Ebooks Letteratura)
;; ("http://pennablu.it/feed/" Ebooks Letteratura)
;; ("https://www.reddit.com/r/bashonubuntuonwindows/.rss" Microsoft WSL)
;; ("https://blogs.msdn.microsoft.com/wsl/feed/" Microsoft WSL)
;; ("https://blogs.technet.microsoft.com/enterprisemobility/author/BradAnderson/feed/rss/" Microsoft)
;; ("https://blogs.msdn.microsoft.com/bharry/feed" Microsoft)
;; ("https://blogs.msdn.microsoft.com/powershell/feed/" Microsoft)
;; ("https://weblogs.asp.net/scottgu/rss?containerid=13" Microsoft)
;; ("https://blogs.msdn.microsoft.com/stevengu/feed/" Microsoft)
;; ("https://code.visualstudio.com/feed.xml" Microsoft)
;; ("http://blogs.msdn.microsoft.com/commandline/feed/" Microsoft)
;; "https://www.paulekman.com/feed/"
;; "https://github.blog/feed/"
;; "https://blog.bitbucket.org/feed/"
;; "https://www.blog.google/rss/"
;; "https://calebmadrigal.com/atom.xml"
;; )
;; )
(elfeed-org)
)
(use-package elfeed-goodies
;;
:disabled
;;
:ensure t
:defer t
:config
(elfeed-goodies/setup)
)
(use-package elfeed-org
;;
:disabled
;;
:ensure t
:defer t
;; :after (elfeed org)
:config
(elfeed-org)
(setq rmh-elfeed-org-files (list "~/Dropbox/Sync/emacs/elfeed/feeds.org"))
)
(use-package elfeed-protocol
;;
:disabled
;;
:ensure t
:defer t
)
(use-package pretty-mode
:if (window-system)
:ensure t
:config
;; (global-pretty-mode t)
)
(use-package csv-mode
:ensure t
:defer t
)
;;--------------------------------------------------------
(use-package pdf-tools
:ensure t
:defer t
:after (pdf-annot)
:magic ("%PDF" . pdf-view-mode)
;; :bind (("h" . 'pdf-annot-add-highlight-markup-annotation)
;; ("t" . 'pdf-annot-add-text-annotation)
;; ("D" . 'pdf-annot-delete)
;; ("C-s" . 'isearch-forward)
;; ("m" . 'mrb/mailfile)
;; ("<return>" . 'pdf-annot-edit-contents-commit)
;; ("<S-return>" . 'newline)
;; ;; ("\\" . hydra-pdftools/body)
;; ;; ("<s-spc>" . pdf-view-scroll-down-or-next-page)
;; ;; ("g" . pdf-view-first-page)
;; ;; ("G" . pdf-view-last-page)
;; ;; ("l" . image-forward-hscroll)
;; ;; ("h" . image-backward-hscroll)
;; ;; ("j" . pdf-view-next-page)
;; ;; ("k" . pdf-view-previous-page)
;; ;; ("e" . pdf-view-goto-page)
;; ;; ("u" . pdf-view-revert-buffer)
;; ;; ("al" . pdf-annot-list-annotations)
;; ;; ("ad" . pdf-annot-delete)
;; ;; ("aa" . pdf-annot-attachment-dired)
;; ;; ("am" . pdf-annot-add-markup-annotation)
;; ;; ("at" . pdf-annot-add-text-annotation)
;; ;; ("y" . pdf-view-kill-ring-save)
;; ;; ("i" . pdf-misc-display-metadata)
;; ;; ("s" . pdf-occur)
;; ;; ("b" . pdf-view-set-slice-from-bounding-box)
;; ;; ("r" . pdf-view-reset-slice)
;; :map pdf-view-mode-map
;; :map pdf-annot-edit-contents-minor-mode-map
;; )
:config
;; Some settings from http://pragmaticemacs.com/emacs/even-more-pdf-tools-tweaks/
;; (fullframe pdf-view-mode quit-window)
(setq-default pdf-view-display-size 'fit-page) ;scale to fit page by default
;; (gsetq-default pdf-view-display-size 'fit-width)
(setq pdf-annot-activate-created-annotations t ; automatically annotate highlights
pdf-view-resize-factor 1.1 ; more fine-grained zooming
;;pdf-misc-print-program "/usr/bin/lpr"
pdf-view-midnight-colors '("#DCDCCC" . "#383838")) ; Not sure what this is
;; (add-hook 'pdf-view-mode-hook (lambda () (cua-mode 0))) ; turn off cua so copy works
;; (pdf-tools-install :no-query)) ; no-query auto builds epfinfo when needed
(pdf-tools-install)
;; (eval-after-load 'org '(require 'org-pdfview)
)
;; ;;--------------------------------------------------------
;; (use-package pdf-tools
;; :magic ("%PDF" . pdf-view-mode)
;; :config
;; (dolist
;; (pkg
;; '(pdf-annot pdf-cache pdf-dev pdf-history pdf-info pdf-isearch
;; pdf-links pdf-misc pdf-occur pdf-outline pdf-sync
;; pdf-util pdf-view pdf-virtual))
;; (require pkg))
;; (pdf-tools-install))
(use-package emms
:ensure t
:defer t
:config
(require 'emms-setup)
(require 'emms-player-mplayer)
(emms-all)
(setq emms-player-list '(emms-player-mpg321
emms-player-ogg123
emms-player-mplayer))
(defun emms-player-mplayer-volume(amount)
(process-send-string
emms-player-simple-process-name
(format "volume %d\n" amount)))
(setq emms-volume-change-function 'emms-player-mplayer-volume)
(setq emms-source-file-default-directory "~/music/")
(emms-add-directory-tree emms-source-file-default-directory)
(emms-add-directory-tree "C:\Temp\_cancellami\_cancellami")
)
(use-package docker
:ensure t
:defer t
)
(use-package dockerfile-mode
:ensure t
:defer t
:mode ("/\\Dockerfile\\'")
)
(use-package docker-compose-mode
:ensure t
:defer t
)
(use-package simple-httpd
:ensure t
:defer t
:config
(setq httpd-port 7070)
(setq httpd-host (system-name))
)
(use-package impatient-mode
:ensure t
:defer t
:after simple-httpd
:commands impatient-mode
)
(use-package markdown-mode
:ensure t
:defer t
:commands (markdown-mode gfm-mode)
:mode (("README\\.md\\'" . gfm-mode)
("\\.md\\'" . markdown-mode)
("\\.markdown\\'" . markdown-mode))
:init (setq markdown-command "multimarkdown")
:hook (markdown-mode-hook . gb/markdown-preview)
:config
(progn
(cond ((eq system-type 'windows-nt)
;; Windows
(setq markdown-command "pandoc.exe -t html5")
)
((eq system-type 'gnu/linux)
;; Linux
(setq markdown-command "pandoc -t html5")
))
(defun gb/markdown-filter (buffer)
(princ
(with-temp-buffer
(let ((tmp (buffer-name)))
(set-buffer buffer)
(set-buffer (markdown tmp))
(format "<!DOCTYPE html><html><title>Markdown preview</title><link rel=\"stylesheet\" href = \"https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/3.0.1/github-markdown.min.css\"/>
<body><article class=\"markdown-body\" style=\"box-sizing: border-box;min-width: 200px;max-width: 980px;margin: 0 auto;padding: 45px;\">%s</article></body></html>" (buffer-string))))
(current-buffer)))
(defun gb/markdown-preview ()
"Preview markdown."
(interactive)
(unless (process-status "httpd")
(httpd-start))
(impatient-mode)
(imp-set-user-filter 'gb/markdown-filter)
(imp-visit-buffer))
)
)
(use-package auctex
:ensure t
:defer t
)
(use-package company-auctex
:ensure t
:after (company auctex)
:config
(company-auctex-init)
)
(use-package pcre2el
:ensure t
:delight
:commands (rxt-mode rxt-global-mode)
:config
(pcre-mode)
)
(use-package aggressive-indent
:ensure t
:defer t
:diminish
:hook (emacs-lisp-mode-hook . aggressive-indent-mode)
)
(use-package highlight-indent-guides
:ensure t
:defer t
:delight
:hook (prog-mode-hook . highlight-indent-guides-mode)
:custom
((highlight-indent-guides-method 'character)
(highlight-indent-guides-responsive 'stack))
:config
(unless (window-system)
(set-face-background 'highlight-indent-guides-odd-face "darkgray")
(set-face-background 'highlight-indent-guides-even-face "dimgray")
(set-face-foreground 'highlight-indent-guides-character-face "dimgray"))
)
(use-package flycheck
:ensure t
;;:init (global-flycheck-mode)
:defer t
:hook (prog-mode-hook . flycheck-mode)
)
(use-package flycheck-pos-tip
:ensure t
;;:defines flycheck-pos-tip-timeout
:hook (flycheck-mode-hook . flycheck-pos-tip-mode)
:config (setq flycheck-pos-tip-timeout 30)
)
(use-package flycheck-popup-tip
:disabled
:ensure t
:defer t
;;:defines flycheck-pos-tip-timeout
:hook (flycheck-mode-hook . flycheck-popup-tip-mode)
;; :config (setq flycheck-pos-tip-timeout 30)
)
(use-package smartparens
:ensure t
:defer t
:delight
:hook (prog-mode-hook . smartparens-mode)
:config
(require 'smartparens-config)
;; (smartparens-global-mode)
)
(use-package rainbow-delimiters
:ensure t
:defer t
:hook (prog-mode-hook . rainbow-delimiters-mode)
)
(use-package yasnippet
:ensure t
:defer t
:hook (after-init-hook . yas-global-mode)
;; :init (yas-global-mode 1)
:config (yas-reload-all)
)
(use-package yasnippet-snippets
:ensure t
:defer t
:after yasnippet
)
(use-package projectile
:ensure t
:defer 5
:config
(setq projectile-completion-system 'ivy)
;; (define-key projectile-mode-map (kbd "s-p") 'projectile-command-map)
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)
(projectile-mode 1)
)
(use-package ibuffer-projectile
:ensure t
:defer t
:after (projectile)
)
(use-package counsel-projectile
:ensure t
:defer t
:after (counsel projectile)
:hook (projectile-mode-hook . counsel-projectile-mode)
)
(use-package treemacs-projectile
:ensure t
:defer t
:after treemacs projectile
:hook (treemacs-mode-hook . treemacs-project-mode)
)
(use-package powershell
:ensure t
:defer t
)
(use-package csharp-mode
:ensure t
:defer t
)
(use-package sql-indent
:ensure t
:defer t
)
(use-package go-mode
:ensure t
:defer t
)
(use-package go-errcheck
:ensure t
:defer t
:after go-mode
)
(use-package company-go
:ensure t
:after (company go-mode)
)
(defun gb/rust/rustic-mode-hook ()
;; so that run C-c C-c C-r works without having to confirm
;; (setq-local buffer-save-without-query t)
(cargo-minor-mode t)
(company-mode t)
)
(use-package rustic
:ensure t
:defer t
;; :bind (:map rustic-mode-map
;; ("M-j" . lsp-ui-imenu)
;; ("M-?" . lsp-find-references)
;; ("C-c C-c l" . flycheck-list-errors)
;; ("C-c C-c a" . lsp-execute-code-action)
;; ("C-c C-c r" . lsp-rename)
;; ("C-c C-c q" . lsp-workspace-restart)
;; ("C-c C-c Q" . lsp-workspace-shutdown)
;; ("C-c C-c s" . lsp-rust-analyzer-status))
:hook ((rustic-mode-hook . gb/rust/rustic-mode-hook))
:config
;; uncomment for less flashiness
;; (setq lsp-eldoc-hook nil)
;; (setq lsp-enable-symbol-highlighting nil)
;; (setq lsp-signature-auto-activate nil)
;; comment to disable rustfmt on save
;; (setq rustic-format-on-save t)
;; (setq rustic-lsp-server 'rls)
;; attenzione, il .exe va bene solo su windows
(setq lsp-rust-analyzer-server-command '("~/.cargo/bin/rust-analyzer.exe"))
(setq rustic-lsp-client 'eglot)
(push 'rustic-clippy flycheck-checkers)
(setq rustic-flycheck-clippy-params "--message-format=json")
)
(use-package flycheck-rust
:ensure t
:defer t
:after (flycheck)
:hook (flyckeck-mode-hook . flycheck-rust-setup)
;; :hook ((rust-mode-hook . flycheck-rust-setup)
;; (flycheck-mode . flycheck-rust-setup)
;; )
;; :after (flycheck rust-mode)
;; :config (flycheck-rust-setup)
)
(use-package rust-mode
;; ---------------------
:disabled
;; ---------------------
:ensure t
:defer t
:after (company flycheck-rust cargo)
:hook ((rust-mode-hook . company-mode)
;; (rust-mode-hook . flycheck-rust-setup)
(rust-mode-hook . cargo-minor-mode)
)
:config
(setq indent-tabs-mode nil)
;; (setq rust-format-on-save t)
(setq company-tooltip-align-annotations t)
)
(use-package cargo
:ensure t
:defer t
;; :after rust-mode
;; :after rustic-mode
;; :hook ((rust-mode-hook . cargo-minor-mode)
;; ;; (conf-toml-mode-hook . cargo-minor-mode)
;; )
)
(use-package lsp-mode
;; ------------------------------
:disabled
;; ------------------------------
:ensure t
:commands (lsp)
:after (yasnippet)
;; Ricordarsi di leggere la documentazione
;; sul sito del produttore.
:custom
(lsp-keymap-prefix "C-c l")
:hook (;; Avvio normale (XXX-mode . lsp)
;; Avvio differito (XXX-mode . lsp-deferred)
(c++-mode-hook . lsp-deferred)
(c-mode-hook . lsp-deferred)
(csharp-mode-hook . lsp-deferred)
(css-mode-hook . lsp-deferred)
(dart-mode-hook . lsp-deferred)
(go-mode-hook . lsp-deferred)
(groovy-mode-hook . lsp-deferred)
(haxe-mode-hook . lsp-deferred)
(html-mode-hook . lsp-deferred)
(java-mode-hook . lsp-deferred)
(js-mode-hook . lsp-deferred)
(json-mode-hook . lsp-deferred)
(kotlin-mode-hook . lsp-deferred)
(latex-mode-hook . lsp-deferred)
(less-css-mode-hook . lsp-deferred)
(nxml-mode-hook . lsp-deferred)
(powershell-mode-hook . lsp-deferred)
(python-mode-hook . lsp-deferred)
(rust-mode-hook . lsp-deferred)
(scss-mode-hook . lsp-deferred)
(sh-mode-hook . lsp-deferred)
;; (sql-mode-hook . lsp-deferred)
(typescript-mode-hook . lsp-deferred)
(xml-mode-hook . lsp-deferred)
(yaml-mode-hook . lsp-deferred)
(clojure-mode-hook . lsp-deferred)
(lsp-mode-hook . lsp-enable-which-key-integration)
)
:commands (lsp lsp-deferred lsp-doctor)
:config
;; (setq lsp-completion-enable-additional-text-edit nil)
;; Come riportato qui: https://emacs-lsp.github.io/lsp-mode/page/performance/
(setq lsp-completion-provider :capf)
;; (setq lsp-log-io t
;; lsp-server-trace "verbose")
)
(use-package company-lsp
;; ------------------------------
:disabled
;; ------------------------------
:ensure t
:disabled
:after (lsp-mode company)
:config
(setq company-lsp-enable-snippet t)
(push 'company-lsp company-backends)
)
(use-package lsp-ui
;; ------------------------------
:disabled
;; ------------------------------
:ensure t
;; :defer t
:after (lsp-mode markdown-mode)
:commands lsp-ui-mode
:custom
(lsp-ui-peek-always-show t)
(lsp-ui-sideline-show-hover t)
(lsp-ui-doc-enable nil)
)
(use-package lsp-ivy
;; ------------------------------
:disabled
;; ------------------------------
:ensure t
;; :defer t
:after (lsp-mode ivy)
:commands lsp-ivy-workspace-symbol
)
(use-package dap-mode
;; ------------------------------
:disabled
;; ------------------------------
:ensure t
:defer t
:after (lsp-mode lsp-treemacs)
)
;; (use-package dap-csharp
;; :ensure t
;; :defer t
;; )
(use-package lsp-treemacs
;; ------------------------------
:disabled
;; ------------------------------
:ensure t
:after (lsp-mode treemacs)
:commands (lsp-treemacs-errors-list)
:custom
(lsp-treemacs-sync-mode 1)
)
(use-package lsp-origami
;; ------------------------------
:disabled
;; ------------------------------
:ensure t
:defer t
:after (lsp-mode origami)
:hook (lsp-after-open-hook . lsp-origami-try-enable)
)
;; (use-package lsp-mssql
;; :ensure t
;; :defer t
;; :after (lsp-mode lsp-treemacs)
;; :hook (sql-mode-hook . lsp)
;; )
(use-package eglot
:ensure t
:defer t
;; :custom
;; (eglot-autoreconnect nil)
;; (eglot-autoshutdown t)
:hook ((c++-mode-hook . eglot-ensure)
(c-mode-hook . eglot-ensure)
(csharp-mode-hook . eglot-ensure)
(css-mode-hook . eglot-ensure)
(dart-mode-hook . eglot-ensure)
(go-mode-hook . eglot-ensure)
(groovy-mode-hook . eglot-ensure)
(haxe-mode-hook . eglot-ensure)
(html-mode-hook . eglot-ensure)
(java-mode-hook . eglot-ensure)
(js-mode-hook . eglot-ensure)
(json-mode-hook . eglot-ensure)
(kotlin-mode-hook . eglot-ensure)
(latex-mode-hook . eglot-ensure)
(less-css-mode-hook . eglot-ensure)
(nxml-mode-hook . eglot-ensure)
(powershell-mode-hook . eglot-ensure)
(python-mode-hook . eglot-ensure)
(rust-mode-hook . eglot-ensure)
(scss-mode-hook . eglot-ensure)
(sh-mode-hook . eglot-ensure)
(sql-mode-hook . eglot-ensure)
(typescript-mode-hook . eglot-ensure)
(xml-mode-hook . eglot-ensure)
(yaml-mode-hook . eglot-ensure)
(clojure-mode-hook . eglot-ensure))
)
;; ===========================================================================
;; Local Variables:
;; coding: utf-8-unix
;; indent-tabs-mode: nil
;; tab-width: 4
;; End:
;; ===========================================================================
;;; gb-init ends here