Compare commits
61 Commits
wayland
...
5ab4606691
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5ab4606691 | ||
|
|
f136aaa030 | ||
|
|
8340512f17 | ||
|
|
88f17ff438 | ||
|
|
5948c1256a | ||
|
|
db4f52a064 | ||
|
|
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 | ||
|
|
04bc54a80c | ||
|
|
754aa9d191 | ||
|
|
9acf200418 | ||
|
|
90fa090890 | ||
|
|
07785f0f99 | ||
|
|
e89bb2627c | ||
|
|
161dc09e25 | ||
|
|
846b5541f9 | ||
|
|
6a03bc9198 | ||
|
|
85d13e762f | ||
|
|
a575826bb6 | ||
|
|
8561e961eb | ||
|
|
c7126a86ef | ||
|
|
1ea23f4510 | ||
|
|
274ec45f75 | ||
|
|
04bd67e289 | ||
|
|
ad83e5a63a | ||
|
|
9e70682bd3 | ||
|
|
7d2ffb2fc9 | ||
|
|
56af90de63 | ||
|
|
c8566553cf | ||
|
|
37e092c031 | ||
|
|
ea7b586c3c | ||
|
|
b1a91911c8 | ||
|
|
a2645ca3e3 | ||
|
|
79deef489a | ||
|
|
909b6423e0 | ||
|
|
485841b483 | ||
|
|
1591397b9c |
32
README.md
32
README.md
@@ -11,8 +11,9 @@ Each directory in this repository corresponds to a specific application or tool,
|
|||||||
> Example usage (from the repository root):
|
> Example usage (from the repository root):
|
||||||
>
|
>
|
||||||
> ```bash
|
> ```bash
|
||||||
> stow nvim
|
> stow bash
|
||||||
> stow zsh
|
> stow i3
|
||||||
|
> stow doom
|
||||||
> ```
|
> ```
|
||||||
|
|
||||||
### 🧩 Included Tools & Configurations
|
### 🧩 Included Tools & Configurations
|
||||||
@@ -20,34 +21,31 @@ Each directory in this repository corresponds to a specific application or tool,
|
|||||||
This repository contains my configuration files for the following tools:
|
This repository contains my configuration files for the following tools:
|
||||||
|
|
||||||
- **Shells & Prompt**
|
- **Shells & Prompt**
|
||||||
- `zsh` + `starship`
|
- `bash` (Oh My Bash)
|
||||||
|
- `starship`
|
||||||
- **Terminal Emulators & Multiplexer**
|
- **Terminal Emulators & Multiplexer**
|
||||||
- `alacritty`
|
- `alacritty`
|
||||||
- `foot`
|
|
||||||
- `tmux`
|
- `tmux`
|
||||||
- **Editors & CLI Tools**
|
- **Editors & CLI Tools**
|
||||||
- `neovim` (with LazyVim)
|
- `doom` (Doom Emacs config)
|
||||||
- `doom emacs`
|
- `emacs` (Custom config)
|
||||||
- `git`
|
- `git`
|
||||||
- `lazygit`
|
|
||||||
- **X11 Environment**
|
- **X11 Environment**
|
||||||
- `rofi` (launcher)
|
- `i3` (Window Manager)
|
||||||
- `polybar` (status bar)
|
|
||||||
- `dunst` (notification daemon)
|
|
||||||
- `i3` (window manager)
|
|
||||||
- `picom` (X11 compositor)
|
- `picom` (X11 compositor)
|
||||||
- **Wayland Environment**
|
- `polybar` (status bar)
|
||||||
- `fuzzel` (launcher)
|
- `rofi` (launcher)
|
||||||
- `waybar` (status bar)
|
- `dunst` (notification daemon)
|
||||||
|
- **Wayland Environment**
|
||||||
|
- `sway` (Window Manager)
|
||||||
|
- `waybar` (status bar)
|
||||||
|
- `rofi` (launcher)
|
||||||
- `dunst` (notification daemon)
|
- `dunst` (notification daemon)
|
||||||
- `sway` (window manager)
|
|
||||||
- **Utilities**
|
- **Utilities**
|
||||||
- `fastfetch`
|
- `fastfetch`
|
||||||
- `zoxide`
|
- `zoxide`
|
||||||
- `mpv`
|
|
||||||
- `yt-dlp`
|
- `yt-dlp`
|
||||||
- `flameshot`
|
- `flameshot`
|
||||||
- `newsboat`
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
54
bash/.bashrc
54
bash/.bashrc
@@ -1,7 +1,7 @@
|
|||||||
# Enable the subsequent settings only in interactive sessions
|
# Enable the subsequent settings only in interactive sessions
|
||||||
case $- in
|
case $- in
|
||||||
*i*) ;;
|
*i*) ;;
|
||||||
*) return;;
|
*) return ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Path to your oh-my-bash installation.
|
# Path to your oh-my-bash installation.
|
||||||
@@ -9,7 +9,7 @@ export OSH='/home/fscotto/.oh-my-bash'
|
|||||||
|
|
||||||
# Set name of the theme to load. Optionally, if you set this to "random"
|
# Set name of the theme to load. Optionally, if you set this to "random"
|
||||||
# it'll load a random theme each time that oh-my-bash is loaded.
|
# it'll load a random theme each time that oh-my-bash is loaded.
|
||||||
OSH_THEME="robbyrussell"
|
# OSH_THEME="robbyrussell"
|
||||||
|
|
||||||
# If you set OSH_THEME to "random", you can ignore themes you don't like.
|
# If you set OSH_THEME to "random", you can ignore themes you don't like.
|
||||||
# OMB_THEME_RANDOM_IGNORED=("powerbash10k" "wanelo")
|
# OMB_THEME_RANDOM_IGNORED=("powerbash10k" "wanelo")
|
||||||
@@ -91,18 +91,27 @@ OMB_USE_SUDO=true
|
|||||||
# Add wisely, as too many completions slow down shell startup.
|
# Add wisely, as too many completions slow down shell startup.
|
||||||
completions=(
|
completions=(
|
||||||
asdf
|
asdf
|
||||||
|
brew
|
||||||
docker
|
docker
|
||||||
docker-compose
|
docker-compose
|
||||||
gh
|
gh
|
||||||
git
|
git
|
||||||
go
|
go
|
||||||
|
helm
|
||||||
|
kubectl
|
||||||
makefile
|
makefile
|
||||||
|
maven
|
||||||
|
minikube
|
||||||
npm
|
npm
|
||||||
|
nvm
|
||||||
|
oc
|
||||||
pip3
|
pip3
|
||||||
|
pip
|
||||||
|
sdkman
|
||||||
|
ssh
|
||||||
system
|
system
|
||||||
tmux
|
tmux
|
||||||
composer
|
vagrant
|
||||||
ssh
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Which aliases would you like to load? (aliases can be found in ~/.oh-my-bash/aliases/*)
|
# Which aliases would you like to load? (aliases can be found in ~/.oh-my-bash/aliases/*)
|
||||||
@@ -118,12 +127,8 @@ aliases=(
|
|||||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||||
# Add wisely, as too many plugins slow down shell startup.
|
# Add wisely, as too many plugins slow down shell startup.
|
||||||
plugins=(
|
plugins=(
|
||||||
bashmarks
|
|
||||||
bash-preexec
|
bash-preexec
|
||||||
cargo
|
|
||||||
colored-man-pages
|
colored-man-pages
|
||||||
git
|
|
||||||
zoxide
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Which plugins would you like to conditionally load? (plugins can be found in ~/.oh-my-bash/plugins/*)
|
# Which plugins would you like to conditionally load? (plugins can be found in ~/.oh-my-bash/plugins/*)
|
||||||
@@ -164,8 +169,31 @@ source "$OSH"/oh-my-bash.sh
|
|||||||
# Set personal aliases, overriding those provided by oh-my-bash libs,
|
# Set personal aliases, overriding those provided by oh-my-bash libs,
|
||||||
# plugins, and themes. Aliases can be placed here, though oh-my-bash
|
# plugins, and themes. Aliases can be placed here, though oh-my-bash
|
||||||
# users are encouraged to define aliases within the OSH_CUSTOM folder.
|
# users are encouraged to define aliases within the OSH_CUSTOM folder.
|
||||||
# For a full list of active aliases, run `alias`.
|
# For a full list of active aliases, run `
|
||||||
#
|
|
||||||
# Example aliases
|
# export EDITOR="emacs -nw"
|
||||||
# alias bashconfig="mate ~/.bashrc"
|
# export VISUAL="emacs"
|
||||||
# alias ohmybash="mate ~/.oh-my-bash"
|
|
||||||
|
alias ls='ls --color=auto --group-directories-first'
|
||||||
|
alias lsx='ls -AXF'
|
||||||
|
|
||||||
|
# Replace grep command tool
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias egrep='grep -E'
|
||||||
|
alias fgrep='grep -F'
|
||||||
|
|
||||||
|
# Other aliases
|
||||||
|
alias paths='echo -e ${PATH//:/\\n}' # path: Echo all executable Paths
|
||||||
|
alias userlist="cut -d: -f1 /etc/passwd | sort"
|
||||||
|
alias ip='ip -color'
|
||||||
|
alias stow='stow -d $DOTFILES '
|
||||||
|
|
||||||
|
# User specific aliases and functions
|
||||||
|
if [ -d ~/.bashrc.d ]; then
|
||||||
|
for rc in ~/.bashrc.d/*; do
|
||||||
|
if [ -f "$rc" ]; then
|
||||||
|
. "$rc"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
unset rc
|
||||||
|
|||||||
5
bash/.bashrc.d/homebrew.sh
Executable file
5
bash/.bashrc.d/homebrew.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if command -v /home/linuxbrew/.linuxbrew/bin/brew >/dev/null 2>&1; then
|
||||||
|
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
||||||
|
fi
|
||||||
6
bash/.bashrc.d/java.sh
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
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
Executable file
6
bash/.bashrc.d/starship.sh
Executable 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
|
||||||
5
bash/.bashrc.d/zoxide.sh
Executable file
5
bash/.bashrc.d/zoxide.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if command -v /home/linuxbrew/.linuxbrew/bin/zoxide >/dev/null 2>&1; then
|
||||||
|
eval "$(/home/linuxbrew/.linuxbrew/bin/zoxide init bash)"
|
||||||
|
fi
|
||||||
@@ -1,15 +1,3 @@
|
|||||||
function appendpath() {
|
|
||||||
local location="${1}"
|
|
||||||
case ":$PATH:" in
|
|
||||||
*":$location:"*) ;;
|
|
||||||
*) export PATH="$PATH:$location" ;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
appendpath "$HOME/.local/bin"
|
|
||||||
appendpath "$HOME/.config/emacs/bin"
|
|
||||||
unset appendpath
|
|
||||||
|
|
||||||
# XDG variables
|
# XDG variables
|
||||||
export XDG_CONFIG_HOME=${HOME}/.config
|
export XDG_CONFIG_HOME=${HOME}/.config
|
||||||
export XDG_DATA_HOME=${HOME}/.local/share
|
export XDG_DATA_HOME=${HOME}/.local/share
|
||||||
@@ -21,33 +9,45 @@ export GTK2_RC_FILES=${XDG_CONFIG_HOME}/gtk-2.0/gtkrc-2.0
|
|||||||
|
|
||||||
# Enable QT apps to have gtk theme
|
# Enable QT apps to have gtk theme
|
||||||
export QT_QPA_PLATFORMTHEME=qt5ct
|
export QT_QPA_PLATFORMTHEME=qt5ct
|
||||||
|
export QT_STYLE_OVERRIDE=kvantum
|
||||||
|
|
||||||
# Make Qt apps honour DPI settings.
|
# Make Qt apps honour DPI settings.
|
||||||
export QT_AUTO_SCREEN_SCALE_FACTOR=1
|
export QT_AUTO_SCREEN_SCALE_FACTOR=1
|
||||||
|
|
||||||
export ZSH_HOME="$HOME/.zsh"
|
|
||||||
export DOTFILES="$HOME/.dotfiles"
|
export DOTFILES="$HOME/.dotfiles"
|
||||||
export EDITOR=nvim
|
export EDITOR=nano
|
||||||
export HELPDIR=/usr/share/zsh/"${ZSH_VERSION}"/help
|
|
||||||
|
|
||||||
# SSH socket
|
# SSH socket
|
||||||
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gcr/ssh"
|
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gcr/ssh"
|
||||||
|
|
||||||
export FZF_DEFAULT_COMMAND="fd --hidden --type file --strip-cwd-prefix --exclude .git"
|
# export FZF_DEFAULT_COMMAND="fdfind --hidden --type file --strip-cwd-prefix --exclude .git"
|
||||||
export FZF_CTRL_T_COMMAND="fd --hidden --type file --strip-cwd-prefix --exclude .git"
|
# export FZF_CTRL_T_COMMAND="fdfind --hidden --type file --strip-cwd-prefix --exclude .git"
|
||||||
export FZF_ALT_C_COMMAND="fd --hidden --type directory --strip-cwd-prefix --exclude .git"
|
# export FZF_ALT_C_COMMAND="fdfind --hidden --type directory --strip-cwd-prefix --exclude .git"
|
||||||
# Export Catppuccin Mocha theme for FZF
|
# # Export Catppuccin Mocha theme for FZF
|
||||||
export FZF_DEFAULT_OPTS=" \
|
# export FZF_DEFAULT_OPTS=" \
|
||||||
--height 60% --layout=reverse --border \
|
# --height 60% --layout=reverse --border \
|
||||||
--color=bg+:#313244,bg:#1E1E2E,spinner:#F5E0DC,hl:#F38BA8 \
|
# --color=bg+:#313244,bg:#1E1E2E,spinner:#F5E0DC,hl:#F38BA8 \
|
||||||
--color=fg:#CDD6F4,header:#F38BA8,info:#CBA6F7,pointer:#F5E0DC \
|
# --color=fg:#CDD6F4,header:#F38BA8,info:#CBA6F7,pointer:#F5E0DC \
|
||||||
--color=marker:#B4BEFE,fg+:#CDD6F4,prompt:#CBA6F7,hl+:#F38BA8 \
|
# --color=marker:#B4BEFE,fg+:#CDD6F4,prompt:#CBA6F7,hl+:#F38BA8 \
|
||||||
--color=selected-bg:#45475A \
|
# --color=selected-bg:#45475A \
|
||||||
--color=border:#313244,label:#CDD6F4"
|
# --color=border:#313244,label:#CDD6F4"
|
||||||
export FZF_TMUX_OPTS=" -p90%,70%"
|
# export FZF_TMUX_OPTS=" -p90%,70%"
|
||||||
export VIRTUAL_ENV_DISABLE_PROMPT=1
|
export VIRTUAL_ENV_DISABLE_PROMPT=1
|
||||||
|
|
||||||
source "$HOME/.profile.d/mise.sh"
|
# Export Golang enviroments
|
||||||
source "$HOME/.profile.d/golang.sh"
|
export GOPATH="$HOME/.local/share/Go"
|
||||||
source "$HOME/.profile.d/java.sh"
|
export GOBIN="$GOPATH/bin"
|
||||||
|
|
||||||
|
appendpath() {
|
||||||
|
local location="${1}"
|
||||||
|
case ":$PATH:" in
|
||||||
|
*":$location:"*) ;;
|
||||||
|
*) export PATH="$PATH:$location" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# appendpath "/home/linuxbrew/.linuxbrew/bin"
|
||||||
|
appendpath "$HOME/.local/bin"
|
||||||
|
appendpath "$GOBIN"
|
||||||
|
# appendpath "$HOME/.cargo/bin"
|
||||||
|
unset appendpath
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
if command -v go > /dev/null 2>&1; then
|
|
||||||
export GOPATH="$HOME/.local/share/Go"
|
|
||||||
export GOBIN="$GOPATH/bin"
|
|
||||||
fi
|
|
||||||
@@ -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 bash
|
|
||||||
|
|
||||||
if command -v mise > /dev/null 2>&1; then
|
|
||||||
eval "$(mise activate zsh)"
|
|
||||||
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
|
|
||||||
@@ -21,18 +21,21 @@
|
|||||||
;; See 'C-h v doom-font' for documentation and more examples of what they
|
;; See 'C-h v doom-font' for documentation and more examples of what they
|
||||||
;; accept. For example:
|
;; accept. For example:
|
||||||
;;
|
;;
|
||||||
(setq doom-font (font-spec :family "0xProto Nerd Font" :size 18 :weight 'regular))
|
;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
|
||||||
|
;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
|
||||||
|
;;
|
||||||
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
|
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
|
||||||
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
|
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
|
||||||
;; refresh your font settings. If Emacs still can't find your font, it likely
|
;; refresh your font settings. If Emacs still can't find your font, it likely
|
||||||
;; wasn't installed correctly. Font issues are rarely Doom issues!
|
;; wasn't installed correctly. Font issues are rarely Doom issues!
|
||||||
|
(setq doom-font (font-spec :family "FiraCode Nerd Font" :size 16 :weight 'regular)
|
||||||
|
doom-big-font (font-spec :family "FiraCode Nerd Font" :size 18 :weight 'bold)
|
||||||
|
doom-variable-pitch-font (font-spec :family "Noto Sans" :size 16 :weight 'regular))
|
||||||
|
|
||||||
;; There are two ways to load a theme. Both assume the theme is installed and
|
;; There are two ways to load a theme. Both assume the theme is installed and
|
||||||
;; available. You can either set `doom-theme' or manually load a theme with the
|
;; available. You can either set `doom-theme' or manually load a theme with the
|
||||||
;; `load-theme' function. This is the default:
|
;; `load-theme' function. This is the default:
|
||||||
(setq doom-theme 'catppuccin)
|
(setq doom-theme 'catppuccin)
|
||||||
(setq catppuccin-flavor 'mocha) ;; or 'latte, 'macchiato, or 'mocha
|
|
||||||
|
|
||||||
;; This determines the style of line numbers in effect. If set to `nil', line
|
;; This determines the style of line numbers in effect. If set to `nil', line
|
||||||
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
||||||
@@ -40,8 +43,7 @@
|
|||||||
|
|
||||||
;; If you use `org' and don't want your org files in the default location below,
|
;; 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!
|
;; change `org-directory'. It must be set before org loads!
|
||||||
(setq org-directory "~/Documents")
|
(setq org-directory "~/Remotes/pCloud/Org")
|
||||||
|
|
||||||
|
|
||||||
;; Whenever you reconfigure a package, make sure to wrap your config in an
|
;; 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.
|
;; `after!' block, otherwise Doom's defaults may override your settings. E.g.
|
||||||
@@ -74,3 +76,81 @@
|
|||||||
;;
|
;;
|
||||||
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
|
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
|
||||||
;; they are implemented.
|
;; they are implemented.
|
||||||
|
|
||||||
|
;; Maximize each Emacs frames at startup
|
||||||
|
(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)
|
||||||
|
|
||||||
|
;; Refresh mail using isync every 10 minutes
|
||||||
|
(setq mu4e-update-interval (* 10 60))
|
||||||
|
(setq mu4e-get-mail-command "~/.config/doom/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")))))
|
||||||
|
|
||||||
|
;; Configure SMTP client for send emails
|
||||||
|
(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
|
||||||
|
(after! elfeed
|
||||||
|
(setq rmh-elfeed-org-files '("~/.config/doom/elfeed.org"))
|
||||||
|
(setq elfeed-db-directory "~/.elfeed")
|
||||||
|
(setq elfeed-enclosure-default-dir "~/Downloads/")
|
||||||
|
(setq elfeed-sort-order 'descending)
|
||||||
|
(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)
|
||||||
|
|
||||||
|
;; 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
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.
|
||||||
|
)
|
||||||
16
doom/.config/doom/elfeed.org
Normal file
16
doom/.config/doom/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:
|
||||||
@@ -22,18 +22,18 @@
|
|||||||
|
|
||||||
:completion
|
:completion
|
||||||
company ; the ultimate code completion backend
|
company ; the ultimate code completion backend
|
||||||
(corfu +orderless) ; complete with cap(f), cape and a flying feather!
|
;;(corfu +orderless) ; complete with cap(f), cape and a flying feather!
|
||||||
;;helm ; the *other* search engine for love and life
|
;;helm ; the *other* search engine for love and life
|
||||||
;;ido ; the other *other* search engine...
|
;;ido ; the other *other* search engine...
|
||||||
;;ivy ; a search engine for love and life
|
ivy ; a search engine for love and life
|
||||||
vertico ; the search engine of the future
|
;;vertico ; the search engine of the future
|
||||||
|
|
||||||
:ui
|
:ui
|
||||||
;;deft ; notational velocity for Emacs
|
;;deft ; notational velocity for Emacs
|
||||||
doom ; what makes DOOM look the way it does
|
doom ; what makes DOOM look the way it does
|
||||||
doom-dashboard ; a nifty splash screen for Emacs
|
doom-dashboard ; a nifty splash screen for Emacs
|
||||||
;;doom-quit ; DOOM quit-message prompts when you quit Emacs
|
;;doom-quit ; DOOM quit-message prompts when you quit Emacs
|
||||||
;;(emoji +unicode) ; 🙂
|
(emoji +unicode) ; 🙂
|
||||||
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||||
;;indent-guides ; highlighted indent columns
|
;;indent-guides ; highlighted indent columns
|
||||||
ligatures ; ligatures and symbols to make your code pretty again
|
ligatures ; ligatures and symbols to make your code pretty again
|
||||||
@@ -54,37 +54,39 @@
|
|||||||
;;zen ; distraction-free coding or writing
|
;;zen ; distraction-free coding or writing
|
||||||
|
|
||||||
:editor
|
:editor
|
||||||
(evil +everywhere); come to the dark side, we have cookies
|
;;(evil +everywhere); come to the dark side, we have cookies
|
||||||
file-templates ; auto-snippets for empty files
|
file-templates ; auto-snippets for empty files
|
||||||
fold ; (nigh) universal code folding
|
fold ; (nigh) universal code folding
|
||||||
;;(format +onsave) ; automated prettiness
|
;;(format +onsave) ; automated prettiness
|
||||||
;;god ; run Emacs commands without modifier keys
|
;;god ; run Emacs commands without modifier keys
|
||||||
;;lispy ; vim for lisp, for people who don't like vim
|
;;lispy ; vim for lisp, for people who don't like vim
|
||||||
;;multiple-cursors ; editing in many places at once
|
multiple-cursors ; editing in many places at once
|
||||||
;;objed ; text object editing for the innocent
|
;;objed ; text object editing for the innocent
|
||||||
;;parinfer ; turn lisp into python, sort of
|
;;parinfer ; turn lisp into python, sort of
|
||||||
;;rotate-text ; cycle region at point between text candidates
|
;;rotate-text ; cycle region at point between text candidates
|
||||||
snippets ; my elves. They type so I don't have to
|
snippets ; my elves. They type so I don't have to
|
||||||
|
(whitespace +guess +trim) ; a butler for your whitespace
|
||||||
;;word-wrap ; soft wrapping with language-aware indent
|
;;word-wrap ; soft wrapping with language-aware indent
|
||||||
|
|
||||||
:emacs
|
:emacs
|
||||||
dired ; making dired pretty [functional]
|
dired ; making dired pretty [functional]
|
||||||
electric ; smarter, keyword-based electric-indent
|
electric ; smarter, keyword-based electric-indent
|
||||||
;;eww ; the internet is gross
|
eww ; the internet is gross
|
||||||
;;ibuffer ; interactive buffer management
|
ibuffer ; interactive buffer management
|
||||||
|
tramp ; remote files at your arthritic fingertips
|
||||||
undo ; persistent, smarter undo for your inevitable mistakes
|
undo ; persistent, smarter undo for your inevitable mistakes
|
||||||
vc ; version-control and Emacs, sitting in a tree
|
vc ; version-control and Emacs, sitting in a tree
|
||||||
|
|
||||||
:term
|
:term
|
||||||
;;eshell ; the elisp shell that works everywhere
|
eshell ; the elisp shell that works everywhere
|
||||||
;;shell ; simple shell REPL for Emacs
|
;;shell ; simple shell REPL for Emacs
|
||||||
;;term ; basic terminal emulator for Emacs
|
;;term ; basic terminal emulator for Emacs
|
||||||
vterm ; the best terminal emulation in Emacs
|
vterm ; the best terminal emulation in Emacs
|
||||||
|
|
||||||
:checkers
|
:checkers
|
||||||
syntax ; tasing you for every semicolon you forget
|
syntax ; tasing you for every semicolon you forget
|
||||||
;;(spell +flyspell) ; tasing you for misspelling mispelling
|
(spell +flyspell) ; tasing you for misspelling mispelling
|
||||||
;;grammar ; tasing grammar mistake every you make
|
grammar ; tasing grammar mistake every you make
|
||||||
|
|
||||||
:tools
|
:tools
|
||||||
ansible
|
ansible
|
||||||
@@ -98,10 +100,10 @@
|
|||||||
(eval +overlay) ; run code, run (also, repls)
|
(eval +overlay) ; run code, run (also, repls)
|
||||||
lookup ; navigate your code and its documentation
|
lookup ; navigate your code and its documentation
|
||||||
;;llm ; when I said you needed friends, I didn't mean...
|
;;llm ; when I said you needed friends, I didn't mean...
|
||||||
lsp ; M-x vscode
|
;;(lsp +eglot) ; M-x vscode
|
||||||
magit ; a git porcelain for Emacs
|
magit ; a git porcelain for Emacs
|
||||||
make ; run make tasks from Emacs
|
make ; run make tasks from Emacs
|
||||||
;;pass ; password manager for nerds
|
pass ; password manager for nerds
|
||||||
pdf ; pdf enhancements
|
pdf ; pdf enhancements
|
||||||
;;terraform ; infrastructure as code
|
;;terraform ; infrastructure as code
|
||||||
;;tmux ; an API for interacting with tmux
|
;;tmux ; an API for interacting with tmux
|
||||||
@@ -113,10 +115,11 @@
|
|||||||
;;tty ; improve the terminal Emacs experience
|
;;tty ; improve the terminal Emacs experience
|
||||||
|
|
||||||
:lang
|
:lang
|
||||||
|
;;ada ; In strong typing we (blindly) trust
|
||||||
;;agda ; types of types of types of types...
|
;;agda ; types of types of types of types...
|
||||||
;;beancount ; mind the GAAP
|
;;beancount ; mind the GAAP
|
||||||
(cc +lsp) ; C > C++ == 1
|
(cc +lsp) ; C > C++ == 1
|
||||||
;;clojure ; java with a lisp
|
clojure ; java with a lisp
|
||||||
;;common-lisp ; if you've seen one lisp, you've seen them all
|
;;common-lisp ; if you've seen one lisp, you've seen them all
|
||||||
;;coq ; proofs-as-programs
|
;;coq ; proofs-as-programs
|
||||||
;;crystal ; ruby at the speed of c
|
;;crystal ; ruby at the speed of c
|
||||||
@@ -146,10 +149,10 @@
|
|||||||
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
|
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
|
||||||
;;julia ; a better, faster MATLAB
|
;;julia ; a better, faster MATLAB
|
||||||
;;kotlin ; a better, slicker Java(Script)
|
;;kotlin ; a better, slicker Java(Script)
|
||||||
;;latex ; writing papers in Emacs has never been so fun
|
latex ; writing papers in Emacs has never been so fun
|
||||||
;;lean ; for folks with too much to prove
|
;;lean ; for folks with too much to prove
|
||||||
;;ledger ; be audit you can be
|
;;ledger ; be audit you can be
|
||||||
;;lua ; one-based indices? one-based indices
|
lua ; one-based indices? one-based indices
|
||||||
markdown ; writing docs for people to ignore
|
markdown ; writing docs for people to ignore
|
||||||
;;nim ; python + lisp at the speed of c
|
;;nim ; python + lisp at the speed of c
|
||||||
;;nix ; I hereby declare "nix geht mehr!"
|
;;nix ; I hereby declare "nix geht mehr!"
|
||||||
@@ -168,7 +171,7 @@
|
|||||||
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||||
;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||||
;;scala ; java, but good
|
;;scala ; java, but good
|
||||||
;;(scheme +guile) ; a fully conniving family of lisps
|
(scheme +guile) ; a fully conniving family of lisps
|
||||||
sh ; she sells {ba,z,fi}sh shells on the C xor
|
sh ; she sells {ba,z,fi}sh shells on the C xor
|
||||||
;;sml
|
;;sml
|
||||||
;;solidity ; do you need a blockchain? No.
|
;;solidity ; do you need a blockchain? No.
|
||||||
@@ -178,18 +181,21 @@
|
|||||||
yaml ; JSON, but readable
|
yaml ; JSON, but readable
|
||||||
zig ; C, but simpler
|
zig ; C, but simpler
|
||||||
|
|
||||||
|
:tools
|
||||||
|
lsp ; lsp mode
|
||||||
|
|
||||||
:email
|
:email
|
||||||
;;(mu4e +org +gmail)
|
(mu4e +org +gmail)
|
||||||
;;notmuch
|
;;notmuch
|
||||||
;;(wanderlust +gmail)
|
;;(wanderlust +gmail)
|
||||||
|
|
||||||
:app
|
:app
|
||||||
;;calendar
|
calendar
|
||||||
;;emms
|
emms
|
||||||
;;everywhere ; *leave* Emacs!? You must be joking
|
everywhere ; *leave* Emacs!? You must be joking
|
||||||
;;irc ; how neckbeards socialize
|
;;irc ; how neckbeards socialize
|
||||||
;;(rss +org) ; emacs as an RSS reader
|
(rss +org) ; emacs as an RSS reader
|
||||||
|
|
||||||
:config
|
:config
|
||||||
;; literate
|
;;literate
|
||||||
(default +bindings +smartparens))
|
(default +bindings +smartparens))
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
;; -*- no-byte-compile: t; -*-
|
;; -*- no-byte-compile: t; -*-
|
||||||
;;; $DOOMDIR/packages.el
|
;;; $DOOMDIR/packages.el
|
||||||
|
|
||||||
;; To install a package with Doom you must declare them here and run 'doom sync'
|
;; To install a package:
|
||||||
;; on the command line, then restart Emacs for the changes to take effect -- or
|
;;
|
||||||
|
;; 1. Declare them here in a `package!' statement,
|
||||||
|
;; 2. Run 'doom sync' in the shell,
|
||||||
|
;; 3. Restart Emacs.
|
||||||
|
;;
|
||||||
|
;; Use 'C-h f package\!' to look up documentation for the `package!' macro.
|
||||||
|
|
||||||
|
|
||||||
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
||||||
@@ -49,4 +54,6 @@
|
|||||||
;; (unpin! t)
|
;; (unpin! t)
|
||||||
|
|
||||||
(package! catppuccin-theme)
|
(package! catppuccin-theme)
|
||||||
(package! go-mode)
|
(package! org-caldav)
|
||||||
|
(package! elfeed-tube)
|
||||||
|
(package! elfeed-tube-mpv)
|
||||||
|
|||||||
7
doom/.config/doom/scripts/email_sync.sh
Executable file
7
doom/.config/doom/scripts/email_sync.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
mbsync -a & pid1=$!
|
||||||
|
wait $pid1
|
||||||
|
|
||||||
|
mu index
|
||||||
|
|
||||||
64
emacs/.emacs.d/.gitignore
vendored
Executable file
64
emacs/.emacs.d/.gitignore
vendored
Executable file
@@ -0,0 +1,64 @@
|
|||||||
|
# Created by https://www.toptal.com/developers/gitignore/api/emacs
|
||||||
|
# Edit at https://www.toptal.com/developers/gitignore?templates=emacs
|
||||||
|
|
||||||
|
### Emacs ###
|
||||||
|
# -*- mode: gitignore; -*-
|
||||||
|
*~
|
||||||
|
\#*\#
|
||||||
|
/.emacs.desktop
|
||||||
|
/.emacs.desktop.lock
|
||||||
|
*.elc
|
||||||
|
auto-save-list
|
||||||
|
tramp
|
||||||
|
.\#*
|
||||||
|
eln-cache
|
||||||
|
projects
|
||||||
|
transient/
|
||||||
|
.dap-breakpoints
|
||||||
|
.lsp-session-v1
|
||||||
|
/.extension/**
|
||||||
|
url/**
|
||||||
|
**/*.bak
|
||||||
|
|
||||||
|
# Org-mode
|
||||||
|
.org-id-locations
|
||||||
|
*_archive
|
||||||
|
|
||||||
|
# flymake-mode
|
||||||
|
*_flymake.*
|
||||||
|
|
||||||
|
# eshell files
|
||||||
|
/eshell/history
|
||||||
|
/eshell/lastdir
|
||||||
|
|
||||||
|
# elpa packages
|
||||||
|
/elpa/
|
||||||
|
|
||||||
|
# reftex files
|
||||||
|
*.rel
|
||||||
|
|
||||||
|
# AUCTeX auto folder
|
||||||
|
/auto/
|
||||||
|
|
||||||
|
# cask packages
|
||||||
|
.cask/
|
||||||
|
dist/
|
||||||
|
|
||||||
|
# Flycheck
|
||||||
|
flycheck_*.el
|
||||||
|
|
||||||
|
# server auth directory
|
||||||
|
/server/
|
||||||
|
|
||||||
|
# projectiles files
|
||||||
|
.projectile
|
||||||
|
/projectile-bookmarks.eld
|
||||||
|
|
||||||
|
# directory configuration
|
||||||
|
.dir-locals.el
|
||||||
|
|
||||||
|
# network security
|
||||||
|
/network-security.data
|
||||||
|
|
||||||
|
|
||||||
|
# End of https://www.toptal.com/developers/gitignore/api/emacs
|
||||||
23
emacs/.emacs.d/early-init.el
Normal file
23
emacs/.emacs.d/early-init.el
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
;;=====================================================================================
|
||||||
|
;; 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))
|
||||||
|
|
||||||
|
(defvar fscotto/emacs-profile
|
||||||
|
(or (getenv "EMACS_PROFILE") "full"))
|
||||||
16
emacs/.emacs.d/elfeed.org
Normal file
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:
|
||||||
48
emacs/.emacs.d/init.el
Normal file
48
emacs/.emacs.d/init.el
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
(message "Welcome to Emacs")
|
||||||
|
(message "Loading user configuration...")
|
||||||
|
(message "Emacs profile: %s" fscotto/emacs-profile)
|
||||||
|
|
||||||
|
;;=====================================================================================
|
||||||
|
;; 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/json
|
||||||
|
'lang/markdown
|
||||||
|
'lang/org
|
||||||
|
'lang/shell
|
||||||
|
'lang/yaml
|
||||||
|
|
||||||
|
;; Misc
|
||||||
|
'misc/dashboard
|
||||||
|
'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
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
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
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
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
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)
|
||||||
67
emacs/.emacs.d/lisp/core/ui.el
Normal file
67
emacs/.emacs.d/lisp/core/ui.el
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
;;;; 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)
|
||||||
|
|
||||||
|
;; 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
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
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
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)))
|
||||||
7
emacs/.emacs.d/lisp/lang/json.el
Normal file
7
emacs/.emacs.d/lisp/lang/json.el
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
;;; json.el -*- lexical-binding: t -*-
|
||||||
|
(use-package json-mode
|
||||||
|
:ensure t)
|
||||||
|
|
||||||
|
(provide 'json)
|
||||||
|
|
||||||
|
;;; json.el ends here
|
||||||
8
emacs/.emacs.d/lisp/lang/markdown.el
Normal file
8
emacs/.emacs.d/lisp/lang/markdown.el
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
;;; markdown.el -*- lexical-binding: t; -*-
|
||||||
|
(use-package markdown-mode
|
||||||
|
:ensure t
|
||||||
|
:mode ("README\\.md\\'" . gfm-mode)
|
||||||
|
:init (setq markdown-command "multimarkdown"))
|
||||||
|
|
||||||
|
(provide 'markdown)
|
||||||
|
;;; markdown.el ends here
|
||||||
46
emacs/.emacs.d/lisp/lang/org.el
Normal file
46
emacs/.emacs.d/lisp/lang/org.el
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
;;; org.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(use-package htmlize
|
||||||
|
:ensure t)
|
||||||
|
|
||||||
|
(use-package org
|
||||||
|
:init
|
||||||
|
(setq org-clock-mode-line-total 'today
|
||||||
|
org-fontify-quote-and-verse-blocks t
|
||||||
|
org-indent-mode t
|
||||||
|
org-return-follows-link t
|
||||||
|
org-startup-folded 'content
|
||||||
|
org-todo-keywords '((sequence "🆕(t)" "▶️(s)" "⏳(w)" "🔎(p)" "|" "✅(d)" "🗑(c)" "👨(g)")))
|
||||||
|
:config
|
||||||
|
(add-hook 'org-mode-hook 'org-indent-mode)
|
||||||
|
(add-hook 'org-mode-hook 'flyspell-mode))
|
||||||
|
|
||||||
|
(use-package org-bullets
|
||||||
|
:ensure t
|
||||||
|
:init
|
||||||
|
(setq org-bullets-bullet-list '("❯" "❯❯" "❯❯❯" "❯❯❯❯" "❯❯❯❯❯"))
|
||||||
|
:config
|
||||||
|
(add-hook 'org-mode-hook 'org-bullets-mode))
|
||||||
|
|
||||||
|
(use-package org-re-reveal
|
||||||
|
:ensure t
|
||||||
|
:init
|
||||||
|
(setq org-re-reveal-transition 'none
|
||||||
|
org-re-reveal-theme "dracula"))
|
||||||
|
|
||||||
|
(use-package ob-mermaid
|
||||||
|
:ensure t
|
||||||
|
:init
|
||||||
|
(setq ob-mermaid-cli-path "mmdc")
|
||||||
|
(org-babel-do-load-languages
|
||||||
|
'org-babel-load-languages
|
||||||
|
'((mermaid . t)
|
||||||
|
(scheme . t))))
|
||||||
|
|
||||||
|
|
||||||
|
;; Setting default directory for Org files
|
||||||
|
(setq org-directory "~/Remotes/pCloud/Org")
|
||||||
|
|
||||||
|
(provide 'org)
|
||||||
|
|
||||||
|
;;; org.el ends here
|
||||||
11
emacs/.emacs.d/lisp/lang/shell.el
Normal file
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
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
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))
|
||||||
17
emacs/.emacs.d/lisp/misc/dashboard.el
Normal file
17
emacs/.emacs.d/lisp/misc/dashboard.el
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
;;; dashboard.el --- Startup dashboard -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(use-package dashboard
|
||||||
|
:ensure t
|
||||||
|
:init
|
||||||
|
(setq dashboard-startup-banner 'logo
|
||||||
|
dashboard-center-content t
|
||||||
|
dashboard-set-heading-icons t
|
||||||
|
dashboard-set-file-icons t
|
||||||
|
dashboard-items '((recents . 8)
|
||||||
|
(projects . 5)))
|
||||||
|
:config
|
||||||
|
(dashboard-setup-startup-hook))
|
||||||
|
|
||||||
|
(provide 'dashboard)
|
||||||
|
|
||||||
|
;;; misc-dashboard.el ends here
|
||||||
9
emacs/.emacs.d/lisp/misc/doom-modeline.el
Normal file
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
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
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
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
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
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
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
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
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"))
|
||||||
63
emacs/.emacs.d/lisp/tools/completion.el
Normal file
63
emacs/.emacs.d/lisp/tools/completion.el
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
;;; 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)))
|
||||||
|
|
||||||
|
;; Snippets
|
||||||
|
(use-package yasnippet
|
||||||
|
:ensure t
|
||||||
|
:config
|
||||||
|
(setq yas/root-directory
|
||||||
|
(list "~/.emacs.d/snippets") yas-indent-line 'fixed)
|
||||||
|
(yas-global-mode))
|
||||||
|
|
||||||
|
(use-package orderless
|
||||||
|
:ensure t
|
||||||
|
:custom
|
||||||
|
(completion-styles '(orderless basic))
|
||||||
|
(completion-category-overrides '((file (styles partial-completion))))
|
||||||
|
(completion-pcm-leading-wildcard t)
|
||||||
|
:config
|
||||||
|
(setq ivy-re-builders-alist '((t . orderless-ivy-re-builder)))
|
||||||
|
(add-to-list 'ivy-highlight-functions-alist '(orderless-ivy-re-builder . orderless-ivy-highlight)))
|
||||||
|
|
||||||
|
(defun just-one-face (fn &rest args)
|
||||||
|
(let ((orderless-match-faces [completions-common-part]))
|
||||||
|
(apply fn args)))
|
||||||
|
|
||||||
|
(advice-add 'company-capf--candidates :around #'just-one-face)
|
||||||
|
|
||||||
|
(use-package smartparens
|
||||||
|
:ensure smartparens ;; install the package
|
||||||
|
:hook (prog-mode text-mode markdown-mode) ;; add `smartparens-mode` to these hooks
|
||||||
|
:config
|
||||||
|
;; load default config
|
||||||
|
(require 'smartparens-config))
|
||||||
|
|
||||||
|
(provide 'completion)
|
||||||
|
|
||||||
|
;;; completion.el ends here
|
||||||
24
emacs/.emacs.d/lisp/tools/dap.el
Normal file
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
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
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
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
|
||||||
10
emacs/.emacs.d/recentf
Normal file
10
emacs/.emacs.d/recentf
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
;;; Automatically generated by ‘recentf’ on Fri Jan 2 14:42:01 2026.
|
||||||
|
|
||||||
|
(setq recentf-list 'nil)
|
||||||
|
|
||||||
|
(setq recentf-filter-changer-current 'nil)
|
||||||
|
|
||||||
|
|
||||||
|
;; Local Variables:
|
||||||
|
;; coding: utf-8-emacs
|
||||||
|
;; End:
|
||||||
7
emacs/.emacs.d/scripts/email_sync.sh
Executable file
7
emacs/.emacs.d/scripts/email_sync.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
mbsync Gmail & pid1=$!
|
||||||
|
wait $pid1
|
||||||
|
|
||||||
|
mu index
|
||||||
|
|
||||||
3
emacs/.emacs.d/snippets/go-mode/main
Normal file
3
emacs/.emacs.d/snippets/go-mode/main
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
func main() {
|
||||||
|
$0
|
||||||
|
}
|
||||||
1
emacs/.emacs.d/snippets/go-mode/pr
Normal file
1
emacs/.emacs.d/snippets/go-mode/pr
Normal file
@@ -0,0 +1 @@
|
|||||||
|
fmt.Printf("%v\n", $0)
|
||||||
23
emacs/.emacs.d/snippets/go-mode/tt
Normal file
23
emacs/.emacs.d/snippets/go-mode/tt
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
func Test$0 {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
req string
|
||||||
|
expected string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "happy path",
|
||||||
|
req: "answer to life, the universe and everything"
|
||||||
|
expected: "42"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
actual := foo(t, tt.req)
|
||||||
|
assertEquals(t, tt.want, expected)
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
3
emacs/.emacs.d/snippets/java-mode/author
Normal file
3
emacs/.emacs.d/snippets/java-mode/author
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#name : author
|
||||||
|
# --
|
||||||
|
@author <a href="mailto:torstein@skybert.net">Torstein Krause Johansen</a>$0
|
||||||
6
emacs/.emacs.d/snippets/java-mode/debug
Normal file
6
emacs/.emacs.d/snippets/java-mode/debug
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#name : debug
|
||||||
|
# --
|
||||||
|
if (mLogger.isDebugEnabled()) {
|
||||||
|
mLogger.debug(String.format("${1:result}=%s", ${2:result}));
|
||||||
|
}
|
||||||
|
$0
|
||||||
31
emacs/.emacs.d/snippets/java-mode/dwmain
Normal file
31
emacs/.emacs.d/snippets/java-mode/dwmain
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
#name : dwmain
|
||||||
|
# --
|
||||||
|
package ${1:net.skybert.dw};
|
||||||
|
|
||||||
|
import io.dropwizard.Application;
|
||||||
|
import io.dropwizard.assets.AssetsBundle;
|
||||||
|
import io.dropwizard.configuration.SubstitutingSourceProvider;
|
||||||
|
import io.dropwizard.jetty.ConnectorFactory;
|
||||||
|
import io.dropwizard.jetty.HttpConnectorFactory;
|
||||||
|
import io.dropwizard.lifecycle.Managed;
|
||||||
|
import io.dropwizard.server.DefaultServerFactory;
|
||||||
|
import io.dropwizard.setup.Bootstrap;
|
||||||
|
import io.dropwizard.setup.Environment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Main
|
||||||
|
*/
|
||||||
|
public class Main extends Application<${2:SkybertConf}> {
|
||||||
|
|
||||||
|
public static void main(final String[] args) throws Exception {
|
||||||
|
new Main().run(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run(
|
||||||
|
final $2 pConfiguration,
|
||||||
|
final Environment pEnvironment)
|
||||||
|
throws Exception {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
}
|
||||||
5
emacs/.emacs.d/snippets/java-mode/fn
Normal file
5
emacs/.emacs.d/snippets/java-mode/fn
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#name : new method/function
|
||||||
|
# --
|
||||||
|
${1:public} ${2:void} ${3:update}(final ${4:String} ${5:pName}) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
5
emacs/.emacs.d/snippets/java-mode/for
Normal file
5
emacs/.emacs.d/snippets/java-mode/for
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#name : for (...; ...; ...) { ... }
|
||||||
|
# --
|
||||||
|
for (${1:Object} ${downcase-word 1} ; ${2:list}) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
5
emacs/.emacs.d/snippets/java-mode/fori
Normal file
5
emacs/.emacs.d/snippets/java-mode/fori
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#name : for loop with index
|
||||||
|
# --
|
||||||
|
for (int ${1:i} = 0; $1 < ${2:args.length}; $1${3:++}) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
13
emacs/.emacs.d/snippets/java-mode/gse
Normal file
13
emacs/.emacs.d/snippets/java-mode/gse
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
#name : get/set/member variable
|
||||||
|
# --
|
||||||
|
private ${1:String} ${2:name};
|
||||||
|
|
||||||
|
public void set${2:$(capitalize text)}(final $1 p${2:$(capitalize text)}) {
|
||||||
|
$2 = p${2:$(capitalize text)};
|
||||||
|
}
|
||||||
|
|
||||||
|
public $1 get${2:$(capitalize text)}() {
|
||||||
|
return $2;
|
||||||
|
}
|
||||||
|
$0
|
||||||
|
|
||||||
6
emacs/.emacs.d/snippets/java-mode/if
Normal file
6
emacs/.emacs.d/snippets/java-mode/if
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#name : if
|
||||||
|
# --
|
||||||
|
if (${1:result} ${2:!=} ${3:null}) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
|
||||||
4
emacs/.emacs.d/snippets/java-mode/iisblank
Normal file
4
emacs/.emacs.d/snippets/java-mode/iisblank
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#name : static import of isBlank
|
||||||
|
# --
|
||||||
|
import static org.apache.commons.lang.StringUtils.isBlank;
|
||||||
|
$0
|
||||||
21
emacs/.emacs.d/snippets/java-mode/junitwrapperfns
Normal file
21
emacs/.emacs.d/snippets/java-mode/junitwrapperfns
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#name : junitwrapperfns
|
||||||
|
# --
|
||||||
|
private void assertTrue(final String pMessage, final boolean pConditition) {
|
||||||
|
Assertions.assertTrue(pConditition, pMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void assertFalse(final String pMessage, final boolean pConditition) {
|
||||||
|
Assertions.assertFalse(pConditition, pMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void assertNotNull(final String pMessage, final Object pActual) {
|
||||||
|
Assertions.assertNotNull(pActual, pMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void assertNull(final String pMessage, final Object pActual) {
|
||||||
|
Assertions.assertNull(pActual, pMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void assertEquals(final String pMessage, final Object pExpected, final Object pActual) {
|
||||||
|
Assertions.assertEquals(pExpected, pActual, pMessage);
|
||||||
|
}
|
||||||
5
emacs/.emacs.d/snippets/java-mode/main
Normal file
5
emacs/.emacs.d/snippets/java-mode/main
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#name : main
|
||||||
|
# --
|
||||||
|
public static void main(String[] args) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
3
emacs/.emacs.d/snippets/java-mode/np
Normal file
3
emacs/.emacs.d/snippets/java-mode/np
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#name : np
|
||||||
|
# --
|
||||||
|
// NOPMD
|
||||||
3
emacs/.emacs.d/snippets/java-mode/ol
Normal file
3
emacs/.emacs.d/snippets/java-mode/ol
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#name : get ObjectLoader
|
||||||
|
# --
|
||||||
|
$0ObjectLoader objectLoader = IOAPI.getAPI().getObjectLoader();
|
||||||
6
emacs/.emacs.d/snippets/java-mode/req
Normal file
6
emacs/.emacs.d/snippets/java-mode/req
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#name : req
|
||||||
|
# --
|
||||||
|
HttpRequest request = HttpRequest.newBuilder()
|
||||||
|
.uri(URI.create($0))
|
||||||
|
.timeout(Duration.ofMillis(getResponseTimeout()))
|
||||||
|
.build();
|
||||||
3
emacs/.emacs.d/snippets/java-mode/res
Normal file
3
emacs/.emacs.d/snippets/java-mode/res
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#name : res
|
||||||
|
# --
|
||||||
|
HttpResponse<String> response = mHttpClient.send(request, ofString());$0
|
||||||
3
emacs/.emacs.d/snippets/java-mode/sf
Normal file
3
emacs/.emacs.d/snippets/java-mode/sf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#name : sf
|
||||||
|
# --
|
||||||
|
String.format("%s", $0)
|
||||||
3
emacs/.emacs.d/snippets/java-mode/sop
Normal file
3
emacs/.emacs.d/snippets/java-mode/sop
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#name : System.out.println
|
||||||
|
# --
|
||||||
|
System.out.println($0);
|
||||||
4
emacs/.emacs.d/snippets/java-mode/test
Normal file
4
emacs/.emacs.d/snippets/java-mode/test
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
@Test
|
||||||
|
void ${1:can}() throws Exception {
|
||||||
|
$0
|
||||||
|
}
|
||||||
12
emacs/.emacs.d/snippets/java-mode/tryf
Normal file
12
emacs/.emacs.d/snippets/java-mode/tryf
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#name : try, catch & finally
|
||||||
|
# --
|
||||||
|
try {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
catch (${1:Exception} ${2:e}) {
|
||||||
|
mLogger.error($2);
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
8
emacs/.emacs.d/snippets/java-mode/tyc
Normal file
8
emacs/.emacs.d/snippets/java-mode/tyc
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#name : try & catch
|
||||||
|
# --
|
||||||
|
try {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
catch (${1:Exception} ${2:e}) {
|
||||||
|
mLogger.error($2);
|
||||||
|
}
|
||||||
4
emacs/.emacs.d/snippets/js2-mode/a
Normal file
4
emacs/.emacs.d/snippets/js2-mode/a
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#name : new array
|
||||||
|
# --
|
||||||
|
var ${1:myArray} = new Array();
|
||||||
|
$0
|
||||||
6
emacs/.emacs.d/snippets/js2-mode/fn
Normal file
6
emacs/.emacs.d/snippets/js2-mode/fn
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#name : function
|
||||||
|
# --
|
||||||
|
function ${1:test}(${2:pValue}) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
|
||||||
5
emacs/.emacs.d/snippets/js2-mode/for
Normal file
5
emacs/.emacs.d/snippets/js2-mode/for
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#name : for (...; ...; ...) { ... }
|
||||||
|
# --
|
||||||
|
for (var ${1:i} = 0; $1 < ${2:args.length}; $1${3:++}) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
6
emacs/.emacs.d/snippets/js2-mode/if
Normal file
6
emacs/.emacs.d/snippets/js2-mode/if
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#name : if
|
||||||
|
# --
|
||||||
|
if (${1:s} == ${2:undefined}) {
|
||||||
|
$0
|
||||||
|
}
|
||||||
|
|
||||||
3
emacs/.emacs.d/snippets/js2-mode/log
Normal file
3
emacs/.emacs.d/snippets/js2-mode/log
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#name : log
|
||||||
|
# --
|
||||||
|
console.log("$0");
|
||||||
3
emacs/.emacs.d/snippets/markdown-mode/a
Normal file
3
emacs/.emacs.d/snippets/markdown-mode/a
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#name : a
|
||||||
|
# --
|
||||||
|
[${1}](${2})${0}
|
||||||
9
emacs/.emacs.d/snippets/markdown-mode/img
Normal file
9
emacs/.emacs.d/snippets/markdown-mode/img
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#name : img snippet
|
||||||
|
# --
|
||||||
|
|
||||||
|
<img
|
||||||
|
class="centered"
|
||||||
|
src="${1:foo.png}"
|
||||||
|
alt="${2:alt img text}"
|
||||||
|
/>
|
||||||
|
$0
|
||||||
3
emacs/.emacs.d/snippets/markdown-mode/me
Normal file
3
emacs/.emacs.d/snippets/markdown-mode/me
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# name : me
|
||||||
|
# --
|
||||||
|
[@skybert](https://skybert.net) ${1:says:}$0
|
||||||
17
emacs/.emacs.d/snippets/markdown-mode/pa
Normal file
17
emacs/.emacs.d/snippets/markdown-mode/pa
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#name : pelican article
|
||||||
|
# --
|
||||||
|
title: ${1:`(s-replace "-" " " (file-name-base (buffer-file-name)))`}
|
||||||
|
date: ${2:`(format-time-string "%Y-%m-%d" (current-time))`}
|
||||||
|
category: ${3:`(file-name-nondirectory
|
||||||
|
(substring
|
||||||
|
(file-name-directory (buffer-file-name))
|
||||||
|
0
|
||||||
|
(- (length (file-name-directory (buffer-file-name))) 1)
|
||||||
|
))`}
|
||||||
|
tags: ${4:`(file-name-nondirectory
|
||||||
|
(substring
|
||||||
|
(file-name-directory (buffer-file-name))
|
||||||
|
0
|
||||||
|
(- (length (file-name-directory (buffer-file-name))) 1)
|
||||||
|
))`}
|
||||||
|
$0
|
||||||
6
emacs/.emacs.d/snippets/markdown-mode/src
Normal file
6
emacs/.emacs.d/snippets/markdown-mode/src
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#name : src code snippet
|
||||||
|
# --
|
||||||
|
|
||||||
|
\`\`\`${1:text}
|
||||||
|
$0
|
||||||
|
\`\`\`
|
||||||
4
emacs/.emacs.d/snippets/markdown-mode/st
Normal file
4
emacs/.emacs.d/snippets/markdown-mode/st
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#name : strong element
|
||||||
|
# --
|
||||||
|
|
||||||
|
<strong>${1:text}</strong>$0
|
||||||
3
emacs/.emacs.d/snippets/nxml-mode/cdata
Normal file
3
emacs/.emacs.d/snippets/nxml-mode/cdata
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#name: cdata
|
||||||
|
# --
|
||||||
|
<![CDATA[$0]]>
|
||||||
8
emacs/.emacs.d/snippets/nxml-mode/cha
Normal file
8
emacs/.emacs.d/snippets/nxml-mode/cha
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#name : cha
|
||||||
|
# --
|
||||||
|
<chapter xml:id="t_${1:$(replace-regexp-in-string " " "_" (downcase text))}">
|
||||||
|
<title>${1:My Title}</title>
|
||||||
|
<para>
|
||||||
|
$0
|
||||||
|
</para>
|
||||||
|
</chapter>
|
||||||
7
emacs/.emacs.d/snippets/nxml-mode/dep
Normal file
7
emacs/.emacs.d/snippets/nxml-mode/dep
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#name : dep
|
||||||
|
# --
|
||||||
|
<dependency>
|
||||||
|
<groupId>$1</groupId>
|
||||||
|
<artifactId>$2</artifactId>
|
||||||
|
<version>$0</version>
|
||||||
|
</dependency>
|
||||||
10
emacs/.emacs.d/snippets/nxml-mode/diary
Normal file
10
emacs/.emacs.d/snippets/nxml-mode/diary
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#name : diary
|
||||||
|
# --
|
||||||
|
<!--#include virtual="/ssi/header.shtml" -->
|
||||||
|
<h1>$1</h1>
|
||||||
|
<div id="main">
|
||||||
|
<p>
|
||||||
|
$0
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<!--#include virtual="/ssi/footer.shtml" -->
|
||||||
6
emacs/.emacs.d/snippets/nxml-mode/exclusion
Executable file
6
emacs/.emacs.d/snippets/nxml-mode/exclusion
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#name : exclusion
|
||||||
|
# --
|
||||||
|
<exclusion>
|
||||||
|
<groupId>$1</groupId>
|
||||||
|
<artifactId>$2</artifactId>
|
||||||
|
</exclusion>$0
|
||||||
8
emacs/.emacs.d/snippets/nxml-mode/exclusions
Normal file
8
emacs/.emacs.d/snippets/nxml-mode/exclusions
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#name : exclusions
|
||||||
|
# --
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>$1</groupId>
|
||||||
|
<artifactId>$2</artifactId>
|
||||||
|
</exclusion>$0
|
||||||
|
</exclusions>
|
||||||
3
emacs/.emacs.d/snippets/nxml-mode/incvar
Normal file
3
emacs/.emacs.d/snippets/nxml-mode/incvar
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#name : incvar
|
||||||
|
# --
|
||||||
|
<xi:include href="local-variables.ebk" xpointer="${1:l-product-um}"/>$0
|
||||||
10
emacs/.emacs.d/snippets/nxml-mode/list
Normal file
10
emacs/.emacs.d/snippets/nxml-mode/list
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
#name : list
|
||||||
|
# --
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
$0
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
4
emacs/.emacs.d/snippets/nxml-mode/listi
Normal file
4
emacs/.emacs.d/snippets/nxml-mode/listi
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#name : listi
|
||||||
|
# --
|
||||||
|
<listitem><para>$0</para></listitem>
|
||||||
|
|
||||||
3
emacs/.emacs.d/snippets/nxml-mode/lit
Normal file
3
emacs/.emacs.d/snippets/nxml-mode/lit
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#name : lit
|
||||||
|
# --
|
||||||
|
<literal>$0</literal>
|
||||||
5
emacs/.emacs.d/snippets/nxml-mode/oli
Normal file
5
emacs/.emacs.d/snippets/nxml-mode/oli
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#name : ol with a li
|
||||||
|
# --
|
||||||
|
<ol>
|
||||||
|
<li>$0</li>
|
||||||
|
</ol>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user