Compare commits
92 Commits
wip
...
fa9286e318
| Author | SHA1 | Date | |
|---|---|---|---|
| fa9286e318 | |||
| 2d54623cd9 | |||
| ecfeaaed06 | |||
| 5cc3391ba6 | |||
| 30489a44a4 | |||
| 80a7dea485 | |||
| a94cd9b513 | |||
| db1d04323f | |||
| f95b1fc88f | |||
| 44028c1d41 | |||
| f415670298 | |||
| 8a9fe89d66 | |||
| 92461037ae | |||
| bf9ac61f6c | |||
| bdd5aef0d5 | |||
| d885fc5309 | |||
| 551be1636d | |||
| 3839afd9d2 | |||
| 435ca5ac6c | |||
| 6807b8ed37 | |||
| 1656f25c3f | |||
| 45fa891213 | |||
| 6b4b3948b7 | |||
| 5bbc79033d | |||
| 3fc5ac912f | |||
| 53d72312ee | |||
| 98f6eb6b40 | |||
| 7bbfc52d1a | |||
| 4ccaa82bc5 | |||
| 55da4fb131 | |||
| be9bb069a2 | |||
| b4969ba848 | |||
| b6ec291ebf | |||
| 46163ae259 | |||
| 3304cbc1dc | |||
| 5020adc224 | |||
| 8957961441 | |||
| 3a120dde3c | |||
| 0460e55c29 | |||
| 9f5552560b | |||
| c4d3583fc2 | |||
| 4b82506a1a | |||
| c9dbf5452e | |||
| b541768feb | |||
| 0b8d8a222b | |||
| 93fcbe8c45 | |||
| 25091c0ddc | |||
| 7c3e42202c | |||
| 6284a07ce6 | |||
| f3046216a2 | |||
| a4368379fe | |||
| 0a156bd711 | |||
| 74f1e8d52e | |||
| efeb60a362 | |||
| d50595c1ea | |||
| 2a2bc51953 | |||
| 043dcb2cf5 | |||
| 8547b93747 | |||
| 76b9a837b3 | |||
| cee4734645 | |||
| f0aa182818 | |||
| 51554bb912 | |||
| 40a2a09473 | |||
| a94c3a60d7 | |||
| fae687fe31 | |||
| 4bc4e435c7 | |||
| b3ab5ccdc6 | |||
| 3ac6f09fa7 | |||
| b3fa91d56a | |||
| ead3b5cfb7 | |||
| 878a5224a3 | |||
| bd4f9d080c | |||
| e7010d9d06 | |||
| f993a9004b | |||
| 84e40828a5 | |||
| 8e283022e6 | |||
| 879c9e64e5 | |||
| 9fcb8bffa5 | |||
| f5d5a7e404 | |||
| 241435e577 | |||
| c281072d47 | |||
| ecd809ddb5 | |||
| 77b45743be | |||
| 03bbdbc9d1 | |||
| c3db537236 | |||
| bad42e3181 | |||
| 2556fcc74f | |||
| 645ffb24ca | |||
| 26d4a706ce | |||
| 0e2bc8689a | |||
| 3f6e8f3fbf | |||
| 3172859a3d |
@@ -12,13 +12,18 @@ end
|
|||||||
|
|
||||||
set fish_greeting ""
|
set fish_greeting ""
|
||||||
|
|
||||||
|
if test -x $HOME/.local/bin
|
||||||
|
set PATH $PATH $HOME/.local/bin
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# exa
|
# exa
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
if type -q exa
|
if type -q exa
|
||||||
alias ls="exa --git -g"
|
alias ls="exa --git -g"
|
||||||
set -gx EXA_COLORS "da=36:uu=33:gu=33"
|
set -gx EXA_COLORS "da=35:uu=33:gu=33"
|
||||||
end
|
end
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@@ -28,6 +33,7 @@ end
|
|||||||
alias emacs="emacs -nw"
|
alias emacs="emacs -nw"
|
||||||
alias gemacs="/usr/bin/emacs"
|
alias gemacs="/usr/bin/emacs"
|
||||||
set -gx EDITOR "emacs"
|
set -gx EDITOR "emacs"
|
||||||
|
set -gx LSP_USE_PLISTS "true"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Deb maintainer stuff
|
# Deb maintainer stuff
|
||||||
@@ -58,15 +64,17 @@ export MINICOM="-c on"
|
|||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Conda
|
# Anaconda / Conda / Mambaforge
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
if test -x $HOME/miniconda3/bin/conda
|
set CONDA_PREFIXES mambaforge miniforge3 miniconda3 anaconda3
|
||||||
# >>> conda initialize >>>
|
for prefix in $CONDA_PREFIXES
|
||||||
# !! Contents within this block are managed by 'conda init' !!
|
if test -x $HOME/$prefix/bin/conda
|
||||||
eval $HOME/miniconda3/bin/conda "shell.fish" "hook" $argv | source
|
eval $HOME/$prefix/bin/conda "shell.fish" "hook" $argv | source
|
||||||
# <<< conda initialize <<<
|
break
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# direnv
|
# direnv
|
||||||
@@ -80,6 +88,22 @@ direnv hook fish | source
|
|||||||
|
|
||||||
starship init fish | source
|
starship init fish | source
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# CUDA
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
if test -d /usr/local/cuda
|
||||||
|
set PATH $PATH /usr/local/cuda/bin
|
||||||
|
end
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# RUST
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
if test -d $HOME/.cargo/bin
|
||||||
|
set PATH $PATH $HOME/.cargo/bin
|
||||||
|
end
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Colortest
|
# Colortest
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
SETUVAR __fish_initialized:3100
|
SETUVAR __fish_initialized:3100
|
||||||
SETUVAR fish_color_autosuggestion:969896
|
SETUVAR fish_color_autosuggestion:969896
|
||||||
SETUVAR fish_color_cancel:\x2dr
|
SETUVAR fish_color_cancel:\x2dr
|
||||||
SETUVAR fish_color_command:c397d8
|
SETUVAR fish_color_command:b294bb
|
||||||
SETUVAR fish_color_comment:e7c547
|
SETUVAR fish_color_comment:f0c674
|
||||||
SETUVAR fish_color_cwd:green
|
SETUVAR fish_color_cwd:green
|
||||||
SETUVAR fish_color_cwd_root:red
|
SETUVAR fish_color_cwd_root:red
|
||||||
SETUVAR fish_color_end:c397d8
|
SETUVAR fish_color_end:b294bb
|
||||||
SETUVAR fish_color_error:d54e53
|
SETUVAR fish_color_error:cc6666
|
||||||
SETUVAR fish_color_escape:00a6b2
|
SETUVAR fish_color_escape:00a6b2
|
||||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||||
SETUVAR fish_color_host:normal
|
SETUVAR fish_color_host:normal
|
||||||
@@ -16,9 +16,9 @@ SETUVAR fish_color_host_remote:yellow
|
|||||||
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
|
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
|
||||||
SETUVAR fish_color_normal:normal
|
SETUVAR fish_color_normal:normal
|
||||||
SETUVAR fish_color_operator:00a6b2
|
SETUVAR fish_color_operator:00a6b2
|
||||||
SETUVAR fish_color_param:7aa6da
|
SETUVAR fish_color_param:81a2be
|
||||||
SETUVAR fish_color_quote:b9ca4a
|
SETUVAR fish_color_quote:b5bd68
|
||||||
SETUVAR fish_color_redirection:70c0b1
|
SETUVAR fish_color_redirection:8abeb7
|
||||||
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
|
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
SETUVAR fish_color_status:red
|
SETUVAR fish_color_status:red
|
||||||
@@ -30,3 +30,4 @@ SETUVAR fish_pager_color_completion:normal
|
|||||||
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
||||||
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||||
|
SETUVAR fish_pager_color_selected_background:\x2dr
|
||||||
|
|||||||
@@ -3,3 +3,12 @@
|
|||||||
email = alexandre.tuleu.2005@polytechnique.org
|
email = alexandre.tuleu.2005@polytechnique.org
|
||||||
[credential]
|
[credential]
|
||||||
helper = cache
|
helper = cache
|
||||||
|
[merge]
|
||||||
|
tool = meld
|
||||||
|
[init]
|
||||||
|
defaultBranch = main
|
||||||
|
[filter "lfs"]
|
||||||
|
process = git-lfs filter-process
|
||||||
|
required = true
|
||||||
|
clean = git-lfs clean -- %f
|
||||||
|
smudge = git-lfs smudge -- %f
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
*~
|
*~
|
||||||
.dir-locals.el
|
.dir-locals.el
|
||||||
.envrc
|
.envrc
|
||||||
|
.direnv
|
||||||
|
cover.out
|
||||||
|
.projectile
|
||||||
|
.clangd
|
||||||
|
|||||||
@@ -1,2 +1,4 @@
|
|||||||
|
package foreign-env
|
||||||
|
package nvm
|
||||||
theme bobthefish
|
theme bobthefish
|
||||||
theme default
|
theme default
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ disabled = true
|
|||||||
|
|
||||||
|
|
||||||
[character] # The name of the module we are configuring is "character"
|
[character] # The name of the module we are configuring is "character"
|
||||||
success_symbol = "[◤](#444444)" # The "success_symbol" segment is being set to "➜" with the color "bold green"
|
success_symbol = "[](#444444)" # The "success_symbol" segment is being set to "➜" with the color "bold green"
|
||||||
error_symbol = "[◤](red)" # The "success_symbol" segment is being set to "➜" with the color "bold green"
|
error_symbol = "[](red)" # The "success_symbol" segment is being set to "➜" with the color "bold green"
|
||||||
|
|
||||||
[username]
|
[username]
|
||||||
style_user="bold green"
|
style_user="bold green"
|
||||||
@@ -44,12 +44,12 @@ format="[$symbol$version]($style) "
|
|||||||
disabled = false
|
disabled = false
|
||||||
map_symbol = true
|
map_symbol = true
|
||||||
style="bg:#444444 red"
|
style="bg:#444444 red"
|
||||||
format = "[◤](#444444 bg:red)[$symbol $status ](bg:red)"
|
format = "[](#444444 bg:red)[$symbol $status ](bg:red)"
|
||||||
|
|
||||||
[time]
|
[time]
|
||||||
disabled = false
|
disabled = false
|
||||||
style="bg:#444444 bright-white"
|
style="bg:#444444 bright-white"
|
||||||
format="[◢](#444444)[$time ]($style)"
|
format="[$time ]($style)"
|
||||||
time_format = '%a %b %d %R'
|
time_format = '%a %b %d %R'
|
||||||
|
|
||||||
[git_branch]
|
[git_branch]
|
||||||
@@ -68,3 +68,7 @@ disabled=false
|
|||||||
[git_status]
|
[git_status]
|
||||||
style="bold red"
|
style="bold red"
|
||||||
format='([\[$all_status$ahead_behind\]]($style) )'
|
format='([\[$all_status$ahead_behind\]]($style) )'
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# vc-follow-symlinks: t
|
||||||
|
# End:
|
||||||
|
|||||||
758
.emacs
758
.emacs
@@ -1,5 +1,9 @@
|
|||||||
;(toggle-debug-on-error)
|
|
||||||
(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3")
|
(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3")
|
||||||
|
;;lsp performances
|
||||||
|
(setq gc-cons-threshold (* 100 1024 1024));; 100MB
|
||||||
|
(setq read-process-output-max (* 3 1024 1024));; 3MB
|
||||||
|
|
||||||
|
|
||||||
(custom-set-variables
|
(custom-set-variables
|
||||||
;; custom-set-variables was added by Custom.
|
;; custom-set-variables was added by Custom.
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
@@ -7,334 +11,564 @@
|
|||||||
;; If there is more than one, they won't work right.
|
;; If there is more than one, they won't work right.
|
||||||
'(c-basic-offset 4)
|
'(c-basic-offset 4)
|
||||||
'(c-default-style
|
'(c-default-style
|
||||||
(quote
|
'((c++-mode . "tuleu-c++")
|
||||||
((c++-mode . "tuleu-c++")
|
|
||||||
(java-mode . "java")
|
(java-mode . "java")
|
||||||
(awk-mode . "awk")
|
(awk-mode . "awk")
|
||||||
(other . "gnu"))))
|
(other . "gnu")))
|
||||||
'(company-idle-delay 20.0)
|
'(company-idle-delay 20.0)
|
||||||
'(display-line-numbers-type t)
|
'(compilation-scroll-output 'first-error)
|
||||||
|
'(custom-safe-themes
|
||||||
|
'("162201cf5b5899938cfaec99c8cb35a2f1bf0775fc9ccbf5e63130a1ea217213" "e3daa8f18440301f3e54f2093fe15f4fe951986a8628e98dcd781efbec7a46f2" "6622bb651e72d8ebd66454bd86db6c3990324243ff4325c1b6df252aba63b13e" "2f8eadc12bf60b581674a41ddc319a40ed373dd4a7c577933acaff15d2bf7cc6" "f458b92de1f6cf0bdda6bce23433877e94816c3364b821eb4ea9852112f5d7dc" "016f665c0dd5f76f8404124482a0b13a573d17e92ff4eb36a66b409f4d1da410" "13096a9a6e75c7330c1bc500f30a8f4407bd618431c94aeab55c9855731a95e1" "8b148cf8154d34917dfc794b5d0fe65f21e9155977a36a5985f89c09a9669aa0" "bf948e3f55a8cd1f420373410911d0a50be5a04a8886cabe8d8e471ad8fdba8e" "680f62b751481cc5b5b44aeab824e5683cf13792c006aeba1c25ce2d89826426" "631c52620e2953e744f2b56d102eae503017047fb43d65ce028e88ef5846ea3b" default))
|
||||||
|
'(display-time-24hr-format t)
|
||||||
|
'(display-time-default-load-average nil)
|
||||||
|
'(doom-modeline-github t)
|
||||||
|
'(doom-modeline-indent-info t)
|
||||||
|
'(doom-modeline-minor-modes t)
|
||||||
|
'(doom-modeline-total-line-number t)
|
||||||
|
'(fill-column 80)
|
||||||
'(global-auto-revert-mode t)
|
'(global-auto-revert-mode t)
|
||||||
'(global-display-line-numbers-mode t)
|
'(global-display-line-numbers-mode t)
|
||||||
|
'(global-subword-mode t)
|
||||||
'(gofmt-command "goimports")
|
'(gofmt-command "goimports")
|
||||||
'(inhibit-startup-screen t)
|
'(inhibit-startup-screen t)
|
||||||
'(magit-revert-buffers (quote silent) t)
|
'(lisp-body-indent 4)
|
||||||
'(org-agenda-files (quote ("~/org/1.TODO.org")))
|
'(lisp-indent-offset 4)
|
||||||
'(package-archives
|
'(lisp-lambda-list-keyword-alignment t)
|
||||||
(quote
|
'(lisp-lambda-list-keyword-parameter-alignment t)
|
||||||
(("gnu" . "https://elpa.gnu.org/packages/")
|
'(lisp-lambda-list-keyword-parameter-indentation 4)
|
||||||
("melpa" . "https://melpa.org/packages/"))))
|
'(lisp-loop-forms-indentation 4)
|
||||||
|
'(lisp-loop-keyword-indentation 4)
|
||||||
|
'(lisp-simple-loop-indentation 4)
|
||||||
|
'(lisp-tag-body-indentation 4)
|
||||||
|
'(lisp-tag-indentation 4)
|
||||||
|
'(org-agenda-files '("~/org/1.TODO.org"))
|
||||||
'(package-enable-at-startup nil)
|
'(package-enable-at-startup nil)
|
||||||
'(package-selected-packages
|
'(package-selected-packages
|
||||||
(quote
|
'(clang-format+ cmake-format xterm-color dockerfile-mode web-mode prettier json-mode py-isort blacken pyvenv yaml-mode lsp-pyright ng2-mode lsp-ltex lsp-treemacs treemacs-nerd-icons treemacs-projectile treemacs lsp-ui lsp-mode which-key flycheck vterm projectile yasnippet-snippets yasnippet aggressive-indent doom-themes company-go zenburn-theme langtool smart-tabs-mode typescript-mode protobuf-mode opencl-mode glsl-mode go-mode markdown-mode srefactor irony cmake-mode company magit use-package))
|
||||||
(zenburn-theme langtool smart-tabs-mode typescript-mode protobuf-mode opencl-mode glsl-mode go-mode elpy markdown-mode yasnippet srefactor irony cmake-mode company magit use-package)))
|
|
||||||
'(safe-local-variable-values
|
'(safe-local-variable-values
|
||||||
(quote
|
'((vc-follow-symlinks . t)
|
||||||
((vc-follow-symlinks . t)
|
|
||||||
(TeX-master . t)
|
(TeX-master . t)
|
||||||
(TeX-parse-self . t))))
|
(TeX-parse-self . t)))
|
||||||
'(srefactor--getter-prefix "Get")
|
'(system-packages-noconfirm t)
|
||||||
'(srefactor--getter-setter-capitalize-p t)
|
|
||||||
'(srefactor--setter-prefix "Set")
|
|
||||||
'(tab-width 4)
|
'(tab-width 4)
|
||||||
|
'(warning-suppress-log-types '((comp)))
|
||||||
'(whitespace-style
|
'(whitespace-style
|
||||||
(quote
|
'(face trailing tabs lines-tail newline space-before-tab::tab space-before-tab::space space-before-tab tab-mark)))
|
||||||
(face trailing tabs lines-tail newline space-before-tab::tab space-before-tab::space space-before-tab tab-mark))))
|
|
||||||
|
|
||||||
|
|
||||||
|
(if (display-graphic-p)
|
||||||
|
(if (fboundp 'tool-bar-mode)
|
||||||
|
(tool-bar-mode -1))
|
||||||
(if (fboundp 'toggle-scroll-bar)
|
(if (fboundp 'toggle-scroll-bar)
|
||||||
(toggle-scroll-bar -1))
|
(toggle-scroll-bar -1))
|
||||||
(menu-bar-mode -1)
|
(menu-bar-mode -1)
|
||||||
(if (fboundp 'tool-bar-mode)
|
(if (fboundp 'tool-bar-mode)
|
||||||
(tool-bar-mode -1))
|
(tool-bar-mode -1))
|
||||||
|
)
|
||||||
|
|
||||||
(add-to-list 'default-frame-alist '(fullscreen . maximized))
|
(add-to-list 'default-frame-alist '(fullscreen . maximized))
|
||||||
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Use-Package
|
;; package.el and use-package bootstrap
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
|
||||||
|
("gnu" . "https://elpa.gnu.org/packages/")))
|
||||||
(package-initialize)
|
(package-initialize)
|
||||||
|
(eval-when-compile
|
||||||
(unless (package-installed-p 'use-package)
|
(unless (package-installed-p 'use-package)
|
||||||
(unless package-archive-contents
|
(unless package-archive-contents
|
||||||
(package-refresh-contents)
|
(package-refresh-contents))
|
||||||
)
|
|
||||||
(package-install 'use-package)
|
(package-install 'use-package)
|
||||||
)
|
)
|
||||||
|
(require 'use-package)
|
||||||
|
)
|
||||||
|
|
||||||
|
(require 'use-package)
|
||||||
(require 'use-package-ensure)
|
(require 'use-package-ensure)
|
||||||
(setq use-package-always-ensure t)
|
(setq use-package-always-ensure t)
|
||||||
|
|
||||||
(require 'use-package)
|
|
||||||
|
(use-package use-package-ensure-system-package)
|
||||||
|
|
||||||
|
;; required because vterm wants this before loading.
|
||||||
|
(use-package emacs
|
||||||
|
:demand t
|
||||||
|
:ensure-system-package (
|
||||||
|
(cmake . cmake)
|
||||||
|
("/usr/include/vterm.h" . libvterm-dev)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;; Keymap
|
(use-package doom-modeline
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
:init
|
||||||
(global-set-key (kbd "<f9>") 'compile)
|
(doom-modeline-mode 1)
|
||||||
|
(display-time-mode 1))
|
||||||
|
|
||||||
|
(use-package delight
|
||||||
|
:config
|
||||||
|
(delight '((eldoc-mode nil "eldoc")
|
||||||
|
(subword-mode nil "subword")))
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package multiple-cursors
|
||||||
|
:bind (("C-c m >" . 'mc/mark-next-like-this)
|
||||||
|
("C-c m <" . 'mc/mark-previous-like-this)
|
||||||
|
("C-c m a" . 'mc/mark-all-like-this)
|
||||||
|
("C-c m e" . 'mc/edit-lines)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package doom-themes
|
||||||
|
:config
|
||||||
|
(setq doom-themes-enable-bold t ; if nil, bold is universally disabled
|
||||||
|
doom-themes-enable-italic t) ; if nil, italics is universally disabled
|
||||||
|
(load-theme 'doom-spacegrey t)
|
||||||
|
;; Enable flashing mode-line on errors
|
||||||
|
(doom-themes-visual-bell-config )
|
||||||
|
;; or for treemacs users
|
||||||
|
;;(setq doom-themes-treemacs-theme "doom-atom") ; use "doom-colors" for less minimal icon theme
|
||||||
|
;;(doom-themes-treemacs-config)
|
||||||
|
;; Corrects (and improves) org-mode's native fontification.
|
||||||
|
(doom-themes-org-config)
|
||||||
|
(defun atu/toggle-display-line-mode ()
|
||||||
|
"toggle between relative and absolute display-line-mode"
|
||||||
|
(interactive)
|
||||||
|
(if (eq display-line-numbers 'relative)
|
||||||
|
(setq display-line-numbers 'absolute)
|
||||||
|
(setq display-line-numbers 'relative)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
:init
|
||||||
|
(setq whitespace-line-column nil)
|
||||||
|
(global-whitespace-mode 1)
|
||||||
|
:bind (
|
||||||
|
("C-c d l" . 'atu/toggle-display-line-mode)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(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.
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package xterm-color
|
||||||
|
:config
|
||||||
|
(setq compilation-environment '("TERM=xterm-256color"))
|
||||||
|
|
||||||
|
(defun atu/advice-compilation-filter (f proc string)
|
||||||
|
(funcall f proc (xterm-color-filter string)))
|
||||||
|
|
||||||
|
(advice-add 'compilation-filter :around #'atu/advice-compilation-filter)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
(use-package smart-tabs-mode
|
(use-package smart-tabs-mode
|
||||||
:config
|
:config
|
||||||
(setq-default tab-width 4) ; or any other preferred value
|
(setq-default tab-width 4) ; or any other preferred value
|
||||||
(setq cua-auto-tabify-rectangles nil)
|
(setq cua-auto-tabify-rectangles nil)
|
||||||
;; (defadvice align (around smart-tabs activate)
|
|
||||||
;; (let ((indent-tabs-mode nil)) ad-do-it))
|
|
||||||
;; (defadvice align (around smart-tabs activate)
|
|
||||||
;; (let ((indent-tabs-mode nil)) ad-do-it))
|
|
||||||
;; (defadvice align-regexp (around smart-tabs activate)
|
|
||||||
;; (let ((indent-tabs-mode nil)) ad-do-it))
|
|
||||||
(defadvice indent-relative (around smart-tabs activate)
|
|
||||||
(let ((indent-tabs-mode nil)) ad-do-it))
|
|
||||||
(defadvice indent-according-to-mode (around smart-tabs activate)
|
|
||||||
(let ((indent-tabs-mode indent-tabs-mode))
|
|
||||||
(if (memq indent-line-function
|
|
||||||
'(indent-relative
|
|
||||||
indent-relative-maybe))
|
|
||||||
(setq indent-tabs-mode nil))
|
|
||||||
ad-do-it))
|
|
||||||
(smart-tabs-advice c-indent-line c-basic-offset)
|
(smart-tabs-advice c-indent-line c-basic-offset)
|
||||||
(smart-tabs-advice c-indent-region c-basic-offset)
|
(smart-tabs-advice c-indent-region c-basic-offset)
|
||||||
|
|
||||||
(smart-tabs-add-language-support cmake cmake-mode-hook
|
(smart-tabs-add-language-support cmake cmake-mode-hook
|
||||||
(
|
(
|
||||||
(cmake-indent . cmake-tab-width)
|
(cmake-indent . cmake-tab-width)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
(smart-tabs-add-language-support protobuf protobuf-mode-hook
|
(smart-tabs-add-language-support protobuf protobuf-mode-hook
|
||||||
(
|
(
|
||||||
(c-indent-line . c-basic-offset)
|
(c-indent-line . c-basic-offset)
|
||||||
(c-indent-region . c-basic-offset)
|
(c-indent-region . c-basic-offset)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(smart-tabs-add-language-support html html-mode-hook
|
|
||||||
(
|
|
||||||
(sgml-indent-line . sgml-basic-offset)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(smart-tabs-add-language-support glsl glsl-mode-hook
|
(smart-tabs-add-language-support glsl glsl-mode-hook
|
||||||
(
|
(
|
||||||
(c-indent-line . c-basic-offset)
|
(c-indent-line . c-basic-offset)
|
||||||
(c-indent-region . c-basic-offset)
|
(c-indent-region . c-basic-offset)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
(smart-tabs-add-language-support opencl opencl-mode-hook
|
(smart-tabs-add-language-support opencl opencl-mode-hook
|
||||||
(
|
(
|
||||||
(c-indent-line . c-basic-offset)
|
(c-indent-line . c-basic-offset)
|
||||||
(c-indent-region . c-basic-offset)
|
(c-indent-region . c-basic-offset)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(smart-tabs-insinuate 'c 'javascript 'c++ 'cmake 'nxml 'protobuf 'html 'glsl)
|
|
||||||
|
(smart-tabs-add-language-support elisp emacs-lisp-mode-hook
|
||||||
|
(
|
||||||
|
(lisp-indent-line . lisp-indent-offset)
|
||||||
|
(lisp-indent-region . lisp-indent-offset)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
(smart-tabs-insinuate 'c 'c++ 'cmake 'nxml 'protobuf 'glsl 'elisp)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package aggressive-indent
|
||||||
|
:hook
|
||||||
|
(emacs-lisp-mode . aggressive-indent-mode)
|
||||||
|
)
|
||||||
|
|
||||||
(use-package magit
|
(use-package magit
|
||||||
:commands (magit-status)
|
:commands (magit-status)
|
||||||
:bind ("C-x g" . magit-status)
|
:bind ("C-x g" . magit-status)
|
||||||
|
:hook
|
||||||
|
(magit-mode .
|
||||||
|
(lambda () (setq-local whitespace-style nil)))
|
||||||
|
:custom
|
||||||
|
(magit-credential-cache-daemon-socket nil)
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package company
|
(use-package company
|
||||||
|
:delight
|
||||||
:bind ( ("M-TAB" . company-complete) )
|
:bind ( ("M-TAB" . company-complete) )
|
||||||
:config
|
:config
|
||||||
(global-company-mode t)
|
(global-company-mode t)
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package cmake-mode
|
(use-package cmake-mode
|
||||||
|
:ensure-system-package (
|
||||||
|
(cmake . cmake)
|
||||||
|
(pip . python3-pip)
|
||||||
|
(cmake-format . "pip install --user cmakelang[YAML]")
|
||||||
|
)
|
||||||
:config
|
:config
|
||||||
(setq cmake-tab-width 4)
|
(setq cmake-tab-width 4)
|
||||||
|
(defun atu/cmake-format-buffer ()
|
||||||
|
"Formats the current buffer using cmake-format"
|
||||||
|
(interactive)
|
||||||
|
(shell-command-on-region
|
||||||
|
;; region to execute on
|
||||||
|
(point-min)
|
||||||
|
(point-max)
|
||||||
|
;; command
|
||||||
|
"cmake-format -"
|
||||||
|
;; replace
|
||||||
|
t
|
||||||
|
;; name of the error bufer
|
||||||
|
"* cmake-format Error Buffer *"
|
||||||
|
;;
|
||||||
|
t))
|
||||||
|
|
||||||
|
:hook
|
||||||
|
(cmake-mode . lsp-deferred)
|
||||||
|
(cmake-mode . (lambda () (add-hook 'before-save-hook 'atu/cmake-format-buffer nil 'local)))
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package company-irony
|
(use-package cc-mode
|
||||||
:after (company irony)
|
:ensure nil
|
||||||
; :config
|
:ensure-system-package
|
||||||
; (add-to-list 'company-backends 'company-irony)
|
(clangd . clangd)
|
||||||
|
:hook
|
||||||
|
(c-mode . lsp-deferred)
|
||||||
|
(c++-mode . lsp-deferred)
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package company-irony-c-headers
|
(use-package clang-format+
|
||||||
:after (company irony)
|
:ensure-system-package
|
||||||
; :config
|
(clang-format . clang-format)
|
||||||
; (add-to-list 'company-backends 'company-irony-c-headers)
|
:hook
|
||||||
|
(c-mode-common . clang-format+-mode)
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package irony
|
|
||||||
:config
|
|
||||||
(push 'glsl-mode irony-supported-major-modes)
|
|
||||||
(push 'protobuf-mode irony-supported-major-modes)
|
|
||||||
(push 'opencl-mode irony-supported-major-modes)
|
|
||||||
)
|
|
||||||
|
|
||||||
(use-package srefactor
|
|
||||||
:bind (:map c-mode-map
|
|
||||||
("M-RET" . srefactor-refactor-at-point)
|
|
||||||
:map c++-mode-map
|
|
||||||
("M-RET" . srefactor-refactor-at-point))
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
(use-package yasnippet
|
(use-package yasnippet
|
||||||
|
:delight yas-minor-mode
|
||||||
|
:config
|
||||||
|
(yas-global-mode)
|
||||||
:after (company)
|
:after (company)
|
||||||
:bind ( :map yas-minor-mode-map
|
:bind ( :map yas-minor-mode-map
|
||||||
("TAB" . nil)
|
("TAB" . nil)
|
||||||
)
|
)
|
||||||
:config
|
|
||||||
; (add-to-list 'company-backends 'company-yasnippet)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package yasnippet-snippets
|
(use-package yasnippet-snippets
|
||||||
:after (yasnippet)
|
:after (yasnippet)
|
||||||
)
|
)
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
(use-package projectile
|
||||||
;; C/C++
|
:bind ( :map projectile-mode-map
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
( "C-c p" . 'projectile-command-map)
|
||||||
|
)
|
||||||
|
:delight
|
||||||
|
:config
|
||||||
|
(projectile-mode +1)
|
||||||
|
(setq projectile-per-project-compilation-buffer t)
|
||||||
|
(projectile-register-project-type 'ng2 '("angular.json" "package.json" "tsconfig.json")
|
||||||
|
:project-file "angular.json"
|
||||||
|
:compile "npm install"
|
||||||
|
:test "ng test --progress=false"
|
||||||
|
:run "ng serve"
|
||||||
|
:test-suffix ".spec")
|
||||||
|
)
|
||||||
|
|
||||||
(defun c-c++-header ()
|
(use-package vterm)
|
||||||
"sets either c-mode or c++-mode, whichever is appropriate for
|
|
||||||
header"
|
(use-package flycheck
|
||||||
(interactive)
|
:delight
|
||||||
(let ((c-file (concat (substring (buffer-file-name) 0 -1) "c")))
|
:bind (("C-c C-n" . 'flycheck-next-error))
|
||||||
(if (file-exists-p c-file)
|
:config
|
||||||
(c-mode)
|
(defvar-local atu/flycheck-local-cache nil)
|
||||||
(c++-mode)
|
|
||||||
|
(defun atu/flycheck-checker-get (fn checker property)
|
||||||
|
(or (alist-get property (alist-get checker atu/flycheck-local-cache))
|
||||||
|
(funcall fn checker property)))
|
||||||
|
|
||||||
|
(advice-add 'flycheck-checker-get :around 'atu/flycheck-checker-get)
|
||||||
|
|
||||||
|
(setq flycheck-indication-mode 'left-margin)
|
||||||
|
|
||||||
|
;; Adjust margins and fringe widths…
|
||||||
|
(defun atu/set-flycheck-margins ()
|
||||||
|
(setq left-fringe-width 8 right-fringe-width 8
|
||||||
|
left-margin-width 1 right-margin-width 0)
|
||||||
|
(flycheck-refresh-fringes-and-margins))
|
||||||
|
:hook
|
||||||
|
(flycheck-mode . atu/set-flycheck-margins)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package which-key
|
||||||
|
:delight
|
||||||
|
:config
|
||||||
|
(which-key-mode)
|
||||||
|
(which-key-setup-side-window-right-bottom)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package lsp-mode
|
||||||
|
:delight
|
||||||
|
:after (flycheck)
|
||||||
|
:init
|
||||||
|
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
|
||||||
|
(setq lsp-keymap-prefix "C-c l")
|
||||||
|
:bind-keymap ("C-c l" . lsp-command-map)
|
||||||
|
:config
|
||||||
|
(yas-minor-mode)
|
||||||
|
(if (display-graphic-p)
|
||||||
|
(setq lsp-ui-doc-use-webkit t)
|
||||||
|
)
|
||||||
|
(add-to-list 'lsp-language-id-configuration '("\\.postcss\\'" . "css"))
|
||||||
|
(advice-add 'lsp :before
|
||||||
|
(lambda (&rest _args)
|
||||||
|
(eval '(setf (lsp-session-server-id->folders (lsp-session)) (ht)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
)
|
||||||
|
:bind (
|
||||||
|
("C-c C-d" . lsp-ui-doc-toggle)
|
||||||
|
)
|
||||||
|
:hook
|
||||||
|
(lsp-mode . lsp-enable-which-key-integration)
|
||||||
|
:commands
|
||||||
|
(lsp lsp-deferred)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package lsp-ui
|
||||||
|
:commands lsp-ui-mode
|
||||||
|
:config
|
||||||
|
(setq lsp-ui-sideline-show-diagnostics nil)
|
||||||
|
:custom-face
|
||||||
|
(lsp-ui-doc-background ((t (:background "#373B41"))))
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package treemacs
|
||||||
|
:bind (("C-x t t" . treemacs)
|
||||||
|
("M-0" . treemacs-select-window))
|
||||||
|
:config
|
||||||
|
(add-hook 'treemacs-mode-hook (lambda () (display-line-numbers-mode -1)))
|
||||||
|
(treemacs-project-follow-mode t)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package treemacs-projectile)
|
||||||
|
|
||||||
|
(use-package nerd-icons )
|
||||||
|
|
||||||
|
(use-package treemacs-nerd-icons
|
||||||
|
:config
|
||||||
|
(treemacs-load-theme "nerd-icons"))
|
||||||
|
|
||||||
|
(use-package lsp-treemacs
|
||||||
|
:after lsp-mode
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package lsp-ltex
|
||||||
|
:init
|
||||||
|
(setq lsp-ltex-version "15.2.0")) ; make sure you have set this, see below
|
||||||
|
|
||||||
|
(use-package ng2-mode
|
||||||
|
:hook
|
||||||
|
(typescript-mode . lsp-deferred)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package lsp-pyright
|
||||||
|
:hook
|
||||||
|
(python-mode . (lambda ()
|
||||||
|
(require 'lsp-pyright)
|
||||||
|
(lsp-deferred))) ; or lsp-deferred
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
(use-package yaml-mode)
|
||||||
|
|
||||||
|
(use-package python
|
||||||
|
:custom
|
||||||
|
(python-shell-interpreter "ipython")
|
||||||
|
(python-shell-interpreter-args "-i --simple-prompt")
|
||||||
|
(python-indent-guess-indent-offset-verbose nil)
|
||||||
|
:hook
|
||||||
|
(python-mode . (lambda () (setq-local company-prescient-sort-length-enable nil)))
|
||||||
|
(python-mode . (lambda () (setq-local fill-column 88)))
|
||||||
|
(python-mode . lsp-deferred)
|
||||||
|
(python-mode . atu/activate-venv)
|
||||||
|
(lsp-managed-mode . (lambda ()
|
||||||
|
(when (derived-mode-p 'python-mode)
|
||||||
|
(setq atu/flycheck-local-cache '((lsp . ((next-checkers . (python-flake8)))))))))
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package pyvenv
|
||||||
|
:after (projectile)
|
||||||
|
:config
|
||||||
|
(defun atu/get-direnv-venv ()
|
||||||
|
"Gets .direnv from project root python venv if any"
|
||||||
|
(when-let* ((root-dir (projectile-project-root))
|
||||||
|
(direnv (concat (file-name-as-directory root-dir) ".direnv"))
|
||||||
|
(direnv-exists (file-directory-p direnv))
|
||||||
|
(venvs (directory-files direnv t "python-.*")))
|
||||||
|
(car (last venvs)))
|
||||||
|
)
|
||||||
|
(defun atu/get-dotvenv ()
|
||||||
|
"Gets .venv from project root if any"
|
||||||
|
(when-let* ((root-dir (projectile-project-root))
|
||||||
|
(venv-file (concat (file-name-as-directory root-dir) ".venv"))
|
||||||
|
(venv-exists (file-exists-p venv-file))
|
||||||
|
(venv-name (with-temp-buffer
|
||||||
|
(insert-file-contents venv-file)
|
||||||
|
(nth 0 (split-string (buffer-string))))))
|
||||||
|
venv-name)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun atu/get-venv-name ()
|
||||||
|
"Gets venv name from project root. Support .venv and .direnv structure"
|
||||||
|
(or (atu/get-dotvenv) (atu/get-direnv-venv))
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun atu/activate-venv ()
|
||||||
|
"Activate python environment according to the project root"
|
||||||
|
(when-let ((venv-name (atu/get-venv-name)))
|
||||||
|
(setenv "WORKON_HOME" venv-name)
|
||||||
|
(pyvenv-mode)
|
||||||
|
(pyvenv-workon venv-name)
|
||||||
|
(pyvenv-activate venv-name)
|
||||||
|
(message (format "Using python: %s" venv-name))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun atu/get-venv-python ()
|
||||||
|
"returns python executable from current venv"
|
||||||
|
(when-let* ((venv-name (atu/get-venv-name))
|
||||||
|
(python-exec (concat (file-name-as-directory venv-name) "bin/python3"))
|
||||||
|
(python-exists (file-executable-p python-exec))
|
||||||
|
)
|
||||||
|
python-exec)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun atu/activate-flycheck ()
|
||||||
|
"Activate flycheck unless its in the venv"
|
||||||
|
(if-let ((venv-name (atu/get-venv-name)))
|
||||||
|
(unless (and buffer-file-name (file-in-directory-p buffer-file-name venv-name))
|
||||||
|
(flycheck-mode))
|
||||||
|
(flycheck-mode))
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun atu/pyls-set-jedi-environment ()
|
||||||
|
"Sets the jedi environment according to the discovered venv"
|
||||||
|
(when-let ((venv-name (atu/get-venv-name)))
|
||||||
|
(setq lsp-pylsp-plugins-jedi-environment venv-name))
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun atu/append-workspace-extra-paths ()
|
||||||
|
"Appends needed extra-paths to lsp-jedi workspace if found"
|
||||||
|
(when-let* ((venv-name (atu/get-venv-name))
|
||||||
|
(site-packages (file-expand-wildcards (concat (file-name-as-directory venv-name) "lib/python*/site-packages")))
|
||||||
|
(site-package (car site-packages)))
|
||||||
|
(setq lsp-jedi-workspace-extra-paths
|
||||||
|
(vconcat lsp-jedi-workspace-extra-paths (vector site-package))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun atu/flycheck-set-python-paths ()
|
||||||
|
"Sets the rights executable for flycheck"
|
||||||
|
(when-let ((python-exec (atu/get-venv-python)))
|
||||||
|
(flycheck-set-checker-executable 'python-flake8 python-exec)
|
||||||
|
(flycheck-set-checker-executable 'python-pylint python-exec)
|
||||||
|
(flycheck-set-checker-executable 'python-mypy python-exec)
|
||||||
|
(flycheck-reset-enabled-checker 'python-flake8)
|
||||||
|
(flycheck-reset-enabled-checker 'python-pylint)
|
||||||
|
(flycheck-add-next-checker 'lsp 'python-pylint)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
:hook
|
||||||
|
(python-mode . atu/pyls-set-jedi-environment)
|
||||||
|
;(python-mode . atu/activate-flycheck)
|
||||||
|
;(python-mode . atu/append-workspace-extra-paths)
|
||||||
|
(lsp-managed-mode . atu/flycheck-set-python-paths)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(use-package blacken
|
||||||
|
:commands blacken-mode blacken-buffer
|
||||||
|
:hook
|
||||||
|
(python-mode . blacken-mode)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package py-isort
|
||||||
|
:commands py-isort-buffer
|
||||||
|
:hook
|
||||||
|
(python-mode . (lambda ()
|
||||||
|
(add-hook 'before-save-hook 'py-isort-before-save)))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.h\\'" . c-c++-header))
|
(add-to-list 'auto-mode-alist '("\\.h\\'" . c-c++-header))
|
||||||
|
|
||||||
(defconst tuleu-cc-style
|
|
||||||
'("gnu"
|
|
||||||
(c-offsets-alist . ((innamespace . [0])))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(c-add-style "tuleu-c++" tuleu-cc-style)
|
|
||||||
|
|
||||||
(defun my-c-common-hook ()
|
|
||||||
(global-set-key (kbd "C-c C-h") 'ff-find-other-file)
|
|
||||||
(require 'compile)
|
|
||||||
(global-set-key (kbd "C-x f") 'find-file-at-point)
|
|
||||||
(c-set-offset 'inextern-lang 0)
|
|
||||||
(eval-after-load 'company
|
|
||||||
'(add-to-list
|
|
||||||
'company-backends
|
|
||||||
'(company-irony company-irony-c-headers company-yasnippet)))
|
|
||||||
(smart-tabs-mode)
|
|
||||||
(irony-mode)
|
|
||||||
(yas-minor-mode-on)
|
|
||||||
(company-irony-setup-begin-commands)
|
|
||||||
(irony-cdb-autosetup-compile-options)
|
|
||||||
)
|
|
||||||
(add-hook 'c-mode-common-hook 'my-c-common-hook)
|
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;; TeX/LaTeX
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
;; (use-package auctex
|
|
||||||
;; :hook (LaTeX-mode TeX-mode)
|
|
||||||
;; )
|
|
||||||
|
|
||||||
;; (use-package auctex-latexmk
|
|
||||||
;; :hook (LaTeX-mode TeX-mode)
|
|
||||||
;; :bind (
|
|
||||||
;; ("C-x f" . find-file-at-point)
|
|
||||||
;; :map LaTeX-mode-map
|
|
||||||
;; ([remap reftex-citation] . my-latex-insert-cite)
|
|
||||||
;; ("M-q" . my-latex-fill-paragraph)
|
|
||||||
;; )
|
|
||||||
;; :config (
|
|
||||||
;; (add-to-list 'TeX-command-list
|
|
||||||
;; '("latexmk" "latexmk -pdf -interaction=nonstopmode -shell-escape %s" TeX-run-TeX nil t
|
|
||||||
;; :help "Run latexmk on file"))
|
|
||||||
;; (setq TeX-command-default "latexmk")
|
|
||||||
;; (setq LaTeX-includegraphics-read-file 'LaTeX-includegraphics-read-file-relative)
|
|
||||||
;; (setq LaTeX-includegraphics-strip-extension-flag nil)
|
|
||||||
;; (add-to-list 'LaTeX-includegraphics-extensions '"tikz")
|
|
||||||
;; ;; use Okular as default pdf viewer
|
|
||||||
;; (setq TeX-view-program-selection '((output-pdf "Okular PDF Viewer")))
|
|
||||||
;; (add-to-list 'TeX-expand-list '("%(dir)" (lambda nil (expand-file-name (TeX-master-directory)))))
|
|
||||||
;; (setq TeX-view-program-list
|
|
||||||
;; '(("Okular PDF Viewer" "okular --unique %o#src:%n%(dir)./%b")))
|
|
||||||
;; ;; (setq auctex-latexmk-inherit-TeX-PDF-mode t)
|
|
||||||
;; ;; launch server if not launched
|
|
||||||
;; (load "server")
|
|
||||||
;; (unless (server-running-p) (server-start))
|
|
||||||
;; (setq reftex-plug-into-AUCTeX t)
|
|
||||||
|
|
||||||
;; (turn-on-reftex)
|
|
||||||
;; (setq TeX-parse-self t)
|
|
||||||
;; (setq TeX-auto-save t)
|
|
||||||
;; (TeX-PDF-mode)
|
|
||||||
;; (setq reftex-ref-macro-prompt nil)
|
|
||||||
;; (defun my-latex-insert-cite (&optional P)
|
|
||||||
;; ""
|
|
||||||
;; (interactive "P")
|
|
||||||
;; (TeX-insert-macro "cite")
|
|
||||||
;; )
|
|
||||||
;; (setq-default TeX-master nil)
|
|
||||||
;; (defun my-latex-fill-paragraph (&optional P)
|
|
||||||
;; "When called with prefix argument call `fill-paragraph'.
|
|
||||||
;; Otherwise split the current paragraph into one sentence per line."
|
|
||||||
;; (interactive "P")
|
|
||||||
;; (if (not P)
|
|
||||||
;; (save-excursion
|
|
||||||
;; (let ((fill-column 12345678)) ;; relies on dynamic binding
|
|
||||||
;; (fill-paragraph) ;; this will not work correctly if the paragraph is
|
|
||||||
;; ;; longer than 12345678 characters (in which case the
|
|
||||||
;; ;; file must be at least 12MB long. This is unlikely.)
|
|
||||||
;; (let ((end (save-excursion
|
|
||||||
;; (forward-paragraph 1)
|
|
||||||
;; (backward-sentence)
|
|
||||||
;; (point-marker)))) ;; remember where to stop
|
|
||||||
;; (beginning-of-line)
|
|
||||||
;; (while (progn (forward-sentence)
|
|
||||||
;; (<= (point) (marker-position end)))
|
|
||||||
;; (just-one-space) ;; leaves only one space, point is after it
|
|
||||||
;; (delete-char -1) ;; delete the space
|
|
||||||
;; (insert " %");; insert a %
|
|
||||||
;; (newline) ;; and insert a newline
|
|
||||||
;; (LaTeX-indent-line) ;; I only use this in combination with late, so this makes sense
|
|
||||||
;; ))))
|
|
||||||
;; ;; otherwise do ordinary fill paragraph
|
|
||||||
;; (fill-paragraph P))
|
|
||||||
;; )
|
|
||||||
;; )
|
|
||||||
;; )
|
|
||||||
|
|
||||||
|
|
||||||
(use-package markdown-mode)
|
(use-package markdown-mode)
|
||||||
|
|
||||||
(use-package elpy
|
|
||||||
:init
|
|
||||||
(elpy-enable)
|
|
||||||
(setenv "WORKON_HOME" (concat (getenv "HOME") "/miniconda3/envs"))
|
|
||||||
:config
|
|
||||||
(add-hook 'elpy-mode-hook (lambda ()
|
|
||||||
(add-hook 'before-save-hook
|
|
||||||
'elpy-format-code nil t)))
|
|
||||||
)
|
|
||||||
|
|
||||||
(use-package go-mode
|
(use-package go-mode
|
||||||
|
:after (projectile)
|
||||||
:config
|
:config
|
||||||
(use-package company-go)
|
(unbind-key "C-c C-d" go-mode-map)
|
||||||
(use-package flymake-go)
|
(defun go-compile-command ()
|
||||||
(setq gofmt-command "goimports")
|
"returns a string to compile a go project"
|
||||||
(add-hook 'before-save-hook 'gofmt-before-save)
|
(setq project-makefile (concat (file-name-as-directory (projectile-project-root)) "Makefile"))
|
||||||
(set (make-local-variable 'company-backends) '(company-go))
|
(if (file-exists-p project-makefile)
|
||||||
(flymake-mode)
|
"make"
|
||||||
(setq compile-command "go build && go test -coverprofile=cover.out && go tool cover -html cover.out -o /tmp/cover.html")
|
"go build && go test && go vet"
|
||||||
:bind (
|
|
||||||
("C-c C-h" . godef-describe)
|
|
||||||
("C-c C-j" . godef-jump)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
(projectile-update-project-type
|
||||||
|
'go
|
||||||
|
:compile 'go-compile-command)
|
||||||
|
:hook
|
||||||
|
(go-mode . lsp-deferred)
|
||||||
|
(go-mode . (lambda ()
|
||||||
|
(add-hook 'before-save-hook #'lsp-format-buffer t t)
|
||||||
|
(add-hook 'before-save-hook #'lsp-organize-imports t t)
|
||||||
|
))
|
||||||
|
)
|
||||||
|
|
||||||
(use-package glsl-mode)
|
(use-package glsl-mode)
|
||||||
(use-package opencl-mode)
|
(use-package opencl-mode)
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;; Protobuf
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
(use-package protobuf-mode
|
(use-package protobuf-mode
|
||||||
:mode "\\.proto\\'"
|
:mode "\\.proto\\'"
|
||||||
:config
|
:config
|
||||||
@@ -342,94 +576,50 @@ header"
|
|||||||
'((c-basic-offset . 4)
|
'((c-basic-offset . 4)
|
||||||
(indent-tabs-mode . t))
|
(indent-tabs-mode . t))
|
||||||
)
|
)
|
||||||
(c-add-style "my-style" my-protobuf-style t)
|
;; (c-add-style "my-style" my-protobuf-style t)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;; Typescript
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;l
|
|
||||||
|
|
||||||
(use-package typescript-mode
|
(use-package typescript-mode
|
||||||
:config (progn
|
:config
|
||||||
|
(progn
|
||||||
(setq create-lockfiles nil)
|
(setq create-lockfiles nil)
|
||||||
(add-to-list 'compilation-error-regexp-alist '("^Error: \\(.*?\\):\\([0-9]+\\):\\([0-9]+\\)" 1 2 3))
|
(add-to-list 'compilation-error-regexp-alist '("^Error: \\(.*?\\):\\([0-9]+\\):\\([0-9]+\\)" 1 2 3))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
(use-package json-mode)
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
(use-package prettier
|
||||||
;; Language tool
|
:delight "PR"
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
(use-package langtool
|
|
||||||
:config (progn
|
|
||||||
(setq langtool-language-tool-server-jar "~/.languagetool/languagetool-server.jar")
|
|
||||||
(setq langtool-default-language "en-US")
|
|
||||||
)
|
|
||||||
:bind(
|
|
||||||
("C-c l c" . langtool-check)
|
|
||||||
("C-c l d" . langtool-check-done)
|
|
||||||
("C-c l l" . langtool-switch-default-language)
|
|
||||||
("C-c l s" . langtool-show-message-at-point)
|
|
||||||
("C-c l b" . langtool-correct-buffer)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;; After Init
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
(use-package zenburn-theme
|
|
||||||
:config
|
:config
|
||||||
(setq zenburn-override-colors-alist
|
(setq prettier-mode-sync-config-flag t)
|
||||||
'(
|
:hook
|
||||||
;; ("zenburn-bg-2" . "#000000")
|
(web-mode . prettier-mode)
|
||||||
;; ("zenburn-bg-1" . "#2B2B2B")
|
(typescript-mode . prettier-mode)
|
||||||
("zenburn-bg-1" . "#151515")
|
(js-mode . prettier-mode)
|
||||||
;; ("zenburn-bg-08" . "#303030")
|
|
||||||
("zenburn-bg-08" . "#1a1a1a")
|
|
||||||
;; ("zenburn-bg-05" . "#383838")
|
|
||||||
("zenburn-bg-05" . "#202020")
|
|
||||||
;;("zenburn-bg" . "#3F3F3F")
|
|
||||||
("zenburn-bg" . "#2b2b2b")
|
|
||||||
;; ("zenburn-bg+05" . "#494949")
|
|
||||||
("zenburn-bg+05" . "#393939")
|
|
||||||
;; ("zenburn-bg+1" . "#4F4F4F")
|
|
||||||
("zenburn-bg+1" . "#3F3F3F")
|
|
||||||
;; ("zenburn-bg+2" . "#5F5F5F")
|
|
||||||
("zenburn-bg+2" . "#4F4F4F")
|
|
||||||
;; ("zenburn-bg+3" . "#6F6F6F")
|
|
||||||
("zenburn-bg+3" . "#5F5F5F")
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
(load-theme 'zenburn t)
|
|
||||||
(zenburn-with-color-variables
|
(use-package web-mode
|
||||||
(custom-theme-set-faces
|
:mode "\\.html?\\'" "\\.svelte\\'" "\\.\\(post\\)?css\\'"
|
||||||
'zenburn
|
:interpreter "html" "css" "svelte"
|
||||||
`(whitespace-space ((t (:background ,zenburn-bg :foreground ,zenburn-bg))))
|
:config
|
||||||
`(whitespace-hspace ((t (:background ,zenburn-bg+1 :foreground ,zenburn-bg+1))))
|
(setq web-mode-content-types-alist
|
||||||
`(whitespace-tab ((t (:foreground ,zenburn-bg+3))))
|
'(("css" . "\\.\\(post\\)?css\\'")))
|
||||||
`(whitespace-newline ((t (:foreground ,zenburn-bg+1))))
|
:hook
|
||||||
`(whitespace-trailing ((t (:background ,zenburn-red))))
|
(web-mode . lsp-deferred)
|
||||||
`(whitespace-line ((t (:background ,zenburn-bg :foreground ,zenburn-magenta))))
|
|
||||||
`(whitespace-space-before-tab ((t (:background ,zenburn-orange :foreground ,zenburn-orange))))
|
|
||||||
`(whitespace-indentation ((t (:background ,zenburn-bg+1))))
|
|
||||||
`(whitespace-empty ((t (:background ,zenburn-bg+1))))
|
|
||||||
`(whitespace-space-after-tab ((t (:background ,zenburn-bg+1 :foreground ,zenburn-red))))
|
|
||||||
`(font-lock-type-face ((t (:foreground ,zenburn-blue+1))))
|
|
||||||
)
|
)
|
||||||
(global-whitespace-mode 1)
|
|
||||||
)
|
|
||||||
)
|
(use-package dockerfile-mode
|
||||||
(custom-set-faces
|
:hook
|
||||||
;; custom-set-faces was added by Custom.
|
(dockerfile-mode . lsp-deferred)
|
||||||
;; 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.
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;; Local Variables:
|
;; Local Variables:
|
||||||
;; vc-follow-symlinks: t
|
;; vc-follow-symlinks: t
|
||||||
;; End:
|
;; End:
|
||||||
|
|||||||
@@ -45,31 +45,31 @@ tmux_conf_new_session_prompt=false
|
|||||||
# - false (default)
|
# - false (default)
|
||||||
tmux_conf_24b_colour=true
|
tmux_conf_24b_colour=true
|
||||||
|
|
||||||
th_color_black="#2A2A2A"
|
th_color_black="#282A2E"
|
||||||
th_color_black_light="#424242"
|
th_color_black_light="#373B41"
|
||||||
th_color_red="#E44455"
|
th_color_red="#CC6666"
|
||||||
th_color_red_light="#FF7485"
|
th_color_red_light="#FF9999"
|
||||||
th_color_orange="#F5864F"
|
th_color_orange="#DE935F"
|
||||||
th_color_orange_light="#FFB67F"
|
th_color_orange_light="#FFC38F"
|
||||||
th_color_yellow="#F0C15A"
|
th_color_yellow="#F0C674"
|
||||||
th_color_yellow_light="#FFF18A"
|
th_color_yellow_light="#FFF6A4"
|
||||||
th_color_green="#BAC85B"
|
th_color_green="#B5BD68"
|
||||||
th_color_green_light="#EAF88B"
|
th_color_green_light="#E5ED98"
|
||||||
th_color_cyan="#57C1B2"
|
th_color_cyan="#8ABEB7"
|
||||||
th_color_cyan_light="#87F1E2"
|
th_color_cyan_light="#BAEEE7"
|
||||||
th_color_blue="#69A9D7"
|
th_color_blue="#81A2BE"
|
||||||
th_color_blue_light="#99D9FF"
|
th_color_blue_light="#B1D2EE"
|
||||||
th_color_magenta="#C798D4"
|
th_color_magenta="#B294BB"
|
||||||
th_color_magenta_light="#F7C8FF"
|
th_color_magenta_light="#E2C4EB"
|
||||||
th_color_gray="#969896"
|
th_color_gray="#969896"
|
||||||
th_color_white="#EAEAEA"
|
th_color_white="#C5C8C6"
|
||||||
|
|
||||||
|
|
||||||
# default theme
|
# default theme
|
||||||
tmux_conf_theme_colour_1="$th_color_black_light" # dark gray
|
tmux_conf_theme_colour_1="$th_color_black_light" # dark gray
|
||||||
tmux_conf_theme_colour_2="$th_color_black" # gray
|
tmux_conf_theme_colour_2="$th_color_black" # gray
|
||||||
tmux_conf_theme_colour_3="$th_color_gray" # light gray
|
tmux_conf_theme_colour_3="$th_color_gray" # light gray
|
||||||
tmux_conf_theme_colour_4="$th_color_cyan_light"
|
tmux_conf_theme_colour_4="$th_color_cyan"
|
||||||
#command-line
|
#command-line
|
||||||
tmux_conf_theme_colour_5="$th_color_green"
|
tmux_conf_theme_colour_5="$th_color_green"
|
||||||
#status left fg
|
#status left fg
|
||||||
@@ -108,7 +108,7 @@ tmux_conf_theme_focused_pane_bg="$tmux_conf_theme_colour_2"
|
|||||||
tmux_conf_theme_pane_border_style=thin
|
tmux_conf_theme_pane_border_style=thin
|
||||||
|
|
||||||
# pane borders colours:
|
# pane borders colours:
|
||||||
tmux_conf_theme_pane_border="$tmux_conf_theme_colour_2"
|
tmux_conf_theme_pane_border="$th_color_gray"
|
||||||
tmux_conf_theme_pane_active_border="$tmux_conf_theme_colour_4"
|
tmux_conf_theme_pane_active_border="$tmux_conf_theme_colour_4"
|
||||||
|
|
||||||
# pane indicator colours (when you hit <prefix> + q)
|
# pane indicator colours (when you hit <prefix> + q)
|
||||||
@@ -162,7 +162,7 @@ tmux_conf_theme_window_status_bg="$tmux_conf_theme_colour_1"
|
|||||||
tmux_conf_theme_window_status_attr="none"
|
tmux_conf_theme_window_status_attr="none"
|
||||||
tmux_conf_theme_window_status_format="#I #W"
|
tmux_conf_theme_window_status_format="#I #W"
|
||||||
#tmux_conf_theme_window_status_format="#{circled_window_index} #W"
|
#tmux_conf_theme_window_status_format="#{circled_window_index} #W"
|
||||||
#tmux_conf_theme_window_status_format="#I #W#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}"
|
tmux_conf_theme_window_status_format="#I #W#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}"
|
||||||
|
|
||||||
# window current status style
|
# window current status style
|
||||||
# - built-in variables are:
|
# - built-in variables are:
|
||||||
@@ -230,7 +230,7 @@ tmux_conf_theme_right_separator_sub='\uE0B3' # PowerlineSymbols.otf font, see
|
|||||||
# - #{username}
|
# - #{username}
|
||||||
# - #{username_ssh}
|
# - #{username_ssh}
|
||||||
tmux_conf_theme_status_left=" ❐ #S "
|
tmux_conf_theme_status_left=" ❐ #S "
|
||||||
tmux_conf_theme_status_right=" #{prefix}#{pairing}#{synchronized} ,#{?battery_status,#{battery_status},}#{?battery_vbar, #{battery_vbar},}#{?battery_percentage, #{battery_percentage}, }#{weather}, #{cpu_fg_color} #{cpu_percentage} #{ram_fg_color} #{ram_percentage}#{?cpu_temp, #{cpu_temp_fg_color}#{cpu_temp_icon}#{cpu_temp},} , %R , %d %b |#{root}"
|
tmux_conf_theme_status_right=" #{prefix}#{pairing}#{synchronized} ,#{?battery_status,#{battery_status},}#{?battery_vbar, #{battery_vbar},}#{?battery_percentage, #{battery_percentage}, } #{weather} #{cpu_fg_color} #{cpu_percentage} #{ram_fg_color} #{ram_percentage} #{cpu_temp_fg_color}#{cpu_temp_icon}#{cpu_temp} , %R , %d %b |#{root}"
|
||||||
|
|
||||||
# status left style
|
# status left style
|
||||||
tmux_conf_theme_status_left_fg="$tmux_conf_theme_colour_6,$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_8"
|
tmux_conf_theme_status_left_fg="$tmux_conf_theme_colour_6,$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_8"
|
||||||
@@ -341,11 +341,11 @@ tmux_conf_copy_to_os_clipboard=false
|
|||||||
#set -g mode-keys vi
|
#set -g mode-keys vi
|
||||||
|
|
||||||
# replace C-b by C-a instead of using both prefixes
|
# replace C-b by C-a instead of using both prefixes
|
||||||
# set -gu prefix2
|
set -gu prefix2
|
||||||
# unbind C-a
|
unbind C-a
|
||||||
# unbind C-b
|
unbind C-b
|
||||||
# set -g prefix C-a
|
set -g prefix C-\\
|
||||||
# bind C-a send-prefix
|
bind C-\\ send-prefix
|
||||||
|
|
||||||
# move status line to top
|
# move status line to top
|
||||||
#set -g status-position top
|
#set -g status-position top
|
||||||
@@ -431,6 +431,10 @@ unbind _
|
|||||||
bind | split-window -h
|
bind | split-window -h
|
||||||
set -g status-right-length 10
|
set -g status-right-length 10
|
||||||
|
|
||||||
|
# fixes <prefix> + e for non-vi user
|
||||||
|
unbind e
|
||||||
|
bind e new-window -n "~/.tmux.conf.local" "\$EDITOR ~/.tmux.conf.local && tmux source ~/.tmux.conf && tmux display \"~/.tmux.conf sourced\""
|
||||||
|
|
||||||
|
|
||||||
# Local Variables:
|
# Local Variables:
|
||||||
# vc-follow-symlinks: t
|
# vc-follow-symlinks: t
|
||||||
|
|||||||
24
README.md
Normal file
24
README.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Personnal configuration
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
You can install this configuration on a new system using
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -sSL https://git.tuleu.science/atuleu/home/raw/branch/master/update.sh | bash && $HOME/.home/update.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Keeping it synced
|
||||||
|
|
||||||
|
You can then update the configuration with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$HOME/.home/update.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
On a GNOME environment you may want to:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$HOME/.home/update.sh --gnome
|
||||||
|
```
|
||||||
|
|
||||||
|
This will install necessary fonts and makes GNOME terminal actually looks good.
|
||||||
15
gnome-terminal-profiles.dconf
Normal file
15
gnome-terminal-profiles.dconf
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
[:b1dcc9dd-5262-4d8d-a863-c897e6d979b9]
|
||||||
|
background-color='rgb(40,42,46)'
|
||||||
|
background-transparency-percent=21
|
||||||
|
bold-color-same-as-fg=true
|
||||||
|
custom-command='env TERM=xterm-direct /usr/bin/fish'
|
||||||
|
font='UbuntuMono Nerd Font Mono 11'
|
||||||
|
foreground-color='rgb(197,200,198)'
|
||||||
|
login-shell=false
|
||||||
|
palette=['rgb(40,42,46)', 'rgb(204,102,102)', 'rgb(181,189,104)', 'rgb(240,198,116)', 'rgb(129,162,190)', 'rgb(178,148,187)', 'rgb(138,190,183)', 'rgb(150,152,150)', 'rgb(55,59,65)', 'rgb(255,153,153)', 'rgb(229,237,152)', 'rgb(255,246,164)', 'rgb(177,210,238)', 'rgb(226,196,235)', 'rgb(186,238,231)', 'rgb(197,200,198)']
|
||||||
|
use-custom-command=true
|
||||||
|
use-system-font=false
|
||||||
|
use-theme-colors=false
|
||||||
|
use-theme-transparency=true
|
||||||
|
use-transparent-background=false
|
||||||
|
visible-name='atuleu'
|
||||||
44
install.sh
44
install.sh
@@ -1,44 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
files=".config/fish \
|
|
||||||
.config/git \
|
|
||||||
.config/omf \
|
|
||||||
.config/starship \
|
|
||||||
.local/share/omf \
|
|
||||||
.emacs \
|
|
||||||
.tmux.conf.local"
|
|
||||||
|
|
||||||
|
|
||||||
function this_script_root_dir() {
|
|
||||||
dirname $(realpath ${BASH_SOURCE[0]})
|
|
||||||
}
|
|
||||||
|
|
||||||
function run() {
|
|
||||||
echo "$@"
|
|
||||||
$@
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function install_home() {
|
|
||||||
for f in $files
|
|
||||||
do
|
|
||||||
run rm -Rf $HOME/$f
|
|
||||||
dir=$(dirname $f)
|
|
||||||
if [ ! "$dir" = "." ]
|
|
||||||
then
|
|
||||||
run mkdir -p $HOME/$dir
|
|
||||||
fi
|
|
||||||
run ln -sf $(this_script_root_dir)/$f $HOME/$f
|
|
||||||
done
|
|
||||||
run ln -sf $(this_script_root_dir)/.tmux/.tmux.conf $HOME/.tmux.conf
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
pushd $(this_script_root_dir)
|
|
||||||
git pull
|
|
||||||
git submodule init
|
|
||||||
git submodule update
|
|
||||||
popd
|
|
||||||
install_home
|
|
||||||
312
update.sh
Executable file
312
update.sh
Executable file
@@ -0,0 +1,312 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
function print_help() {
|
||||||
|
echo "usage .home/update.sh [-g/--gnome] [-h/--help] [-v/--berbose] [-d/--dry]
|
||||||
|
|
||||||
|
Installs and updates shared configuration on a system. Options are:
|
||||||
|
|
||||||
|
-h/--help : print this help
|
||||||
|
--reinstall : force reinstallation
|
||||||
|
-g/--gnome : system is intended to run in a GNOME environement, and
|
||||||
|
will setup gnome-terminal accordingly. Do not
|
||||||
|
activate on headless system.
|
||||||
|
--font : Installs font for gnome environment (selected if --gnome)
|
||||||
|
-v/--verbose : prints command before running them
|
||||||
|
-n/--dry : dry run, do not execute commands. Implies --verbose.
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
function exit_error() {
|
||||||
|
print_help
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
GNOME=false
|
||||||
|
FONT=false
|
||||||
|
VERBOSE=false
|
||||||
|
DRY=false
|
||||||
|
REINSTALL=false
|
||||||
|
|
||||||
|
function set_reinstall_on() {
|
||||||
|
REINSTALL=true
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_gnome_on() {
|
||||||
|
GNOME=true
|
||||||
|
FONT=true
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_font_on() {
|
||||||
|
FONT=true
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_verbose_on() {
|
||||||
|
VERBOSE=true
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_dry_on() {
|
||||||
|
DRY=true
|
||||||
|
VERBOSE=true
|
||||||
|
}
|
||||||
|
|
||||||
|
while getopts "vnhg-:" optchar
|
||||||
|
do
|
||||||
|
case "${optchar}" in
|
||||||
|
-)
|
||||||
|
case "${OPTARG}" in
|
||||||
|
reinstall)
|
||||||
|
set_reinstall_on
|
||||||
|
;;
|
||||||
|
gnome)
|
||||||
|
set_gnome_on
|
||||||
|
;;
|
||||||
|
verbose)
|
||||||
|
set_verbose_on
|
||||||
|
;;
|
||||||
|
font)
|
||||||
|
set_font_on
|
||||||
|
;;
|
||||||
|
dry)
|
||||||
|
set_dry_on
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "invalid argument --${OPTARG}"
|
||||||
|
exit_error
|
||||||
|
;;
|
||||||
|
esac;;
|
||||||
|
h)
|
||||||
|
print_help
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
g)
|
||||||
|
set_gnome_on
|
||||||
|
;;
|
||||||
|
n)
|
||||||
|
set_dry_on
|
||||||
|
;;
|
||||||
|
v)
|
||||||
|
set_verbose_on
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit_error
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
files=".config/fish \
|
||||||
|
.config/git \
|
||||||
|
.config/omf \
|
||||||
|
.config/starship.toml \
|
||||||
|
.local/share/omf \
|
||||||
|
.emacs \
|
||||||
|
.tmux.conf.local"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function this_script_root_dir() {
|
||||||
|
dirname $(realpath ${BASH_SOURCE[0]})
|
||||||
|
}
|
||||||
|
|
||||||
|
function run() {
|
||||||
|
if $VERBOSE
|
||||||
|
then
|
||||||
|
echo "[$@]"
|
||||||
|
fi
|
||||||
|
if ! $DRY
|
||||||
|
then
|
||||||
|
$@
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function run_git() {
|
||||||
|
if $VERBOSE
|
||||||
|
then
|
||||||
|
echo "[git $@] in $(this_script_root_dir)"
|
||||||
|
fi
|
||||||
|
if ! $DRY
|
||||||
|
then
|
||||||
|
pushd $(this_script_root_dir) 1>/dev/null
|
||||||
|
if $VERBOSE
|
||||||
|
then
|
||||||
|
git $@
|
||||||
|
else
|
||||||
|
git $@ 1>/dev/null
|
||||||
|
fi
|
||||||
|
popd 1>/dev/null
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function load_gnome_terminal_profiles() {
|
||||||
|
echo "--- Installing GNOME terminal profile"
|
||||||
|
if which dconf 1>/dev/null
|
||||||
|
then
|
||||||
|
run dconf load /org/gnome/terminal/legacy/profiles:/ < $(this_script_root_dir)/gnome-terminal-profiles.dconf
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_fish() {
|
||||||
|
echo "--- Ensuring fish is current shell"
|
||||||
|
if ! which fish 1>/dev/null
|
||||||
|
then
|
||||||
|
echo "+++ Installing fish"
|
||||||
|
run sudo apt-get install -y fish
|
||||||
|
else
|
||||||
|
echo "+++ Fish is installed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fish=$(which fish)
|
||||||
|
current_shell=$(grep $USER /etc/passwd | cut -d ":" -f 7)
|
||||||
|
if [ $current_shell != $fish ]
|
||||||
|
then
|
||||||
|
echo "+++ Changing shell to $fish (you will be prompted for passwd)"
|
||||||
|
run chsh -s $fish
|
||||||
|
else
|
||||||
|
echo "+++ Default shell is $fish"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_direnv() {
|
||||||
|
echo "--- Ensuring direnv is installed"
|
||||||
|
if ! which direnv 1>/dev/null
|
||||||
|
then
|
||||||
|
echo "++ Installing direnv"
|
||||||
|
run sudo apt-get install -y direnv
|
||||||
|
else
|
||||||
|
echo "+++ direnv is installed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function install_starship() {
|
||||||
|
echo "--- Ensuring starship is installed"
|
||||||
|
if which starship 1>/dev/null
|
||||||
|
then
|
||||||
|
echo "+++ Starship is installed"
|
||||||
|
if ! $REINSTALL
|
||||||
|
then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
echo "+++ Reinstalling starship"
|
||||||
|
fi
|
||||||
|
echo "+++ Installing starship"
|
||||||
|
if $VERBOSE
|
||||||
|
then
|
||||||
|
echo "[curl -sS https://starship.rs/install.sh | sh -s -- --yes]"
|
||||||
|
fi
|
||||||
|
if ! $DRY
|
||||||
|
then
|
||||||
|
curl -sS https://starship.rs/install.sh | sh -s -- --yes
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_ubuntu_mono_nerd() {
|
||||||
|
echo "--- Ensuring Ubuntu Mono Nerd font is present"
|
||||||
|
if [ ! -e /usr/share/terminfo/x/xterm-direct ]
|
||||||
|
then
|
||||||
|
run sudo apt-get install -y ncurses-term
|
||||||
|
else
|
||||||
|
echo "+++ xterm-direct is in terminfo database"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if fc-list | grep "UbuntuMono Nerd Font" 1>/dev/null
|
||||||
|
then
|
||||||
|
echo "+++ UbuntuMono Nerd font is installed"
|
||||||
|
if ! $REINSTALL
|
||||||
|
then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
echo "+++ Reinstalling UbuntuMono Nerd font"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "+++ Fetching UbuntuMono Nerd Font"
|
||||||
|
run mkdir -p ~/.local/share/fonts
|
||||||
|
pushd ~/.local/share/fonts
|
||||||
|
run curl -fL -o UbuntuMonoNerdFontMono-Regular.ttf https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/UbuntuMono/Regular/UbuntuMonoNerdFontMono-Regular.ttf
|
||||||
|
popd
|
||||||
|
run fc-cache -f
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_deps() {
|
||||||
|
install_fish
|
||||||
|
install_direnv
|
||||||
|
install_starship
|
||||||
|
if $FONT
|
||||||
|
then
|
||||||
|
install_ubuntu_mono_nerd
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_files() {
|
||||||
|
echo "--- Ensuring symlinks to git file are present"
|
||||||
|
for f in $files
|
||||||
|
do
|
||||||
|
run rm -Rf $HOME/$f
|
||||||
|
dir=$(dirname $f)
|
||||||
|
if [ ! "$dir" = "." ]
|
||||||
|
then
|
||||||
|
run mkdir -p $HOME/$dir
|
||||||
|
fi
|
||||||
|
run ln -sf $(this_script_root_dir)/$f $HOME/$f
|
||||||
|
done
|
||||||
|
run ln -sf $(this_script_root_dir)/.tmux/.tmux.conf $HOME/.tmux.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_oh_my_fish() {
|
||||||
|
echo "--- Updating Oh My Fish"
|
||||||
|
FISH=$(which fish)
|
||||||
|
if $VERBOSE
|
||||||
|
then
|
||||||
|
echo "[$FISH -c 'omf install']"
|
||||||
|
fi
|
||||||
|
if ! $DRY
|
||||||
|
then
|
||||||
|
if $VERBOSE
|
||||||
|
then
|
||||||
|
$FISH -c 'omf install'
|
||||||
|
else
|
||||||
|
$FISH -c 'omf install' 1>/dev/null
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_home() {
|
||||||
|
if $VERBOSE
|
||||||
|
then
|
||||||
|
echo "--- this_script_root_dir: $(this_script_root_dir)"
|
||||||
|
fi
|
||||||
|
update_repos
|
||||||
|
install_deps
|
||||||
|
install_files
|
||||||
|
update_oh_my_fish
|
||||||
|
if $GNOME
|
||||||
|
then
|
||||||
|
load_gnome_terminal_profiles
|
||||||
|
fi
|
||||||
|
if ! $DRY
|
||||||
|
then
|
||||||
|
echo "--- git.tuleu.science:atuleu/home.git updated and set"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_repos() {
|
||||||
|
echo "--- Updating git.tuleu.science:atuleu/home.git"
|
||||||
|
run_git pull
|
||||||
|
run_git submodule init
|
||||||
|
run_git submodule update
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -z $BASH_SOURCE ] && [ ! -d "$HOME/.home" ]
|
||||||
|
then
|
||||||
|
echo "--- cloning git.tuleu.science:atuleu/home.git in $HOME/.home"
|
||||||
|
pushd $HOME 1>/dev/null
|
||||||
|
run_git clone https://git.tuleu.science/atuleu/home.git .home
|
||||||
|
popd 1>/dev/null
|
||||||
|
else
|
||||||
|
update_home
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user