Compare commits
26 Commits
wsl2
...
2d510d289c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2d510d289c | ||
|
|
6e20358ad6 | ||
|
|
fc6f51343d | ||
|
|
0e396c05b2 | ||
|
|
dc7a0d0987 | ||
|
|
7711e4156f | ||
|
|
c793146ebb | ||
|
|
56bfec57ca | ||
|
|
009385e3fd | ||
|
|
bf00633d7c | ||
|
|
db782bb84a | ||
|
|
70b7da4461 | ||
|
|
4b1509acf7 | ||
|
|
457fa93727 | ||
|
|
414317c19f | ||
|
|
2e14989a23 | ||
|
|
1839f9e875 | ||
|
|
c80216989c | ||
|
|
7c620dba19 | ||
|
|
d1ee31378d | ||
|
|
bf33a8bbd7 | ||
|
|
42deab7c3e | ||
|
|
ed2c9d2b6a | ||
|
|
3e4baa2b63 | ||
|
|
1d937b9316 | ||
|
|
75de8dcadb |
@@ -27,7 +27,7 @@ This repository contains my configuration files for the following tools:
|
||||
- `alacritty`
|
||||
- `tmux`
|
||||
- **Editors & CLI Tools**
|
||||
- `emacs` (Doom Emacs config)
|
||||
- `doom` (Doom Emacs config)
|
||||
- `emacs` (Custom config)
|
||||
- `git`
|
||||
- **X11 Environment**
|
||||
@@ -36,6 +36,11 @@ This repository contains my configuration files for the following tools:
|
||||
- `polybar` (status bar)
|
||||
- `rofi` (launcher)
|
||||
- `dunst` (notification daemon)
|
||||
- **Wayland Environment**
|
||||
- `sway` (Window Manager)
|
||||
- `waybar` (status bar)
|
||||
- `rofi` (launcher)
|
||||
- `dunst` (notification daemon)
|
||||
- **Utilities**
|
||||
- `fastfetch`
|
||||
- `zoxide`
|
||||
|
||||
14
bash/.bashrc
@@ -179,12 +179,12 @@ alias userlist="cut -d: -f1 /etc/passwd | sort"
|
||||
alias ip='ip -color'
|
||||
alias stow='stow -d $DOTFILES '
|
||||
|
||||
# Starship prompt
|
||||
if command -v starship > /dev/null 2>&1; then
|
||||
eval "$(starship init bash)"
|
||||
# User specific aliases and functions
|
||||
if [ -d ~/.bashrc.d ]; then
|
||||
for rc in ~/.bashrc.d/*; do
|
||||
if [ -f "$rc" ]; then
|
||||
. "$rc"
|
||||
fi
|
||||
|
||||
# Load Mise en dev
|
||||
if command -v mise > /dev/null 2>&1; then
|
||||
eval "$(mise activate bash)"
|
||||
done
|
||||
fi
|
||||
unset rc
|
||||
|
||||
0
bash/.profile.d/homebrew.sh → bash/.bashrc.d/homebrew.sh
Normal file → Executable file
6
bash/.bashrc.d/java.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if command -v java > /dev/null 2>&1; then
|
||||
JAVA_HOME="$(dirname $(mise bin-paths | grep -i java))"
|
||||
export JAVA_HOME
|
||||
fi
|
||||
6
bash/.bashrc.d/mise.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Load Mise en dev
|
||||
if command -v mise > /dev/null 2>&1; then
|
||||
eval "$(mise activate bash)"
|
||||
fi
|
||||
6
bash/.bashrc.d/starship.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Starship prompt
|
||||
if command -v starship >/dev/null 2>&1; then
|
||||
eval "$(starship init bash)"
|
||||
fi
|
||||
@@ -38,9 +38,6 @@ export VIRTUAL_ENV_DISABLE_PROMPT=1
|
||||
export GOPATH="$HOME/.local/share/Go"
|
||||
export GOBIN="$GOPATH/bin"
|
||||
|
||||
source "$HOME/.profile.d/homebrew.sh"
|
||||
source "$HOME/.profile.d/java.sh"
|
||||
|
||||
appendpath() {
|
||||
local location="${1}"
|
||||
case ":$PATH:" in
|
||||
@@ -49,9 +46,8 @@ appendpath() {
|
||||
esac
|
||||
}
|
||||
|
||||
appendpath "/home/linuxbrew/.linuxbrew/bin"
|
||||
appendpath "$HOME/.local/bin"
|
||||
appendpath "$GOBIN"
|
||||
appendpath "$HOME/.cargo/bin"
|
||||
appendpath "/home/linuxbrew/.linuxbrew/bin"
|
||||
appendpath "$HOME/.config/emacs/bin"
|
||||
unset appendpath
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if command -v java > /dev/null 2>&1; then
|
||||
export JAVA_HOME="$(dirname $(mise bin-paths | grep -i java))"
|
||||
fi
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
if command -v tmux &> /dev/null && [ -z "$TMUX" ]; then
|
||||
tmux attach-session -t default || tmux new-session -s default
|
||||
fi
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
;; If you use `org' and don't want your org files in the default location below,
|
||||
;; change `org-directory'. It must be set before org loads!
|
||||
(setq org-directory "~/Org/")
|
||||
(setq org-directory "~/Remotes/pCloud/Org")
|
||||
|
||||
;; Whenever you reconfigure a package, make sure to wrap your config in an
|
||||
;; `after!' block, otherwise Doom's defaults may override your settings. E.g.
|
||||
@@ -81,6 +81,7 @@
|
||||
(add-to-list 'default-frame-alist '(fullscreen . maximized))
|
||||
|
||||
(after! mu4e
|
||||
|
||||
;; This is set to 't' to avoid mail syncing issues when using mbsync
|
||||
(setq mu4e-change-filenames-when-moving t)
|
||||
|
||||
@@ -89,20 +90,38 @@
|
||||
(setq mu4e-get-mail-command "~/.config/doom/scripts/email_sync.sh")
|
||||
(setq mu4e-maildir "~/Maildir")
|
||||
|
||||
(setq mu4e-drafts-folder "/GmailAccount/[Gmail]/Bozze")
|
||||
(setq mu4e-sent-folder "/GmailAccount/[Gmail]/Posta inviata")
|
||||
(setq mu4e-refile-folder "/GmailAccount/[Gmail]/Tutti i messaggi")
|
||||
(setq mu4e-trash-folder "/GmailAccount/[Gmail]/Cestino")
|
||||
(setq user-email-address "fabio.scottodisantolo@gmail.com")
|
||||
(setq user-full-name "Fabio Scotto di Santolo")
|
||||
;; Configure email accounts
|
||||
(setq mu4e-contexts
|
||||
(list
|
||||
;; Protonmail Account
|
||||
(make-mu4e-context
|
||||
:name "Protonmail"
|
||||
:match-func
|
||||
(lambda (msg)
|
||||
(when msg
|
||||
(string-prefix-p "/ProtonMailAccount" (mu4e-message-field msg :maildir))))
|
||||
:vars '((user-mail-address . "fscottodisantolo@protonmail.com")
|
||||
(user-full-name . "Fabio Scotto di Santolo")
|
||||
(mu4e-drafts-folder . "/ProtonMailAccount/Drafts")
|
||||
(mu4e-sent-folder . "/ProtonMailAccount/Sent")
|
||||
(mu4e-refile-folder . "/ProtonMailAccount/All Mail")
|
||||
(mu4e-trash-folder . "/ProtonMailAccount/Trash")))
|
||||
|
||||
(setq mu4e-maildir-shortcuts
|
||||
'(("/GmailAccount/Inbox" . ?i)
|
||||
("/GmailAccount/[Gmail]/Posta inviata" . ?s)
|
||||
("/GmailAccount/[Gmail]/Cestino" . ?t)
|
||||
("/GmailAccount/[Gmail]/Bozze" . ?d)
|
||||
("/GmailAccount/[Gmail]/Tutti i messaggi" . ?a)))
|
||||
;; iCloud Account
|
||||
(make-mu4e-context
|
||||
:name "iCloud Mail"
|
||||
:match-func
|
||||
(lambda (msg)
|
||||
(when msg
|
||||
(string-prefix-p "/iCloudAccount" (mu4e-message-field msg :maildir))))
|
||||
:vars '((user-mail-address . "fscottodisantolo@icloud.com")
|
||||
(user-full-name . "Fabio Scotto di Santolo")
|
||||
(mu4e-drafts-folder . "/iCloudAccount/Drafts")
|
||||
(mu4e-sent-folder . "/iCloudAccount/Sent Messages")
|
||||
(mu4e-refile-folder . "/iCloudAccount/INBOX")
|
||||
(mu4e-trash-folder . "/iCloudAccount/Junk")))))
|
||||
|
||||
;; Configure SMTP client for send emails
|
||||
(setq sendmail-program "/usr/bin/msmtp"
|
||||
send-mail-function 'sendmail-send-it
|
||||
message-sendmail-f-is-evil t
|
||||
@@ -115,12 +134,23 @@
|
||||
(setq elfeed-db-directory "~/.elfeed")
|
||||
(setq elfeed-enclosure-default-dir "~/Downloads/")
|
||||
(setq elfeed-sort-order 'descending)
|
||||
(setq elfeed-search-filter "1-week-ago +unread")
|
||||
(setq elfeed-search-filter "6-months-ago +unread")
|
||||
|
||||
;; ;; Key bindings
|
||||
;; (map! :map elfeed-search-mode-map
|
||||
;; :n "d" #'elfeed-download-current-entry
|
||||
;; :n "O" #'elfeed-search-browse-url)
|
||||
;; Key bindings
|
||||
(map! :map elfeed-search-mode-map
|
||||
:n "d" #'elfeed-download-current-entry
|
||||
:n "O" #'elfeed-search-browse-url)
|
||||
|
||||
;; Update hourly
|
||||
(run-at-time nil (* 60 60) #'elfeed-update))
|
||||
|
||||
(after! elfeed-tube
|
||||
(elfeed-tube-setup))
|
||||
|
||||
;; PDF config
|
||||
(after! pdf-tools
|
||||
:defer t
|
||||
:commands (pdf-loader-install)
|
||||
:mode "\\.pdf\\'"
|
||||
:init (pdf-loader-install)
|
||||
:config (add-to-list 'revert-without-query ".pdf"))
|
||||
|
||||
21
doom/.config/doom/custom.el
Normal file
@@ -0,0 +1,21 @@
|
||||
(custom-set-variables
|
||||
;; custom-set-variables was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
'(elfeed-feeds
|
||||
'("https://www.youtube.com/feeds/videos.xml?channel_id=UCqZe2cxQNCvgkQxUuqsIaig" "https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg"
|
||||
("https://www.youtube.com/feeds/videos.xml?channel_id=UCrqM0Ym_NbK1fqeQG2VIohg" youtube programming)
|
||||
("https://www.youtube.com/feeds/videos.xml?channel_id=UCDDG9vOcmgwlslJJpCWjqOg" youtube programming)
|
||||
("https://www.youtube.com/feeds/videos.xml?channel_id=UCnDDucQDLncrauOCmanCIgw" youtube foss)
|
||||
("https://www.youtube.com/feeds/videos.xml?channel_id=UCqZe2cxQNCvgkQxUuqsIaig" youtube programming)
|
||||
("https://www.youtube.com/feeds/videos.xml?channel_id=UCABhVAlCkcEG9a2UVruq9vw" youtube fashion)
|
||||
("https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg" youtube linux)
|
||||
("https://blog.linuxmint.com/?feed=rss2" news linuxmint)
|
||||
("https://feeds.feedburner.com/TheHackersNews" programming security))))
|
||||
(custom-set-faces
|
||||
;; custom-set-faces was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
)
|
||||
@@ -7,3 +7,10 @@
|
||||
*** [[https://feeds.feedburner.com/TheHackersNews][Hacker News]] :news: :security:
|
||||
** FOSS News :news:
|
||||
*** [[https://blog.linuxmint.com/?feed=rss2][Linux Mint Blog]] :blog: :linux: :linuxmint:
|
||||
** Youtube :youtube:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg][DistroTube]] :emacs: :foss: :linux:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCABhVAlCkcEG9a2UVruq9vw][Douglas Mortimer]] :fashion:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCqZe2cxQNCvgkQxUuqsIaig][Esadecimale]] :emacs: :programming:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCnDDucQDLncrauOCmanCIgw][MorroLinux]] :linux: :foss:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCDDG9vOcmgwlslJJpCWjqOg][Salvatore Sanfilippo]] :programming:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCrqM0Ym_NbK1fqeQG2VIohg][Tsoding Daily]] :emacs: :programming:
|
||||
|
||||
@@ -54,3 +54,6 @@
|
||||
;; (unpin! t)
|
||||
|
||||
(package! catppuccin-theme)
|
||||
(package! org-caldav)
|
||||
(package! elfeed-tube)
|
||||
(package! elfeed-tube-mpv)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
mbsync Gmail & pid1=$!
|
||||
mbsync -a & pid1=$!
|
||||
wait $pid1
|
||||
|
||||
mu index
|
||||
|
||||
@@ -1,233 +0,0 @@
|
||||
;; Initial greeting for debugging
|
||||
(message "Welcome to Emacs")
|
||||
(message "Loading user configuration...")
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; LOOK AND FEEL ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; Setting default font
|
||||
(set-frame-font "0xProto Nerd Font 13" nil t)
|
||||
|
||||
;; Remove toolbar
|
||||
(tool-bar-mode -1)
|
||||
|
||||
;; Remove menu
|
||||
(menu-bar-mode -1)
|
||||
|
||||
;; Disable startup screen
|
||||
(setq inhibit-startup-screen t)
|
||||
|
||||
;; Disable splash screen
|
||||
(setq inhibit-splash-screen t)
|
||||
|
||||
;; Start all frames maximized
|
||||
(add-to-list 'default-frame-alist '(fullscreen . maximized))
|
||||
|
||||
;; Remove scrollbar
|
||||
(scroll-bar-mode -1)
|
||||
|
||||
;; Simple 'y' for 'yes' and 'n' for 'no'
|
||||
(defalias 'yes-or-no-p 'y-or-n-p)
|
||||
|
||||
;; Set global value for paragraph witdh
|
||||
(setq-default fill-column 120)
|
||||
|
||||
;; Stop Emacs from losing informations
|
||||
(setq undo-limit 2000000)
|
||||
(setq undo-strong-limit 4000000000)
|
||||
|
||||
;; Smooth scroll
|
||||
(setq scroll-step 3)
|
||||
(setq ring-bell-function 'ignore)
|
||||
|
||||
;; Add column number in the status line
|
||||
(column-number-mode)
|
||||
|
||||
;; View clock in the status line
|
||||
(display-time)
|
||||
|
||||
;; Enable line numbers in the programming mode only
|
||||
(add-hook 'prog-mode-hook 'display-line-numbers-mode)
|
||||
|
||||
;; Enable line numbers in the configuration mode only
|
||||
(add-hook 'conf-mode-hook 'display-line-numbers-mode)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; EDITOR OPTIONS ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
(setq standard-indent 4)
|
||||
(setq tab-stop-list nil)
|
||||
(setq indent-tabs-mode nil)
|
||||
|
||||
;; Setting variables
|
||||
(setq vc-follow-symlinks 't)
|
||||
(prefer-coding-system 'utf-8-unix)
|
||||
(setq custom-file (null-device))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; PACKAGES ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; Initialize package system via use-package
|
||||
(package-initialize)
|
||||
(require 'use-package)
|
||||
|
||||
(use-package package
|
||||
:config
|
||||
;; Setting repo priorities
|
||||
(setq package-archive-priorities
|
||||
'(("melpa-stable" . 2)
|
||||
("MELPA" . 1)
|
||||
("gnu" . 0)))
|
||||
;; Setting repo URL
|
||||
(setq package-archives
|
||||
'(("melpa-stable" . "https://stable.melpa.org/packages/")
|
||||
("MELPA" . "https://melpa.org/packages/")
|
||||
("gnu" . "https://elpa.gnu.org/packages/")))
|
||||
)
|
||||
|
||||
(use-package catppuccin-theme
|
||||
:ensure t
|
||||
:config
|
||||
(load-theme 'catppuccin :no-confirm)
|
||||
(setq catppuccin-flavor 'mocha))
|
||||
|
||||
;; Status line like Doom Emacs
|
||||
(use-package doom-modeline
|
||||
:ensure t
|
||||
:init (doom-modeline-mode 1))
|
||||
|
||||
;; Help to remember or discover keybindings
|
||||
(use-package which-key
|
||||
:ensure t
|
||||
:commands (which-key-mode)
|
||||
:init (which-key-mode))
|
||||
|
||||
;; Configuration for mu4e, an interface for mu email index, running inside Emacs
|
||||
(use-package mu4e
|
||||
:ensure nil
|
||||
;; :load-path "/usr/share/emacs/site-lisp/mu4e/"
|
||||
:defer 20 ; Wait until 20 seconds after startup
|
||||
:bind (:map global-map ("C-c e" . mu4e))
|
||||
:config
|
||||
|
||||
;; This is set to 't' to avoid mail syncing issues when using mbsync
|
||||
(setq mu4e-change-filenames-when-moving t)
|
||||
|
||||
;; Refresh mail using isync every 10 minutes
|
||||
(setq mu4e-update-interval (* 10 60))
|
||||
(setq mu4e-get-mail-command "~/.config/emacs/scripts/email_sync.sh")
|
||||
(setq mu4e-maildir "~/Maildir")
|
||||
|
||||
(setq mu4e-drafts-folder "/GmailAccount/[Gmail]/Bozze")
|
||||
(setq mu4e-sent-folder "/GmailAccount/[Gmail]/Posta inviata")
|
||||
(setq mu4e-refile-folder "/GmailAccount/[Gmail]/Tutti i messaggi")
|
||||
(setq mu4e-trash-folder "/GmailAccount/[Gmail]/Cestino")
|
||||
(setq user-email-address "fabio.scottodisantolo@gmail.com")
|
||||
(setq user-full-name "Fabio Scotto di Santolo")
|
||||
|
||||
(setq mu4e-maildir-shortcuts
|
||||
'(("/GmailAccount/Inbox" . ?i)
|
||||
("/GmailAccount/[Gmail]/Posta inviata" . ?s)
|
||||
("/GmailAccount/[Gmail]/Cestino" . ?t)
|
||||
("/GmailAccount/[Gmail]/Bozze" . ?d)
|
||||
("/GmailAccount/[Gmail]/Tutti i messaggi" . ?a))))
|
||||
|
||||
(setq user-mail-address "fabio.scottodisantolo@gmail.com")
|
||||
|
||||
(setq sendmail-program "/usr/bin/msmtp"
|
||||
send-mail-function 'sendmail-send-it
|
||||
message-sendmail-f-is-evil t
|
||||
message-sendmail-extra-arguments '("--read-envelope-from")
|
||||
message-send-mail-function 'message-send-mail-with-sendmail)
|
||||
|
||||
;; Configure elfeed for RSS feed
|
||||
(use-package elfeed
|
||||
:ensure t
|
||||
:custom
|
||||
(elfeed-db-directory "~/.cache/elfeed")
|
||||
(elfeed-enclosure-default-dir "~/Downloads/")
|
||||
(elfeed-search-remain-on-entry t)
|
||||
(elfeed-search-title-max-width 100)
|
||||
(elfeed-search-title-min-width 30)
|
||||
(elfeed-search-trailing-width 25)
|
||||
(elfeed-show-truncate-long-urls t)
|
||||
(elfeed-sort-order 'descending)
|
||||
(elfeed-search-filter "1-week-ago +unread")
|
||||
(elfeed-feeds
|
||||
'(("https://blog.linuxmint.com/?feed=rss2" linux linuxmint)
|
||||
("https://feeds.feedburner.com/TheHackersNews" hackernews news security programming)))
|
||||
:bind (("C-c f" . elfeed)))
|
||||
|
||||
;; Terminal
|
||||
(use-package vterm
|
||||
:ensure t
|
||||
:bind (:map global-map
|
||||
("C-c t" . vterm)
|
||||
("C-c c" . vterm-copy-mode)))
|
||||
|
||||
;; PDF viewer with annotations
|
||||
(use-package pdf-tools
|
||||
:ensure t
|
||||
:config
|
||||
(pdf-tools-install))
|
||||
|
||||
;; EPub viewer
|
||||
(use-package nov
|
||||
:ensure t
|
||||
:mode ("\\.epub\\'" . nov-mode))
|
||||
|
||||
(use-package visual-fill-column
|
||||
:ensure t)
|
||||
|
||||
;; Git plugin
|
||||
(use-package magit
|
||||
:ensure t
|
||||
:bind (:map global-map ("M-G" . magit-status)))
|
||||
|
||||
(use-package magit-delta
|
||||
:ensure t)
|
||||
|
||||
;; Highlight keywords to remember the activity when coding.
|
||||
(use-package hl-todo
|
||||
:ensure t
|
||||
:commands (global-hl-todo-mode)
|
||||
:init (global-hl-todo-mode))
|
||||
|
||||
(setq hl-todo-keyword-faces
|
||||
'(("TODO" . "#94e2d5")
|
||||
("FIXME" . "#f38ba8")
|
||||
("DEBUG" . "#cba6f7")
|
||||
("GOTCHA" . "#eba0ac")
|
||||
("STUB" . "#89b4fa")))
|
||||
|
||||
(keymap-set hl-todo-mode-map "C-c p" #'hl-todo-previous)
|
||||
(keymap-set hl-todo-mode-map "C-c n" #'hl-todo-next)
|
||||
(keymap-set hl-todo-mode-map "C-c o" #'hl-todo-occur)
|
||||
(keymap-set hl-todo-mode-map "C-c i" #'hl-todo-insert)
|
||||
|
||||
;; Highlight for i3 config file
|
||||
(use-package i3wm-config-mode
|
||||
:ensure t)
|
||||
|
||||
;; Add autocomplete feature to Emacs
|
||||
(use-package company
|
||||
:ensure t
|
||||
:commands (global-company-mode)
|
||||
:init (global-company-mode)
|
||||
:custom
|
||||
(company-tooltip-align-annotations 't)
|
||||
(company-minimum-prefix-length 1)
|
||||
(company-idle-delay 0.1))
|
||||
|
||||
;; TODO adding lsp-mode, dap-mode, autocomplete and project handling for C, Go, Bash and Python
|
||||
(use-package lsp-mode
|
||||
:ensure t
|
||||
:init
|
||||
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
|
||||
(setq lsp-keymap-prefix "C-c l")
|
||||
:hook ((c-mode . lsp))
|
||||
:commands lsp)
|
||||
|
||||
(message "...user configuration loaded")
|
||||
@@ -14,6 +14,11 @@ tramp
|
||||
eln-cache
|
||||
projects
|
||||
transient/
|
||||
.dap-breakpoints
|
||||
.lsp-session-v1
|
||||
/.extension/**
|
||||
url/**
|
||||
**/*.bak
|
||||
|
||||
# Org-mode
|
||||
.org-id-locations
|
||||
@@ -47,6 +52,7 @@ flycheck_*.el
|
||||
|
||||
# projectiles files
|
||||
.projectile
|
||||
/projectile-bookmarks.eld
|
||||
|
||||
# directory configuration
|
||||
.dir-locals.el
|
||||
16
emacs/.emacs.d/elfeed.org
Normal file
@@ -0,0 +1,16 @@
|
||||
#+TITLE: RSS Urls
|
||||
#+AUTHOR: Fabio Scotto di Santolo
|
||||
#+DATE: <2025-10-25 Sat>
|
||||
|
||||
* root :elfeed:
|
||||
** Programming :programming:
|
||||
*** [[https://feeds.feedburner.com/TheHackersNews][Hacker News]] :news: :security:
|
||||
** FOSS News :news:
|
||||
*** [[https://blog.linuxmint.com/?feed=rss2][Linux Mint Blog]] :blog: :linux: :linuxmint:
|
||||
** Youtube :youtube:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg][DistroTube]] :emacs: :foss: :linux:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCABhVAlCkcEG9a2UVruq9vw][Douglas Mortimer]] :fashion:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCqZe2cxQNCvgkQxUuqsIaig][Esadecimale]] :emacs: :programming:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCnDDucQDLncrauOCmanCIgw][MorroLinux]] :linux: :foss:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCDDG9vOcmgwlslJJpCWjqOg][Salvatore Sanfilippo]] :programming:
|
||||
*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCrqM0Ym_NbK1fqeQG2VIohg][Tsoding Daily]] :emacs: :programming:
|
||||
64
emacs/.emacs.d/init.el
Normal file
@@ -0,0 +1,64 @@
|
||||
(message "Welcome to Emacs")
|
||||
(message "Loading user configuration...")
|
||||
|
||||
;;=====================================================================================
|
||||
;; Define loader functions
|
||||
;;=====================================================================================
|
||||
(defconst fscotto/modules-dir
|
||||
(expand-file-name "lisp" user-emacs-directory))
|
||||
|
||||
(defun fscotto/load-module (module)
|
||||
"Load a MODULE from symbol."
|
||||
(let* ((module-name (symbol-name module))
|
||||
(path (expand-file-name
|
||||
(concat (replace-regexp-in-string "/" "/" module-name)
|
||||
".el")
|
||||
fscotto/modules-dir)))
|
||||
(unless (file-exists-p path)
|
||||
(error "Module not found: %s" path))
|
||||
(load path nil 'nomessage)))
|
||||
|
||||
(defun fscotto/load-modules (&rest modules)
|
||||
"Load MODULES."
|
||||
(mapc #'fscotto/load-module modules))
|
||||
|
||||
;;=====================================================================================
|
||||
;; Load modules
|
||||
;;=====================================================================================
|
||||
(fscotto/load-modules
|
||||
;; Core
|
||||
'core/packages
|
||||
'core/ui
|
||||
'core/performance
|
||||
'core/editor
|
||||
'core/keybindings
|
||||
'core/buffer
|
||||
|
||||
;; Tools
|
||||
'tools/completion
|
||||
'tools/project
|
||||
'tools/lsp
|
||||
'tools/dap
|
||||
'tools/treesitter
|
||||
|
||||
;; Languages
|
||||
'lang/c
|
||||
'lang/docker
|
||||
'lang/golang
|
||||
'lang/shell
|
||||
'lang/yaml
|
||||
|
||||
;; Misc
|
||||
'misc/custom-functions
|
||||
'misc/doom-modeline
|
||||
'misc/which-key
|
||||
'misc/email
|
||||
'misc/rss
|
||||
'misc/terminal
|
||||
'misc/vcs
|
||||
;; FIXME PDF viewer with annotations
|
||||
;; 'misc/pdf
|
||||
'misc/epub
|
||||
'misc/i3-config)
|
||||
|
||||
(message "...user configuration loaded")
|
||||
21
emacs/.emacs.d/lisp/core/buffer.el
Normal file
@@ -0,0 +1,21 @@
|
||||
;;; buffer.el -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package ibuffer
|
||||
:ensure t)
|
||||
|
||||
(use-package ibuffer-tramp
|
||||
:ensure t)
|
||||
|
||||
(use-package ibuffer-vc
|
||||
:ensure t)
|
||||
|
||||
(use-package ibuffer-projectile
|
||||
:ensure t)
|
||||
|
||||
(add-hook 'ibuffer-mode-hook
|
||||
(lambda ()
|
||||
(ibuffer-projectile-set-filter-groups)))
|
||||
|
||||
(provide 'buffer)
|
||||
|
||||
;;; buffer.el ends here
|
||||
14
emacs/.emacs.d/lisp/core/editor.el
Normal file
@@ -0,0 +1,14 @@
|
||||
;;; core-editor
|
||||
|
||||
(setq standard-indent 4)
|
||||
(setq tab-stop-list nil)
|
||||
(setq indent-tabs-mode nil)
|
||||
|
||||
;; Setting variables
|
||||
(setq vc-follow-symlinks 't)
|
||||
(prefer-coding-system 'utf-8-unix)
|
||||
(setq custom-file (null-device))
|
||||
|
||||
(provide 'editor)
|
||||
|
||||
;;; editor.el ends here
|
||||
161
emacs/.emacs.d/lisp/core/keybindings.el
Normal file
@@ -0,0 +1,161 @@
|
||||
;;; keybindings.el -*- lexical-binding: t; -*-
|
||||
|
||||
;;;; Global / Core
|
||||
|
||||
(global-set-key (kbd "C-x C-b") #'ibuffer)
|
||||
(global-set-key (kbd "C-<return>") 'company-complete)
|
||||
|
||||
(defvar fscotto/leader-map (make-sparse-keymap)
|
||||
"Keymap per comandi sotto C-c.")
|
||||
|
||||
(define-key global-map (kbd "C-c") fscotto/leader-map)
|
||||
|
||||
;;;; Git / Magit
|
||||
(defun fscotto/enable-magit-keymap ()
|
||||
"Enable Git keybindings if current buffer is inside a Git repository."
|
||||
(when (and (require 'magit nil 'noerror)
|
||||
(magit-toplevel))
|
||||
(local-set-key (kbd "C-c g") fscotto/git-map)))
|
||||
|
||||
(defvar fscotto/git-map (make-sparse-keymap)
|
||||
"Keymap for Git commands under C-c g.")
|
||||
|
||||
(add-hook 'find-file-hook #'fscotto/enable-magit-keymap)
|
||||
(add-hook 'prog-mode-hook #'fscotto/enable-magit-keymap)
|
||||
(add-hook 'conf-mode-hook #'fscotto/enable-magit-keymap)
|
||||
|
||||
;; autoload: il tasto carica magit
|
||||
(autoload 'magit-status "magit" nil t)
|
||||
(autoload 'magit-branch "magit" nil t)
|
||||
(autoload 'magit-commit "magit" nil t)
|
||||
(autoload 'magit-push "magit" nil t)
|
||||
(autoload 'magit-fetch "magit" nil t)
|
||||
|
||||
;; keybinding (sempre definite nella mappa)
|
||||
(define-key fscotto/git-map (kbd "s") #'magit-status)
|
||||
(define-key fscotto/git-map (kbd "b") #'magit-branch)
|
||||
(define-key fscotto/git-map (kbd "c") #'magit-commit)
|
||||
(define-key fscotto/git-map (kbd "p") #'magit-push)
|
||||
(define-key fscotto/git-map (kbd "f") #'magit-fetch)
|
||||
|
||||
;;;; Open / Tools
|
||||
(defvar fscotto/open (make-sparse-keymap))
|
||||
(define-key fscotto/leader-map (kbd "o") fscotto/open)
|
||||
|
||||
;; -------- vterm --------
|
||||
(autoload 'vterm "vterm" nil t)
|
||||
(define-key fscotto/open (kbd "T") #'vterm)
|
||||
|
||||
(with-eval-after-load 'vterm
|
||||
(define-key vterm-mode-map (kbd "C-c C-t") #'vterm-copy-mode))
|
||||
|
||||
;; -------- mu4e --------
|
||||
(autoload 'mu4e "mu4e" nil t)
|
||||
(define-key fscotto/open (kbd "m") #'mu4e)
|
||||
|
||||
;; -------- elfeed --------
|
||||
(autoload 'elfeed "elfeed" nil t)
|
||||
(define-key fscotto/open (kbd "f") #'elfeed)
|
||||
|
||||
;;;; Elfeed mode maps
|
||||
(with-eval-after-load 'elfeed
|
||||
(define-key elfeed-search-mode-map (kbd "w") #'elfeed-search-yank)
|
||||
(define-key elfeed-search-mode-map (kbd "R") #'elfeed-update)
|
||||
(define-key elfeed-search-mode-map (kbd "q") #'elfeed-kill-buffer)
|
||||
|
||||
(define-key elfeed-show-mode-map (kbd "S") #'elfeed-show-new-live-search)
|
||||
(define-key elfeed-show-mode-map (kbd "f") #'elfeed-show-fetch-full-text)
|
||||
(define-key elfeed-show-mode-map (kbd "w") #'elfeed-show-yank))
|
||||
|
||||
;;;; hl-todo
|
||||
(with-eval-after-load 'hl-todo
|
||||
(define-key hl-todo-mode-map (kbd "C-t p") #'hl-todo-previous)
|
||||
(define-key hl-todo-mode-map (kbd "C-t n") #'hl-todo-next)
|
||||
(define-key hl-todo-mode-map (kbd "C-t o") #'hl-todo-occur)
|
||||
(define-key hl-todo-mode-map (kbd "C-t i") #'hl-todo-insert))
|
||||
|
||||
;; Projectile keybindings
|
||||
(define-key fscotto/leader-map (kbd "p") 'projectile-command-map)
|
||||
|
||||
(with-eval-after-load 'projectile
|
||||
(define-key projectile-command-map (kbd "v") #'fscotto/project-vterm)
|
||||
(define-key projectile-command-map (kbd "g") #'fscotto/project-magit-status))
|
||||
|
||||
;;;; LSP
|
||||
(defvar fscotto/lsp-map (make-sparse-keymap))
|
||||
|
||||
(autoload 'lsp-find-definition "lsp-mode" nil t)
|
||||
(autoload 'lsp-find-type-definition "lsp-mode" nil t)
|
||||
(autoload 'lsp-find-implementation "lsp-mode" nil t)
|
||||
(autoload 'lsp-execute-code-action "lsp-mode" nil t)
|
||||
(autoload 'lsp-rename "lsp-mode" nil t)
|
||||
(autoload 'lsp-format-buffer "lsp-mode" nil t)
|
||||
(autoload 'lsp-restart-workspace "lsp-mode" nil t)
|
||||
|
||||
(autoload 'consult-lsp-symbols "consult-lsp" nil t)
|
||||
(autoload 'consult-lsp-diagnostics "consult-lsp" nil t)
|
||||
|
||||
(define-key fscotto/lsp-map (kbd "s") #'consult-lsp-symbols)
|
||||
(define-key fscotto/lsp-map (kbd "e") #'consult-lsp-diagnostics)
|
||||
(define-key fscotto/lsp-map (kbd "d") #'lsp-find-definition)
|
||||
(define-key fscotto/lsp-map (kbd "D") #'lsp-find-type-definition)
|
||||
(define-key fscotto/lsp-map (kbd "i") #'lsp-find-implementation)
|
||||
(define-key fscotto/lsp-map (kbd "a") #'lsp-execute-code-action)
|
||||
(define-key fscotto/lsp-map (kbd "r") #'lsp-rename)
|
||||
(define-key fscotto/lsp-map (kbd "f") #'lsp-format-buffer)
|
||||
(define-key fscotto/lsp-map (kbd "R") #'lsp-restart-workspace)
|
||||
|
||||
(defun fscotto/enable-lsp-keymap ()
|
||||
"Enable LSP keybindings if LSP is active in the current buffer."
|
||||
(when (and (bound-and-true-p lsp-mode)
|
||||
(lsp-workspaces))
|
||||
(local-set-key (kbd "C-c l") fscotto/lsp-map)))
|
||||
|
||||
(add-hook 'lsp-mode-hook #'fscotto/enable-lsp-keymap)
|
||||
(add-hook 'lsp-after-initialize-hook #'fscotto/enable-lsp-keymap)
|
||||
(add-hook 'lsp-after-open-hook #'fscotto/enable-lsp-keymap)
|
||||
|
||||
;;;; DAP
|
||||
(defvar fscotto/dap-map (make-sparse-keymap)
|
||||
"Keymap for DAP commands under C-c d.")
|
||||
|
||||
(autoload 'dap-debug "dap-mode" nil t)
|
||||
(autoload 'dap-breakpoint-toggle "dap-mode" nil t)
|
||||
(autoload 'dap-continue "dap-mode" nil t)
|
||||
(autoload 'dap-next "dap-mode" nil t)
|
||||
(autoload 'dap-step-in "dap-mode" nil t)
|
||||
(autoload 'dap-step-out "dap-mode" nil t)
|
||||
(autoload 'dap-restart-frame "dap-mode" nil t)
|
||||
(autoload 'dap-disconnect "dap-mode" nil t)
|
||||
|
||||
(define-key fscotto/dap-map (kbd "d") #'dap-debug)
|
||||
(define-key fscotto/dap-map (kbd "b") #'dap-breakpoint-toggle)
|
||||
(define-key fscotto/dap-map (kbd "c") #'dap-continue)
|
||||
(define-key fscotto/dap-map (kbd "n") #'dap-next)
|
||||
(define-key fscotto/dap-map (kbd "i") #'dap-step-in)
|
||||
(define-key fscotto/dap-map (kbd "o") #'dap-step-out)
|
||||
(define-key fscotto/dap-map (kbd "r") #'dap-restart-frame)
|
||||
(define-key fscotto/dap-map (kbd "q") #'dap-disconnect)
|
||||
|
||||
(defun fscotto/enable-dap-keymap ()
|
||||
"Enable DAP keybindings if dap-mode is active in the current buffer."
|
||||
(when (bound-and-true-p dap-mode)
|
||||
(local-set-key (kbd "C-c d") fscotto/dap-map)))
|
||||
|
||||
(add-hook 'dap-mode-hook #'fscotto/enable-dap-keymap)
|
||||
(add-hook 'dap-session-created-hook #'fscotto/enable-dap-keymap)
|
||||
(add-hook 'dap-terminated-hook #'fscotto/enable-dap-keymap)
|
||||
|
||||
;;;; Go
|
||||
|
||||
(with-eval-after-load 'go-ts-mode
|
||||
(define-key go-ts-mode-map (kbd "C-c m t") #'fscotto/go-mod-tidy)
|
||||
(define-key go-ts-mode-map (kbd "C-c m d") #'fscotto/go-mod-download)
|
||||
(define-key go-ts-mode-map (kbd "C-c t p") #'fscotto/go-test-package)
|
||||
(define-key go-ts-mode-map (kbd "C-c t a") #'fscotto/go-test-module)
|
||||
(define-key go-ts-mode-map (kbd "C-c t t") #'fscotto/go-test-current-test)
|
||||
(define-key go-ts-mode-map (kbd "C-c d t") #'dap-debug))
|
||||
|
||||
(provide 'core/keybindings)
|
||||
|
||||
;;; keybindings.el ends here
|
||||
15
emacs/.emacs.d/lisp/core/packages.el
Normal file
@@ -0,0 +1,15 @@
|
||||
;; core-packages.el -*- lexical-binding: t; -*-
|
||||
(require 'use-package)
|
||||
|
||||
(use-package package
|
||||
:config
|
||||
;; Setting repo priorities
|
||||
(setq package-archive-priorities
|
||||
'(("melpa-stable" . 2)
|
||||
("MELPA" . 1)
|
||||
("gnu" . 0)))
|
||||
;; Setting repo URL
|
||||
(setq package-archives
|
||||
'(("melpa-stable" . "https://stable.melpa.org/packages/")
|
||||
("MELPA" . "https://melpa.org/packages/")
|
||||
("gnu" . "https://elpa.gnu.org/packages/"))))
|
||||
22
emacs/.emacs.d/lisp/core/performance.el
Normal file
@@ -0,0 +1,22 @@
|
||||
;;; core-performance.el -*-
|
||||
|
||||
;; --- Startup speed tweaks ----------------------------------------------------
|
||||
;; Temporarily increase GC threshold during init
|
||||
(defvar fscotto/gc-cons-threshold-orig gc-cons-threshold)
|
||||
(setq gc-cons-threshold (* 50 1000 1000)) ;; 50MB for init
|
||||
|
||||
;; Speedup file-name-handler during init
|
||||
(defvar fscotto/file-name-handler-alist-orig file-name-handler-alist)
|
||||
(setq file-name-handler-alist nil)
|
||||
|
||||
;; Restore after init
|
||||
(add-hook 'emacs-startup-hook
|
||||
(lambda ()
|
||||
(setq gc-cons-threshold fscotto/gc-cons-threshold-orig)
|
||||
(setq file-name-handler-alist fscotto/file-name-handler-alist-orig)
|
||||
(garbage-collect)))
|
||||
|
||||
;; LSP responsiveness
|
||||
(setq read-process-output-max (* 1024 1024)) ;; 1MB, utile per lsp-mode
|
||||
(setq lsp-idle-delay 0.5) ;; meno ritardo prima che LSP aggiorni info
|
||||
(setq inhibit-compacting-font-caches t)
|
||||
70
emacs/.emacs.d/lisp/core/ui.el
Normal file
@@ -0,0 +1,70 @@
|
||||
;;;; core-ui.el -*-
|
||||
|
||||
;; Load default theme
|
||||
(load-theme 'wombat)
|
||||
|
||||
;; Setting default font
|
||||
(set-frame-font "Iosevka Nerd Font 14" nil t)
|
||||
|
||||
;; Remove toolbar
|
||||
(tool-bar-mode -1)
|
||||
|
||||
;; Remove menu
|
||||
(menu-bar-mode -1)
|
||||
|
||||
;; Disable startup screen
|
||||
(setq inhibit-startup-screen t)
|
||||
|
||||
;; Disable splash screen
|
||||
(setq inhibit-splash-screen t)
|
||||
|
||||
;; Start all frames maximized
|
||||
(add-to-list 'default-frame-alist '(fullscreen . maximized))
|
||||
|
||||
;; Remove scrollbar
|
||||
(scroll-bar-mode -1)
|
||||
|
||||
;; Simple 'y' for 'yes' and 'n' for 'no'
|
||||
(defalias 'yes-or-no-p 'y-or-n-p)
|
||||
|
||||
;; Set global value for paragraph witdh
|
||||
(setq-default fill-column 120)
|
||||
|
||||
;; Stop Emacs from losing informations
|
||||
(setq undo-limit 8000000)
|
||||
(setq undo-strong-limit 12000000)
|
||||
|
||||
;; Smooth scroll
|
||||
(setq scroll-step 3)
|
||||
(setq ring-bell-function 'ignore)
|
||||
|
||||
;; Add column number in the status line
|
||||
(column-number-mode)
|
||||
|
||||
;; View clock in the status line
|
||||
(display-time)
|
||||
|
||||
;; Enable line numbers in the programming mode only
|
||||
(add-hook 'prog-mode-hook 'display-line-numbers-mode)
|
||||
|
||||
;; Enable line numbers in the configuration mode only
|
||||
(add-hook 'conf-mode-hook 'display-line-numbers-mode)
|
||||
|
||||
;; Setting default directory for Org files
|
||||
(setq org-directory "~/Remotes/pCloud/Org")
|
||||
|
||||
;; Highlight keywords to remember the activity when coding.
|
||||
(use-package hl-todo
|
||||
:ensure t
|
||||
:commands (global-hl-todo-mode)
|
||||
:init (global-hl-todo-mode))
|
||||
|
||||
(setq hl-todo-keyword-faces
|
||||
'(("TODO" . "#94e2d5")
|
||||
("FIXME" . "#f38ba8")
|
||||
("DEBUG" . "#cba6f7")
|
||||
("GOTCHA" . "#eba0ac")
|
||||
("STUB" . "#89b4fa")))
|
||||
|
||||
(provide 'ui)
|
||||
;;; ui.el ends here
|
||||
39
emacs/.emacs.d/lisp/lang/c.el
Normal file
@@ -0,0 +1,39 @@
|
||||
;; c.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; C / C++ fallback style (Linux-like)
|
||||
(setq c-default-style "linux"
|
||||
c-basic-offset 4
|
||||
tab-width 8)
|
||||
|
||||
(add-hook 'c-mode-common-hook
|
||||
(lambda ()
|
||||
(setq indent-tabs-mode t)))
|
||||
|
||||
;; Tree-sitter C/C++
|
||||
(setq c-ts-mode-indent-offset 4)
|
||||
(setq c++-ts-mode-indent-offset 4)
|
||||
|
||||
(with-eval-after-load 'lsp
|
||||
;; Clangd configurations
|
||||
(setq lsp-clients-clangd-args
|
||||
'("--background-index"
|
||||
"--clang-tidy"
|
||||
"--completion-style=detailed"
|
||||
"--header-insertion=never"
|
||||
"--header-insertion-decorators"
|
||||
"--pch-storage=memory"
|
||||
"--log=error"
|
||||
"--ranking-model=heuristics"
|
||||
"--malloc-trim"
|
||||
"--limit-results=500"
|
||||
"--limit-references=2000")))
|
||||
|
||||
(with-eval-after-load 'dap-mode
|
||||
(require 'dap-cpptools))
|
||||
|
||||
(add-hook 'c-ts-mode-hook #'fscotto/disable-c-formatting)
|
||||
(add-hook 'c-mode-hook #'fscotto/disable-c-formatting)
|
||||
|
||||
(provide 'c)
|
||||
|
||||
;;; c.el ends here
|
||||
8
emacs/.emacs.d/lisp/lang/docker.el
Normal file
@@ -0,0 +1,8 @@
|
||||
;;; docker.el -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package dockerfile-mode
|
||||
:ensure t)
|
||||
|
||||
(provide 'docker)
|
||||
|
||||
;;; docker.el ends here
|
||||
89
emacs/.emacs.d/lisp/lang/golang.el
Normal file
@@ -0,0 +1,89 @@
|
||||
;;=================================================================
|
||||
;; Go Language Support
|
||||
;;=================================================================
|
||||
|
||||
(use-package go-ts-mode
|
||||
:ensure nil
|
||||
:mode "\\.go\\'"
|
||||
:hook
|
||||
((go-ts-mode . lsp-deferred)
|
||||
(go-ts-mode . fscotto/go-format-on-save)))
|
||||
|
||||
(use-package go-mod-ts-mode
|
||||
:ensure nil
|
||||
:mode
|
||||
(("/go\\.mod\\'" . go-mod-ts-mode)
|
||||
("/go\\.sum\\'" . go-mod-ts-mode))
|
||||
:hook
|
||||
((go-mod-ts-mode . lsp-deferred)
|
||||
;; restart gopls only when go.mod/go.sum are saved (buffer-local)
|
||||
(go-mod-ts-mode . (lambda ()
|
||||
(add-hook 'after-save-hook
|
||||
(lambda ()
|
||||
(when (lsp-workspaces)
|
||||
(lsp-restart-workspace)))
|
||||
nil t)))))
|
||||
|
||||
(with-eval-after-load 'project
|
||||
(add-to-list 'project-vc-extra-root-markers "go.mod"))
|
||||
|
||||
(with-eval-after-load 'lsp-mode
|
||||
;; gopls settings (single source of truth)
|
||||
(lsp-register-custom-settings
|
||||
'(("gopls.staticcheck" t)
|
||||
("gopls.gofumpt" t)
|
||||
;; ("gopls.experimentalWorkspaceModule" t)
|
||||
("gopls.expandWorkspaceToModule" t)
|
||||
("gopls.directoryFilters" ["-vendor"])
|
||||
("gopls.analyses.unusedparams" t)
|
||||
("gopls.analyses.shadow" t)
|
||||
("gopls.analyses.nilness" t)
|
||||
("gopls.analyses.useany" t)
|
||||
("gopls.env" ((GO111MODULE . "on"))))))
|
||||
|
||||
(with-eval-after-load 'flycheck
|
||||
;; Usa golangci-lint in Go
|
||||
(add-hook 'go-ts-mode-hook
|
||||
(lambda ()
|
||||
(setq-local flycheck-checker 'golangci-lint)
|
||||
(setq-local flycheck-check-syntax-automatically '(save mode-enabled))
|
||||
(flycheck-mode 1))))
|
||||
|
||||
(use-package dap-dlv-go
|
||||
:after (dap-mode go-ts-mode))
|
||||
|
||||
(with-eval-after-load 'dap-dlv-go
|
||||
;; Debug all tests in module
|
||||
(dap-register-debug-template
|
||||
"Go :: Debug all tests"
|
||||
(list :type "go"
|
||||
:request "launch"
|
||||
:name "Go :: Debug all tests"
|
||||
:mode "test"
|
||||
:program "${workspaceFolder}"
|
||||
:cwd "${workspaceFolder}"))
|
||||
|
||||
;; Debug tests in current package
|
||||
(dap-register-debug-template
|
||||
"Go :: Debug package tests"
|
||||
(list :type "go"
|
||||
:request "launch"
|
||||
:name "Go :: Debug package tests"
|
||||
:mode "test"
|
||||
:program "${fileDirname}"
|
||||
:cwd "${fileDirname}"))
|
||||
|
||||
;; Debug test at point
|
||||
(dap-register-debug-template
|
||||
"Go :: Debug test at point"
|
||||
(list :type "go"
|
||||
:request "launch"
|
||||
:name "Go :: Debug test at point"
|
||||
:mode "test"
|
||||
:program "${fileDirname}"
|
||||
:cwd "${fileDirname}"
|
||||
:args (list "-test.run" "${input:testName}"))))
|
||||
|
||||
(add-hook 'dap-terminated-hook
|
||||
(lambda (_)
|
||||
(delete-other-windows)))
|
||||
11
emacs/.emacs.d/lisp/lang/shell.el
Normal file
@@ -0,0 +1,11 @@
|
||||
(with-eval-after-load 'flycheck
|
||||
(add-hook 'bash-ts-mode-hook 'flycheck-mode))
|
||||
|
||||
(use-package reformatter
|
||||
:ensure t
|
||||
:config
|
||||
(reformatter-define shfmt-format
|
||||
:program "shfmt"
|
||||
:args '("-i" "2" "-ci")))
|
||||
|
||||
(add-hook 'bash-ts-mode-hook #'shfmt-format-on-save-mode)
|
||||
8
emacs/.emacs.d/lisp/lang/yaml.el
Normal file
@@ -0,0 +1,8 @@
|
||||
;;; yaml.el -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package yaml-mode
|
||||
:ensure t)
|
||||
|
||||
(provide 'yaml)
|
||||
|
||||
;;; yaml.el ends here
|
||||
89
emacs/.emacs.d/lisp/misc/custom-functions.el
Normal file
@@ -0,0 +1,89 @@
|
||||
;;functions to support syncing .elfeed between machines
|
||||
;;makes sure elfeed reads index from disk before launching
|
||||
(defun fscotto/elfeed-load-db-and-open ()
|
||||
"Wrapper to load the elfeed db from disk before opening URL https://pragmaticemacs.wordpress.com/2016/08/17/read-your-rss-feeds-in-emacs-with-elfeed/
|
||||
Created: 2016-08-17
|
||||
Updated: 2025-06-13"
|
||||
(interactive)
|
||||
(elfeed)
|
||||
(elfeed-db-load)
|
||||
;; (elfeed-search-update--force)
|
||||
(elfeed-update)
|
||||
(elfeed-db-save))
|
||||
|
||||
(defun fscotto/project-root ()
|
||||
"Return projectile project root or fallback to default-directory."
|
||||
(if (featurep 'projectile)
|
||||
(or (projectile-project-root) default-directory)
|
||||
default-directory))
|
||||
|
||||
(defun fscotto/project-vterm ()
|
||||
"Open vterm in project root."
|
||||
(interactive)
|
||||
(let ((default-directory (fscotto/project-root)))
|
||||
(vterm)))
|
||||
|
||||
(defun fscotto/project-magit-status ()
|
||||
"Open magit-status in project root."
|
||||
(interactive)
|
||||
(let ((default-directory (fscotto/project-root)))
|
||||
(magit-status)))
|
||||
|
||||
(defun fscotto/magit-dispatch ()
|
||||
"Load Magit if necessary and open magit-dispatch."
|
||||
(interactive)
|
||||
(require 'magit)
|
||||
(call-interactively #'magit-dispatch))
|
||||
|
||||
(defun fscotto/disable-c-formatting ()
|
||||
(setq-local lsp-enable-on-type-formatting nil))
|
||||
|
||||
;; Golang development support functions
|
||||
(defun fscotto/go-format-on-save ()
|
||||
"Format Go buffers on save using gofmt."
|
||||
(add-hook 'before-save-hook #'lsp-format-buffer nil t))
|
||||
|
||||
(defun fscotto/go-mod-tidy ()
|
||||
"Esegue go mod tidy nella root del progetto."
|
||||
(interactive)
|
||||
(let ((default-directory (project-root (project-current t))))
|
||||
(compile "go mod tidy")))
|
||||
|
||||
(defun fscotto/go-mod-download ()
|
||||
"Scarica i moduli Go."
|
||||
(interactive)
|
||||
(let ((default-directory (project-root (project-current t))))
|
||||
(compile "go mod download")))
|
||||
|
||||
(defun fscotto/go-mod-after-save ()
|
||||
(when (and (eq major-mode 'go-mod-ts-mode)
|
||||
(lsp-workspaces))
|
||||
(lsp-restart-workspace)))
|
||||
|
||||
(defun fscotto/go-test-package ()
|
||||
"Run `go test` in the current package."
|
||||
(interactive)
|
||||
(let ((default-directory (project-root (project-current t))))
|
||||
(compile "go test")))
|
||||
|
||||
(defun fscotto/go-test-module ()
|
||||
"Run `go test ./...` in the current Go module."
|
||||
(interactive)
|
||||
(let ((default-directory (project-root (project-current t))))
|
||||
(compile "go test ./...")))
|
||||
|
||||
(defun fscotto/go-test-current-test ()
|
||||
"Run `go test -run` for the test at point."
|
||||
(interactive)
|
||||
(let* ((test-name (thing-at-point 'symbol t))
|
||||
(default-directory (project-root (project-current t))))
|
||||
(unless test-name
|
||||
(user-error "No test name at point"))
|
||||
(compile (format "go test -run '^%s$'" test-name))))
|
||||
|
||||
(defun fscotto/go-test-at-point ()
|
||||
"Return Go test name at point."
|
||||
(let ((sym (thing-at-point 'symbol t)))
|
||||
(unless (and sym (string-prefix-p "Test" sym))
|
||||
(user-error "No Go test at point"))
|
||||
sym))
|
||||
9
emacs/.emacs.d/lisp/misc/doom-modeline.el
Normal file
@@ -0,0 +1,9 @@
|
||||
;;; doom-modeline.el -*-
|
||||
|
||||
(use-package doom-modeline
|
||||
:ensure t
|
||||
:config
|
||||
(setq doom-modeline-height 25
|
||||
doom-modeline-bar-width 3
|
||||
doom-modeline-project-detection 'projectile)
|
||||
:init (doom-modeline-mode 1))
|
||||
51
emacs/.emacs.d/lisp/misc/email.el
Normal file
@@ -0,0 +1,51 @@
|
||||
;;; email.el -*-
|
||||
|
||||
(use-package mu4e
|
||||
:ensure nil
|
||||
;; :load-path "/usr/share/emacs/site-lisp/mu4e/"
|
||||
:defer 20 ; Wait until 20 seconds after startup
|
||||
:config
|
||||
;; This is set to 't' to avoid mail syncing issues when using mbsync
|
||||
(setq mu4e-change-filenames-when-moving t)
|
||||
|
||||
;; Refresh mail using isync every 10 minutes
|
||||
(setq mu4e-update-interval (* 10 60))
|
||||
(setq mu4e-get-mail-command "~/.emacs.d/scripts/email_sync.sh")
|
||||
(setq mu4e-maildir "~/Maildir")
|
||||
|
||||
;; Configure email accounts
|
||||
(setq mu4e-contexts
|
||||
(list
|
||||
;; Protonmail Account
|
||||
(make-mu4e-context
|
||||
:name "Protonmail"
|
||||
:match-func
|
||||
(lambda (msg)
|
||||
(when msg
|
||||
(string-prefix-p "/ProtonMailAccount" (mu4e-message-field msg :maildir))))
|
||||
:vars '((user-mail-address . "fscottodisantolo@protonmail.com")
|
||||
(user-full-name . "Fabio Scotto di Santolo")
|
||||
(mu4e-drafts-folder . "/ProtonMailAccount/Drafts")
|
||||
(mu4e-sent-folder . "/ProtonMailAccount/Sent")
|
||||
(mu4e-refile-folder . "/ProtonMailAccount/All Mail")
|
||||
(mu4e-trash-folder . "/ProtonMailAccount/Trash")))
|
||||
|
||||
;; iCloud Account
|
||||
(make-mu4e-context
|
||||
:name "iCloud Mail"
|
||||
:match-func
|
||||
(lambda (msg)
|
||||
(when msg
|
||||
(string-prefix-p "/iCloudAccount" (mu4e-message-field msg :maildir))))
|
||||
:vars '((user-mail-address . "fscottodisantolo@icloud.com")
|
||||
(user-full-name . "Fabio Scotto di Santolo")
|
||||
(mu4e-drafts-folder . "/iCloudAccount/Drafts")
|
||||
(mu4e-sent-folder . "/iCloudAccount/Sent Messages")
|
||||
(mu4e-refile-folder . "/iCloudAccount/INBOX")
|
||||
(mu4e-trash-folder . "/iCloudAccount/Junk")))))
|
||||
|
||||
(setq sendmail-program "/usr/bin/msmtp"
|
||||
send-mail-function 'sendmail-send-it
|
||||
message-sendmail-f-is-evil t
|
||||
message-sendmail-extra-arguments '("--read-envelope-from")
|
||||
message-send-mail-function 'message-send-mail-with-sendmail))
|
||||
3
emacs/.emacs.d/lisp/misc/epub.el
Normal file
@@ -0,0 +1,3 @@
|
||||
(use-package nov
|
||||
:ensure t
|
||||
:mode ("\\.epub\\'" . nov-mode))
|
||||
2
emacs/.emacs.d/lisp/misc/i3-config.el
Normal file
@@ -0,0 +1,2 @@
|
||||
(use-package i3wm-config-mode
|
||||
:ensure t)
|
||||
4
emacs/.emacs.d/lisp/misc/pdf.el
Normal file
@@ -0,0 +1,4 @@
|
||||
(use-package pdf-tools
|
||||
:ensure t
|
||||
:config
|
||||
(pdf-tools-install))
|
||||
27
emacs/.emacs.d/lisp/misc/rss.el
Normal file
@@ -0,0 +1,27 @@
|
||||
;;; rss.el -*-
|
||||
|
||||
(use-package elfeed
|
||||
:ensure t
|
||||
:custom
|
||||
(elfeed-enclosure-default-dir "~/Downloads/")
|
||||
(elfeed-search-remain-on-entry t)
|
||||
(elfeed-search-title-max-width 100)
|
||||
(elfeed-search-title-min-width 30)
|
||||
(elfeed-search-trailing-width 25)
|
||||
(elfeed-show-truncate-long-urls t)
|
||||
(elfeed-sort-order 'descending)
|
||||
(elfeed-search-filter "+unread")
|
||||
:hook
|
||||
(elfeed-show-mode . visual-line-mode))
|
||||
|
||||
(use-package elfeed-org
|
||||
:ensure t
|
||||
:after elfeed
|
||||
:custom
|
||||
;; Optionally specify a number of files containing elfeed
|
||||
;; configuration. If not set then the location below is used.
|
||||
;; Note: The customize interface is also supported.
|
||||
(rmh-elfeed-org-files (list "~/.emacs.d/elfeed.org")))
|
||||
|
||||
(with-eval-after-load 'elfeed
|
||||
(elfeed-org))
|
||||
4
emacs/.emacs.d/lisp/misc/terminal.el
Normal file
@@ -0,0 +1,4 @@
|
||||
;;; terminal.el -*-
|
||||
|
||||
(use-package vterm
|
||||
:ensure t)
|
||||
16
emacs/.emacs.d/lisp/misc/vcs.el
Normal file
@@ -0,0 +1,16 @@
|
||||
(use-package magit
|
||||
:ensure t
|
||||
:commands (magit-status magit-log)
|
||||
:init
|
||||
;; Entry point principale
|
||||
(setq magit-display-buffer-function #'magit-display-buffer-fullframe-status-v1)
|
||||
:config
|
||||
;; Performance & UX
|
||||
(setq magit-refresh-status-buffer nil)
|
||||
(setq magit-repository-directories
|
||||
'(("~/Projects" . 2)
|
||||
("~/Work" . 2))))
|
||||
|
||||
(provide 'vcs)
|
||||
|
||||
;;; vcs.el ends here
|
||||
161
emacs/.emacs.d/lisp/misc/which-key.el
Normal file
@@ -0,0 +1,161 @@
|
||||
;;; which-key.el -*-
|
||||
|
||||
(use-package which-key
|
||||
:ensure t
|
||||
:defer 1
|
||||
:config
|
||||
(which-key-mode)
|
||||
(setq which-key-idle-delay 0.45
|
||||
which-key-idle-secondary-delay 0.05
|
||||
which-key-max-display-columns 3
|
||||
which-key-max-description-length 45))
|
||||
|
||||
(with-eval-after-load 'which-key
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Top-level prefixes
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-c !" "Analyze"
|
||||
"C-c o" "Open"
|
||||
"C-c v" "Version control"
|
||||
"C-c l" "LSP"
|
||||
"C-c t" "TODO / Annotations"
|
||||
"C-c b" "Buffers"
|
||||
"C-c p" "Project"
|
||||
"C-c d" "Debug"
|
||||
"C-c g" "Git"
|
||||
"C-c e" "Email / Elfeed")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Open (C-c o …)
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-c o f" "RSS (Elfeed)"
|
||||
"C-c o m" "mu4e (Email Client)"
|
||||
"C-c o T" "Terminal (vterm)")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Version control
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-c v g" "Magit status (legacy)")
|
||||
|
||||
(which-key-add-key-based-replacements
|
||||
;; Core
|
||||
"C-c g g" "Status"
|
||||
"C-c g s" "Status"
|
||||
;; "C-c g b" "Branch"
|
||||
;; "C-c g c" "Commit"
|
||||
"C-c g p" "Push / Pull"
|
||||
"C-c g f" "Fetch"
|
||||
"C-c g l" "Log"
|
||||
"C-c g S" "Stash"
|
||||
|
||||
;; Files
|
||||
"C-c g d" "Diff"
|
||||
"C-c g D" "Diff (cached)"
|
||||
"C-c g B" "Blame"
|
||||
|
||||
;; Rebase / Reset
|
||||
"C-c g r" "Rebase"
|
||||
"C-c g R" "Reset"
|
||||
|
||||
;; Remote
|
||||
"C-c g y" "Show refs"
|
||||
"C-c g o" "Browse remote")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Buffers
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-x C-b" "ibuffer")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; TODO / hl-todo
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-t" "hl-todo"
|
||||
"C-t p" "Previous TODO"
|
||||
"C-t n" "Next TODO"
|
||||
"C-t o" "Occur (list)"
|
||||
"C-t i" "Insert TODO")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; LSP (C-c l …)
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
;; Navigation
|
||||
"C-c l d" "Go to definition"
|
||||
"C-c l D" "Go to type definition"
|
||||
"C-c l i" "Go to implementation"
|
||||
|
||||
;; Symbols / diagnostics
|
||||
"C-c l s" "Workspace symbols"
|
||||
"C-c l e" "Diagnostics"
|
||||
|
||||
;; Actions
|
||||
"C-c l a" "Code actions"
|
||||
"C-c l r" "Rename symbol"
|
||||
"C-c l f" "Format buffer"
|
||||
|
||||
;; Control
|
||||
"C-c l R" "Restart workspace")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Elfeed modes
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"w" "Yank"
|
||||
"R" "Update feeds"
|
||||
"q" "Quit")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Debug / DAP
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"C-c d d" "Start debug session"
|
||||
"C-c d b" "Toggle breakpoint")
|
||||
;; "C-c d c" "Continue"
|
||||
;; "C-c d n" "Next"
|
||||
;; "C-c d i" "Step in"
|
||||
;; "C-c d o" "Step out")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Project (future)
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
;; Core
|
||||
"C-c p p" "Switch project"
|
||||
"C-c p f" "Find file"
|
||||
"C-c p d" "Find directory"
|
||||
"C-c p b" "Switch buffer"
|
||||
"C-c p k" "Kill project buffers"
|
||||
"C-c p r" "Recent files"
|
||||
|
||||
;; Search
|
||||
"C-c p s" "Search"
|
||||
"C-c p s g" "Grep (ripgrep)"
|
||||
"C-c p s r" "Replace in project"
|
||||
|
||||
;; Actions
|
||||
"C-c p c" "Compile"
|
||||
"C-c p t" "Test"
|
||||
"C-c p v" "Open term in project"
|
||||
"C-c p e" "Edit project config"
|
||||
"C-c p g" "Project Git status"
|
||||
"C-c p x" "Open Terminal"
|
||||
"C-c p 4" "Other Window"
|
||||
"C-c p 5" "Other Frame"
|
||||
"C-c p x 4" "Other Window"
|
||||
|
||||
;; Cache
|
||||
"C-c p i" "Invalidate cache")
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Cleanup annoying +prefix
|
||||
;; --------------------------------------------------------------------------
|
||||
(which-key-add-key-based-replacements
|
||||
"+prefix" "Prefix"
|
||||
"+lsp" "LSP"
|
||||
"+debug" "Debug"
|
||||
"+project" "Project"))
|
||||
32
emacs/.emacs.d/lisp/tools/completion.el
Normal file
@@ -0,0 +1,32 @@
|
||||
;;; completion.el -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package ivy
|
||||
:ensure t
|
||||
:config
|
||||
(ivy-mode 1))
|
||||
|
||||
(use-package consult
|
||||
:ensure t
|
||||
:defer t)
|
||||
|
||||
(use-package company
|
||||
:ensure t
|
||||
:custom
|
||||
(company-tooltip-align-annotations 't)
|
||||
(company-minimum-prefix-length 1)
|
||||
(company-idle-delay 0.1)
|
||||
:hook (prog-mode . company-mode))
|
||||
|
||||
(with-eval-after-load 'company
|
||||
(add-hook 'bash-ts-mode-hook 'company-mode))
|
||||
|
||||
;; Static analysis for code base
|
||||
(use-package flycheck
|
||||
:ensure t
|
||||
:hook (prog-mode . flycheck-mode)
|
||||
:config
|
||||
(setq flycheck-check-syntax-automatically '(save mode-enabled)))
|
||||
|
||||
(provide 'completion)
|
||||
|
||||
;;; completion.el ends here
|
||||
24
emacs/.emacs.d/lisp/tools/dap.el
Normal file
@@ -0,0 +1,24 @@
|
||||
(use-package dap-mode
|
||||
:ensure t
|
||||
:after lsp-mode
|
||||
:hook (lsp-mode . dap-mode)
|
||||
:init
|
||||
;; Enabling only some features
|
||||
(setq dap-auto-configure-features '(sessions locals expressions repl))
|
||||
:config
|
||||
(dap-mode 1)
|
||||
(dap-ui-mode 1)
|
||||
(dap-ui-controls-mode 1)
|
||||
;; Auto show breakpoints + REPL
|
||||
(setq dap-ui-buffer-configurations
|
||||
'(;; RIGHT SIDE — Debug data (like IntelliJ)
|
||||
(dap-ui-locals . ((side . right) (slot . 1) (window-width . 0.30)))
|
||||
(dap-ui-sessions . ((side . right) (slot . 2) (window-width . 0.30)))
|
||||
(dap-ui-expressions . ((side . right) (slot . 3) (window-width . 0.30)))
|
||||
;; BOTTOM — Console / REPL
|
||||
(dap-ui-repl . ((side . bottom) (slot . 1) (window-height . 0.25)))
|
||||
(dap-ui-console . ((side . bottom) (slot . 2) (window-height . 0.25)))))
|
||||
;; Loading DAP adapters
|
||||
;; For Python
|
||||
(require 'dap-python)
|
||||
(setq dap-python-debugger 'debugpy))
|
||||
49
emacs/.emacs.d/lisp/tools/lsp.el
Normal file
@@ -0,0 +1,49 @@
|
||||
;;; lsp.el -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package lsp-mode
|
||||
:ensure t
|
||||
:commands (lsp lsp-deferred)
|
||||
:hook
|
||||
((c-mode
|
||||
c-ts-mode
|
||||
c++-mode
|
||||
c++-ts-mode
|
||||
python-mode
|
||||
python-ts-mode
|
||||
sh-mode
|
||||
bash-ts-mode) . lsp-deferred)
|
||||
:config
|
||||
;; Performance
|
||||
(setq lsp-enable-symbol-highlighting t
|
||||
lsp-enable-snippet t
|
||||
lsp-log-io nil
|
||||
lsp-modeline-code-actions-enable nil
|
||||
lsp-modeline-diagnostics-enable nil
|
||||
lsp-signature-auto-activate nil
|
||||
lsp-enable-on-type-formatting nil
|
||||
lsp-completion-provider :capf
|
||||
lsp-diagnostics-provider :flycheck
|
||||
lsp-headerline-breadcrumb-enable nil
|
||||
lsp-enable-indentation nil
|
||||
;; Disable for huge projects
|
||||
lsp-enable-file-watchers nil
|
||||
lsp-idle-delay 0.5))
|
||||
|
||||
(use-package lsp-ui
|
||||
:ensure t
|
||||
:config
|
||||
(setq lsp-ui-doc-enable t
|
||||
lsp-ui-doc-delay 0.3
|
||||
lsp-ui-sideline-enable t
|
||||
lsp-ui-sideline-show-code-actions t))
|
||||
|
||||
(use-package consult-lsp
|
||||
:ensure t
|
||||
:after (consult lsp-mode)
|
||||
:commands
|
||||
(consult-lsp-symbols
|
||||
consult-lsp-diagnostics))
|
||||
|
||||
(provide 'lsp)
|
||||
|
||||
;;; lsp.el ends here
|
||||
25
emacs/.emacs.d/lisp/tools/project.el
Normal file
@@ -0,0 +1,25 @@
|
||||
;;; project.el - lexical-binding *-*
|
||||
|
||||
(use-package projectile
|
||||
:ensure t
|
||||
:defer 1
|
||||
:init
|
||||
;; Root detection
|
||||
(setq projectile-project-search-path '("~/Projects" "~/Work"))
|
||||
(setq projectile-completion-system 'ivy)
|
||||
:config
|
||||
;; Performance
|
||||
(setq projectile-enable-caching t)
|
||||
(setq projectile-indexing-method 'hybrid)
|
||||
(setq projectile-sort-order 'recently-active)
|
||||
;; Projectile as single source of truth
|
||||
(setq projectile-switch-project-action #'projectile-dired)
|
||||
;; Use ripgrep if available
|
||||
(when (executable-find "rg")
|
||||
(setq projectile-generic-command "rg --files --hidden --glob '!.git'"))
|
||||
;; Enable globally
|
||||
(projectile-mode 1))
|
||||
|
||||
(provide 'project)
|
||||
|
||||
;;; project.el ends here
|
||||
29
emacs/.emacs.d/lisp/tools/treesitter.el
Normal file
@@ -0,0 +1,29 @@
|
||||
;;; treesitter.el -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package treesit
|
||||
:ensure nil
|
||||
:config
|
||||
(setq treesit-font-lock-level 4)
|
||||
(setq treesit-auto-install t)
|
||||
(setq major-mode-remap-alist
|
||||
'((c-mode . c-ts-mode)
|
||||
(c++-mode . c++-ts-mode)
|
||||
(go-mode . go-ts-mode)
|
||||
(go-mod-mode . go-mod-ts-mode)
|
||||
(python-mode . python-ts-mode)
|
||||
(sh-mode . bash-ts-mode)))
|
||||
(setq treesit-language-source-alist
|
||||
'((bash "https://github.com/tree-sitter/tree-sitter-bash")
|
||||
(c "https://github.com/tree-sitter/tree-sitter-c")
|
||||
(cpp "https://github.com/tree-sitter/tree-sitter-cpp")
|
||||
(dockerfile "https://github.com/camdencheek/tree-sitter-dockerfile")
|
||||
(go "https://github.com/tree-sitter/tree-sitter-go")
|
||||
(gomod "https://github.com/camdencheek/tree-sitter-go-mod")
|
||||
(js "https://github.com/tree-sitter/tree-sitter-javascript")
|
||||
(json "https://github.com/tree-sitter/tree-sitter-json")
|
||||
(node "https://github.com/tree-sitter/node-tree-sitter")
|
||||
(python "https://github.com/tree-sitter/tree-sitter-python"))))
|
||||
|
||||
(provide 'treesitter)
|
||||
|
||||
;;; treesitter.el ends here
|
||||
@@ -1,20 +1,46 @@
|
||||
IMAPStore Gmail-remote
|
||||
Host imap.gmail.com
|
||||
##################### iCloud Account ##################################
|
||||
IMAPStore iCloud-remote
|
||||
Host imap.mail.me.com
|
||||
Port 993
|
||||
User fabio.scottodisantolo@gmail.com
|
||||
PassCmd "gpg -q -d /home/fscotto/.cache/gmail1.gpg"
|
||||
User fscottodisantolo@icloud.com
|
||||
PassCmd "pass show icloud-mail"
|
||||
AuthMechs *
|
||||
SSLType IMAPS
|
||||
SSLVersions TLSv1.2 TLSv1.3
|
||||
CertificateFile /etc/ssl/certs/ca-certificates.crt
|
||||
PipelineDepth 1
|
||||
|
||||
MaildirStore Gmail-local
|
||||
Path ~/Maildir/GmailAccount/
|
||||
Inbox ~/Maildir/GmailAccount/Inbox
|
||||
MaildirStore iCloud-local
|
||||
Path ~/Maildir/iCloudAccount/
|
||||
Inbox ~/Maildir/iCloudAccount/INBOX
|
||||
SubFolders Verbatim
|
||||
|
||||
Channel Gmail
|
||||
Far :Gmail-remote:
|
||||
Near :Gmail-local:
|
||||
Channel iCloud
|
||||
Far :iCloud-remote:
|
||||
Near :iCloud-local:
|
||||
Patterns *
|
||||
Create Both
|
||||
Expunge Both
|
||||
SyncState *
|
||||
|
||||
##################### Protonmail Account ##################################
|
||||
IMAPStore protonmail-remote
|
||||
Host 127.0.0.1
|
||||
Port 1143
|
||||
User fscottodisantolo@protonmail.com
|
||||
PassCmd "pass show protonmail-bridge"
|
||||
AuthMechs *
|
||||
SSLType STARTTLS
|
||||
PipelineDepth 1
|
||||
CertificateFile ~/.config/protonmail/bridge-v3/cert.pem
|
||||
|
||||
MaildirStore protonmail-local
|
||||
Path ~/Maildir/ProtonMailAccount/
|
||||
Inbox ~/Maildir/ProtonMailAccount/INBOX
|
||||
SubFolders Verbatim
|
||||
|
||||
Channel Protonmail
|
||||
Far :protonmail-remote:
|
||||
Near :protonmail-local:
|
||||
Patterns *
|
||||
Create Both
|
||||
Expunge Both
|
||||
|
||||
@@ -7,24 +7,45 @@ tls on
|
||||
# Set a list of trusted CAs for TLS. The default is to use system settings,
|
||||
# but you can select your own file.
|
||||
tls_trust_file /etc/ssl/certs/ca-certificates.crt
|
||||
logfile ~/.config/msmtp/msmtp.log
|
||||
logfile ~/.cache/msmtp.log
|
||||
|
||||
# Account Gmail
|
||||
account gmail
|
||||
# Account iCloud
|
||||
account icloud
|
||||
|
||||
# Host name of the SMTP server
|
||||
host smtp.gmail.com
|
||||
host smtp.mail.me.com
|
||||
|
||||
# Use the mail submission port 587 instead of the SMTP port 25.
|
||||
# Use the mail submission port 587 instead of the SMTP port 25
|
||||
port 587
|
||||
|
||||
# Envelop-from address
|
||||
from fabio.scottodisantolo@gmail.com
|
||||
from fscottodisantolo@icloud.com
|
||||
|
||||
# Authentication. The password is given using one of five methods
|
||||
auth on
|
||||
user fabio.scottodisantolo@gmail.com
|
||||
passwordeval "gpg -q -d /home/fscotto/.cache/gmail1.gpg"
|
||||
user fscottodisantolo@icloud.com
|
||||
passwordeval "pass show icloud-mail"
|
||||
|
||||
# Account Protonmail
|
||||
account protonmail
|
||||
|
||||
# Hostname of the Protonmail bridge
|
||||
host 127.0.0.1
|
||||
|
||||
# Port of the Protonmail bridge
|
||||
port 1025
|
||||
|
||||
# Envelop-from address
|
||||
from fscottodisantolo@protonmail.com
|
||||
|
||||
# Security
|
||||
tls on
|
||||
tls_trust_file ~/.config/protonmail/bridge-v3/cert.pem
|
||||
|
||||
# Authentication
|
||||
auth on
|
||||
user fscottodisantolo@protonmail.com
|
||||
passwordeval "pass show protonmail-bridge"
|
||||
|
||||
# Set a default account
|
||||
account default : gmail
|
||||
account default : icloud
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@theme "catppuccin"
|
||||
//@theme "catppuccin"
|
||||
|
||||
configuration {
|
||||
modi: "drun,window,filebrowser,ssh";
|
||||
@@ -18,3 +18,4 @@ configuration {
|
||||
display-filebrowser: " filebrowser:";
|
||||
}
|
||||
|
||||
@theme "/home/fscotto/.config/rofi/themes/catppuccin-lavrent-mocha.rasi"
|
||||
|
||||
@@ -13,15 +13,7 @@ $docker_context\
|
||||
$buf\
|
||||
$guix_shell\
|
||||
$nix_shell\
|
||||
$conda\
|
||||
$meson\
|
||||
$spack\
|
||||
$memory_usage\
|
||||
$direnv\
|
||||
$env_var\
|
||||
$custom\
|
||||
$sudo\
|
||||
$cmd_duration\
|
||||
$line_break\
|
||||
$time\
|
||||
$status\
|
||||
@@ -42,7 +34,7 @@ $azure
|
||||
"""
|
||||
|
||||
# Sets user-defined palette
|
||||
palette = "catppuccin_mocha"
|
||||
#palette = "catppuccin_mocha"
|
||||
|
||||
# palette tables should be last in the config ⚓️
|
||||
[palettes.catppuccin_macchiato]
|
||||
@@ -159,7 +151,7 @@ crust = "#11111b"
|
||||
|
||||
[character]
|
||||
# Note the use of Catppuccin color 'maroon'
|
||||
success_symbol = "[❯](maroon)"
|
||||
success_symbol = "[❯](blue)"
|
||||
error_symbol = "[❯](red)"
|
||||
vimcmd_symbol = "[❮](green)"
|
||||
|
||||
@@ -175,15 +167,6 @@ symbol = " "
|
||||
[c]
|
||||
symbol = " "
|
||||
|
||||
[conda]
|
||||
symbol = " "
|
||||
|
||||
[crystal]
|
||||
symbol = " "
|
||||
|
||||
[dart]
|
||||
symbol = " "
|
||||
|
||||
[directory]
|
||||
read_only = " "
|
||||
truncate_to_repo = false
|
||||
@@ -211,12 +194,6 @@ symbol = " "
|
||||
format = "[$env_value]($style)"
|
||||
style = 'green italic'
|
||||
|
||||
[fennel]
|
||||
symbol = " "
|
||||
|
||||
[fossil_branch]
|
||||
symbol = " "
|
||||
|
||||
[git_branch]
|
||||
symbol = " "
|
||||
|
||||
@@ -236,9 +213,6 @@ symbol = " "
|
||||
[haskell]
|
||||
symbol = " "
|
||||
|
||||
[haxe]
|
||||
symbol = " "
|
||||
|
||||
[hg_branch]
|
||||
symbol = " "
|
||||
|
||||
@@ -267,85 +241,43 @@ symbol = " "
|
||||
[meson]
|
||||
symbol = " "
|
||||
|
||||
[nim]
|
||||
symbol = " "
|
||||
|
||||
[nix_shell]
|
||||
symbol = " "
|
||||
|
||||
[nodejs]
|
||||
symbol = " "
|
||||
|
||||
[ocaml]
|
||||
symbol = " "
|
||||
|
||||
[os]
|
||||
disabled = false
|
||||
format = "[$symbol]($style)"
|
||||
|
||||
[os.symbols]
|
||||
Alpaquita = ""
|
||||
Alpine = ""
|
||||
AlmaLinux = " "
|
||||
Amazon = ""
|
||||
Android = " "
|
||||
Arch = " "
|
||||
Artix = ""
|
||||
CentOS = ""
|
||||
Bluefin = " "
|
||||
Debian = " "
|
||||
DragonFly = ""
|
||||
Emscripten = " "
|
||||
EndeavourOS = " "
|
||||
Fedora = " "
|
||||
FreeBSD = " "
|
||||
Garuda = ""
|
||||
Gentoo = " "
|
||||
HardenedBSD = ""
|
||||
Illumos = ""
|
||||
Kali = " "
|
||||
Linux = ""
|
||||
Mabox = ""
|
||||
Macos = " "
|
||||
Manjaro = " "
|
||||
Mariner = ""
|
||||
MidnightBSD = ""
|
||||
Mint = " "
|
||||
NetBSD = " "
|
||||
NixOS = " "
|
||||
OpenBSD = " "
|
||||
openSUSE = " "
|
||||
OracleLinux = ""
|
||||
Pop = " "
|
||||
Raspbian = " "
|
||||
Redhat = ""
|
||||
RedHatEnterprise = ""
|
||||
RockyLinux = ""
|
||||
Redox = ""
|
||||
Solus = ""
|
||||
SUSE = ""
|
||||
Ubuntu = " "
|
||||
Unknown = ""
|
||||
Void = " "
|
||||
Windows = " "
|
||||
|
||||
[package]
|
||||
symbol = " "
|
||||
|
||||
[perl]
|
||||
symbol = " "
|
||||
|
||||
[php]
|
||||
symbol = " "
|
||||
|
||||
[pijul_channel]
|
||||
symbol = " "
|
||||
|
||||
[python]
|
||||
symbol = " "
|
||||
|
||||
[rlang]
|
||||
symbol = " "
|
||||
|
||||
[ruby]
|
||||
symbol = " "
|
||||
|
||||
@@ -355,9 +287,6 @@ symbol = " "
|
||||
[scala]
|
||||
symbol = " "
|
||||
|
||||
[swift]
|
||||
symbol = " "
|
||||
|
||||
[username]
|
||||
show_always = true
|
||||
|
||||
|
||||
69
sway/.config/foot/foot.ini
Normal file
@@ -0,0 +1,69 @@
|
||||
# === General settings ===
|
||||
[main]
|
||||
shell=/bin/zsh -c "exec ~/.profile.d/tmux.sh" # Default shell to launch in the terminal
|
||||
font=0xProto Nerd Font:size=14 # Font family and size used in the terminal
|
||||
initial-window-size-chars=160x45 # Initial size in character columns x rows
|
||||
selection-target=clipboard # Copy selected text directly to system clipboard
|
||||
term=foot # Terminal type identifier (useful for compatibility)
|
||||
pad=8x8 # Adds 8-pixel padding around the content (horizontal x vertical)
|
||||
|
||||
# === Mouse settings ===
|
||||
[mouse]
|
||||
hide-when-typing=yes # Automatically hide the mouse cursor while typing
|
||||
alternate-scroll-mode=no # Preserves scrollback history when applications exit (does not use alternate screen buffer)
|
||||
|
||||
# === Scrollback bar indicator settings ===
|
||||
[scrollback]
|
||||
lines=10000 # Number of scrollback lines to keep in history
|
||||
indicator-format=percentage # Format of scroll indicator (e.g., "50%")
|
||||
|
||||
# === Key bindings ===
|
||||
[key-bindings]
|
||||
scrollback-up-page=Shift+Page_Up # Scroll up one page
|
||||
scrollback-down-page=Shift+Page_Down # Scroll down one page
|
||||
clipboard-copy=Control+Shift+c # Copy selected text to clipboard
|
||||
clipboard-paste=Control+Shift+v # Paste from clipboard
|
||||
show-urls-launch=Control+Shift+o # Detects and allows launching URLs found in the terminal output
|
||||
|
||||
# === Cursor appearance ===
|
||||
[cursor]
|
||||
style=beam # Beam-style (vertical bar) cursor
|
||||
blink=true # Cursor should blink
|
||||
beam-thickness=3 # Thickness of the beam cursor
|
||||
|
||||
# === Catppuccin Mocha color scheme ===
|
||||
[colors]
|
||||
alpha=0.9
|
||||
cursor=11111b f5e0dc # Cursor color (background and foreground)
|
||||
foreground=cdd6f4 # Default text color
|
||||
background=1e1e2e # Main terminal background color
|
||||
|
||||
regular0=45475a # ANSI Black/Grey
|
||||
regular1=f38ba8 # ANSI Red
|
||||
regular2=a6e3a1 # ANSI Green
|
||||
regular3=f9e2af # ANSI Yellow
|
||||
regular4=89b4fa # ANSI Blue
|
||||
regular5=f5c2e7 # ANSI Magenta
|
||||
regular6=94e2d5 # ANSI Cyan
|
||||
regular7=bac2de # ANSI White/Light Grey
|
||||
|
||||
bright0=585b70 # Bright ANSI Black/Grey
|
||||
bright1=f38ba8 # Bright ANSI Red
|
||||
bright2=a6e3a1 # Bright ANSI Green
|
||||
bright3=f9e2af # Bright ANSI Yellow
|
||||
bright4=89b4fa # Bright ANSI Blue
|
||||
bright5=f5c2e7 # Bright ANSI Magenta
|
||||
bright6=94e2d5 # Bright ANSI Cyan
|
||||
bright7=a6adc8 # Bright ANSI White/Light Grey
|
||||
|
||||
16=fab387 # Extended color 16 (Orange-like)
|
||||
17=f5e0dc # Extended color 17 (Pink/Cream-like)
|
||||
|
||||
selection-foreground=cdd6f4 # Color of selected text
|
||||
selection-background=414356 # Background color of selected text
|
||||
|
||||
search-box-no-match=11111b f38ba8 # Colors for search box when no match is found
|
||||
search-box-match=cdd6f0 313244 # Colors for search box when a match is found
|
||||
|
||||
jump-labels=11111b fab387 # Colors for jump labels (e.g., in URL launcher)
|
||||
urls=89b4fa # Color for detected URLs
|
||||
66
sway/.config/sway/conf.d/window.conf
Normal file
@@ -0,0 +1,66 @@
|
||||
#-----------------------#
|
||||
# Windows configuration #
|
||||
# ----------------------#
|
||||
bindsym $mod+shift+g exec swaymsg gaps outer all set 0 && swaymsg gaps inner all set 5
|
||||
bindsym $mod+g exec swaymsg gaps outer all set 0 && swaymsg gaps inner all set 0
|
||||
|
||||
# No gaps when there is a single window
|
||||
#smart_gaps on
|
||||
|
||||
# Activate smart borders (always)
|
||||
#smart_borders on
|
||||
|
||||
default_border pixel 3
|
||||
default_floating_border pixel 3
|
||||
gaps inner 5
|
||||
gaps outer 5
|
||||
|
||||
#------------------------------#
|
||||
# Always float certain windows #
|
||||
#------------------------------#
|
||||
for_window [app_id="pop-up"] floating enable
|
||||
for_window [app_id="bubble"] floating enable
|
||||
for_window [app_id="task_dialog"] floating enable
|
||||
for_window [app_id="Preferences"] floating enable
|
||||
for_window [app_id="dialog"] floating enable
|
||||
for_window [app_id="menu"] floating enable
|
||||
for_window [app_id="Organizer"] floating enable
|
||||
for_window [app_id="About"] floating enable
|
||||
for_window [app_id="toolbox"] floating enable
|
||||
for_window [app_id="page-info"] floating enable
|
||||
for_window [app_id="webconsole"] floating enable
|
||||
for_window [app_id="Authy"] floating enable
|
||||
for_window [app_id="termfloat"] floating enable
|
||||
for_window [app_id="termfloat"] resize set height 540
|
||||
for_window [app_id="termfloat"] resize set width 960
|
||||
for_window [app_id="mpv"] floating enable
|
||||
for_window [app_id="mpv"] resize set height 540
|
||||
for_window [app_id="mpv"] resize set width 960
|
||||
|
||||
#-------------------------------------------------------#
|
||||
# Sticky floating windows(sticky enable|disable|toggle) #
|
||||
#-------------------------------------------------------#
|
||||
for_window [app_id="nwg-clipman"] floating enable
|
||||
for_window [app_id="nwg-clipman"] sticky enable
|
||||
for_window [app_id="nwg-clipman"] resize set height 540
|
||||
for_window [app_id="nwg-clipman"] resize set width 960
|
||||
|
||||
#-----------------#
|
||||
# Program Opacity #
|
||||
#-----------------#
|
||||
for_window [app_id="telegram"] opacity 1.00
|
||||
|
||||
#------------------------------------------#
|
||||
# Placing software in a specific workspace #
|
||||
#------------------------------------------#
|
||||
assign [app_id="emacs"]: workspace number 1
|
||||
for_window [app_id="emacs"]: focus
|
||||
assign [app_id="firefox"]: workspace number 2
|
||||
for_window [app_id="firefox"] focus
|
||||
assign [app_id="telegram"]: workspace number 3
|
||||
for_window [app_id="telegram"] focus
|
||||
|
||||
#---------------------#
|
||||
# Focus follows mouse #
|
||||
#---------------------#
|
||||
focus_follows_mouse no
|
||||
336
sway/.config/sway/config
Normal file
@@ -0,0 +1,336 @@
|
||||
# -*- mode: i3wm-config -*-
|
||||
### Variables
|
||||
#
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
set $mod Mod4
|
||||
|
||||
# Home row direction keys, like vim
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
|
||||
# Your preferred terminal emulator
|
||||
set $term 'alacritty'
|
||||
|
||||
# Your preferred application launcher
|
||||
set $menu 'rofi'
|
||||
|
||||
# Your preferred browser
|
||||
set $browser 'io.gitlab.librewolf-community'
|
||||
|
||||
# Your preferred notification daemon
|
||||
set $notification 'dunst'
|
||||
|
||||
# Your preferred clipboard manager
|
||||
set $clipboard 'diodon'
|
||||
|
||||
# Your prefered editor
|
||||
set $editor 'emacs'
|
||||
|
||||
# Import Catppuccin theme defined colors
|
||||
include themes/catppuccin-mocha
|
||||
|
||||
# target title bg text indicator border
|
||||
client.focused $lavender $base $text $rosewater $lavender
|
||||
client.focused_inactive $overlay0 $base $text $rosewater $overlay0
|
||||
client.unfocused $overlay0 $base $text $rosewater $overlay0
|
||||
client.urgent $peach $base $peach $overlay0 $peach
|
||||
client.placeholder $overlay0 $base $text $overlay0 $overlay0
|
||||
client.background $base
|
||||
|
||||
# Setting cursor
|
||||
seat seat0 xcursor_theme catppuccin-mocha-lavender-cursors 25
|
||||
|
||||
### Output configuration
|
||||
#
|
||||
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||
# output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
|
||||
output * bg ~/.config/sway/wallpaper.jpg fill
|
||||
|
||||
# Setting default font
|
||||
font pango:Noto Sans Regular 10
|
||||
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||
#
|
||||
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||
|
||||
### Idle configuration
|
||||
set $lockman exec bash ~/.config/sway/scripts/lockman.sh
|
||||
exec swayidle -w \
|
||||
timeout 300 'swaylock -f --font "Noto Sans Regular" --font-size 16' \
|
||||
timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
|
||||
before-sleep 'swaylock -f --font "Noto Sans Regular" --font-size 16'
|
||||
|
||||
# This will lock your screen after 300 seconds of inactivity, then turn off
|
||||
# your displays after another 300 seconds, and turn your screens back on when
|
||||
# resumed. It will also lock your screen before your computer goes to sleep.
|
||||
|
||||
### Run in background notification daemon
|
||||
exec $notification
|
||||
|
||||
### Run in background Pipewire session
|
||||
exec pipewire
|
||||
|
||||
### Run clipboard manager
|
||||
exec wl-paste -t text --watch cliphist store
|
||||
exec wl-paste -t image --watch cliphist store
|
||||
|
||||
### OSD server
|
||||
exec swayosd-server
|
||||
|
||||
###
|
||||
exec $editor
|
||||
|
||||
### Screenshot tool
|
||||
exec flameshot
|
||||
|
||||
# Simulate master layout
|
||||
exec autotiling --limit 2
|
||||
|
||||
exec dbus-update-activation-environment DISPLAY XAUTHORITY WAYLAND_DISPLAY
|
||||
|
||||
#----------------#
|
||||
# set gtk+ theme #
|
||||
#----------------#
|
||||
set $gnome-schema org.gnome.desktop.interface
|
||||
exec_always {
|
||||
gsettings set $gnome-schema gtk-theme 'Catppuccin'
|
||||
gsettings set $gnome-schema icon-theme 'Papirus-Dark'
|
||||
gsettings set $gnome-schema cursor-theme 'Catppuccin-cursor'
|
||||
gsettings set $gnome-schema font-name 'Noto Sans Regular 10'
|
||||
}
|
||||
|
||||
### Input configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# input type:touchpad {
|
||||
# dwt enabled
|
||||
# tap enabled
|
||||
# natural_scroll enabled
|
||||
# middle_emulation enabled
|
||||
# }
|
||||
#
|
||||
# input type:keyboard {
|
||||
# xkb_layout "eu"
|
||||
# }
|
||||
#
|
||||
# You can also configure each device individually.
|
||||
# Read `man 5 sway-input` for more information about this section.
|
||||
|
||||
input type:touchpad {
|
||||
dwt enabled
|
||||
tap enabled
|
||||
natural_scroll enabled
|
||||
middle_emulation enabled
|
||||
}
|
||||
|
||||
input type:keyboard {
|
||||
xkb_layout "us(intl)"
|
||||
xkb_options "grp:win_space_toggle"
|
||||
}
|
||||
|
||||
### Key bindings
|
||||
#
|
||||
# Basics:
|
||||
#
|
||||
# Start a terminal
|
||||
bindsym $mod+Return exec $term
|
||||
|
||||
# Kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# Start your launcher
|
||||
bindsym $mod+d exec $menu
|
||||
|
||||
# Start my browser
|
||||
bindsym $mod+Shift+b exec $browser
|
||||
|
||||
# Start my clipboard manager
|
||||
bindsym $mod+Shift+v exec $clipboard
|
||||
|
||||
# Drag floating windows by holding down $mod and left mouse button.
|
||||
# Resize them with right mouse button + $mod.
|
||||
# Despite the name, also works for non-floating windows.
|
||||
# Change normal to inverse to use left mouse button for resizing and right
|
||||
# mouse button for dragging.
|
||||
floating_modifier $mod normal
|
||||
|
||||
# Reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
|
||||
# Exit sway (logs you out of your Wayland session)
|
||||
#bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
|
||||
bindsym $mod+Shift+e exec wlogout
|
||||
|
||||
# Waybar toggle
|
||||
bindsym $mod+o exec killall -SIGUSR1 waybar
|
||||
|
||||
#
|
||||
# Moving around:
|
||||
#
|
||||
# Move your focus around
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
# Or use $mod+[up|down|left|right]
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# Move the focused window with the same, but add Shift
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
# Ditto, with arrow keys
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
#
|
||||
# Workspaces:
|
||||
#
|
||||
# Switch to workspace
|
||||
bindsym $mod+1 workspace number 1
|
||||
bindsym $mod+2 workspace number 2
|
||||
bindsym $mod+3 workspace number 3
|
||||
bindsym $mod+4 workspace number 4
|
||||
bindsym $mod+5 workspace number 5
|
||||
bindsym $mod+6 workspace number 6
|
||||
bindsym $mod+7 workspace number 7
|
||||
bindsym $mod+8 workspace number 8
|
||||
bindsym $mod+9 workspace number 9
|
||||
bindsym $mod+0 workspace number 10
|
||||
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number 1
|
||||
bindsym $mod+Shift+2 move container to workspace number 2
|
||||
bindsym $mod+Shift+3 move container to workspace number 3
|
||||
bindsym $mod+Shift+4 move container to workspace number 4
|
||||
bindsym $mod+Shift+5 move container to workspace number 5
|
||||
bindsym $mod+Shift+6 move container to workspace number 6
|
||||
bindsym $mod+Shift+7 move container to workspace number 7
|
||||
bindsym $mod+Shift+8 move container to workspace number 8
|
||||
bindsym $mod+Shift+9 move container to workspace number 9
|
||||
bindsym $mod+Shift+0 move container to workspace number 10
|
||||
|
||||
bindsym $mod+period workspace next
|
||||
bindsym $mod+comma workspace prev
|
||||
|
||||
#
|
||||
# Layout stuff:
|
||||
#
|
||||
# You can "split" the current object of your focus with
|
||||
# $mod+b or $mod+v, for horizontal and vertical splits
|
||||
# respectively.
|
||||
bindsym $mod+b splith
|
||||
bindsym $mod+v splitv
|
||||
|
||||
# Switch the current container between different layout styles
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# Make the current focus fullscreen
|
||||
bindsym $mod+f fullscreen
|
||||
|
||||
# Toggle the current focus between tiling and floating mode
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# Swap focus between the tiling area and the floating area
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# Move focus to the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
#
|
||||
# Scratchpad:
|
||||
#
|
||||
# Sway has a "scratchpad", which is a bag of holding for windows.
|
||||
# You can send windows there and get them back later.
|
||||
|
||||
# Move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+minus scratchpad show
|
||||
|
||||
#
|
||||
# Resizing containers:
|
||||
#
|
||||
mode "resize" {
|
||||
# left will shrink the containers width
|
||||
# right will grow the containers width
|
||||
# up will shrink the containers height
|
||||
# down will grow the containers height
|
||||
bindsym $left resize shrink width 10px
|
||||
bindsym $down resize grow height 10px
|
||||
bindsym $up resize shrink height 10px
|
||||
bindsym $right resize grow width 10px
|
||||
|
||||
# Ditto, with arrow keys
|
||||
bindsym Left resize shrink width 10px
|
||||
bindsym Down resize grow height 10px
|
||||
bindsym Up resize shrink height 10px
|
||||
bindsym Right resize grow width 10px
|
||||
|
||||
# Return to default mode
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
#
|
||||
# Utilities:
|
||||
#
|
||||
# Special keys to adjust volume via PulseAudio
|
||||
# bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
|
||||
# bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
|
||||
# bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
|
||||
# bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
|
||||
# Special keys to adjust brightness via brightnessctl
|
||||
# bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
|
||||
# bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
|
||||
|
||||
# Client commands for SwayOSD
|
||||
# For enable this service start systemd service swayosd-libinput-backend.service
|
||||
|
||||
# Sink volume toggle mute
|
||||
bindsym XF86AudioMute exec swayosd-client --output-volume mute-toggle
|
||||
# Source volume toggle mute
|
||||
bindsym XF86AudioMicMute exec swayosd-client --input-volume mute-toggle
|
||||
# Volume raise with custom value
|
||||
bindsym XF86AudioRaiseVolume exec swayosd-client --output-volume 5
|
||||
# Volume lower with custom value
|
||||
bindsym XF86AudioLowerVolume exec swayosd-client --output-volume -5
|
||||
# Capslock (If you don't want to use the backend)
|
||||
bindsym --release Caps_Lock exec swayosd-client --caps-lock
|
||||
# Brightness raise with custom value('+' sign needed)
|
||||
bindsym XF86MonBrightnessUp exec swayosd-client --brightness +5
|
||||
# Brightness lower with custom value('-' sign needed)
|
||||
bindsym XF86MonBrightnessDown exec swayosd-client --brightness -5
|
||||
# Special key to take a screenshot with grim
|
||||
# bindsym Print exec ~/.config/sway/scripts/screenshot.sh
|
||||
bindsym Print exec flameshot gui
|
||||
# Lock the screen
|
||||
bindsym $mod+Alt+l exec $lockman
|
||||
|
||||
#
|
||||
# Status Bar:
|
||||
#
|
||||
# Read `man 5 sway-bar` for more information about this section.
|
||||
bar {
|
||||
swaybar_command waybar
|
||||
}
|
||||
|
||||
include $HOME/.config/sway/conf.d/*.conf
|
||||
0
sway/.config/sway/outputs
Normal file
10
sway/.config/sway/scripts/lockman.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Times the screen off and puts it to background
|
||||
swayidle \
|
||||
timeout 10 'swaymsg "output * dpms off"' \
|
||||
resume 'swaymsg "output * dpms on"' &
|
||||
# Locks the screen immediately
|
||||
swaylock -f --font "Noto Sans Regular" --font-size 16
|
||||
# Kills last background task so idle timer doesn't keep running
|
||||
kill %%
|
||||
43
sway/.config/sway/scripts/monitor_layout_selector.sh
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/bin/sh
|
||||
|
||||
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/wlr-layouts"
|
||||
LAYOUT_TOOL="wlr-randr"
|
||||
|
||||
mkdir -p "$CONFIG_DIR"
|
||||
|
||||
# Verifica che fzf sia installato
|
||||
if ! command -v fzf > /dev/null 2>&1; then
|
||||
echo "Errore: fzf non è installato." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Verifica che fyi sia installato
|
||||
if ! command -v fyi > /dev/null 2>&1; then
|
||||
echo "Errore: fyi non è installato." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Funzione: applica layout selezionato
|
||||
apply_layout() {
|
||||
local layout_file="$1"
|
||||
if [ -f "$layout_file" ]; then
|
||||
while IFS= read -r line; do
|
||||
[ -n "$line" ] && eval "$line"
|
||||
done < "$layout_file"
|
||||
fyi "Applied layout: $(basename "$layout_file")"
|
||||
else
|
||||
echo "File layout non trovato: $layout_file" >&2
|
||||
exit 2
|
||||
fi
|
||||
}
|
||||
|
||||
# Seleziona layout via fzf con preview
|
||||
SELECTED_FILE=$(find "$CONFIG_DIR" -type f -name '*.layout' \
|
||||
| fzf --prompt="Select layout > " \
|
||||
--preview="cat {}" \
|
||||
--preview-window=down:50%:wrap)
|
||||
|
||||
# Applica se selezionato
|
||||
if [ -n "$SELECTED_FILE" ]; then
|
||||
apply_layout "$SELECTED_FILE"
|
||||
fi
|
||||
8
sway/.config/sway/scripts/screenshot.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
file="$HOME/Pictures/Screenshots/$(date +%Y-%m-%dT%H:%M:%S).png"
|
||||
thumb="/tmp/screenshot-thumb.png"
|
||||
grim "$file" \
|
||||
&& wl-copy < "$file" \
|
||||
&& magick "$file" -resize 640x480 "$thumb" \
|
||||
&& fyi -i "$thumb" "📸 Catch screenshot"
|
||||
26
sway/.config/sway/themes/catppuccin-frappe
Normal file
@@ -0,0 +1,26 @@
|
||||
set $rosewater #f2d5cf
|
||||
set $flamingo #eebebe
|
||||
set $pink #f4b8e4
|
||||
set $mauve #ca9ee6
|
||||
set $red #e78284
|
||||
set $maroon #ea999c
|
||||
set $peach #ef9f76
|
||||
set $yellow #e5c890
|
||||
set $green #a6d189
|
||||
set $teal #81c8be
|
||||
set $sky #99d1db
|
||||
set $sapphire #85c1dc
|
||||
set $blue #8caaee
|
||||
set $lavender #babbf1
|
||||
set $text #c6d0f5
|
||||
set $subtext1 #b5bfe2
|
||||
set $subtext0 #a5adce
|
||||
set $overlay2 #949cbb
|
||||
set $overlay1 #838ba7
|
||||
set $overlay0 #737994
|
||||
set $surface2 #626880
|
||||
set $surface1 #51576d
|
||||
set $surface0 #414559
|
||||
set $base #303446
|
||||
set $mantle #292c3c
|
||||
set $crust #232634
|
||||
26
sway/.config/sway/themes/catppuccin-latte
Normal file
@@ -0,0 +1,26 @@
|
||||
set $rosewater #dc8a78
|
||||
set $flamingo #dd7878
|
||||
set $pink #ea76cb
|
||||
set $mauve #8839ef
|
||||
set $red #d20f39
|
||||
set $maroon #e64553
|
||||
set $peach #fe640b
|
||||
set $yellow #df8e1d
|
||||
set $green #40a02b
|
||||
set $teal #179299
|
||||
set $sky #04a5e5
|
||||
set $sapphire #209fb5
|
||||
set $blue #1e66f5
|
||||
set $lavender #7287fd
|
||||
set $text #4c4f69
|
||||
set $subtext1 #5c5f77
|
||||
set $subtext0 #6c6f85
|
||||
set $overlay2 #7c7f93
|
||||
set $overlay1 #8c8fa1
|
||||
set $overlay0 #9ca0b0
|
||||
set $surface2 #acb0be
|
||||
set $surface1 #bcc0cc
|
||||
set $surface0 #ccd0da
|
||||
set $base #eff1f5
|
||||
set $mantle #e6e9ef
|
||||
set $crust #dce0e8
|
||||
26
sway/.config/sway/themes/catppuccin-macchiato
Normal file
@@ -0,0 +1,26 @@
|
||||
set $rosewater #f4dbd6
|
||||
set $flamingo #f0c6c6
|
||||
set $pink #f5bde6
|
||||
set $mauve #c6a0f6
|
||||
set $red #ed8796
|
||||
set $maroon #ee99a0
|
||||
set $peach #f5a97f
|
||||
set $yellow #eed49f
|
||||
set $green #a6da95
|
||||
set $teal #8bd5ca
|
||||
set $sky #91d7e3
|
||||
set $sapphire #7dc4e4
|
||||
set $blue #8aadf4
|
||||
set $lavender #b7bdf8
|
||||
set $text #cad3f5
|
||||
set $subtext1 #b8c0e0
|
||||
set $subtext0 #a5adcb
|
||||
set $overlay2 #939ab7
|
||||
set $overlay1 #8087a2
|
||||
set $overlay0 #6e738d
|
||||
set $surface2 #5b6078
|
||||
set $surface1 #494d64
|
||||
set $surface0 #363a4f
|
||||
set $base #24273a
|
||||
set $mantle #1e2030
|
||||
set $crust #181926
|
||||
26
sway/.config/sway/themes/catppuccin-mocha
Normal file
@@ -0,0 +1,26 @@
|
||||
set $rosewater #f5e0dc
|
||||
set $flamingo #f2cdcd
|
||||
set $pink #f5c2e7
|
||||
set $mauve #cba6f7
|
||||
set $red #f38ba8
|
||||
set $maroon #eba0ac
|
||||
set $peach #fab387
|
||||
set $yellow #f9e2af
|
||||
set $green #a6e3a1
|
||||
set $teal #94e2d5
|
||||
set $sky #89dceb
|
||||
set $sapphire #74c7ec
|
||||
set $blue #89b4fa
|
||||
set $lavender #b4befe
|
||||
set $text #cdd6f4
|
||||
set $subtext1 #bac2de
|
||||
set $subtext0 #a6adc8
|
||||
set $overlay2 #9399b2
|
||||
set $overlay1 #7f849c
|
||||
set $overlay0 #6c7086
|
||||
set $surface2 #585b70
|
||||
set $surface1 #45475a
|
||||
set $surface0 #313244
|
||||
set $base #1e1e2e
|
||||
set $mantle #181825
|
||||
set $crust #11111b
|
||||
BIN
sway/.config/sway/wallpaper.jpg
Normal file
|
After Width: | Height: | Size: 249 KiB |
0
sway/.config/sway/workspaces
Normal file
30
sway/.config/swaylock/config
Normal file
@@ -0,0 +1,30 @@
|
||||
image=~/.config/swaylock/current_bg
|
||||
color=1e1e2e
|
||||
bs-hl-color=f5e0dc
|
||||
caps-lock-bs-hl-color=f5e0dc
|
||||
caps-lock-key-hl-color=a6e3a1
|
||||
inside-color=00000000
|
||||
inside-clear-color=00000000
|
||||
inside-caps-lock-color=00000000
|
||||
inside-ver-color=00000000
|
||||
inside-wrong-color=00000000
|
||||
key-hl-color=a6e3a1
|
||||
layout-bg-color=00000000
|
||||
layout-border-color=00000000
|
||||
layout-text-color=cdd6f4
|
||||
line-color=00000000
|
||||
line-clear-color=00000000
|
||||
line-caps-lock-color=00000000
|
||||
line-ver-color=00000000
|
||||
line-wrong-color=00000000
|
||||
ring-color=b4befe
|
||||
ring-clear-color=f5e0dc
|
||||
ring-caps-lock-color=fab387
|
||||
ring-ver-color=89b4fa
|
||||
ring-wrong-color=eba0ac
|
||||
separator-color=00000000
|
||||
text-color=cdd6f4
|
||||
text-clear-color=f5e0dc
|
||||
text-caps-lock-color=fab387
|
||||
text-ver-color=89b4fa
|
||||
text-wrong-color=eba0ac
|
||||
BIN
sway/.config/swaylock/current_bg
Normal file
|
After Width: | Height: | Size: 276 KiB |
43
sway/.config/swayosd/style.css
Normal file
@@ -0,0 +1,43 @@
|
||||
* {
|
||||
font-family: "Noto Sans Regular";
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
window#osd {
|
||||
border-radius: 999px;
|
||||
border: none;
|
||||
background: #{"alpha(@theme_bg_color, 0.8)"};
|
||||
|
||||
#container {
|
||||
margin: 16px;
|
||||
}
|
||||
|
||||
image,
|
||||
label {
|
||||
color: #{"@theme_fg_color"};
|
||||
}
|
||||
|
||||
progressbar:disabled,
|
||||
image:disabled {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
progressbar {
|
||||
min-height: 6px;
|
||||
border-radius: 999px;
|
||||
background: transparent;
|
||||
border: none;
|
||||
}
|
||||
trough {
|
||||
min-height: inherit;
|
||||
border-radius: inherit;
|
||||
border: none;
|
||||
background: #{"alpha(@theme_fg_color, 0.5)"};
|
||||
}
|
||||
progress {
|
||||
min-height: inherit;
|
||||
border-radius: inherit;
|
||||
border: none;
|
||||
background: #{"@theme_fg_color"};
|
||||
}
|
||||
}
|
||||
164
sway/.config/waybar/config.jsonc
Normal file
@@ -0,0 +1,164 @@
|
||||
{
|
||||
"layer": "top", // Waybar at top layer
|
||||
"position": "top", // Waybar position (top|bottom|left|right)
|
||||
"modules-left": [
|
||||
"sway/workspaces"
|
||||
],
|
||||
"modules-center": [
|
||||
"custom/music"
|
||||
],
|
||||
"modules-right": [
|
||||
"temperature",
|
||||
"memory",
|
||||
"cpu",
|
||||
"pulseaudio",
|
||||
"backlight",
|
||||
"network",
|
||||
"bluetooth",
|
||||
"battery",
|
||||
"clock",
|
||||
"custom/powermenu",
|
||||
"tray"
|
||||
],
|
||||
"custom/launcher": {
|
||||
"format": " " ,
|
||||
"on-click": "fuzzel &",
|
||||
"tooltip": false
|
||||
},
|
||||
"sway/workspaces": {
|
||||
"disable-scroll": true,
|
||||
"disable-markup": false,
|
||||
"all-outputs": true,
|
||||
"sort-by-number": true,
|
||||
"format": "{index}",
|
||||
"on-click": "activate",
|
||||
"format-icons": {
|
||||
"1": "",
|
||||
"2": "",
|
||||
"3": "",
|
||||
"4": "",
|
||||
"5": "",
|
||||
"urgent": "",
|
||||
"active": "",
|
||||
"default": ""
|
||||
},
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
},
|
||||
"tooltip": false
|
||||
},
|
||||
"backlight": {
|
||||
"device": "intel_backlight",
|
||||
"on-scroll-up": "light -A 5",
|
||||
"on-scroll-down": "light -U 5",
|
||||
"format": "{percent}% {icon}",
|
||||
"format-icons": [ "", "", "", "", "", "", "", "", "" ]
|
||||
},
|
||||
"pulseaudio": {
|
||||
"scroll-step": 1,
|
||||
"format": "{volume}% {icon}",
|
||||
"format-muted": " {format_source}",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", " "]
|
||||
},
|
||||
"on-click": "pavucontrol &",
|
||||
//"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
|
||||
},
|
||||
"battery": {
|
||||
"interval": 10,
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
"format-icons": [ "", "", "", "", "", "", "", "", "" ]
|
||||
},
|
||||
"clock": {
|
||||
"interval": 1,
|
||||
"timezone": "Europe/Rome",
|
||||
"format": "{:%I:%M %p}",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"format-alt": "{:%A %d/%m/%Y}",
|
||||
},
|
||||
"memory": {
|
||||
"interval": 1,
|
||||
"format": "{percentage}% ",
|
||||
"states": {
|
||||
"warning": 85,
|
||||
},
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 1,
|
||||
"format": "{usage}% ",
|
||||
"tooltip": false
|
||||
},
|
||||
"mpd": {
|
||||
"max-length": 25,
|
||||
"format": "<span foreground='#bb9af7'></span> {title}",
|
||||
"format-paused": " {title}",
|
||||
"format-stopped":"<span foreground='#bb9af7'></span>",
|
||||
"format-disconnected": "",
|
||||
"on-click": "mpc --quiet toggle",
|
||||
"on-click-right": "mpc ls | mpc add",
|
||||
"on-click-middle": "kitty ncmpcpp",
|
||||
"on-scroll-up": "mpc --quiet prev",
|
||||
"on-scroll-down": "mpc --quiet next",
|
||||
"smooth-scrolling-threshold":5,
|
||||
"tooltip-format": "{title} - {artist} ({elapsedTime:%M:%S}/{totalTime:%H:%M:%S})"
|
||||
},
|
||||
"network": {
|
||||
"interval": 1,
|
||||
"tooltip": true,
|
||||
"format-wifi": "{icon}",
|
||||
"format-ethernet": "{icon}",
|
||||
"format-linked": "",
|
||||
"format-icons": ["", "", "", ""],
|
||||
"format-disconnected": "",
|
||||
"tooltip-format": "{ifname}",
|
||||
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"tooltip-format-ethernet": "{ifname} ",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
"on-click": "nm-connection-editor &",
|
||||
},
|
||||
"temperature": {
|
||||
"hwmon-path": "/sys/class/hwmon/hwmon6/temp2_input",
|
||||
"tooltip": false,
|
||||
"format": "{temperatureC}°C "
|
||||
},
|
||||
"custom/powermenu": {
|
||||
"format": "",
|
||||
"on-click": "wlogout &",
|
||||
"tooltip": false
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 15,
|
||||
"spacing": 5
|
||||
},
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-connected": "{device_alias} ",
|
||||
"format-connected-battery": "{device_alias} {device_battery_percentage}% ",
|
||||
"format-off": "", // "format-device-preference": [ "device1", "device2" ], // preference list deciding the displayed device
|
||||
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
|
||||
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
|
||||
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%",
|
||||
"on-click": "blueman-manager &"
|
||||
},
|
||||
"custom/music": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"exec": "waybar-module-music",
|
||||
}
|
||||
}
|
||||
145
sway/.config/waybar/style.css
Normal file
@@ -0,0 +1,145 @@
|
||||
@import "themes/mocha.css";
|
||||
|
||||
* {
|
||||
font-family: "ComicShannsMono Nerd Font";
|
||||
font-size: 12pt;
|
||||
font-weight: bold;
|
||||
border-radius: 0px;
|
||||
transition-property: background-color;
|
||||
transition-duration: 0.5s;
|
||||
}
|
||||
@keyframes blink_red {
|
||||
to {
|
||||
background-color: @flamingo;
|
||||
color: @mantle;
|
||||
}
|
||||
}
|
||||
.warning, .critical, .urgent {
|
||||
animation-name: blink_red;
|
||||
animation-duration: 1s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
window#waybar {
|
||||
background-color: transparent;
|
||||
}
|
||||
window > box {
|
||||
/* margin-left: 5px; */
|
||||
/* margin-right: 5px; */
|
||||
/* margin-top: 5px; */
|
||||
background-color: @base;
|
||||
}
|
||||
#workspaces {
|
||||
padding-left: 0px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
#workspaces button {
|
||||
color: @teal;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
#workspaces button.focused {
|
||||
background-color: @teal;
|
||||
color: @mantle;
|
||||
}
|
||||
#workspaces button.urgent {
|
||||
color: @mantle;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
background-color: @peach;
|
||||
color: @mantle;
|
||||
}
|
||||
tooltip {
|
||||
background: @surface0;
|
||||
}
|
||||
tooltip label {
|
||||
color: @text;
|
||||
}
|
||||
#custom-launcher {
|
||||
padding-left: 8px;
|
||||
padding-right: 6px;
|
||||
color: @mauve;
|
||||
}
|
||||
#mode, #clock, #memory, #temperature, #cpu, #mpd, #idle_inhibitor, #temperature, #backlight, #pulseaudio, #network, #battery, #custom-powermenu, #bluetooth, #custom-music {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
#memory {
|
||||
color: @teal;
|
||||
}
|
||||
#cpu {
|
||||
color: @pink;
|
||||
}
|
||||
#clock {
|
||||
color: @text;
|
||||
}
|
||||
#idle_inhibitor {
|
||||
color: @mauve;
|
||||
}
|
||||
#temperature {
|
||||
color: @sapphire;
|
||||
}
|
||||
#backlight {
|
||||
color: @peach;
|
||||
}
|
||||
#pulseaudio {
|
||||
color: @rosewater;
|
||||
}
|
||||
#network {
|
||||
color: @green;
|
||||
}
|
||||
#network.disconnected {
|
||||
color: @text;
|
||||
}
|
||||
#battery {
|
||||
color: @sky;
|
||||
}
|
||||
#battery.charging {
|
||||
color: @green;
|
||||
}
|
||||
#battery.full, #battery.discharging {
|
||||
color: @yellow;
|
||||
}
|
||||
#battery.critical:not(.charging) {
|
||||
color: @red;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
#custom-powermenu {
|
||||
color: @red;
|
||||
}
|
||||
#tray {
|
||||
padding-right: 8px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
#mpd.paused {
|
||||
color: @blue;
|
||||
font-style: italic;
|
||||
}
|
||||
#mpd.stopped {
|
||||
background: transparent;
|
||||
}
|
||||
#mpd {
|
||||
color: @sky;
|
||||
}
|
||||
#bluetooth {
|
||||
color: @blue;
|
||||
}
|
||||
#custom-launcher {
|
||||
color: @text;
|
||||
}
|
||||
#custom-music.playing {
|
||||
color: @green;
|
||||
}
|
||||
#custom-music.paused {
|
||||
color: @maroon;
|
||||
}
|
||||
#custom-music.stopped {
|
||||
color: @peach;
|
||||
}
|
||||
26
sway/.config/waybar/themes/frappe.css
Normal file
@@ -0,0 +1,26 @@
|
||||
@define-color rosewater #f2d5cf;
|
||||
@define-color flamingo #eebebe;
|
||||
@define-color pink #f4b8e4;
|
||||
@define-color mauve #ca9ee6;
|
||||
@define-color red #e78284;
|
||||
@define-color maroon #ea999c;
|
||||
@define-color peach #ef9f76;
|
||||
@define-color yellow #e5c890;
|
||||
@define-color green #a6d189;
|
||||
@define-color teal #81c8be;
|
||||
@define-color sky #99d1db;
|
||||
@define-color sapphire #85c1dc;
|
||||
@define-color blue #8caaee;
|
||||
@define-color lavender #babbf1;
|
||||
@define-color text #c6d0f5;
|
||||
@define-color subtext1 #b5bfe2;
|
||||
@define-color subtext0 #a5adce;
|
||||
@define-color overlay2 #949cbb;
|
||||
@define-color overlay1 #838ba7;
|
||||
@define-color overlay0 #737994;
|
||||
@define-color surface2 #626880;
|
||||
@define-color surface1 #51576d;
|
||||
@define-color surface0 #414559;
|
||||
@define-color base #303446;
|
||||
@define-color mantle #292c3c;
|
||||
@define-color crust #232634;
|
||||
26
sway/.config/waybar/themes/latte.css
Normal file
@@ -0,0 +1,26 @@
|
||||
@define-color rosewater #dc8a78;
|
||||
@define-color flamingo #dd7878;
|
||||
@define-color pink #ea76cb;
|
||||
@define-color mauve #8839ef;
|
||||
@define-color red #d20f39;
|
||||
@define-color maroon #e64553;
|
||||
@define-color peach #fe640b;
|
||||
@define-color yellow #df8e1d;
|
||||
@define-color green #40a02b;
|
||||
@define-color teal #179299;
|
||||
@define-color sky #04a5e5;
|
||||
@define-color sapphire #209fb5;
|
||||
@define-color blue #1e66f5;
|
||||
@define-color lavender #7287fd;
|
||||
@define-color text #4c4f69;
|
||||
@define-color subtext1 #5c5f77;
|
||||
@define-color subtext0 #6c6f85;
|
||||
@define-color overlay2 #7c7f93;
|
||||
@define-color overlay1 #8c8fa1;
|
||||
@define-color overlay0 #9ca0b0;
|
||||
@define-color surface2 #acb0be;
|
||||
@define-color surface1 #bcc0cc;
|
||||
@define-color surface0 #ccd0da;
|
||||
@define-color base #eff1f5;
|
||||
@define-color mantle #e6e9ef;
|
||||
@define-color crust #dce0e8;
|
||||
26
sway/.config/waybar/themes/macchiato.css
Normal file
@@ -0,0 +1,26 @@
|
||||
@define-color rosewater #f4dbd6;
|
||||
@define-color flamingo #f0c6c6;
|
||||
@define-color pink #f5bde6;
|
||||
@define-color mauve #c6a0f6;
|
||||
@define-color red #ed8796;
|
||||
@define-color maroon #ee99a0;
|
||||
@define-color peach #f5a97f;
|
||||
@define-color yellow #eed49f;
|
||||
@define-color green #a6da95;
|
||||
@define-color teal #8bd5ca;
|
||||
@define-color sky #91d7e3;
|
||||
@define-color sapphire #7dc4e4;
|
||||
@define-color blue #8aadf4;
|
||||
@define-color lavender #b7bdf8;
|
||||
@define-color text #cad3f5;
|
||||
@define-color subtext1 #b8c0e0;
|
||||
@define-color subtext0 #a5adcb;
|
||||
@define-color overlay2 #939ab7;
|
||||
@define-color overlay1 #8087a2;
|
||||
@define-color overlay0 #6e738d;
|
||||
@define-color surface2 #5b6078;
|
||||
@define-color surface1 #494d64;
|
||||
@define-color surface0 #363a4f;
|
||||
@define-color base #24273a;
|
||||
@define-color mantle #1e2030;
|
||||
@define-color crust #181926;
|
||||
26
sway/.config/waybar/themes/mocha.css
Normal file
@@ -0,0 +1,26 @@
|
||||
@define-color rosewater #f5e0dc;
|
||||
@define-color flamingo #f2cdcd;
|
||||
@define-color pink #f5c2e7;
|
||||
@define-color mauve #cba6f7;
|
||||
@define-color red #f38ba8;
|
||||
@define-color maroon #eba0ac;
|
||||
@define-color peach #fab387;
|
||||
@define-color yellow #f9e2af;
|
||||
@define-color green #a6e3a1;
|
||||
@define-color teal #94e2d5;
|
||||
@define-color sky #89dceb;
|
||||
@define-color sapphire #74c7ec;
|
||||
@define-color blue #89b4fa;
|
||||
@define-color lavender #b4befe;
|
||||
@define-color text #cdd6f4;
|
||||
@define-color subtext1 #bac2de;
|
||||
@define-color subtext0 #a6adc8;
|
||||
@define-color overlay2 #9399b2;
|
||||
@define-color overlay1 #7f849c;
|
||||
@define-color overlay0 #6c7086;
|
||||
@define-color surface2 #585b70;
|
||||
@define-color surface1 #45475a;
|
||||
@define-color surface0 #313244;
|
||||
@define-color base #1e1e2e;
|
||||
@define-color mantle #181825;
|
||||
@define-color crust #11111b;
|
||||
7
sway/.config/wlogout/icons/hibernate.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg fill="#f9e2af" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
|
||||
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
|
||||
<g><g><path d="M500,10C229.4,10,10,229.4,10,500s219.4,490,490,490s490-219.4,490-490S770.6,10,500,10z M500,885.1c-212.7,0-385.1-172.4-385.1-385.1S287.3,114.9,500,114.9S885.1,287.3,885.1,500S712.7,885.1,500,885.1z M576.5,308.7v382.4c0,42.2-34.2,76.5-76.5,76.5c-42.3,0-76.5-34.2-76.5-76.5V308.7c0-42.2,34.2-76.5,76.5-76.5C542.2,232.3,576.5,266.5,576.5,308.7z"/></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 969 B |
7
sway/.config/wlogout/icons/lock.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg fill="#89b4fa" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
|
||||
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
|
||||
<g><g><path d="M321.8,455.5h356.4V321.8c0-49.2-17.4-91.2-52.2-126c-34.8-34.8-76.8-52.2-126-52.2c-49.2,0-91.2,17.4-126,52.2c-34.8,34.8-52.2,76.8-52.2,126L321.8,455.5L321.8,455.5z M900.9,522.3v400.9c0,18.6-6.5,34.3-19.5,47.3c-13,13-28.8,19.5-47.3,19.5H165.9c-18.6,0-34.3-6.5-47.3-19.5s-19.5-28.8-19.5-47.3V522.3c0-18.6,6.5-34.3,19.5-47.3c13-13,28.8-19.5,47.3-19.5h22.3V321.8c0-85.4,30.6-158.7,91.9-219.9C341.3,40.6,414.6,10,500,10c85.4,0,158.7,30.6,219.9,91.9c61.3,61.3,91.9,134.6,91.9,219.9v133.6h22.3c18.6,0,34.3,6.5,47.3,19.5C894.4,487.9,900.9,503.7,900.9,522.3L900.9,522.3z"/></g></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
7
sway/.config/wlogout/icons/logout.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg fill="#f5c2e7" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
|
||||
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
|
||||
<g><path d="M622.5,990H50.8C26.3,990,10,973.7,10,949.2V50.8C10,26.3,26.3,10,50.8,10h571.7c24.5,0,40.8,16.3,40.8,40.8v285.8c0,24.5-16.3,40.8-40.8,40.8s-40.8-16.3-40.8-40.8v-245h-490v816.7h490v-245c0-24.5,16.3-40.8,40.8-40.8s40.8,16.3,40.8,40.8v285.8C663.3,973.7,647,990,622.5,990z"/><path d="M949.2,540.8H336.7c-24.5,0-40.8-16.3-40.8-40.8c0-24.5,16.3-40.8,40.8-40.8h612.5c24.5,0,40.8,16.3,40.8,40.8C990,524.5,973.7,540.8,949.2,540.8z"/><path d="M949.2,540.8c-12.3,0-20.4-4.1-28.6-12.3L757.3,365.3c-16.3-16.3-16.3-40.8,0-57.2c16.3-16.3,40.8-16.3,57.2,0l163.3,163.3c16.3,16.3,16.3,40.8,0,57.2C969.6,536.8,961.4,540.8,949.2,540.8z"/><path d="M785.8,704.2c-12.3,0-20.4-4.1-28.6-12.3c-16.3-16.3-16.3-40.8,0-57.2l163.3-163.3c16.3-16.3,40.8-16.3,57.2,0c16.3,16.3,16.3,40.8,0,57.2L814.4,691.9C806.3,700.1,798.1,704.2,785.8,704.2z"/></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
7
sway/.config/wlogout/icons/reboot.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg fill="#a6e3a1" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
|
||||
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
|
||||
<g><path d="M134.6,285.6C64.9,420.7,60.1,590,137.1,723.4L42,668.5l-32,55.4c93.1,52.1,133.6,75.9,184,106.2c28.5-51.5,52.8-94.4,107.4-186.1L246,612l-53.4,92.5C65.4,502.7,167.2,200.3,398.8,126.2C638,29.3,929,223.5,931.5,481.5c19.6,236.7-208.9,443.6-439.3,416.2l-29.5,51c277.7,54.4,556.5-201.7,524.7-483.1C976.1,170.8,637.1-41.2,367.1,77.5C262.8,114.2,183.1,191.5,134.6,285.6z"/></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 877 B |
7
sway/.config/wlogout/icons/shutdown.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg fill="#f38ba8" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
|
||||
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
|
||||
<g><path d="M764,152.1c30.9,22,58.3,46.8,82.4,74.6c24,27.8,44.6,57.8,61.8,90.1c17.2,32.3,30.2,66.4,39.1,102.4c8.9,36,13.4,72.6,13.4,109.6c0,63.8-12.2,123.7-36.5,179.6c-24.4,55.9-57.3,104.7-98.8,146.2c-41.5,41.5-90.2,74.5-146.2,98.8C623.2,977.8,563.3,990,499.5,990c-63.1,0-122.7-12.2-178.6-36.5c-55.9-24.4-104.8-57.3-146.7-98.8c-41.9-41.5-74.8-90.2-98.8-146.2c-24-55.9-36-115.8-36-179.6c0-36.4,4.3-72.1,12.9-107.1c8.6-35,20.8-68.3,36.5-99.9c15.8-31.6,35.3-61.1,58.7-88.5c23.3-27.5,49.4-52.2,78.2-74.1c15.1-11,31.4-15.1,48.9-12.4c17.5,2.7,31.7,11.3,42.7,25.7c11,14.4,15.1,30.5,12.4,48.4c-2.7,17.8-11.3,32.3-25.7,43.2c-43.2,31.6-76.4,70.3-99.3,116.3c-23,46-34.5,95.4-34.5,148.2c0,45.3,8.6,88,25.7,128.2c17.2,40.1,40.7,75.1,70.5,105c29.9,29.9,64.9,53.5,105,71c40.1,17.5,82.9,26.3,128.2,26.3c45.3,0,88-8.7,128.2-26.3c40.1-17.5,75.1-41.2,105-71s53.5-64.9,71-105c17.5-40.1,26.3-82.9,26.3-128.2c0-53.5-12.4-104.1-37.1-151.8c-24.7-47.7-59.4-87-104-117.9c-15.1-10.3-24.2-24.4-27.3-42.2c-3.1-17.8,0.5-34.3,10.8-49.4c10.3-14.4,24.4-23.2,42.2-26.2C732.5,138.2,748.9,141.8,764,152.1L764,152.1z M499.5,531.9c-17.8,0-33.1-6.3-45.8-19c-12.7-12.7-19-28-19-45.8V75.9c0-17.8,6.3-33.3,19-46.3c12.7-13,28-19.6,45.8-19.6c18.5,0,34.1,6.5,46.8,19.6c12.7,13,19,28.5,19,46.3v391.2c0,17.8-6.3,33.1-19,45.8C533.6,525.6,518,531.9,499.5,531.9L499.5,531.9z"/></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
7
sway/.config/wlogout/icons/suspend.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg fill="#fab387" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
|
||||
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
|
||||
<g><path d="M500,990c-66.1,0-130.3-13-190.7-38.5c-58.4-24.7-110.8-60-155.7-105s-80.3-97.4-105-155.7C23,630.3,10,566.1,10,500c0-66.1,13-130.3,38.5-190.7c24.7-58.4,60-110.8,105-155.7c45-45,97.4-80.3,155.7-105C369.7,23,433.9,10,500,10c66.1,0,130.3,13,190.7,38.5c58.4,24.7,110.8,60,155.7,105c45,45,80.3,97.4,105,155.7C977,369.7,990,433.9,990,500c0,66.1-13,130.3-38.5,190.7c-24.7,58.4-60,110.8-105,155.7s-97.4,80.3-155.7,105C630.3,977,566.1,990,500,990z M500,79.6c-112.3,0-217.9,43.7-297.3,123.1C123.3,282.1,79.6,387.7,79.6,500s43.7,217.9,123.1,297.3c79.4,79.4,185,123.1,297.3,123.1c112.3,0,217.9-43.7,297.3-123.1c79.4-79.4,123.1-185,123.1-297.3s-43.7-217.9-123.1-297.3C717.9,123.3,612.3,79.6,500,79.6z"/><path d="M322.5,290.6h108v412h-108V290.6z"/><path d="M561.6,290.6h107.9v412H561.6V290.6z"/></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
53
sway/.config/wlogout/style.css
Normal file
@@ -0,0 +1,53 @@
|
||||
* {
|
||||
font-family: "Noto Sans Regular";
|
||||
font-size: 12pt;
|
||||
background-image: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: rgba(30, 30, 46, 0.90);
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 0;
|
||||
border-color: #89b4fa;
|
||||
text-decoration-color: #cdd6f4;
|
||||
color: #cdd6f4;
|
||||
background-color: #181825;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 25%;
|
||||
}
|
||||
|
||||
button:focus, button:active, button:hover {
|
||||
/* 20% Overlay 2, 80% mantle */
|
||||
background-color: rgb(48, 50, 66);
|
||||
outline-style: none;
|
||||
}
|
||||
|
||||
#lock {
|
||||
background-image: url("/home/fscotto/.config/wlogout/icons/lock.svg");
|
||||
}
|
||||
|
||||
#logout {
|
||||
background-image: url("/home/fscotto/.config/wlogout/icons/logout.svg");
|
||||
}
|
||||
|
||||
#suspend {
|
||||
background-image: url("/home/fscotto/.config/wlogout/icons/suspend.svg");
|
||||
}
|
||||
|
||||
#hibernate {
|
||||
background-image: url("/home/fscotto/.config/wlogout/icons/hibernate.svg");
|
||||
}
|
||||
|
||||
#shutdown {
|
||||
background-image: url("/home/fscotto/.config/wlogout/icons/shutdown.svg");
|
||||
}
|
||||
|
||||
#reboot {
|
||||
background-image: url("/home/fscotto/.config/wlogout/icons/reboot.svg");
|
||||
}
|
||||