feat!: migrate from stow to chezmoi
This commit is contained in:
commit
02cdb3858b
7
.chezmoiignore
Normal file
7
.chezmoiignore
Normal file
@ -0,0 +1,7 @@
|
||||
README.md
|
||||
install.sh
|
||||
scripts
|
||||
utils
|
||||
{{- if ne .chezmoi.hostname "ecole" }}
|
||||
.config/gtk-3.0
|
||||
{{- end }}
|
||||
128
dot_bashrc
Normal file
128
dot_bashrc
Normal file
@ -0,0 +1,128 @@
|
||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||
# for examples
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return;;
|
||||
esac
|
||||
|
||||
# don't put duplicate lines or lines starting with space in the history.
|
||||
# See bash(1) for more options
|
||||
HISTCONTROL=ignoreboth
|
||||
|
||||
# append to the history file, don't overwrite it
|
||||
shopt -s histappend
|
||||
|
||||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||
HISTSIZE=1000
|
||||
HISTFILESIZE=2000
|
||||
|
||||
# check the window size after each command and, if necessary,
|
||||
# update the values of LINES and COLUMNS.
|
||||
shopt -s checkwinsize
|
||||
|
||||
# If set, the pattern "**" used in a pathname expansion context will
|
||||
# match all files and zero or more directories and subdirectories.
|
||||
#shopt -s globstar
|
||||
|
||||
# make less more friendly for non-text input files, see lesspipe(1)
|
||||
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||
|
||||
# set variable identifying the chroot you work in (used in the prompt below)
|
||||
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
||||
debian_chroot=$(cat /etc/debian_chroot)
|
||||
fi
|
||||
|
||||
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||
case "$TERM" in
|
||||
xterm-color|*-256color) color_prompt=yes;;
|
||||
esac
|
||||
|
||||
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||
# off by default to not distract the user: the focus in a terminal window
|
||||
# should be on the output of commands, not on the prompt
|
||||
force_color_prompt=yes
|
||||
|
||||
if [ -n "$force_color_prompt" ]; then
|
||||
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||
# We have color support; assume it's compliant with Ecma-48
|
||||
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||
# a case would tend to support setf rather than setaf.)
|
||||
color_prompt=yes
|
||||
else
|
||||
color_prompt=
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$color_prompt" = yes ]; then
|
||||
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
||||
else
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
fi
|
||||
unset color_prompt force_color_prompt
|
||||
|
||||
# If this is an xterm set the title to user@host:dir
|
||||
case "$TERM" in
|
||||
xterm*|rxvt*)
|
||||
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
alias ls='ls --color=auto'
|
||||
#alias dir='dir --color=auto'
|
||||
#alias vdir='vdir --color=auto'
|
||||
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
fi
|
||||
|
||||
# colored GCC warnings and errors
|
||||
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
||||
|
||||
# some more ls aliases
|
||||
alias ll='ls -alF'
|
||||
alias la='ls -A'
|
||||
alias l='ls -CF'
|
||||
alias c='clear'
|
||||
alias csc='sudo cytech-site-change'
|
||||
alias quit='exit'
|
||||
alias compresse='echo "tar -cv [nomDuFichieràCompresser] -f [nomArchive].tar"'
|
||||
alias cps='cp ~/Desktop/Programme/script-c/script.sh ./script.sh'
|
||||
alias sql='mysql -u thomas -p'
|
||||
alias waterfox='~/waterfox/waterfox'
|
||||
|
||||
# Add an "alert" alias for long running commands. Use like so:
|
||||
# sleep 10; alert
|
||||
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
||||
|
||||
# Alias definitions.
|
||||
# You may want to put all your additions into a separate file like
|
||||
# ~/.bash_aliases, instead of adding them here directly.
|
||||
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||
|
||||
if [ -f ~/.bash_aliases ]; then
|
||||
. ~/.bash_aliases
|
||||
fi
|
||||
|
||||
# enable programmable completion features (you don't need to enable
|
||||
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||
# sources /etc/bash.bashrc).
|
||||
if ! shopt -oq posix; then
|
||||
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||
. /usr/share/bash-completion/bash_completion
|
||||
elif [ -f /etc/bash_completion ]; then
|
||||
. /etc/bash_completion
|
||||
fi
|
||||
fi
|
||||
|
||||
eval "$(zoxide init --cmd cd bash)"
|
||||
|
||||
eval "$(oh-my-posh init bash)"
|
||||
4
dot_scryerrc
Normal file
4
dot_scryerrc
Normal file
@ -0,0 +1,4 @@
|
||||
:- use_module(library(clpz)).
|
||||
:- use_module(library(lists)).
|
||||
:- use_module(library(reif)).
|
||||
:- use_module(library(dif)).
|
||||
312
dot_vimrc
Normal file
312
dot_vimrc
Normal file
@ -0,0 +1,312 @@
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
"
|
||||
" ██╗ ██╗██╗███╗ ███╗██████╗ ██████╗
|
||||
" ██║ ██║██║████╗ ████║██╔══██╗██╔════╝
|
||||
" ██║ ██║██║██╔████╔██║██████╔╝██║
|
||||
" ╚██╗ ██╔╝██║██║╚██╔╝██║██╔══██╗██║
|
||||
" ╚████╔╝ ██║██║ ╚═╝ ██║██║ ██║╚██████╗
|
||||
" ╚═══╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
" Disable compatibility with vi which can cause unexpected issues.
|
||||
set nocompatible
|
||||
|
||||
" Enable type file detection. Vim will be able to try to detect the type of file in use.
|
||||
filetype on
|
||||
|
||||
" Enable plugins and load plugin for the detected file type.
|
||||
filetype plugin on
|
||||
|
||||
" Load an indent file for the detected file type.
|
||||
filetype indent on
|
||||
|
||||
" Turn syntax highlighting on.
|
||||
syntax on
|
||||
|
||||
" Add numbers to each line on the left-hand side.
|
||||
set number
|
||||
|
||||
" Highlight cursor line underneath the cursor horizontally.
|
||||
set cursorline
|
||||
|
||||
" Highlight cursor line underneath the cursor vertically.
|
||||
set cursorcolumn
|
||||
|
||||
" Set shift width to 4 spaces.
|
||||
set shiftwidth=4
|
||||
|
||||
" Set tab width to 4 columns.
|
||||
set tabstop=4
|
||||
|
||||
" Use space characters instead of tabs.
|
||||
set expandtab
|
||||
|
||||
" Do not save backup files.
|
||||
set nobackup
|
||||
|
||||
" Do not let cursor scroll below or above N number of lines when scrolling.
|
||||
set scrolloff=10
|
||||
|
||||
" Do not wrap lines. Allow long lines to extend as far as the line goes.
|
||||
set nowrap
|
||||
|
||||
" While searching though a file incrementally highlight matching characters as you type.
|
||||
set incsearch
|
||||
|
||||
" Ignore capital letters during search.
|
||||
set ignorecase
|
||||
|
||||
" Intelligent indent for programming
|
||||
set autoindent
|
||||
set smartindent
|
||||
|
||||
" Override the ignorecase option if searching for capital letters.
|
||||
" This will allow you to search specifically for capital letters.
|
||||
set smartcase
|
||||
|
||||
" Show partial command you type in the last line of the screen.
|
||||
set showcmd
|
||||
|
||||
" Show the mode you are on the last line.
|
||||
set showmode
|
||||
|
||||
" Show matching words during a search.
|
||||
set showmatch
|
||||
|
||||
" Use highlighting when doing a search.
|
||||
set hlsearch
|
||||
|
||||
" Set the commands to save in history default number is 20.
|
||||
set history=1000
|
||||
|
||||
" Enable auto completion menu after pressing TAB.
|
||||
set wildmenu
|
||||
|
||||
" Make wildmenu behave like similar to Bash completion.
|
||||
set wildmode=list:longest
|
||||
|
||||
" There are certain files that we would never want to edit with Vim.
|
||||
" Wildmenu will ignore files with these extensions.
|
||||
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx
|
||||
|
||||
" Permit the recognition of alias by vim
|
||||
set shell=/bin/zsh
|
||||
set shellcmdflag=-ic
|
||||
|
||||
" PLUGINS ---------------------------------------------------------------- {{{
|
||||
|
||||
call plug#begin('~/.vim/plugged')
|
||||
Plug 'dense-analysis/ale'
|
||||
|
||||
Plug 'preservim/nerdtree'
|
||||
|
||||
Plug 'chrisbra/vim-commentary'
|
||||
|
||||
Plug 'vim-airline/vim-airline'
|
||||
|
||||
Plug 'wfxr/minimap.vim'
|
||||
|
||||
Plug 'morhetz/gruvbox'
|
||||
|
||||
call plug#end()
|
||||
|
||||
" }}}
|
||||
|
||||
|
||||
" MAPPINGS --------------------------------------------------------------- {{{
|
||||
|
||||
" Set the backslash as the leader key.
|
||||
let mapleader = ","
|
||||
|
||||
" Press ,, to jump back to the last cursor position.
|
||||
nnoremap <leader>, ``
|
||||
|
||||
" Put a word into double "
|
||||
nnoremap <leader>" viw<esc>a"<esc>bi"<esc>lel
|
||||
|
||||
" Print a ( and it's matching )
|
||||
inoremap ( ()<esc>ha
|
||||
|
||||
" Print a double "
|
||||
inoremap " ""<esc>ha
|
||||
|
||||
" Open a command block delimited by {}
|
||||
inoremap <leader>' {<esc>o<esc>o<esc>0a}<esc>ki
|
||||
|
||||
" Type jj to exit insert mode quickly.
|
||||
inoremap jj <Esc>
|
||||
|
||||
" Press the space bar to type the : character in command mode.
|
||||
nnoremap <space> :
|
||||
|
||||
" Pressing the letter o will open a new line below the current one.
|
||||
" Exit insert mode after creating a new line above or below the current line.
|
||||
nnoremap o o<esc>
|
||||
nnoremap O O<esc>
|
||||
|
||||
" Center the cursor vertically when moving to the next word during a search.
|
||||
nnoremap n nzz
|
||||
nnoremap N Nzz
|
||||
|
||||
" Yank from cursor to the end of line.
|
||||
nnoremap Y y$
|
||||
|
||||
" Map the navigating keys to match the AZERTY keyboard
|
||||
nnoremap j h
|
||||
nnoremap k j
|
||||
nnoremap l k
|
||||
nnoremap m l
|
||||
|
||||
" Same as the above but in visual mode
|
||||
vnoremap j h
|
||||
vnoremap k j
|
||||
vnoremap l k
|
||||
vnoremap m l
|
||||
|
||||
" You can split the window in Vim by typing :split or :vsplit.
|
||||
" Navigate the split view easier by pressing CTRL+j, CTRL+k, CTRL+l, or CTRL+m.
|
||||
nnoremap <c-k> <c-w>j
|
||||
nnoremap <c-l> <c-w>k
|
||||
nnoremap <c-j> <c-w>h
|
||||
nnoremap <c-m> <c-w>l
|
||||
|
||||
" Resize split windows using arrow keys by pressing:
|
||||
" CTRL+UP, CTRL+DOWN, CTRL+LEFT, or CTRL+RIGHT.
|
||||
noremap <c-up> <c-w>+
|
||||
noremap <c-down> <c-w>-
|
||||
noremap <c-left> <c-w>>
|
||||
noremap <c-right> <c-w><
|
||||
|
||||
" Delete a line in normal mode
|
||||
inoremap <c-d> <esc>ddi
|
||||
|
||||
" NERDTree specific mappings.
|
||||
" Map the F3 key to toggle NERDTree open and close.
|
||||
nnoremap <c-n> :NERDTreeToggle<cr>
|
||||
|
||||
" Have nerdtree ignore certain files and directories.
|
||||
let NERDTreeIgnore=['\.git$', '\.jpg$', '\.mp4$', '\.ogg$', '\.iso$', '\.pdf$', '\.pyc$', '\.odt$', '\.png$', '\.gif$', '\.db$']
|
||||
|
||||
" }}}
|
||||
|
||||
|
||||
" VIMSCRIPT -------------------------------------------------------------- {{{
|
||||
|
||||
" This will enable code folding.
|
||||
" Use the marker method of folding.
|
||||
augroup filetype_vim
|
||||
autocmd!
|
||||
autocmd FileType vim setlocal foldmethod=marker
|
||||
augroup END
|
||||
|
||||
" Enable the marker method of folding.
|
||||
augroup filetype_vim
|
||||
autocmd!
|
||||
autocmd FileType vim setlocal foldmethod=marker
|
||||
augroup END
|
||||
|
||||
" If the current file type is HTML, set indentation to 2 spaces.
|
||||
autocmd Filetype html setlocal tabstop=2 shiftwidth=2 expandtab
|
||||
|
||||
" If Vim version is equal to or greater than 7.3 enable undofile.
|
||||
" This allows you to undo changes to a file even after saving it.
|
||||
if version >= 703
|
||||
set undodir=~/.vim/backup
|
||||
set undofile
|
||||
set undoreload=10000
|
||||
endif
|
||||
|
||||
" You can split a window into sections by typing `:split` or `:vsplit`.
|
||||
" Display cursorline and cursorcolumn ONLY in active window.
|
||||
augroup cursor_off
|
||||
autocmd!
|
||||
autocmd WinLeave * set nocursorline nocursorcolumn
|
||||
autocmd WinEnter * set cursorline cursorcolumn
|
||||
augroup END
|
||||
|
||||
" If GUI version of Vim is running set these options.
|
||||
" if has('gui_running')
|
||||
|
||||
" Set the background tone.
|
||||
" set background=dark
|
||||
|
||||
" Set the color scheme.
|
||||
" colorscheme wal
|
||||
|
||||
" Set a custom font you have installed on your computer.
|
||||
" Syntax: set guifont=<font_name>\ <font_weight>\ <size>
|
||||
" set guifont=Cartograph\ Regular\ 12
|
||||
|
||||
" Display more of the file by default.
|
||||
" Hide the toolbar.
|
||||
" set guioptions-=T
|
||||
|
||||
" Hide the the left-side scroll bar.
|
||||
" set guioptions-=L
|
||||
|
||||
" Hide the the right-side scroll bar.
|
||||
" set guioptions-=r
|
||||
|
||||
" Hide the the menu bar.
|
||||
" set guioptions-=m
|
||||
|
||||
" Hide the the bottom scroll bar.
|
||||
" set guioptions-=b
|
||||
|
||||
" Map ,m to toggle the menu, toolbar, and scroll bar.
|
||||
" <Bar> is the pipe character.
|
||||
" <CR> is the enter key.
|
||||
" nnoremap <leader>m :if &guioptions=~#'mTr'<Bar>
|
||||
" \set guioptions-=mTr<Bar>
|
||||
" \else<Bar>
|
||||
" \set guioptions+=mTr<Bar>
|
||||
" \endif<CR>
|
||||
|
||||
" endif
|
||||
|
||||
" gruvbox
|
||||
"Use 24-bit (true-color) mode in Vim/Neovim when outside tmux.
|
||||
"If you're using tmux version 2.2 or later, you can remove the outermost $TMUX check and use tmux's 24-bit color support
|
||||
"(see < http://sunaku.github.io/tmux-24bit-color.html#usage > for more information.)
|
||||
if (empty($TMUX) && getenv('TERM_PROGRAM') != 'Apple_Terminal')
|
||||
if (has("nvim"))
|
||||
"For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 >
|
||||
let $NVIM_TUI_ENABLE_TRUE_COLOR=1
|
||||
endif
|
||||
"For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 >
|
||||
"Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd >
|
||||
" < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 >
|
||||
if (has("termguicolors"))
|
||||
set termguicolors
|
||||
endif
|
||||
endif
|
||||
let g:airline_powerline_fonts = 1
|
||||
set background=dark
|
||||
let g:gruvbox_contrast_dark = 'soft'
|
||||
let g:gruvbox_transparent_bg = 1
|
||||
let g:gruvbox_termcolors=16
|
||||
colorscheme gruvbox
|
||||
hi! Normal guibg=NONE ctermbg=NONE
|
||||
|
||||
" }}}
|
||||
|
||||
|
||||
" STATUS LINE ------------------------------------------------------------ {{{
|
||||
|
||||
" Clear status line when vimrc is reloaded.
|
||||
set statusline=
|
||||
|
||||
" Status line left side.
|
||||
set statusline+=\ %F\ %M\ %Y\ %R
|
||||
|
||||
" Use a divider to separate the left side from the right side.
|
||||
set statusline+=%=
|
||||
|
||||
" Status line right side.
|
||||
set statusline+=\ ascii:\ %b\ hex:\ 0x%B\ row:\ %l\ col:\ %c\ percent:\ %p%%
|
||||
|
||||
" Show the status on the second to last line.
|
||||
set laststatus=2
|
||||
|
||||
" }}}
|
||||
BIN
dot_wallpapers/backwater.jpg
Normal file
BIN
dot_wallpapers/backwater.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.0 MiB |
BIN
dot_wallpapers/empire.png
Normal file
BIN
dot_wallpapers/empire.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 MiB |
BIN
dot_wallpapers/empire_gruvbox.png
Normal file
BIN
dot_wallpapers/empire_gruvbox.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.0 MiB |
165
dot_zshrc
Normal file
165
dot_zshrc
Normal file
@ -0,0 +1,165 @@
|
||||
##########################################################################
|
||||
#
|
||||
# ███████╗███████╗██╗ ██╗██████╗ ██████╗
|
||||
# ╚══███╔╝██╔════╝██║ ██║██╔══██╗██╔════╝
|
||||
# ███╔╝ ███████╗███████║██████╔╝██║
|
||||
# ███╔╝ ╚════██║██╔══██║██╔══██╗██║
|
||||
# ███████╗███████║██║ ██║██║ ██║╚██████╗
|
||||
# ╚══════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
# Zsh and Zinit configuration ---------------------------------------------------------------- {{{
|
||||
|
||||
# If you come from bash you might have to change your $PATH.
|
||||
export PATH=$HOME/bin:/usr/local/bin:$HOME/.local/bin/:$HOME/.cargo/bin/:$PATH
|
||||
|
||||
# Path to your Zinit installation.
|
||||
export ZSH="${XDG_DATE_HOME:-${HOME}/.local/share}/zinit/zinit.git"
|
||||
|
||||
# Download and install Zinit if it's not already installed
|
||||
if [ ! -d $ZSH ]; then
|
||||
git clone https://github.com/zdharma-continuum/zinit.git $ZSH
|
||||
fi
|
||||
|
||||
source $ZSH/zinit.zsh
|
||||
|
||||
# Theme ---------------------------------------------------------------- {{{
|
||||
|
||||
# Set the theme to use with Oh My Posh
|
||||
eval "$(oh-my-posh init zsh --config $HOME/.config/ohmyposh/prompt.json)"
|
||||
|
||||
# }}}
|
||||
|
||||
# General options ---------------------------------------------------------------- {{{
|
||||
|
||||
# Uncomment the following line to use case-sensitive completion.
|
||||
# CASE_SENSITIVE="true"
|
||||
|
||||
# Uncomment the following line if pasting URLs and other text is messed up.
|
||||
# DISABLE_MAGIC_FUNCTIONS="true"
|
||||
|
||||
# Uncomment the following line to disable auto-setting terminal title.
|
||||
# DISABLE_AUTO_TITLE="true"
|
||||
|
||||
# Uncomment the following line to enable command auto-correction.
|
||||
ENABLE_CORRECTION="true"
|
||||
|
||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||
# You can also set it to another string to have that shown instead of the default red dots.
|
||||
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
|
||||
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
|
||||
COMPLETION_WAITING_DOTS="true"
|
||||
|
||||
# Uncomment the following line if you want to disable marking untracked files
|
||||
# under VCS as dirty. This makes repository status check for large repositories
|
||||
# much, much faster.
|
||||
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||
|
||||
# Uncomment the following line if you want to change the command execution time
|
||||
# stamp shown in the history command output.
|
||||
# You can set one of the optional three formats:
|
||||
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||
# or set a custom format using the strftime function format specifications,
|
||||
# see 'man strftime' for details.
|
||||
HIST_STAMPS="dd.mm.yyyy"
|
||||
|
||||
# }}}
|
||||
|
||||
# Plugins and snippets ---------------------------------------------------------------- {{{
|
||||
|
||||
zinit light zsh-users/zsh-syntax-highlighting
|
||||
zinit light zsh-users/zsh-autosuggestions
|
||||
zinit light zsh-users/zsh-completions
|
||||
zinit ice from'gh-r' as'program'
|
||||
zinit light sei40kr/fast-alias-tips-bin
|
||||
zinit light sei40kr/zsh-fast-alias-tips
|
||||
|
||||
zinit snippet OMZP::git
|
||||
zinit snippet OMZP::zoxide
|
||||
|
||||
# }}}
|
||||
|
||||
# History ---------------------------------------------------------------- {{{
|
||||
|
||||
HISTSIZE=5000 # The number of commands to remember in the command history
|
||||
HISTFILE=~/.zsh_history # The file to save the command history to
|
||||
SAVEHIST=$HISTSIZE # The number of commands to save in the history file
|
||||
HISTDUP=erase # Erase duplicates in the history file
|
||||
setopt appendhistory # Append history to the history file
|
||||
setopt sharehistory # Share history between all sessions
|
||||
setopt hist_ignore_space # Ignore commands that start with a space
|
||||
setopt hist_ignore_dups # Ignore duplicate commands
|
||||
setopt hist_ignore_all_dups # Ignore all duplicate commands
|
||||
setopt hist_save_no_dups # Do not save duplicate commands
|
||||
setopt hist_find_no_dups # Do not display duplicate commands
|
||||
|
||||
# Key bindings
|
||||
bindkey "^p" history-search-backward # Search backward in history
|
||||
bindkey "^n" history-search-forward # Search forward in history
|
||||
|
||||
# }}}
|
||||
|
||||
# Completion ---------------------------------------------------------------- {{{
|
||||
|
||||
# Zsh allows command completion.
|
||||
# The completion is very modifiable, here are some options
|
||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
|
||||
zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
|
||||
zstyle ':completion:*:warnings' format '%BSorry, no results'
|
||||
zstyle ':completion:*' menu select=2
|
||||
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
|
||||
zstyle ':completion:*' list-colors '${(s.:.)LS_COLORS}'
|
||||
|
||||
# Load bash completion functions
|
||||
autoload -Uz +X compinit && compinit
|
||||
autoload -Uz +X bashcompinit && bashcompinit
|
||||
|
||||
# -q is for quiet; actually run all the `compdef's saved before `compinit` call
|
||||
# (`compinit' declares the `compdef' function, so it cannot be used until
|
||||
# `compinit' is ran; Zinit solves this via intercepting the `compdef'-calls and
|
||||
# storing them for later use with `zinit cdreplay')
|
||||
zinit cdreplay -q
|
||||
|
||||
# }}}
|
||||
|
||||
# }}}
|
||||
|
||||
# User configuration ---------------------------------------------------------------- {{{
|
||||
|
||||
# Preferred editor for local and remote sessions
|
||||
if [[ -n $SSH_CONNECTION ]]; then
|
||||
export EDITOR='nvim'
|
||||
else
|
||||
export EDITOR='vim'
|
||||
fi
|
||||
|
||||
# Compilation flags
|
||||
# export ARCHFLAGS="-arch x86_64"
|
||||
|
||||
# Aliases ---------------------------------------------------------------- {{{
|
||||
|
||||
# Set personal aliases
|
||||
# For a full list of active aliases, run `alias`.
|
||||
alias ls='lsd'
|
||||
alias ll='ls -alF'
|
||||
alias rm='rip'
|
||||
alias cat='bat'
|
||||
alias grep='rg'
|
||||
alias find='fd -H'
|
||||
alias sed='sd'
|
||||
alias c='clear'
|
||||
alias prolog='~/.config/scryer-prolog/target/release/scryer-prolog' # À remplacer par prolog='scryer-prolog'
|
||||
alias csc='sudo cytech-site-change'
|
||||
alias quit='exit'
|
||||
alias compresse='echo "tar -cv [nomDuFichieràCompresser] -f [nomArchive].tar"'
|
||||
alias maj='~/./miseajour.sh'
|
||||
alias vi='\vim'
|
||||
alias vim='nvim'
|
||||
|
||||
# }}}
|
||||
|
||||
# Allow zoxide to work and to replace cd
|
||||
eval "$(zoxide init --cmd cd zsh)"
|
||||
|
||||
# }}}
|
||||
25
private_dot_config/bat/config
Normal file
25
private_dot_config/bat/config
Normal file
@ -0,0 +1,25 @@
|
||||
# This is `bat`s configuration file. Each line either contains a comment or
|
||||
# a command-line option that you want to pass to `bat` by default. You can
|
||||
# run `bat --help` to get a list of all possible configuration options.
|
||||
|
||||
# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
|
||||
# for a list of all available themes
|
||||
--theme="gruvbox-dark"
|
||||
|
||||
# Enable this to use italic text on the terminal. This is not supported on all
|
||||
# terminal emulators (like tmux, by default):
|
||||
--italic-text=always
|
||||
|
||||
# Uncomment the following line to disable automatic paging:
|
||||
--paging=never
|
||||
|
||||
# Uncomment the following line if you are using less version >= 551 and want to
|
||||
# enable mouse scrolling support in `bat` when running inside tmux. This might
|
||||
# disable text selection, unless you press shift.
|
||||
#--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse"
|
||||
|
||||
# Syntax mappings: map a certain filename pattern to a language.
|
||||
# Example 1: use the C++ syntax for Arduino .ino files
|
||||
# Example 2: Use ".gitignore"-style highlighting for ".ignore" files
|
||||
#--map-syntax "*.ino:C++"
|
||||
#--map-syntax ".ignore:Git Ignore"
|
||||
287
private_dot_config/betterfox/user.js
Normal file
287
private_dot_config/betterfox/user.js
Normal file
@ -0,0 +1,287 @@
|
||||
//
|
||||
/* You may copy+paste this file and use it as it is.
|
||||
*
|
||||
* If you make changes to your about:config while the program is running, the
|
||||
* changes will be overwritten by the user.js when the application restarts.
|
||||
*
|
||||
* To make lasting changes to preferences, you will have to edit the user.js.
|
||||
*/
|
||||
|
||||
/****************************************************************************
|
||||
* Betterfox *
|
||||
* "Ad meliora" *
|
||||
* version: 126 *
|
||||
* url: https://github.com/yokoffing/Betterfox *
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: FASTFOX *
|
||||
****************************************************************************/
|
||||
/** GENERAL ***/
|
||||
user_pref("content.notify.interval", 100000);
|
||||
|
||||
/** GFX ***/
|
||||
user_pref("gfx.canvas.accelerated.cache-items", 4096);
|
||||
user_pref("gfx.canvas.accelerated.cache-size", 512);
|
||||
user_pref("gfx.content.skia-font-cache-size", 20);
|
||||
|
||||
/** DISK CACHE ***/
|
||||
user_pref("browser.cache.jsbc_compression_level", 3);
|
||||
|
||||
/** MEDIA CACHE ***/
|
||||
user_pref("media.memory_cache_max_size", 65536);
|
||||
user_pref("media.cache_readahead_limit", 7200);
|
||||
user_pref("media.cache_resume_threshold", 3600);
|
||||
|
||||
/** IMAGE CACHE ***/
|
||||
user_pref("image.mem.decode_bytes_at_a_time", 32768);
|
||||
|
||||
/** NETWORK ***/
|
||||
user_pref("network.http.max-connections", 1800);
|
||||
user_pref("network.http.max-persistent-connections-per-server", 10);
|
||||
user_pref("network.http.max-urgent-start-excessive-connections-per-host", 5);
|
||||
user_pref("network.http.pacing.requests.enabled", false);
|
||||
user_pref("network.dnsCacheExpiration", 3600);
|
||||
user_pref("network.ssl_tokens_cache_capacity", 10240);
|
||||
|
||||
/** SPECULATIVE LOADING ***/
|
||||
user_pref("network.dns.disablePrefetch", true);
|
||||
user_pref("network.dns.disablePrefetchFromHTTPS", true);
|
||||
user_pref("network.prefetch-next", false);
|
||||
user_pref("network.predictor.enabled", false);
|
||||
user_pref("network.predictor.enable-prefetch", false);
|
||||
|
||||
/** EXPERIMENTAL ***/
|
||||
user_pref("layout.css.grid-template-masonry-value.enabled", true);
|
||||
user_pref("dom.enable_web_task_scheduling", true);
|
||||
user_pref("dom.security.sanitizer.enabled", true);
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: SECUREFOX *
|
||||
****************************************************************************/
|
||||
/** TRACKING PROTECTION ***/
|
||||
user_pref("browser.contentblocking.category", "strict");
|
||||
user_pref("urlclassifier.trackingSkipURLs", "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com");
|
||||
user_pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.twitter.com, *.twimg.com");
|
||||
user_pref("network.cookie.sameSite.noneRequiresSecure", true);
|
||||
user_pref("browser.download.start_downloads_in_tmp_dir", true);
|
||||
user_pref("browser.helperApps.deleteTempFileOnExit", true);
|
||||
user_pref("browser.uitour.enabled", false);
|
||||
user_pref("privacy.globalprivacycontrol.enabled", true);
|
||||
|
||||
/** OCSP & CERTS / HPKP ***/
|
||||
user_pref("security.OCSP.enabled", 0);
|
||||
user_pref("security.remote_settings.crlite_filters.enabled", true);
|
||||
user_pref("security.pki.crlite_mode", 2);
|
||||
|
||||
/** SSL / TLS ***/
|
||||
user_pref("security.ssl.treat_unsafe_negotiation_as_broken", true);
|
||||
user_pref("browser.xul.error_pages.expert_bad_cert", true);
|
||||
user_pref("security.tls.enable_0rtt_data", false);
|
||||
|
||||
/** DISK AVOIDANCE ***/
|
||||
user_pref("browser.privatebrowsing.forceMediaMemoryCache", true);
|
||||
user_pref("browser.sessionstore.interval", 60000);
|
||||
|
||||
/** SHUTDOWN & SANITIZING ***/
|
||||
user_pref("privacy.history.custom", true);
|
||||
|
||||
/** SEARCH / URL BAR ***/
|
||||
user_pref("browser.search.separatePrivateDefault.ui.enabled", true);
|
||||
user_pref("browser.urlbar.update2.engineAliasRefresh", true);
|
||||
user_pref("browser.search.suggest.enabled", false);
|
||||
user_pref("browser.urlbar.suggest.quicksuggest.sponsored", false);
|
||||
user_pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false);
|
||||
user_pref("browser.formfill.enable", false);
|
||||
user_pref("security.insecure_connection_text.enabled", true);
|
||||
user_pref("security.insecure_connection_text.pbmode.enabled", true);
|
||||
user_pref("network.IDN_show_punycode", true);
|
||||
|
||||
/** HTTPS-FIRST POLICY ***/
|
||||
user_pref("dom.security.https_first", true);
|
||||
user_pref("dom.security.https_first_schemeless", true);
|
||||
|
||||
/** PASSWORDS ***/
|
||||
user_pref("signon.formlessCapture.enabled", false);
|
||||
user_pref("signon.privateBrowsingCapture.enabled", false);
|
||||
user_pref("network.auth.subresource-http-auth-allow", 1);
|
||||
user_pref("editor.truncate_user_pastes", false);
|
||||
|
||||
/** MIXED CONTENT + CROSS-SITE ***/
|
||||
user_pref("security.mixed_content.block_display_content", true);
|
||||
user_pref("security.mixed_content.upgrade_display_content", true);
|
||||
user_pref("security.mixed_content.upgrade_display_content.image", true);
|
||||
user_pref("pdfjs.enableScripting", false);
|
||||
user_pref("extensions.postDownloadThirdPartyPrompt", false);
|
||||
|
||||
/** HEADERS / REFERERS ***/
|
||||
user_pref("network.http.referer.XOriginTrimmingPolicy", 2);
|
||||
|
||||
/** CONTAINERS ***/
|
||||
user_pref("privacy.userContext.ui.enabled", true);
|
||||
|
||||
/** WEBRTC ***/
|
||||
user_pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true);
|
||||
user_pref("media.peerconnection.ice.default_address_only", true);
|
||||
|
||||
/** SAFE BROWSING ***/
|
||||
user_pref("browser.safebrowsing.downloads.remote.enabled", false);
|
||||
|
||||
/** MOZILLA ***/
|
||||
user_pref("permissions.default.desktop-notification", 2);
|
||||
user_pref("permissions.default.geo", 2);
|
||||
user_pref("geo.provider.network.url", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
|
||||
user_pref("permissions.manager.defaultsUrl", "");
|
||||
user_pref("webchannel.allowObject.urlWhitelist", "");
|
||||
|
||||
/** TELEMETRY ***/
|
||||
user_pref("datareporting.policy.dataSubmissionEnabled", false);
|
||||
user_pref("datareporting.healthreport.uploadEnabled", false);
|
||||
user_pref("toolkit.telemetry.unified", false);
|
||||
user_pref("toolkit.telemetry.enabled", false);
|
||||
user_pref("toolkit.telemetry.server", "data:,");
|
||||
user_pref("toolkit.telemetry.archive.enabled", false);
|
||||
user_pref("toolkit.telemetry.newProfilePing.enabled", false);
|
||||
user_pref("toolkit.telemetry.shutdownPingSender.enabled", false);
|
||||
user_pref("toolkit.telemetry.updatePing.enabled", false);
|
||||
user_pref("toolkit.telemetry.bhrPing.enabled", false);
|
||||
user_pref("toolkit.telemetry.firstShutdownPing.enabled", false);
|
||||
user_pref("toolkit.telemetry.coverage.opt-out", true);
|
||||
user_pref("toolkit.coverage.opt-out", true);
|
||||
user_pref("toolkit.coverage.endpoint.base", "");
|
||||
user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
|
||||
user_pref("browser.newtabpage.activity-stream.telemetry", false);
|
||||
|
||||
/** EXPERIMENTS ***/
|
||||
user_pref("app.shield.optoutstudies.enabled", false);
|
||||
user_pref("app.normandy.enabled", false);
|
||||
user_pref("app.normandy.api_url", "");
|
||||
|
||||
/** CRASH REPORTS ***/
|
||||
user_pref("breakpad.reportURL", "");
|
||||
user_pref("browser.tabs.crashReporting.sendReport", false);
|
||||
user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false);
|
||||
|
||||
/** DETECTION ***/
|
||||
user_pref("captivedetect.canonicalURL", "");
|
||||
user_pref("network.captive-portal-service.enabled", false);
|
||||
user_pref("network.connectivity-service.enabled", false);
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: PESKYFOX *
|
||||
****************************************************************************/
|
||||
/** MOZILLA UI ***/
|
||||
user_pref("browser.privatebrowsing.vpnpromourl", "");
|
||||
user_pref("extensions.getAddons.showPane", false);
|
||||
user_pref("extensions.htmlaboutaddons.recommendations.enabled", false);
|
||||
user_pref("browser.discovery.enabled", false);
|
||||
user_pref("browser.shell.checkDefaultBrowser", false);
|
||||
user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false);
|
||||
user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false);
|
||||
user_pref("browser.preferences.moreFromMozilla", false);
|
||||
user_pref("browser.tabs.tabmanager.enabled", false);
|
||||
user_pref("browser.aboutConfig.showWarning", false);
|
||||
user_pref("browser.aboutwelcome.enabled", false);
|
||||
|
||||
/** THEME ADJUSTMENTS ***/
|
||||
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
|
||||
user_pref("browser.compactmode.show", true);
|
||||
user_pref("browser.display.focus_ring_on_anything", true);
|
||||
user_pref("browser.display.focus_ring_style", 0);
|
||||
user_pref("browser.display.focus_ring_width", 0);
|
||||
user_pref("layout.css.prefers-color-scheme.content-override", 2);
|
||||
user_pref("browser.privateWindowSeparation.enabled", false); // WINDOWS
|
||||
|
||||
/** COOKIE BANNER HANDLING ***/
|
||||
user_pref("cookiebanners.service.mode", 1);
|
||||
user_pref("cookiebanners.service.mode.privateBrowsing", 1);
|
||||
|
||||
/** FULLSCREEN NOTICE ***/
|
||||
user_pref("full-screen-api.transition-duration.enter", "0 0");
|
||||
user_pref("full-screen-api.transition-duration.leave", "0 0");
|
||||
user_pref("full-screen-api.warning.delay", -1);
|
||||
user_pref("full-screen-api.warning.timeout", 0);
|
||||
|
||||
/** URL BAR ***/
|
||||
user_pref("browser.urlbar.suggest.calculator", true);
|
||||
user_pref("browser.urlbar.unitConversion.enabled", true);
|
||||
user_pref("browser.urlbar.trending.featureGate", false);
|
||||
|
||||
/** NEW TAB PAGE ***/
|
||||
user_pref("browser.newtabpage.activity-stream.feeds.topsites", false);
|
||||
user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
|
||||
|
||||
/** POCKET ***/
|
||||
user_pref("extensions.pocket.enabled", false);
|
||||
|
||||
/** DOWNLOADS ***/
|
||||
user_pref("browser.download.always_ask_before_handling_new_types", true);
|
||||
user_pref("browser.download.manager.addToRecentDocs", false);
|
||||
|
||||
/** PDF ***/
|
||||
user_pref("browser.download.open_pdf_attachments_inline", true);
|
||||
|
||||
/** TAB BEHAVIOR ***/
|
||||
user_pref("browser.bookmarks.openInTabClosesMenu", false);
|
||||
user_pref("browser.menu.showViewImageInfo", true);
|
||||
user_pref("findbar.highlightAll", true);
|
||||
user_pref("layout.word_select.eat_space_to_next_word", false);
|
||||
|
||||
/****************************************************************************
|
||||
* START: MY OVERRIDES *
|
||||
****************************************************************************/
|
||||
// visit https://github.com/yokoffing/Betterfox/wiki/Common-Overrides
|
||||
// visit https://github.com/yokoffing/Betterfox/wiki/Optional-Hardening
|
||||
// Enter your personal overrides below this line:
|
||||
|
||||
// PREF: restore login manager
|
||||
user_pref("signon.rememberSignons", true);
|
||||
|
||||
// PREF: allow websites to ask you for your location
|
||||
user_pref("permissions.default.geo", 0);
|
||||
|
||||
// PREF: restore search engine suggestions
|
||||
user_pref("browser.search.suggest.enabled", true);
|
||||
|
||||
// PREF: enable HTTPS-Only Mode
|
||||
// Warn me before loading sites that don't support HTTPS
|
||||
// in both Normal and Private Browsing windows.
|
||||
user_pref("dom.security.https_only_mode", true);
|
||||
user_pref("dom.security.https_only_mode_error_page_user_suggestions", true);
|
||||
|
||||
// PREF: do not save extra session data such as form content,
|
||||
// scrollbar positions, and POST data after crashes or restarts
|
||||
user_pref("browser.sessionstore.privacy_level", 2);
|
||||
|
||||
// PREF: delete cookies, cache, and site data on shutdown
|
||||
user_pref("privacy.sanitize.sanitizeOnShutdown", true);
|
||||
user_pref("privacy.clearOnShutdown.cache", true);
|
||||
user_pref("privacy.clearOnShutdown.cookies", true);
|
||||
user_pref("privacy.clearOnShutdown.offlineApps", true);
|
||||
|
||||
// PREF: set DoH provider
|
||||
user_pref("network.trr.uri", "");
|
||||
|
||||
// PREF: enforce DNS-over-HTTPS (DoH)
|
||||
user_pref("network.trr.mode", 3);
|
||||
user_pref("network.dns.skipTRR-when-parental-control-enabled", false);
|
||||
|
||||
// PREF: disable all DRM content
|
||||
user_pref("media.eme.enabled", false);
|
||||
|
||||
// PREF: hide the setting; this also disables the DRM prompt (optional)
|
||||
user_pref("browser.eme.ui.enabled", false);
|
||||
|
||||
// PREF: require safe SSL negotiation
|
||||
// [ERROR] SSL_ERROR_UNSAFE_NEGOTIATION
|
||||
user_pref("security.ssl.require_safe_negotiation", true);
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: SMOOTHFOX *
|
||||
****************************************************************************/
|
||||
// visit https://github.com/yokoffing/Betterfox/blob/main/Smoothfox.js
|
||||
// Enter your scrolling overrides below this line:
|
||||
|
||||
/****************************************************************************
|
||||
* END: BETTERFOX *
|
||||
****************************************************************************/
|
||||
68
private_dot_config/dunst/dunstrc
Normal file
68
private_dot_config/dunst/dunstrc
Normal file
@ -0,0 +1,68 @@
|
||||
[global]
|
||||
monitor = 0
|
||||
follow = mouse
|
||||
width = 300
|
||||
height = 300
|
||||
origin = top-right
|
||||
offset = 10x50
|
||||
scale = 0
|
||||
notification_limit = 0
|
||||
progress_bar = true
|
||||
progress_bar_height = 10
|
||||
progress_bar_frame_width = 1
|
||||
progress_bar_min_width = 150
|
||||
progress_bar_max_width = 300
|
||||
indicate_hidden = yes
|
||||
transparency = 0
|
||||
separator_height = 2
|
||||
padding = 8
|
||||
horizontal_padding = 8
|
||||
text_icon_padding = 0
|
||||
frame_width = 2
|
||||
frame_color = "#504945"
|
||||
separator_color = frame
|
||||
sort = yes
|
||||
font = JetBrainsMono Nerd Font 11
|
||||
line_height = 0
|
||||
markup = full
|
||||
format = "<b>%s</b>\n%b"
|
||||
alignment = left
|
||||
vertical_alignment = center
|
||||
show_age_threshold = 60
|
||||
ellipsize = middle
|
||||
ignore_newline = no
|
||||
stack_duplicates = true
|
||||
hide_duplicate_count = false
|
||||
show_indicators = yes
|
||||
icon_position = left
|
||||
min_icon_size = 0
|
||||
max_icon_size = 32
|
||||
icon_path = /usr/share/icons/Papirus-Dark/16x16/status/:/usr/share/icons/Papirus-Dark/16x16/devices/
|
||||
sticky_history = yes
|
||||
history_length = 20
|
||||
browser = /usr/bin/firefox -new-tab
|
||||
always_run_script = true
|
||||
title = Dunst
|
||||
class = Dunst
|
||||
corner_radius = 8
|
||||
ignore_dbusclose = false
|
||||
force_xinerama = false
|
||||
mouse_left_click = close_current
|
||||
mouse_middle_click = do_action, close_current
|
||||
mouse_right_click = close_all
|
||||
|
||||
[urgency_low]
|
||||
background = "#282828"
|
||||
foreground = "#ebdbb2"
|
||||
timeout = 10
|
||||
|
||||
[urgency_normal]
|
||||
background = "#3c3836"
|
||||
foreground = "#ebdbb2"
|
||||
timeout = 10
|
||||
|
||||
[urgency_critical]
|
||||
background = "#cc241d"
|
||||
foreground = "#ebdbb2"
|
||||
frame_color = "#fb4934"
|
||||
timeout = 0
|
||||
186
private_dot_config/eww/eww.scss
Normal file
186
private_dot_config/eww/eww.scss
Normal file
@ -0,0 +1,186 @@
|
||||
/* ~/.config/eww/eww.scss */
|
||||
|
||||
/* Variables pour les couleurs Gruvbox */
|
||||
$bg0: rgba(40, 40, 40, 0.95);
|
||||
$bg1: rgba(60, 56, 54, 0.8);
|
||||
$bg2: rgba(80, 73, 69, 0.8);
|
||||
$fg: #ebdbb2;
|
||||
$green: #98971a;
|
||||
$bright-green: #b8bb26;
|
||||
$red: #cc241d;
|
||||
$bright-red: #fb4934;
|
||||
$blue: #458588;
|
||||
$purple: #b16286;
|
||||
$aqua: #689d6a;
|
||||
$orange: #d65d0e;
|
||||
|
||||
/* Styles de base pour le centre de contrôle */
|
||||
.control-center {
|
||||
background-color: $bg0;
|
||||
border: 2px solid $bg2;
|
||||
border-radius: 12px;
|
||||
padding: 1.5rem;
|
||||
color: $fg;
|
||||
animation: slide-in 200ms ease-out;
|
||||
}
|
||||
|
||||
/* En-tête du centre de contrôle */
|
||||
.header {
|
||||
margin-bottom: 1rem;
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
|
||||
.close-button {
|
||||
margin-left: auto;
|
||||
padding: 0 8px;
|
||||
border-radius: 6px;
|
||||
background: transparent;
|
||||
color: $fg;
|
||||
font-size: 1.4rem;
|
||||
|
||||
&:hover {
|
||||
background: $red;
|
||||
color: $bg0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Styles communs pour toutes les sections */
|
||||
.section {
|
||||
background: $bg1;
|
||||
border-radius: 10px;
|
||||
padding: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
/* Section des curseurs */
|
||||
.sliders-box {
|
||||
.slider {
|
||||
margin: 0.5rem 0;
|
||||
|
||||
.icon {
|
||||
min-width: 2rem;
|
||||
margin-right: 1rem;
|
||||
font-size: 1.2rem;
|
||||
color: $fg;
|
||||
|
||||
&.muted {
|
||||
color: $red;
|
||||
}
|
||||
}
|
||||
|
||||
scale {
|
||||
min-width: 180px;
|
||||
min-height: 20px;
|
||||
|
||||
trough {
|
||||
background: $bg2;
|
||||
border-radius: 6px;
|
||||
min-height: 6px;
|
||||
|
||||
highlight {
|
||||
background: $green;
|
||||
border-radius: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover trough highlight {
|
||||
background: $bright-green;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Section des toggles rapides */
|
||||
.toggles-box {
|
||||
.toggle {
|
||||
background: $bg2;
|
||||
min-width: 3rem;
|
||||
min-height: 3rem;
|
||||
border-radius: 8px;
|
||||
font-size: 1.3rem;
|
||||
transition: all 200ms ease;
|
||||
|
||||
&:hover {
|
||||
background: darken($bg2, 10%);
|
||||
}
|
||||
|
||||
&.active {
|
||||
background: $green;
|
||||
color: $bg0;
|
||||
|
||||
&:hover {
|
||||
background: $bright-green;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Section d'information système */
|
||||
.system-info {
|
||||
.system-info-item {
|
||||
margin: 0.5rem 0;
|
||||
|
||||
.icon {
|
||||
min-width: 2rem;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
label {
|
||||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
.progress-bar {
|
||||
min-width: 100px;
|
||||
|
||||
trough {
|
||||
background: $bg2;
|
||||
border-radius: 4px;
|
||||
min-height: 6px;
|
||||
|
||||
progress {
|
||||
background: $green;
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Couleurs progressives basées sur les classes */
|
||||
&.high progress {
|
||||
background: $red;
|
||||
}
|
||||
|
||||
&.medium progress {
|
||||
background: $orange;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Animation d'entrée du panneau */
|
||||
@keyframes slide-in {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* Animation pour les transitions d'état des boutons */
|
||||
.toggle, .close-button {
|
||||
transition: all 200ms ease;
|
||||
}
|
||||
|
||||
/* Style des tooltips */
|
||||
tooltip {
|
||||
background: $bg0;
|
||||
border: 1px solid $bg2;
|
||||
border-radius: 6px;
|
||||
|
||||
label {
|
||||
color: $fg;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
}
|
||||
113
private_dot_config/eww/eww.yuck
Normal file
113
private_dot_config/eww/eww.yuck
Normal file
@ -0,0 +1,113 @@
|
||||
;; Définition de la fenêtre principale
|
||||
(defwindow control_center
|
||||
:monitor 0
|
||||
:geometry (geometry :x "8px"
|
||||
:y "42px"
|
||||
:width "280px"
|
||||
:height "400px"
|
||||
:anchor "top right")
|
||||
:stacking "fg"
|
||||
:exclusive false
|
||||
(control_center_widget))
|
||||
|
||||
;; Widget principal qui organise tous nos contrôles
|
||||
(defwidget control_center_widget []
|
||||
(box :class "control-center"
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
|
||||
;; En-tête avec le titre
|
||||
(box :class "header"
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
(label :text "Control Center")
|
||||
(button :onclick "eww close control_center"
|
||||
:class "close-button"
|
||||
"×"))
|
||||
|
||||
;; Section des curseurs
|
||||
(box :class "section sliders-box"
|
||||
:orientation "v"
|
||||
:spacing 10
|
||||
(volume-slider)
|
||||
(brightness-slider))
|
||||
|
||||
;; Section d'information système
|
||||
(box :class "section system-info"
|
||||
:orientation "v"
|
||||
:spacing 5
|
||||
(cpu-info)
|
||||
(memory-info)
|
||||
(battery-info))))
|
||||
|
||||
;; Widgets individuels pour chaque contrôle
|
||||
(defwidget volume-slider []
|
||||
(box :class "slider"
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
(button :onclick "pactl set-sink-mute @DEFAULT_SINK@ toggle"
|
||||
:class "icon ${volume-muted ? 'muted' : ''}"
|
||||
{volume-muted ? "" : ""})
|
||||
(scale :min 0
|
||||
:max 101
|
||||
:value volume
|
||||
:onchange "pactl set-sink-volume @DEFAULT_SINK@ {}%")))
|
||||
|
||||
(defwidget brightness-slider []
|
||||
(box :class "slider"
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
(label :class "icon" :text "")
|
||||
(scale :min 0
|
||||
:max 101
|
||||
:value brightness
|
||||
:onchange "brightnessctl set {}%")))
|
||||
|
||||
(defwidget cpu-info []
|
||||
(box :class "system-info-item"
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
(label :class "icon" :text "")
|
||||
(label :text "CPU: ${cpu}%")
|
||||
(progress :value cpu
|
||||
:class "progress-bar")))
|
||||
|
||||
(defwidget memory-info []
|
||||
(box :class "system-info-item"
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
(label :class "icon" :text "")
|
||||
(label :text "RAM: ${memory}%")
|
||||
(progress :value memory
|
||||
:class "progress-bar")))
|
||||
|
||||
(defwidget battery-info []
|
||||
(box :class "system-info-item"
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
(label :class "icon" :text {battery-icon})
|
||||
(label :text "Battery: ${battery}%")
|
||||
(progress :value battery
|
||||
:class "progress-bar")))
|
||||
|
||||
;; Variables pour les écouteurs d'événements
|
||||
(deflisten volume :initial "0"
|
||||
"scripts/get-volume.sh")
|
||||
|
||||
(deflisten volume-muted :initial "false"
|
||||
"scripts/get-mute-state.sh")
|
||||
|
||||
(deflisten brightness :initial "0"
|
||||
"scripts/get-brightness.sh")
|
||||
|
||||
(deflisten cpu :initial "0"
|
||||
"scripts/get-cpu.sh")
|
||||
|
||||
(deflisten memory :initial "0"
|
||||
"scripts/get-memory.sh")
|
||||
|
||||
(deflisten battery :initial "0"
|
||||
"scripts/get-battery.sh")
|
||||
|
||||
(deflisten battery-icon :initial ""
|
||||
"scripts/get-battery-icon.sh")"
|
||||
22
private_dot_config/eww/scripts/get-battery-icon.sh
Executable file
22
private_dot_config/eww/scripts/get-battery-icon.sh
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
# Détermine l'icône de batterie appropriée
|
||||
|
||||
while true; do
|
||||
capacity=$(cat /sys/class/power_supply/BAT0/capacity 2>/dev/null || echo "0")
|
||||
status=$(cat /sys/class/power_supply/BAT0/status 2>/dev/null || echo "Unknown")
|
||||
|
||||
if [ "$status" = "Charging" ]; then
|
||||
echo ""
|
||||
elif [ $capacity -ge 90 ]; then
|
||||
echo ""
|
||||
elif [ $capacity -ge 70 ]; then
|
||||
echo ""
|
||||
elif [ $capacity -ge 40 ]; then
|
||||
echo ""
|
||||
elif [ $capacity -ge 20 ]; then
|
||||
echo ""
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
sleep 5
|
||||
done
|
||||
8
private_dot_config/eww/scripts/get-battery.sh
Executable file
8
private_dot_config/eww/scripts/get-battery.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
# Surveille le niveau de batterie
|
||||
|
||||
while true; do
|
||||
# Récupère le pourcentage de batterie
|
||||
cat /sys/class/power_supply/BAT0/capacity 2>/dev/null || echo "0"
|
||||
sleep 5
|
||||
done
|
||||
8
private_dot_config/eww/scripts/get-brightness.sh
Executable file
8
private_dot_config/eww/scripts/get-brightness.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
# Surveille la luminosité de l'écran
|
||||
|
||||
while true; do
|
||||
# Récupère le pourcentage de luminosité actuel
|
||||
brightnessctl -m | awk -F, '{print substr($4, 0, length($4)-1)}'
|
||||
sleep 0.5
|
||||
done
|
||||
8
private_dot_config/eww/scripts/get-cpu.sh
Executable file
8
private_dot_config/eww/scripts/get-cpu.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
# Surveille l'utilisation du CPU
|
||||
|
||||
while true; do
|
||||
# Calcule l'utilisation CPU moyenne
|
||||
top -bn1 | grep "Cpu(s)" | awk '{print int($2 + $4)}'
|
||||
sleep 1
|
||||
done
|
||||
8
private_dot_config/eww/scripts/get-memory.sh
Executable file
8
private_dot_config/eww/scripts/get-memory.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
# Surveille l'utilisation de la mémoire
|
||||
|
||||
while true; do
|
||||
# Calcule le pourcentage de mémoire utilisée
|
||||
free | grep Mem | awk '{print int($3/$2 * 100)}'
|
||||
sleep 1
|
||||
done
|
||||
8
private_dot_config/eww/scripts/get-mute-state.sh
Executable file
8
private_dot_config/eww/scripts/get-mute-state.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
# Surveille l'état muet de l'audio
|
||||
|
||||
while true; do
|
||||
# Renvoie "true" si le son est coupé, "false" sinon
|
||||
pactl get-sink-mute @DEFAULT_SINK@ | grep -q "yes" && echo "true" || echo "false"
|
||||
sleep 0.5
|
||||
done
|
||||
8
private_dot_config/eww/scripts/get-volume.sh
Executable file
8
private_dot_config/eww/scripts/get-volume.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
# Ce script surveille en continu le niveau du volume
|
||||
|
||||
while true; do
|
||||
# Récupère le volume actuel en pourcentage, supprime le symbole %
|
||||
pactl get-sink-volume @DEFAULT_SINK@ | grep -Po '[0-9]{1,3}(?=%)' | head -1
|
||||
sleep 0.5
|
||||
done
|
||||
63
private_dot_config/fish/config.fish
Normal file
63
private_dot_config/fish/config.fish
Normal file
@ -0,0 +1,63 @@
|
||||
set fish_greeting
|
||||
|
||||
# Plugins installation and configuration
|
||||
# The fish_inclusion variable is used to avoid multiple inclusions of the plugins
|
||||
# because of the fish configuration file being sourced every time fisher is called
|
||||
# Everithing related to the plugins must be in the if block
|
||||
if not set -q fish_inclusion
|
||||
|
||||
set -U fish_inclusion 1
|
||||
|
||||
function install_fisher_plugin
|
||||
set -l plugin_path $argv[1]
|
||||
set -l plugin_name $argv[2]
|
||||
|
||||
if not test -e $plugin_path
|
||||
if test $plugin_name = "jorgebucaran/fisher"
|
||||
# Install Fisher
|
||||
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install $plugin_name
|
||||
else
|
||||
fisher install $plugin_name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
install_fisher_plugin ~/.config/fish/functions/fisher.fish jorgebucaran/fisher
|
||||
install_fisher_plugin ~/.config/fish/functions/theme_gruvbox.fish jomik/fish-gruvbox # Gruvbox theme for bg and fg
|
||||
install_fisher_plugin ~/.config/fish/conf.d/gruvbox.fish sujaybokil/fish-gruvbox # Gruvbox theme for syntax highlighting
|
||||
install_fisher_plugin ~/.config/fish/conf.d/autopair.fish jorgebucaran/autopair.fish
|
||||
install_fisher_plugin ~/.config/fish/conf.d/sponge.fish meaningful-ooo/sponge
|
||||
install_fisher_plugin ~/.config/fish/conf.d/abbr_tips.fish gazorby/fish-abbreviation-tips
|
||||
|
||||
theme_gruvbox dark soft
|
||||
|
||||
set sponge_regex_patterns '^\s+.*'
|
||||
set sponge_allow_previously_successful true
|
||||
|
||||
set -eU fish_inclusion
|
||||
end
|
||||
|
||||
|
||||
# Set personal aliases
|
||||
# For a full list of active aliases, run `alias`.
|
||||
alias ls='lsd'
|
||||
alias ll='ls -alF'
|
||||
alias rm='rip'
|
||||
alias cat='bat'
|
||||
alias grep='rg'
|
||||
alias find='fd -H'
|
||||
alias sed='sd'
|
||||
alias c='clear'
|
||||
alias prolog='~/.config/scryer-prolog/target/release/scryer-prolog' # À remplacer par prolog='scryer-prolog'
|
||||
alias csc='sudo cytech-site-change'
|
||||
alias quit='exit'
|
||||
alias compresse='echo "tar -cv [nomDuFichieràCompresser] -f [nomArchive].tar"'
|
||||
alias maj='~/./miseajour.sh'
|
||||
alias vi='/usr/sbin/vim'
|
||||
alias vim='nvim'
|
||||
|
||||
# Set the Oh-My-Posh prompt
|
||||
oh-my-posh init fish --config $HOME/.config/ohmyposh/prompt.json | source
|
||||
|
||||
# Allow zoxide to work and to replace cd
|
||||
zoxide init --cmd cd fish | source
|
||||
16
private_dot_config/gtk-3.0/settings.ini
Normal file
16
private_dot_config/gtk-3.0/settings.ini
Normal file
@ -0,0 +1,16 @@
|
||||
[Settings]
|
||||
gtk-theme-name=Gruvbox-Material-Dark
|
||||
gtk-icon-theme-name=Gruvbox-Material-Dark
|
||||
gtk-font-name=JetBrainsMono Nerd Font 11
|
||||
gtk-cursor-theme-name=Bibata-Modern-Classic
|
||||
gtk-cursor-theme-size=24
|
||||
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||
gtk-button-images=1
|
||||
gtk-menu-images=1
|
||||
gtk-enable-event-sounds=0
|
||||
gtk-enable-input-feedback-sounds=0
|
||||
gtk-xft-antialias=1
|
||||
gtk-xft-hinting=1
|
||||
gtk-xft-hintstyle=hintslight
|
||||
gtk-xft-rgba=rgb
|
||||
11
private_dot_config/hypr/env.conf
Normal file
11
private_dot_config/hypr/env.conf
Normal file
@ -0,0 +1,11 @@
|
||||
# GTK theme
|
||||
env = GTK_THEME,Gruvbox-Material-Dark
|
||||
env = XCURSOR_THEME,Bibata-Modern-Classic
|
||||
env = XCURSOR_SIZE,24
|
||||
|
||||
# Qt theme
|
||||
env = QT_QPA_PLATFORMTHEME,qt5ct
|
||||
env = QT_QPA_PLATFORM,wayland
|
||||
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
||||
|
||||
env = KITTY_ENABLE_WAYLAND,1
|
||||
99
private_dot_config/hypr/hyprland.conf
Normal file
99
private_dot_config/hypr/hyprland.conf
Normal file
@ -0,0 +1,99 @@
|
||||
input {
|
||||
kb_layout = fr
|
||||
repeat_rate = 50
|
||||
repeat_delay = 300
|
||||
|
||||
follow_mouse = 1
|
||||
touchpad {
|
||||
natural_scroll = yes
|
||||
}
|
||||
|
||||
sensitivity = -0.3 # -1.0 - 1.0, 0 means no modification.
|
||||
accel_profile = flat
|
||||
}
|
||||
|
||||
# Gruvbox variables
|
||||
$bg = rgb(282828)
|
||||
$bg1 = rgb(3c3836)
|
||||
$bg2 = rgb(504945)
|
||||
$fg = rgb(ebdbb2)
|
||||
$red = rgb(cc241d)
|
||||
$green = rgb(98971a)
|
||||
$yellow = rgb(d79921)
|
||||
$blue = rgb(458588)
|
||||
$purple = rgb(b16286)
|
||||
$aqua = rgb(689d6a)
|
||||
$orange = rgb(d65d0e)
|
||||
|
||||
# Monitor configuration
|
||||
monitor=,preferred,auto,1
|
||||
|
||||
# General configuration
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 10
|
||||
border_size = 2
|
||||
col.active_border = $green $blue 45deg
|
||||
col.inactive_border = $bg2
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# Window decoration
|
||||
decoration {
|
||||
rounding = 8
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 0.95
|
||||
blur {
|
||||
enabled = true
|
||||
size = 5
|
||||
passes = 2
|
||||
new_optimizations = true
|
||||
}
|
||||
}
|
||||
|
||||
# Animations
|
||||
animations {
|
||||
enabled = true
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
|
||||
# Layout
|
||||
dwindle {
|
||||
pseudotile = true
|
||||
preserve_split = true
|
||||
}
|
||||
|
||||
misc {
|
||||
disable_splash_rendering = true
|
||||
disable_hyprland_logo = true
|
||||
}
|
||||
|
||||
# Basic workspaces configuration
|
||||
workspace=1,default:true
|
||||
workspace=2
|
||||
workspace=3
|
||||
workspace=4
|
||||
workspace=5
|
||||
workspace=HDMI-A-1,6
|
||||
workspace=HDMI-A-1,7
|
||||
workspace=HDMI-A-1,8
|
||||
workspace=HDMI-A-1,9
|
||||
workspace=HDMI-A-1,0
|
||||
|
||||
# Window rules
|
||||
windowrule = float, ^(pavucontrol)$
|
||||
windowrule = float, ^(nm-connection-editor)$
|
||||
windowrule = float, ^(rofi)$
|
||||
|
||||
# Autostart
|
||||
exec-once = waybar
|
||||
exec-once = hyprpaper
|
||||
exec-once = dunst
|
||||
|
||||
source = ~/.config/hypr/keybindings.conf
|
||||
source = ~/.config/hypr/env.conf
|
||||
11
private_dot_config/hypr/hyprpaper.conf
Normal file
11
private_dot_config/hypr/hyprpaper.conf
Normal file
@ -0,0 +1,11 @@
|
||||
# Preloading wallpapers
|
||||
preload = ~/.wallpapers/empire.png
|
||||
|
||||
# Per monitor configuration
|
||||
wallpaper = ,~/.wallpapers/empire.png
|
||||
|
||||
# Enable IPC mode
|
||||
ipc = true
|
||||
|
||||
# Disable splash screen
|
||||
splash = false
|
||||
37
private_dot_config/hypr/keybindings.conf
Normal file
37
private_dot_config/hypr/keybindings.conf
Normal file
@ -0,0 +1,37 @@
|
||||
$mainMod = SUPER # windows key
|
||||
|
||||
# Workspace actions
|
||||
bind = ALT, TAB, workspace, e+1
|
||||
bind = ALT SHIFT, TAB, workspace, e-1
|
||||
bind = $mainMod, TAB, workspace, r+1
|
||||
bind = $mainMod SHIFT, TAB, workspace, r-1
|
||||
bind = $mainMod, return, workspace, empty
|
||||
|
||||
# Window/Session actions
|
||||
bind = $mainMod, Q, killactive
|
||||
bind = $mainMod, return, fullscreen
|
||||
bind = $mainMod, L, exec, swaylock
|
||||
|
||||
# Application shortcuts
|
||||
bind = $mainMod, T, exec, kitty
|
||||
bind = $mainMod, E, exec, dolphin
|
||||
bind = $mainMod, F, exec, firefox
|
||||
|
||||
# Move focus with ALT + WASD
|
||||
bind = ALT, Q, movefocus, l
|
||||
bind = ALT, D, movefocus, r
|
||||
bind = ALT, Z, movefocus, u
|
||||
bind = ALT, S, movefocus, d
|
||||
|
||||
# Resize windows
|
||||
binde = $mainMod SHIFT, right, resizeactive, 30 0
|
||||
binde = $mainMod SHIFT, left, resizeactive, -30 0
|
||||
binde = $mainMod SHIFT, up, resizeactive, 0 -30
|
||||
binde = $mainMod SHIFT, down, resizeactive, 0 30
|
||||
|
||||
# Move/Resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Trigger when the switch is turning off
|
||||
bindl= , switch:on:Lid Switch, exec, swaylock && systemctl suspend
|
||||
1472
private_dot_config/kitty/kitty.conf
Normal file
1472
private_dot_config/kitty/kitty.conf
Normal file
File diff suppressed because it is too large
Load Diff
149
private_dot_config/lsd/config.yaml
Normal file
149
private_dot_config/lsd/config.yaml
Normal file
@ -0,0 +1,149 @@
|
||||
# == Classic ==
|
||||
# This is a shorthand to override some of the options to be backwards compatible
|
||||
# with `ls`. It affects the "color"->"when", "sorting"->"dir-grouping", "date"
|
||||
# and "icons"->"when" options.
|
||||
# Possible values: false, true
|
||||
classic: false
|
||||
|
||||
# == Blocks ==
|
||||
# This specifies the columns and their order when using the long and the tree
|
||||
# layout.
|
||||
# Possible values: permission, user, group, context, size, date, name, inode, links, git
|
||||
blocks:
|
||||
- permission
|
||||
- user
|
||||
- group
|
||||
- size
|
||||
- date
|
||||
- git
|
||||
- name
|
||||
|
||||
# == Color ==
|
||||
# This has various color options. (Will be expanded in the future.)
|
||||
color:
|
||||
# When to colorize the output.
|
||||
# When "classic" is set, this is set to "never".
|
||||
# Possible values: never, auto, always
|
||||
when: auto
|
||||
# How to colorize the output.
|
||||
# When "classic" is set, this is set to "no-color".
|
||||
# Possible values: default, custom
|
||||
# When "custom" is set, lsd will look in the config directory for `colors.yaml`.
|
||||
theme: default
|
||||
|
||||
# == Date ==
|
||||
# This specifies the date format for the date column. The freeform format
|
||||
# accepts a strftime like string.
|
||||
# When "classic" is set, this is set to "date".
|
||||
# Possible values: date, locale, relative, '+<date_format>'
|
||||
# `date_format` will be a `strftime` formatted value. e.g. `date: '+%d %b %y %X'` will give you a date like this: 17 Jun 21 20:14:55
|
||||
date: date
|
||||
|
||||
# == Dereference ==
|
||||
# Whether to dereference symbolic links.
|
||||
# Possible values: false, true
|
||||
dereference: false
|
||||
|
||||
# == Display ==
|
||||
# What items to display. Do not specify this for the default behavior.
|
||||
# Possible values: all, almost-all, directory-only
|
||||
# display: all
|
||||
|
||||
# == Icons ==
|
||||
icons:
|
||||
# When to use icons.
|
||||
# When "classic" is set, this is set to "never".
|
||||
# Possible values: always, auto, never
|
||||
when: auto
|
||||
# Which icon theme to use.
|
||||
# Possible values: fancy, unicode
|
||||
theme: fancy
|
||||
# Separator between icon and the name
|
||||
# Default to 1 space
|
||||
separator: " "
|
||||
|
||||
# == Ignore Globs ==
|
||||
# A list of globs to ignore when listing.
|
||||
# ignore-globs:
|
||||
# - .git
|
||||
|
||||
# == Indicators ==
|
||||
# Whether to add indicator characters to certain listed files.
|
||||
# Possible values: false, true
|
||||
indicators: false
|
||||
|
||||
# == Layout ==
|
||||
# Which layout to use. "oneline" might be a bit confusing here and should be
|
||||
# called "one-per-line". It might be changed in the future.
|
||||
# Possible values: grid, tree, oneline
|
||||
layout: grid
|
||||
|
||||
# == Recursion ==
|
||||
recursion:
|
||||
# Whether to enable recursion.
|
||||
# Possible values: false, true
|
||||
enabled: false
|
||||
# How deep the recursion should go. This has to be a positive integer. Leave
|
||||
# it unspecified for (virtually) infinite.
|
||||
# depth: 3
|
||||
|
||||
# == Size ==
|
||||
# Specifies the format of the size column.
|
||||
# Possible values: default, short, bytes
|
||||
size: default
|
||||
|
||||
# == Permission ==
|
||||
# Specify the format of the permission column
|
||||
# Possible value: rwx, octal, attributes (windows only), disabled
|
||||
# permission: rwx
|
||||
|
||||
# == Sorting ==
|
||||
sorting:
|
||||
# Specify what to sort by.
|
||||
# Possible values: extension, name, time, size, version
|
||||
column: name
|
||||
# Whether to reverse the sorting.
|
||||
# Possible values: false, true
|
||||
reverse: false
|
||||
# Whether to group directories together and where.
|
||||
# When "classic" is set, this is set to "none".
|
||||
# Possible values: first, last, none
|
||||
dir-grouping: none
|
||||
|
||||
# == No Symlink ==
|
||||
# Whether to omit showing symlink targets
|
||||
# Possible values: false, true
|
||||
no-symlink: false
|
||||
|
||||
# == Total size ==
|
||||
# Whether to display the total size of directories.
|
||||
# Possible values: false, true
|
||||
total-size: false
|
||||
|
||||
# == Hyperlink ==
|
||||
# Attach hyperlink to filenames
|
||||
# Possible values: always, auto, never
|
||||
hyperlink: never
|
||||
|
||||
# == Symlink arrow ==
|
||||
# Specifies how the symlink arrow display, chars in both ascii and utf8
|
||||
symlink-arrow: ⇒
|
||||
|
||||
# == Header ==
|
||||
# Whether to display block headers.
|
||||
# Possible values: false, true
|
||||
header: false
|
||||
|
||||
# == Literal ==
|
||||
# Whether to show quotes on filenames.
|
||||
# Possible values: false, true
|
||||
# literal: false
|
||||
|
||||
# == Truncate owner ==
|
||||
# How to truncate the username and group names for a file if they exceed a certain
|
||||
# number of characters.
|
||||
# truncate-owner:
|
||||
# Number of characters to keep. By default, no truncation is done (empty value).
|
||||
# after:
|
||||
# String to be appended to a name if truncated.
|
||||
# marker: ""
|
||||
37
private_dot_config/nvim/init.lua
Normal file
37
private_dot_config/nvim/init.lua
Normal file
@ -0,0 +1,37 @@
|
||||
vim.g.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/"
|
||||
vim.g.mapleader = ","
|
||||
|
||||
-- bootstrap lazy and all plugins
|
||||
local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
|
||||
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
local repo = "https://github.com/folke/lazy.nvim.git"
|
||||
vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath }
|
||||
end
|
||||
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
local lazy_config = require "configs.lazy"
|
||||
|
||||
-- load plugins
|
||||
require("lazy").setup({
|
||||
{
|
||||
"NvChad/NvChad",
|
||||
lazy = false,
|
||||
branch = "v2.5",
|
||||
import = "nvchad.plugins",
|
||||
},
|
||||
|
||||
{ import = "plugins" },
|
||||
}, lazy_config)
|
||||
|
||||
-- load theme
|
||||
dofile(vim.g.base46_cache .. "defaults")
|
||||
dofile(vim.g.base46_cache .. "statusline")
|
||||
|
||||
require "options"
|
||||
require "nvchad.autocmds"
|
||||
|
||||
vim.schedule(function()
|
||||
require "mappings"
|
||||
end)
|
||||
70
private_dot_config/nvim/lua/autocmds.lua
Normal file
70
private_dot_config/nvim/lua/autocmds.lua
Normal file
@ -0,0 +1,70 @@
|
||||
local autocmd = vim.api.nvim_create_autocmd
|
||||
|
||||
-- dont list quickfix buffers
|
||||
autocmd("FileType", {
|
||||
pattern = "qf",
|
||||
callback = function()
|
||||
vim.opt_local.buflisted = false
|
||||
end,
|
||||
})
|
||||
|
||||
-- reload some chadrc options on-save
|
||||
autocmd("BufWritePost", {
|
||||
pattern = vim.tbl_map(function(path)
|
||||
return vim.fs.normalize(vim.loop.fs_realpath(path))
|
||||
end, vim.fn.glob(vim.fn.stdpath "config" .. "/lua/**/*.lua", true, true, true)),
|
||||
group = vim.api.nvim_create_augroup("ReloadNvChad", {}),
|
||||
|
||||
callback = function(opts)
|
||||
local fp = vim.fn.fnamemodify(vim.fs.normalize(vim.api.nvim_buf_get_name(opts.buf)), ":r") --[[@as string]]
|
||||
local app_name = vim.env.NVIM_APPNAME and vim.env.NVIM_APPNAME or "nvim"
|
||||
local module = string.gsub(fp, "^.*/" .. app_name .. "/lua/", ""):gsub("/", ".")
|
||||
|
||||
require("plenary.reload").reload_module "nvconfig"
|
||||
require("plenary.reload").reload_module "chadrc"
|
||||
require("plenary.reload").reload_module "base46"
|
||||
require("plenary.reload").reload_module(module)
|
||||
|
||||
local config = require "nvconfig"
|
||||
|
||||
-- statusline
|
||||
require("plenary.reload").reload_module "nvchad.stl.utils"
|
||||
require("plenary.reload").reload_module("nvchad.stl." .. config.ui.statusline.theme)
|
||||
vim.opt.statusline = "%!v:lua.require('nvchad.stl." .. config.ui.statusline.theme .. "')()"
|
||||
|
||||
-- tabufline
|
||||
if config.ui.tabufline.enabled then
|
||||
require("plenary.reload").reload_module "nvchad.tabufline.modules"
|
||||
vim.opt.tabline = "%!v:lua.require('nvchad.tabufline.modules')()"
|
||||
end
|
||||
|
||||
require("base46").load_all_highlights()
|
||||
-- vim.cmd("redraw!")
|
||||
end,
|
||||
})
|
||||
|
||||
-- user event that loads after UIEnter + only if file buf is there
|
||||
vim.api.nvim_create_autocmd({ "UIEnter", "BufReadPost", "BufNewFile" }, {
|
||||
group = vim.api.nvim_create_augroup("NvFilePost", { clear = true }),
|
||||
callback = function(args)
|
||||
local file = vim.api.nvim_buf_get_name(args.buf)
|
||||
local buftype = vim.api.nvim_buf_get_option(args.buf, "buftype")
|
||||
|
||||
if not vim.g.ui_entered and args.event == "UIEnter" then
|
||||
vim.g.ui_entered = true
|
||||
end
|
||||
|
||||
if file ~= "" and buftype ~= "nofile" and vim.g.ui_entered then
|
||||
vim.api.nvim_exec_autocmds("User", { pattern = "FilePost", modeline = false })
|
||||
vim.api.nvim_del_augroup_by_name "NvFilePost"
|
||||
|
||||
vim.schedule(function()
|
||||
vim.api.nvim_exec_autocmds("FileType", {})
|
||||
|
||||
if vim.g.editorconfig then
|
||||
require("editorconfig").config(args.buf)
|
||||
end
|
||||
end, 0)
|
||||
end
|
||||
end,
|
||||
})
|
||||
149
private_dot_config/nvim/lua/chadrc.lua
Normal file
149
private_dot_config/nvim/lua/chadrc.lua
Normal file
@ -0,0 +1,149 @@
|
||||
--------------------------------------------------------------------------
|
||||
--
|
||||
-- ██████╗██╗ ██╗ █████╗ ██████╗ ██████╗ ██████╗
|
||||
-- ██╔════╝██║ ██║██╔══██╗██╔══██╗██╔══██╗██╔════╝
|
||||
-- ██║ ███████║███████║██║ ██║██████╔╝██║
|
||||
-- ██║ ██╔══██║██╔══██║██║ ██║██╔══██╗██║
|
||||
-- ╚██████╗██║ ██║██║ ██║██████╔╝██║ ██║╚██████╗
|
||||
-- ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝ ╚═════╝
|
||||
--
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
---@type ChadrcConfig
|
||||
local options = {
|
||||
|
||||
ui = {
|
||||
------------------------------- nvchad_ui modules -----------------------------
|
||||
statusline = {
|
||||
enabled = true,
|
||||
theme = "default", -- default/vscode/vscode_colored/minimal
|
||||
-- default/round/block/arrow separators work only for default statusline theme
|
||||
-- round and block will work for minimal theme only
|
||||
separator_style = "arrow",
|
||||
order = nil,
|
||||
modules = nil,
|
||||
},
|
||||
|
||||
-- lazyload it when there are 1+ buffers
|
||||
tabufline = {
|
||||
enabled = true,
|
||||
lazyload = true,
|
||||
order = { "treeOffset", "buffers", "tabs", "btns" },
|
||||
modules = nil,
|
||||
},
|
||||
|
||||
telescope = { style = "bordered" }, -- borderless / bordered
|
||||
|
||||
cmp = {
|
||||
icons = true,
|
||||
icons_left = false, -- only for non-atom styles!
|
||||
lspkind_text = true,
|
||||
style = "default", -- default/flat_light/flat_dark/atom/atom_colored
|
||||
format_colors = {
|
||||
tailwind = false, -- will work for css lsp too
|
||||
icon = "",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
nvdash = {
|
||||
load_on_startup = true,
|
||||
header = {
|
||||
" I use ",
|
||||
" ██████ █████ █████ █████ ███ ",
|
||||
" ░░██████ ░░███ ░░███ ░░███ ░░░ ",
|
||||
" ░███░███ ░███ ██████ ██████ ░███ ░███ ████ █████████████ ",
|
||||
" ░███░░███░███ ███░░███ ███░░███ ░███ ░███ ░░███ ░░███░░███░░███ ",
|
||||
" ░███ ░░██████ ░███████ ░███ ░███ ░░███ ███ ░███ ░███ ░███ ░███ ",
|
||||
" ░███ ░░█████ ░███░░░ ░███ ░███ ░░░█████░ ░███ ░███ ░███ ░███ ",
|
||||
" █████ ░░█████░░██████ ░░██████ ░░███ █████ █████░███ █████ ",
|
||||
" ░░░░░ ░░░░░ ░░░░░░ ░░░░░░ ░░░ ░░░░░ ░░░░░ ░░░ ░░░░░ ",
|
||||
" btw ",
|
||||
},
|
||||
buttons = {
|
||||
{ txt = " Find file", keys = ", f f", cmd = "Telescope find_files" },
|
||||
{ txt = " Recent Files", keys = ", f o", cmd = "Telescope oldfiles" },
|
||||
{ txt = " Find Word", keys = ", f w", cmd = "Telescope live_grep" },
|
||||
{ txt = " Bookmarks", keys = ", m a", cmd = "Telescope marks" },
|
||||
{ txt = " Themes", keys = ", t h", cmd = "Telescope themes" },
|
||||
{ txt = " Mappings", keys = ", c h", cmd = "NvCheatsheet" },
|
||||
{ txt = "─", hl = "NvDashFooter", no_gap = true, rep = true },
|
||||
|
||||
{
|
||||
txt = function()
|
||||
local stats = require("lazy").stats()
|
||||
local ms = math.floor(stats.startuptime) .. " ms"
|
||||
return " Loaded " .. stats.loaded .. "/" .. stats.count .. " plugins in " .. ms
|
||||
end,
|
||||
hl = "NvDashFooter",
|
||||
no_gap = true,
|
||||
},
|
||||
|
||||
{ txt = "─", hl = "NvDashFooter", no_gap = true, rep = true },
|
||||
},
|
||||
},
|
||||
|
||||
term = {
|
||||
winopts = { number = false, relativenumber = false },
|
||||
sizes = { sp = 0.3, vsp = 0.2, ["bo sp"] = 0.3, ["bo vsp"] = 0.2 },
|
||||
float = {
|
||||
relative = "editor",
|
||||
row = 0.3,
|
||||
col = 0.25,
|
||||
width = 0.5,
|
||||
height = 0.4,
|
||||
border = "single",
|
||||
},
|
||||
},
|
||||
|
||||
lsp = {
|
||||
signature = true,
|
||||
semantic_tokens = false,
|
||||
},
|
||||
|
||||
cheatsheet = { theme = "grid" }, -- simple/grid
|
||||
|
||||
base46 = {
|
||||
integrations = {
|
||||
"codeactionmenu",
|
||||
"cmp",
|
||||
"dap",
|
||||
"defaults",
|
||||
"devicons",
|
||||
"git",
|
||||
"lsp",
|
||||
"lspsaga",
|
||||
"markview",
|
||||
"mason",
|
||||
"notify",
|
||||
"nvcheatsheet",
|
||||
"nvimtree",
|
||||
"statusline",
|
||||
"syntax",
|
||||
"treesitter",
|
||||
"trouble",
|
||||
"tbline",
|
||||
"telescope",
|
||||
"whichkey",
|
||||
},
|
||||
|
||||
theme = "gruvbox", -- default theme
|
||||
|
||||
hl_override = {
|
||||
Comment = { fg = "#928374" },
|
||||
["@comment"] = { fg = "#928374" },
|
||||
LineNr = { fg = "#928374" },
|
||||
},
|
||||
transparency = true,
|
||||
},
|
||||
|
||||
colorify = {
|
||||
enabled = true,
|
||||
mode = "virtual", -- fg, bg, virtual
|
||||
virt_text = " ",
|
||||
highlight = { hex = true, lspvars = true },
|
||||
},
|
||||
}
|
||||
|
||||
local status, chadrc = pcall(require, "chadrc")
|
||||
return vim.tbl_deep_extend("force", options, status and chadrc or {})
|
||||
26
private_dot_config/nvim/lua/configs/conform.lua
Normal file
26
private_dot_config/nvim/lua/configs/conform.lua
Normal file
@ -0,0 +1,26 @@
|
||||
local options = {
|
||||
lsp_fallback = true,
|
||||
|
||||
formatters_by_ft = {
|
||||
lua = { "stylua" },
|
||||
python = { "ruff", "black" },
|
||||
c = { "clang-format" },
|
||||
cpp = { "clang-format" },
|
||||
html = { "prettier" },
|
||||
css = { "prettier" },
|
||||
javascript = { "prettier" },
|
||||
markdown = { "prettier" },
|
||||
md = { "prettier" },
|
||||
text = { "prettier" },
|
||||
json = { "prettier" },
|
||||
yaml = { "prettier" },
|
||||
toml = { "prettier" },
|
||||
},
|
||||
|
||||
format_on_save = {
|
||||
timeout_ms = 500,
|
||||
lsp_fallback = true,
|
||||
},
|
||||
}
|
||||
|
||||
return options
|
||||
47
private_dot_config/nvim/lua/configs/lazy.lua
Normal file
47
private_dot_config/nvim/lua/configs/lazy.lua
Normal file
@ -0,0 +1,47 @@
|
||||
return {
|
||||
defaults = { lazy = true },
|
||||
install = { colorscheme = { "nvchad" } },
|
||||
|
||||
ui = {
|
||||
icons = {
|
||||
ft = "",
|
||||
lazy = " ",
|
||||
loaded = "",
|
||||
not_loaded = "",
|
||||
},
|
||||
},
|
||||
|
||||
performance = {
|
||||
rtp = {
|
||||
disabled_plugins = {
|
||||
"2html_plugin",
|
||||
"tohtml",
|
||||
"getscript",
|
||||
"getscriptPlugin",
|
||||
"gzip",
|
||||
"logipat",
|
||||
"netrw",
|
||||
"netrwPlugin",
|
||||
"netrwSettings",
|
||||
"netrwFileHandlers",
|
||||
"matchit",
|
||||
"tar",
|
||||
"tarPlugin",
|
||||
"rrhelper",
|
||||
"spellfile_plugin",
|
||||
"vimball",
|
||||
"vimballPlugin",
|
||||
"zip",
|
||||
"zipPlugin",
|
||||
"tutor",
|
||||
"rplugin",
|
||||
"syntax",
|
||||
"synmenu",
|
||||
"optwin",
|
||||
"compiler",
|
||||
"bugreport",
|
||||
"ftplugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
14
private_dot_config/nvim/lua/configs/lspconfig.lua
Normal file
14
private_dot_config/nvim/lua/configs/lspconfig.lua
Normal file
@ -0,0 +1,14 @@
|
||||
require("nvchad.configs.lspconfig").defaults()
|
||||
|
||||
local lspconfig = require("lspconfig")
|
||||
|
||||
local nvlsp = require("nvchad.configs.lspconfig")
|
||||
local servers = { "jdtls", "html", "cssls", "clangd", "pylsp", "basedpyright", "ruff" }
|
||||
|
||||
for _, lsp in ipairs(servers) do
|
||||
lspconfig[lsp].setup({
|
||||
on_init = nvlsp.on_init,
|
||||
on_attach = nvlsp.on_attach,
|
||||
capabilities = nvlsp.capabilities,
|
||||
})
|
||||
end
|
||||
84
private_dot_config/nvim/lua/configs/overrides.lua
Normal file
84
private_dot_config/nvim/lua/configs/overrides.lua
Normal file
@ -0,0 +1,84 @@
|
||||
local M = {}
|
||||
|
||||
M.treesitter = {
|
||||
ensure_installed = {
|
||||
"vim",
|
||||
"lua",
|
||||
"html",
|
||||
"css",
|
||||
"javascript",
|
||||
"typescript",
|
||||
"tsx",
|
||||
"php",
|
||||
"c",
|
||||
"cpp",
|
||||
"java",
|
||||
"python",
|
||||
"ninja",
|
||||
"rst",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"bash",
|
||||
"fish",
|
||||
"regex",
|
||||
"git_config",
|
||||
"gitcommit",
|
||||
"git_rebase",
|
||||
"gitignore",
|
||||
"gitattributes",
|
||||
"dockerfile",
|
||||
},
|
||||
indent = {
|
||||
enable = true,
|
||||
},
|
||||
}
|
||||
|
||||
M.mason = {
|
||||
cmd = true,
|
||||
pkgs = {
|
||||
-- lua stuff
|
||||
"lua-language-server",
|
||||
"stylua",
|
||||
|
||||
-- web dev stuff
|
||||
"css-lsp",
|
||||
"html-lsp",
|
||||
"prettier",
|
||||
|
||||
-- c/cpp stuff
|
||||
"clangd",
|
||||
"clang-format",
|
||||
|
||||
-- java stuff
|
||||
"jdtls",
|
||||
"java-test",
|
||||
"java-debug-adapter",
|
||||
"spring-boot-tools",
|
||||
"lombok",
|
||||
|
||||
-- python stuff
|
||||
"pylsp",
|
||||
"basedpyright",
|
||||
"ruff",
|
||||
"black",
|
||||
|
||||
"hadolint",
|
||||
},
|
||||
}
|
||||
|
||||
-- git support in nvimtree
|
||||
M.nvimtree = {
|
||||
git = {
|
||||
enable = true,
|
||||
},
|
||||
renderer = {
|
||||
highlight_git = true,
|
||||
icons = {
|
||||
show = {
|
||||
git = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return M
|
||||
212
private_dot_config/nvim/lua/mappings.lua
Normal file
212
private_dot_config/nvim/lua/mappings.lua
Normal file
@ -0,0 +1,212 @@
|
||||
local map = vim.keymap.set
|
||||
|
||||
map("i", "<C-b>", "<ESC>^i", { desc = "Move Beginning of line" })
|
||||
map("i", "<C-e>", "<End>", { desc = "Move End of line" })
|
||||
map("i", "<C-h>", "<Left>", { desc = "Move Left" })
|
||||
map("i", "<C-l>", "<Right>", { desc = "Move Right" })
|
||||
map("i", "<C-j>", "<Down>", { desc = "Move Down" })
|
||||
map("i", "<C-k>", "<Up>", { desc = "Move Up" })
|
||||
|
||||
map("n", "<Esc>", "<cmd>noh<CR>", { desc = "General Clear highlights" })
|
||||
|
||||
map("n", "<C-s>", "<cmd>w<CR>", { desc = "File Save" })
|
||||
map("n", "<C-c>", "<cmd>%y+<CR>", { desc = "File Copy whole" })
|
||||
|
||||
map("n", "<leader>n", "<cmd>set nu!<CR>", { desc = "Toggle Line number" })
|
||||
map("n", "<leader>rn", "<cmd>set rnu!<CR>", { desc = "Toggle Relative number" })
|
||||
map("n", "<leader>ch", "<cmd>NvCheatsheet<CR>", { desc = "Toggle NvCheatsheet" })
|
||||
|
||||
map("n", "<leader>fm", function()
|
||||
require("conform").format { lsp_fallback = true }
|
||||
end, { desc = "Format Files" })
|
||||
|
||||
-- lsp mappings
|
||||
map("n", "<A-CR>", "<cmd>Lspsaga code_action<CR>", { desc = "Lsp code action" })
|
||||
map("v", "<A-CR>", "<cmd>Lspsaga code_action<CR>", { desc = "Lsp code action" })
|
||||
map("n", "<A-p>", "<cmd>Lspsaga peek_definition<CR>", { desc = "Lsp peek definition" })
|
||||
map("n", "<A-P>", "<cmd>Lspsaga peek_type_definition<CR>", { desc = "Lsp peek type definition" })
|
||||
map("v", "<A-p>", "<cmd>Lspsaga peek_definition<CR>", { desc = "Lsp peek definition" })
|
||||
map("v", "<A-P>", "<cmd>Lspsaga peek_type_definition<CR>", { desc = "Lsp peek type definition" })
|
||||
map("n", "<A-g>", "<cmd>Lspsaga goto_definition<CR>", { desc = "Lsp goto definition" })
|
||||
map("n", "<A-G>", "<cmd>Lspsaga goto_type_definition<CR>", { desc = "Lsp goto type definition" })
|
||||
map("v", "<A-g>", "<cmd>Lspsaga goto_definition<CR>", { desc = "Lsp goto definition" })
|
||||
map("v", "<A-G>", "<cmd>Lspsaga goto_type_definition<CR>", { desc = "Lsp goto type definition" })
|
||||
map("n", "<A-r>", "<cmd>Lspsaga rename ++project<CR>", { desc = "Lsp rename" })
|
||||
map("v", "<A-r>", "<cmd>Lspsaga rename ++project<CR>", { desc = "Lsp rename" })
|
||||
map("n", "<A-d>", "<cmd>Lspsaga diagnostic_jump_next<CR>", { desc = "Lsp diagnostic next" })
|
||||
map("v", "<A-d>", "<cmd>Lspsaga diagnostic_jump_next<CR>", { desc = "Lsp diagnostic next" })
|
||||
map("n", "<A-D>", "<cmd>Lspsaga diagnostic_jump_prev<CR>", { desc = "Lsp diagnostic previous" })
|
||||
map("v", "<A-D>", "<cmd>Lspsaga diagnostic_jump_prev<CR>", { desc = "Lsp diagnostic previous" })
|
||||
|
||||
-- tabufline
|
||||
map("n", "<leader>b", "<cmd>enew<CR>", { desc = "Buffer New" })
|
||||
|
||||
map("n", "<tab>", function()
|
||||
require("nvchad.tabufline").next()
|
||||
end, { desc = "Buffer Goto next" })
|
||||
|
||||
map("n", "<S-tab>", function()
|
||||
require("nvchad.tabufline").prev()
|
||||
end, { desc = "Buffer Goto prev" })
|
||||
|
||||
map("n", "<leader>x", function()
|
||||
require("nvchad.tabufline").close_buffer()
|
||||
end, { desc = "Buffer Close" })
|
||||
|
||||
-- Comment
|
||||
map("n", "<leader>/", "gcc", { desc = "Comment toggle", remap = true })
|
||||
map("v", "<leader>/", "gc", { desc = "Comment toggle", remap = true })
|
||||
|
||||
-- Spider nvim movement
|
||||
map("n", "w", "<cmd>lua require('spider').motion('w')<CR>", {desc = "Spider Move to next word"})
|
||||
map("n", "b", "<cmd>lua require('spider').motion('b')<CR>", {desc = "Spider Move to previous word"})
|
||||
map("n", "e", "<cmd>lua require('spider').motion('e')<CR>", {desc = "Spider Move to end of word"})
|
||||
map("v", "w", "<cmd>lua require('spider').motion('w')<CR>", {desc = "Spider Move to next word"})
|
||||
map("v", "b", "<cmd>lua require('spider').motion('b')<CR>", {desc = "Spider Move to previous word"})
|
||||
map("v", "e", "<cmd>lua require('spider').motion('e')<CR>", {desc = "Spider Move to end of word"})
|
||||
|
||||
-- nvimtree
|
||||
map("n", "<C-n>", "<cmd>NvimTreeToggle<CR>", { desc = "Nvimtree Toggle window" })
|
||||
map("n", "<leader>e", "<cmd>NvimTreeFocus<CR>", { desc = "Nvimtree Focus window" })
|
||||
|
||||
-- telescope
|
||||
map("n", "<leader>fw", "<cmd>Telescope live_grep<CR>", { desc = "Telescope Live grep" })
|
||||
map("n", "<leader>fb", "<cmd>Telescope buffers<CR>", { desc = "Telescope Find buffers" })
|
||||
map("n", "<leader>fh", "<cmd>Telescope help_tags<CR>", { desc = "Telescope Help page" })
|
||||
|
||||
map("n", "<leader>fo", "<cmd>Telescope oldfiles<CR>", { desc = "Telescope Find oldfiles" })
|
||||
map("n", "<leader>fz", "<cmd>Telescope current_buffer_fuzzy_find<CR>", { desc = "Telescope Find in current buffer" })
|
||||
map("n", "<leader>cm", "<cmd>Telescope git_commits<CR>", { desc = "Telescope Git commits" })
|
||||
map("n", "<leader>gt", "<cmd>Telescope git_status<CR>", { desc = "Telescope Git status" })
|
||||
map("n", "<leader>pt", "<cmd>Telescope terms<CR>", { desc = "Telescope Pick hidden term" })
|
||||
map("n", "<leader>th", "<cmd>Telescope themes<CR>", { desc = "Telescope Nvchad themes" })
|
||||
map("n", "<leader>ff", "<cmd>Telescope find_files<cr>", { desc = "Telescope Find files" })
|
||||
map(
|
||||
"n",
|
||||
"<leader>fa",
|
||||
"<cmd>Telescope find_files follow=true no_ignore=true hidden=true<CR>",
|
||||
{ desc = "Telescope Find all files" }
|
||||
)
|
||||
|
||||
-- terminal
|
||||
map("t", "<C-x>", "<C-\\><C-N>", { desc = "Terminal Escape terminal mode" })
|
||||
|
||||
-- new terminals
|
||||
map("n", "<leader>h", function()
|
||||
require("nvchad.term").new { pos = "sp", size = 0.3 }
|
||||
end, { desc = "Terminal New horizontal term" })
|
||||
|
||||
map("n", "<leader>v", function()
|
||||
require("nvchad.term").new { pos = "vsp", size = 0.3 }
|
||||
end, { desc = "Terminal New vertical window" })
|
||||
|
||||
-- toggleable
|
||||
map({ "n", "t" }, "<A-v>", function()
|
||||
require("nvchad.term").toggle { pos = "vsp", id = "vtoggleTerm", size = 0.3 }
|
||||
end, { desc = "Terminal Toggleable vertical term" })
|
||||
|
||||
map({ "n", "t" }, "<A-h>", function()
|
||||
require("nvchad.term").toggle { pos = "sp", id = "htoggleTerm", size = 0.3 }
|
||||
end, { desc = "Terminal New horizontal term" })
|
||||
|
||||
map({ "n", "t" }, "<A-i>", function()
|
||||
require("nvchad.term").toggle { pos = "float", id = "floatTerm" }
|
||||
end, { desc = "Terminal Toggle Floating term" })
|
||||
|
||||
map("t", "<ESC>", function()
|
||||
local win = vim.api.nvim_get_current_win()
|
||||
vim.api.nvim_win_close(win, true)
|
||||
end, { desc = "Terminal Close term in terminal mode" })
|
||||
|
||||
-- whichkey
|
||||
map("n", "<leader>wK", "<cmd>WhichKey <CR>", { desc = "Whichkey all keymaps" })
|
||||
|
||||
map("n", "<leader>wk", function()
|
||||
vim.cmd("WhichKey " .. vim.fn.input "WhichKey: ")
|
||||
end, { desc = "Whichkey query lookup" })
|
||||
|
||||
-- blankline
|
||||
map("n", "<leader>cc", function()
|
||||
local config = { scope = {} }
|
||||
config.scope.exclude = { language = {}, node_type = {} }
|
||||
config.scope.include = { node_type = {} }
|
||||
local node = require("ibl.scope").get(vim.api.nvim_get_current_buf(), config)
|
||||
|
||||
if node then
|
||||
local start_row, _, end_row, _ = node:range()
|
||||
if start_row ~= end_row then
|
||||
vim.api.nvim_win_set_cursor(vim.api.nvim_get_current_win(), { start_row + 1, 0 })
|
||||
vim.api.nvim_feedkeys("_", "n", true)
|
||||
end
|
||||
end
|
||||
end, { desc = "Blankline Jump to current context" })
|
||||
|
||||
-- copilotchat
|
||||
map("n", "<leader>cch", function()
|
||||
local actions = require("CopilotChat.actions")
|
||||
require("CopilotChat.integrations.telescope").pick(actions.help_actions())
|
||||
end, { desc = "CopilotChat - Help actions" })
|
||||
map("n", "<leader>ccp", function()
|
||||
local actions = require("CopilotChat.actions")
|
||||
require("CopilotChat.integrations.telescope").pick(actions.prompt_actions())
|
||||
end, { desc = "CopilotChat - Prompt actions" })
|
||||
map("v", "<leader>cch", function()
|
||||
local actions = require("CopilotChat.actions")
|
||||
require("CopilotChat.integrations.telescope").pick(actions.help_actions())
|
||||
end, { desc = "CopilotChat - Help actions" })
|
||||
map("v", "<leader>ccp", function()
|
||||
local actions = require("CopilotChat.actions")
|
||||
require("CopilotChat.integrations.telescope").pick(actions.prompt_actions())
|
||||
end, { desc = "CopilotChat - Prompt actions" })
|
||||
|
||||
|
||||
|
||||
|
||||
-- Custom mappings
|
||||
map("n", "<space>", ":", { desc = "Enter command mode" })
|
||||
map({ "n", "v" }, "j", "h", { desc = "Move left" })
|
||||
map({ "n", "v" }, "k", "j", { desc = "Move down" })
|
||||
map({ "n", "v" }, "l", "k", { desc = "Move up" })
|
||||
map({ "n", "v" }, "m", "l", { desc = "Move right" })
|
||||
map("n", "<C-j>", "<C-w>h", { desc = "Move the cursor to the left window" })
|
||||
map("n", "<C-k>", "<C-w>j", { desc = "Move the cursor to the bottom window" })
|
||||
map("n", "<C-l>", "<C-w>k", { desc = "Move the cursor to the upper window" })
|
||||
map("n", "<C-m>", "<C-w>l", { desc = "Move the cursor to the right window" })
|
||||
map("n", "<C-up>", "<C-w>+", { desc = "Enlarge window upwards" })
|
||||
map("n", "<C-down>", "<C-w>-", { desc = "Enlarge window downwards" })
|
||||
map("n", "<C-left>", "<C-w>>", { desc = "Enlarge window to the left" })
|
||||
map("n", "<C-right>", "<C-w><", { desc = "Enlarge window to the rigth" })
|
||||
map("n", "o", "o<ESC>")
|
||||
map("n", "O", "O<ESC>")
|
||||
map("n", "n", "nzz")
|
||||
map("n", "N", "Nzz")
|
||||
map({ "n", "v" }, "y", "\"+y")
|
||||
map("n", "yy", "\"+yy")
|
||||
map({ "n", "v" }, "Y", "\"+yg_")
|
||||
map({ "n", "v" }, "p", "\"+p")
|
||||
map({ "n", "v" }, "P", "\"+P")
|
||||
map("n", "<leader>a", function()
|
||||
require("treesj").toggle()
|
||||
end, { desc = "Extends or retracts an instruction block" })
|
||||
map("n", "<leader>gb", "<cmd>Gitsigns blame<CR>", { desc = "Git blame" })
|
||||
map("v", "<leader>gb", "<cmd>Gitsigns blame<CR>", { desc = "Git blame" })
|
||||
map("i", "jj", "<ESC>", { desc = "Go into normal mode" })
|
||||
map("i", "<C-d>", "<ESC>ddi", { desc = "Delete a line" })
|
||||
|
||||
-- Disable mappings
|
||||
-- local nomap = vim.keymap.del
|
||||
|
||||
-- nomap("n", "h")
|
||||
-- nomap("n", "j")
|
||||
-- nomap("n", "k")
|
||||
-- nomap("n", "l")
|
||||
-- nomap("n", "<C-h>")
|
||||
-- nomap("n", "<C-j>")
|
||||
-- nomap("n", "<C-k>")
|
||||
-- nomap("n", "<C-l>")
|
||||
-- nomap("n", "<leader>")
|
||||
|
||||
-- nomap("v", "h")
|
||||
-- nomap("v", "j")
|
||||
-- nomap("v", "k")
|
||||
-- nomap("v", "l")
|
||||
13
private_dot_config/nvim/lua/options.lua
Normal file
13
private_dot_config/nvim/lua/options.lua
Normal file
@ -0,0 +1,13 @@
|
||||
require("nvchad.options")
|
||||
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
-- Modification de la taille des tabulations
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.softtabstop = 4
|
||||
|
||||
vim.opt.shell = "/usr/local/bin/fish"
|
||||
|
||||
-- local o = vim.o
|
||||
-- o.cursorlineopt ='both' -- to enable cursorline!
|
||||
63
private_dot_config/nvim/lua/plugins/init.lua
Normal file
63
private_dot_config/nvim/lua/plugins/init.lua
Normal file
@ -0,0 +1,63 @@
|
||||
local overrides = require("configs.overrides")
|
||||
|
||||
return {
|
||||
-- Format the file on save
|
||||
{
|
||||
"stevearc/conform.nvim",
|
||||
event = 'BufWritePre',
|
||||
config = function()
|
||||
require "configs.conform"
|
||||
end,
|
||||
},
|
||||
-- Install the parser (overrides)
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = overrides.treesitter,
|
||||
},
|
||||
-- File explorer (overrides)
|
||||
{
|
||||
"nvim-tree/nvim-tree.lua",
|
||||
opts = overrides.nvimtree,
|
||||
},
|
||||
-- Install and manage LSP servers (overrides)
|
||||
{
|
||||
"williamboman/mason.nvim",
|
||||
opts = overrides.mason,
|
||||
},
|
||||
-- LSP configuration (overrides)
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
config = function()
|
||||
require("nvchad.configs.lspconfig").defaults()
|
||||
require "configs.lspconfig"
|
||||
end,
|
||||
dependencies = {
|
||||
{
|
||||
"nvimdev/lspsaga.nvim",
|
||||
config = function()
|
||||
require('lspsaga').setup({
|
||||
lightbulb = {
|
||||
virtual_text = false,
|
||||
},
|
||||
code_action = {
|
||||
extend_gitsigns = true,
|
||||
},
|
||||
rename = {
|
||||
auto_save = true,
|
||||
}
|
||||
})
|
||||
end,
|
||||
dependencies = {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
"mfussenegger/nvim-dap",
|
||||
dependencies = {
|
||||
"mfussenegger/nvim-dap-python",
|
||||
},
|
||||
}
|
||||
}
|
||||
343
private_dot_config/nvim/lua/plugins/plugins.lua
Normal file
343
private_dot_config/nvim/lua/plugins/plugins.lua
Normal file
@ -0,0 +1,343 @@
|
||||
local plugins = {
|
||||
-- Open binary files in hex mode and edit them
|
||||
{
|
||||
"RaafatTurki/hex.nvim",
|
||||
config = true,
|
||||
lazy = false,
|
||||
},
|
||||
-- Auto-save files when in normal mode
|
||||
{
|
||||
"Pocco81/auto-save.nvim",
|
||||
lazy = false,
|
||||
config = function()
|
||||
require("auto-save").setup({})
|
||||
end,
|
||||
},
|
||||
-- Open every file where you left off
|
||||
{
|
||||
"ethanholz/nvim-lastplace",
|
||||
event = "BufRead",
|
||||
config = function()
|
||||
require("nvim-lastplace").setup({
|
||||
lastplace_ignore_buftype = { "quickfix", "nofile", "help" },
|
||||
lastplace_ignore_filetype = { "gitcommit", "gitrebase", "svn", "hgcommit", },
|
||||
lastplace_open_folds = true,
|
||||
})
|
||||
end,
|
||||
},
|
||||
-- Map keys for better word movement
|
||||
{
|
||||
"chrisgrieser/nvim-spider",
|
||||
lazy = true,
|
||||
},
|
||||
-- Map keys for smooth scrolling
|
||||
{
|
||||
"karb94/neoscroll.nvim",
|
||||
event = "WinScrolled",
|
||||
config = function()
|
||||
require('neoscroll').setup({
|
||||
-- All these keys will be mapped to their corresponding default scrolling animation
|
||||
mappings = { '<C-u>', '<C-d>', '<C-b>', '<C-f>', '<C-y>', '<C-e>', 'zt', 'zz', 'zb' },
|
||||
hide_cursor = true, -- Hide cursor while scrolling
|
||||
stop_eof = true, -- Stop at <EOF> when scrolling downwards
|
||||
use_local_scrolloff = false, -- Use the local scope of scrolloff instead of the global scope
|
||||
respect_scrolloff = false, -- Stop scrolling when the cursor reaches the scrolloff margin of the file
|
||||
cursor_scrolls_alone = true, -- The cursor will keep on scrolling even if the window cannot scroll further
|
||||
easing_function = nil, -- Default easing function
|
||||
pre_hook = nil, -- Function to run before the scrolling animation starts
|
||||
post_hook = nil, -- Function to run after the scrolling animation ends
|
||||
})
|
||||
end,
|
||||
},
|
||||
-- Underline current and matching word
|
||||
{
|
||||
"itchyny/vim-cursorword",
|
||||
event = {"BufEnter", "BufNewFile"},
|
||||
config = function()
|
||||
vim.api.nvim_command("augroup user_plugin_cursorword")
|
||||
vim.api.nvim_command("autocmd!")
|
||||
vim.api.nvim_command("autocmd FileType NvimTree,lspsagafinder,dashboard,vista let b:cursorword = 0")
|
||||
vim.api.nvim_command("autocmd WinEnter * if &diff || &pvw | let b:cursorword = 0 | endif")
|
||||
vim.api.nvim_command("autocmd InsertEnter * let b:cursorword = 0")
|
||||
vim.api.nvim_command("autocmd InsertLeave * let b:cursorword = 1")
|
||||
vim.api.nvim_command("augroup END")
|
||||
end,
|
||||
},
|
||||
-- Highlight the entire line in visual line mode
|
||||
{
|
||||
"0xAdk/full_visual_line.nvim",
|
||||
keys = 'V',
|
||||
opts = {},
|
||||
},
|
||||
-- Display number of uses of a Function
|
||||
{
|
||||
'VidocqH/lsp-lens.nvim',
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
setup = function()
|
||||
require('lsp-lens').setup()
|
||||
end,
|
||||
},
|
||||
},
|
||||
-- Split or join block of code
|
||||
{
|
||||
"Wansmer/treesj",
|
||||
dependencies = { 'nvim-treesitter/nvim-treesitter' },
|
||||
config = function()
|
||||
require('treesj').setup({
|
||||
use_default_keymaps = false,
|
||||
})
|
||||
end,
|
||||
},
|
||||
-- Replace the UI for messages, cmdline, and the popupmenu
|
||||
{
|
||||
"folke/noice.nvim",
|
||||
event = "VeryLazy",
|
||||
config = function()
|
||||
require("noice").setup({
|
||||
lsp = {
|
||||
override = {
|
||||
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||
["vim.lsp.util.stylize_markdown"] = true,
|
||||
["cmp.entry.get_documentation"] = true,
|
||||
},
|
||||
signature = { enable = false },
|
||||
hover = { enable = false },
|
||||
},
|
||||
presets = {
|
||||
bottom_search = true,
|
||||
command_palette = true,
|
||||
long_message_to_split = true,
|
||||
inc_rename = false,
|
||||
lsp_doc_border = false,
|
||||
},
|
||||
})
|
||||
end,
|
||||
dependencies = {
|
||||
"MunifTanjim/nui.nvim",
|
||||
{
|
||||
"rcarriga/nvim-notify",
|
||||
opts = {
|
||||
background_colour = "#000000",
|
||||
}
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
},
|
||||
},
|
||||
-- Display the lsp diagnostics in a window
|
||||
{
|
||||
"folke/trouble.nvim",
|
||||
opts = {}, -- for default options, refer to the configuration section for custom setup.
|
||||
cmd = "Trouble",
|
||||
keys = {
|
||||
{
|
||||
"<leader>xx",
|
||||
"<cmd>Trouble diagnostics toggle<cr>",
|
||||
desc = "Diagnostics (Trouble)",
|
||||
},
|
||||
{
|
||||
"<leader>cs",
|
||||
"<cmd>Trouble symbols toggle focus=false<cr>",
|
||||
desc = "Symbols (Trouble)",
|
||||
},
|
||||
},
|
||||
},
|
||||
-- Minimap plugin
|
||||
{
|
||||
"gorbit99/codewindow.nvim",
|
||||
lazy = false,
|
||||
config = function()
|
||||
local codewindow = require("codewindow")
|
||||
-- vim.api.nvim_set_hl(0, "CodewindowBorder", {fg = "#928374"})
|
||||
codewindow.setup({
|
||||
auto_enable = true,
|
||||
minimap_width = 10,
|
||||
screen_bounds = "background",
|
||||
window_border = "none",
|
||||
})
|
||||
codewindow.apply_default_keybinds({})
|
||||
end,
|
||||
},
|
||||
-- Highlight the indent line and the current chunk
|
||||
{
|
||||
"shellRaining/hlchunk.nvim",
|
||||
event = { "UIEnter" },
|
||||
config = function()
|
||||
require("hlchunk").setup({
|
||||
chunk = {
|
||||
enable = true,
|
||||
chars = {
|
||||
horizontal_line = "─",
|
||||
vertical_line = "│",
|
||||
left_top = "╭",
|
||||
left_bottom = "╰",
|
||||
right_arrow = ">",
|
||||
},
|
||||
style = {
|
||||
{ fg = "#FABD2F" },
|
||||
{ fg = "#c21f30" }, -- this fg is used to highlight wrong chunk
|
||||
},
|
||||
},
|
||||
indent = {
|
||||
enable = false,
|
||||
},
|
||||
line_num = {
|
||||
enable = true,
|
||||
style = "#FABD2F",
|
||||
},
|
||||
blank = {
|
||||
enable = false,
|
||||
},
|
||||
})
|
||||
end
|
||||
},
|
||||
-- Integrate Github Copilot in NeoVim
|
||||
{
|
||||
"zbirenbaum/copilot.lua",
|
||||
lazy = false,
|
||||
cmd = "Copilot",
|
||||
event = "InsertEnter",
|
||||
config = function()
|
||||
require("copilot").setup({
|
||||
panel = {
|
||||
enabled = true,
|
||||
auto_refresh = true,
|
||||
keymap = {
|
||||
jump_prev = "[[",
|
||||
jump_next = "]]",
|
||||
accept = "<CR>",
|
||||
refresh = "gr",
|
||||
open = "<M-CR>"
|
||||
},
|
||||
layout = {
|
||||
position = "bottom", -- | top | left | right
|
||||
ratio = 0.4
|
||||
},
|
||||
},
|
||||
suggestion = {
|
||||
enabled = true,
|
||||
auto_trigger = true,
|
||||
debounce = 75,
|
||||
keymap = {
|
||||
accept = "<M-l>",
|
||||
accept_word = false,
|
||||
accept_line = false,
|
||||
next = "<M-]>",
|
||||
prev = "<M-[>",
|
||||
dismiss = "<C-]>",
|
||||
},
|
||||
},
|
||||
filetypes = {
|
||||
yaml = false,
|
||||
markdown = true,
|
||||
help = false,
|
||||
gitcommit = false,
|
||||
gitrebase = false,
|
||||
hgcommit = false,
|
||||
svn = false,
|
||||
cvs = false,
|
||||
["."] = false,
|
||||
},
|
||||
copilot_node_command = 'node', -- Node.js version must be > 18.x
|
||||
server_opts_overrides = {},
|
||||
})
|
||||
end,
|
||||
},
|
||||
-- Chat for copilot
|
||||
{
|
||||
"CopilotC-Nvim/CopilotChat.nvim",
|
||||
event = "VeryLazy",
|
||||
branch = "main",
|
||||
dependencies = {
|
||||
{ "zbirenbaum/copilot.lua" }, -- or github/copilot.vim
|
||||
{ "nvim-lua/plenary.nvim" }, -- for curl, log wrapper
|
||||
{
|
||||
'MeanderingProgrammer/render-markdown.nvim',
|
||||
dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' },
|
||||
---@module 'render-markdown'
|
||||
---@type render.md.UserConfig
|
||||
opts = {},
|
||||
config = function ()
|
||||
require('render-markdown').setup({
|
||||
file_types = { 'markdown', 'copilot-chat' },
|
||||
})
|
||||
end
|
||||
},
|
||||
},
|
||||
build = "make tiktoken",
|
||||
opts = {
|
||||
debug = true, -- Enable debugging
|
||||
model = "claude-3.5-sonnet",
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>ccq",
|
||||
function()
|
||||
local input = vim.fn.input("Quick Chat: ")
|
||||
if input ~= "" then
|
||||
require("CopilotChat").ask(input, { selection = require("CopilotChat.select").buffer })
|
||||
end
|
||||
end,
|
||||
desc = "CopilotChat - Quick chat",
|
||||
},
|
||||
{
|
||||
"<leader>ccf",
|
||||
function()
|
||||
require("CopilotChat").ask("Fix this, using the lsp diagnostics if needed", { selection = require("CopilotChat.select").visual })
|
||||
end,
|
||||
desc = "CopilotChat - Fix this",
|
||||
},
|
||||
},
|
||||
config = function ()
|
||||
require('CopilotChat').setup({
|
||||
highlight_headers = false,
|
||||
separator = '---',
|
||||
error_header = '> [!ERROR] Error',
|
||||
})
|
||||
end
|
||||
},
|
||||
-- Suspend unused lsp
|
||||
{
|
||||
"zeioth/garbage-day.nvim",
|
||||
dependencies = "neovim/nvim-lspconfig",
|
||||
event = "VeryLazy",
|
||||
},
|
||||
-- DAP and JTDLS (lsp) configuration for Java
|
||||
{
|
||||
"nvim-java/nvim-java",
|
||||
lazy = false,
|
||||
dependencies = {
|
||||
"nvim-java/lua-async-await",
|
||||
"nvim-java/nvim-java-core",
|
||||
"nvim-java/nvim-java-test",
|
||||
"nvim-java/nvim-java-dap",
|
||||
"nvim-java/nvim-java-refactor",
|
||||
"MunifTanjim/nui.nvim",
|
||||
"neovim/nvim-lspconfig",
|
||||
"mfussenegger/nvim-dap",
|
||||
{
|
||||
"williamboman/mason.nvim",
|
||||
opts = {
|
||||
registries = {
|
||||
"github:nvim-java/mason-registry",
|
||||
"github:mason-org/mason-registry",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
opts = {
|
||||
handlers = {
|
||||
["jdtls"] = function()
|
||||
require("java").setup()
|
||||
require("lspconfig").jdtls.setup({})
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
return plugins
|
||||
138
private_dot_config/ohmyposh/prompt.json
Normal file
138
private_dot_config/ohmyposh/prompt.json
Normal file
@ -0,0 +1,138 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
|
||||
"blocks": [
|
||||
{
|
||||
"alignment": "left",
|
||||
"segments": [
|
||||
{
|
||||
"background": "#a313a8",
|
||||
"foreground": "#FFEB3B",
|
||||
"style": "plain",
|
||||
"template": "\u26a1 ",
|
||||
"type": "root"
|
||||
},
|
||||
{
|
||||
"background": "#3A3A3A",
|
||||
"foreground": "#ffffff",
|
||||
"leading_diamond": "\u256d\u2500\ue0b6",
|
||||
"style": "diamond",
|
||||
"template": "{{ if .WSL }}WSL at {{ end }}{{.Icon}} ",
|
||||
"type": "os"
|
||||
},
|
||||
{
|
||||
"background": "#458588",
|
||||
"foreground": "#ffffff",
|
||||
"leading_diamond": "<#49404f>\ue0b0</>",
|
||||
"properties": {
|
||||
"folder_icon": "...",
|
||||
"folder_separator_icon": " \ue0bd ",
|
||||
"home_icon": "\ueb06",
|
||||
"style": "agnoster_short"
|
||||
},
|
||||
"style": "diamond",
|
||||
"template": " {{ .Path }} ",
|
||||
"trailing_diamond": "\ue0b0",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"background": "#98971A",
|
||||
"background_templates": [
|
||||
"{{ if or (.Working.Changed) (.Staging.Changed) }}#FF9248{{ end }}",
|
||||
"{{ if and (gt .Ahead 0) (gt .Behind 0) }}#FF4500{{ end }}",
|
||||
"{{ if gt .Ahead 0 }}#B388FF{{ end }}",
|
||||
"{{ if gt .Behind 0 }}#B388FF{{ end }}"
|
||||
],
|
||||
"foreground": "#000000",
|
||||
"powerline_symbol": "\ue0b0",
|
||||
"properties": {
|
||||
"fetch_stash_count": true,
|
||||
"fetch_status": true
|
||||
},
|
||||
"style": "powerline",
|
||||
"template": " {{ .HEAD }}{{ if .Staging.Changed }} \uf046 {{ .Staging.String }}</>{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Working.Changed }} \uf044 {{ .Working.String }}{{ end }}{{ if gt .StashCount 0 }} \ueb4b {{ .StashCount }}{{ end }} ",
|
||||
"type": "git"
|
||||
},
|
||||
{
|
||||
"background": "#49404f",
|
||||
"foreground": "#ffffff",
|
||||
"leading_diamond": "<transparent,#49404f>\ue0b0</>",
|
||||
"properties": {
|
||||
"style": "dallas",
|
||||
"threshold": 0
|
||||
},
|
||||
"style": "diamond",
|
||||
"template": " {{ .FormattedMs }}s ",
|
||||
"trailing_diamond": "\ue0b0",
|
||||
"type": "executiontime"
|
||||
},
|
||||
{
|
||||
"background": "#910000",
|
||||
"foreground": "#ffffff",
|
||||
"powerline_symbol": "\ue0b0",
|
||||
"style": "powerline",
|
||||
"template": "<transparent> \uf12a</> {{ reason .Code }} ",
|
||||
"type": "status"
|
||||
}
|
||||
],
|
||||
"type": "prompt"
|
||||
},
|
||||
{
|
||||
"alignment": "right",
|
||||
"segments": [
|
||||
{
|
||||
"background": "#29315A",
|
||||
"foreground": "#43CCEA",
|
||||
"leading_diamond": "\ue0c5",
|
||||
"trailing_diamond": "\ue0bc",
|
||||
"style": "diamond",
|
||||
"template": " {{ .UserName }}<transparent> / </>{{ .Shell }} ",
|
||||
"type": "session"
|
||||
},
|
||||
{
|
||||
"background": "#29315A",
|
||||
"foreground": "#3EC669",
|
||||
"properties": {
|
||||
"time_format": "15:04:05"
|
||||
},
|
||||
"leading_diamond": "\ue0ba",
|
||||
"style": "diamond",
|
||||
"template": " {{ .CurrentDate | date .Format }} ",
|
||||
"type": "time"
|
||||
}
|
||||
],
|
||||
"type": "prompt"
|
||||
},
|
||||
{
|
||||
"alignment": "left",
|
||||
"newline": true,
|
||||
"segments": [
|
||||
{
|
||||
"foreground": "#49404f",
|
||||
"style": "plain",
|
||||
"template": "\u2570\u2500",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"foreground": "#ffffff",
|
||||
"foreground_templates": [
|
||||
"{{ if gt .Code 0 }}#ff0000{{ end }}"
|
||||
],
|
||||
"properties": {
|
||||
"always_enabled": true
|
||||
},
|
||||
"style": "plain",
|
||||
"template": "\u276f ",
|
||||
"type": "status"
|
||||
}
|
||||
],
|
||||
"type": "prompt"
|
||||
}
|
||||
],
|
||||
"transient_prompt": {
|
||||
"background": "transparent",
|
||||
"foreground": "#ebdbb2",
|
||||
"template": "> "
|
||||
},
|
||||
"console_title_template": "{{if .Root}} \u26a1 {{end}}{{.Folder | replace \"~\" \"🏚\" }} @ {{.HostName}}",
|
||||
"version": 3
|
||||
}
|
||||
25
private_dot_config/qt5ct/qt5ct.conf
Normal file
25
private_dot_config/qt5ct/qt5ct.conf
Normal file
@ -0,0 +1,25 @@
|
||||
[Appearance]
|
||||
color_scheme_path=/usr/share/qt5ct/colors/darker.conf
|
||||
custom_palette=true
|
||||
icon_theme=Gruvbox-Material-Dark
|
||||
standard_dialogs=default
|
||||
style=kvantum-dark
|
||||
|
||||
[Fonts]
|
||||
fixed="JetBrainsMono Nerd Font,11,-1,5,50,0,0,0,0,0"
|
||||
general="JetBrainsMono Nerd Font,11,-1,5,50,0,0,0,0,0"
|
||||
|
||||
[Interface]
|
||||
activate_item_on_single_click=1
|
||||
buttonbox_layout=0
|
||||
cursor_flash_time=1000
|
||||
dialog_buttons_have_icons=1
|
||||
double_click_interval=400
|
||||
gui_effects=@Invalid()
|
||||
keyboard_scheme=2
|
||||
menus_have_icons=true
|
||||
show_shortcuts_in_context_menus=true
|
||||
stylesheets=@Invalid()
|
||||
toolbutton_style=4
|
||||
underline_shortcut=1
|
||||
wheel_scroll_lines=3
|
||||
16
private_dot_config/rofi/config.rasi
Normal file
16
private_dot_config/rofi/config.rasi
Normal file
@ -0,0 +1,16 @@
|
||||
configuration {
|
||||
modi: "drun,run,window";
|
||||
font: "JetBrainsMono Nerd Font 12";
|
||||
terminal: "kitty";
|
||||
drun-display-format: "{icon} {name}";
|
||||
location: 0;
|
||||
disable-history: false;
|
||||
hide-scrollbar: true;
|
||||
display-drun: " Apps ";
|
||||
display-run: " Run ";
|
||||
display-window: " Window";
|
||||
display-Network: " Network";
|
||||
sidebar-mode: true;
|
||||
}
|
||||
|
||||
@theme "gruvbox"
|
||||
95
private_dot_config/rofi/gruvbox.rasi
Normal file
95
private_dot_config/rofi/gruvbox.rasi
Normal file
@ -0,0 +1,95 @@
|
||||
* {
|
||||
bg-col: #282828;
|
||||
bg-col-light: #3c3836;
|
||||
border-col: #504945;
|
||||
selected-col: #98971a;
|
||||
blue: #458588;
|
||||
fg-col: #ebdbb2;
|
||||
fg-col2: #282828;
|
||||
grey: #928374;
|
||||
width: 600;
|
||||
}
|
||||
|
||||
element-text, element-icon , mode-switcher {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
window {
|
||||
height: 360px;
|
||||
border: 3px;
|
||||
border-color: @border-col;
|
||||
background-color: @bg-col;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @bg-col;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [prompt,entry];
|
||||
background-color: @bg-col;
|
||||
border-radius: 5px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
background-color: @selected-col;
|
||||
padding: 6px;
|
||||
text-color: @bg-col;
|
||||
border-radius: 3px;
|
||||
margin: 20px 0px 0px 20px;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: ":";
|
||||
}
|
||||
|
||||
entry {
|
||||
padding: 6px;
|
||||
margin: 20px 0px 0px 10px;
|
||||
text-color: @fg-col;
|
||||
background-color: @bg-col;
|
||||
}
|
||||
|
||||
listview {
|
||||
border: 0px 0px 0px;
|
||||
padding: 6px 0px 0px;
|
||||
margin: 10px 0px 0px 20px;
|
||||
columns: 2;
|
||||
lines: 5;
|
||||
background-color: @bg-col;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 5px;
|
||||
background-color: @bg-col;
|
||||
text-color: @fg-col ;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
size: 25px;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @selected-col ;
|
||||
text-color: @fg-col2 ;
|
||||
}
|
||||
|
||||
mode-switcher {
|
||||
spacing: 0;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 10px;
|
||||
background-color: @bg-col-light;
|
||||
text-color: @grey;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.5;
|
||||
}
|
||||
|
||||
button selected {
|
||||
background-color: @bg-col;
|
||||
text-color: @selected-col;
|
||||
}
|
||||
55
private_dot_config/swaylock/config
Normal file
55
private_dot_config/swaylock/config
Normal file
@ -0,0 +1,55 @@
|
||||
# General appearance settings
|
||||
font=JetBrainsMono Nerd Font
|
||||
font-size=20
|
||||
|
||||
# Enable effects
|
||||
screenshots
|
||||
fade-in=0.2
|
||||
effect-blur=15x3
|
||||
effect-scale=0.3
|
||||
effect-vignette=0.2:0.5
|
||||
|
||||
# Lock indicator
|
||||
indicator
|
||||
indicator-radius=100
|
||||
indicator-thickness=7
|
||||
indicator-caps-lock
|
||||
|
||||
# Inner ring
|
||||
inside-color=282828aa
|
||||
inside-clear-color=98971a66
|
||||
inside-caps-lock-color=d7992166
|
||||
inside-ver-color=45858866
|
||||
inside-wrong-color=cc241d66
|
||||
|
||||
# Outer ring
|
||||
ring-color=98971a66
|
||||
ring-clear-color=98971acc
|
||||
ring-caps-lock-color=d79921cc
|
||||
ring-ver-color=458588cc
|
||||
ring-wrong-color=cc241dcc
|
||||
|
||||
# Text
|
||||
text-color=ebdbb2cc
|
||||
text-clear-color=282828cc
|
||||
text-caps-lock-color=282828cc
|
||||
text-ver-color=282828cc
|
||||
text-wrong-color=282828cc
|
||||
|
||||
# Special keys
|
||||
key-hl-color=98971acc
|
||||
bs-hl-color=cc241dcc
|
||||
caps-lock-key-hl-color=d79921cc
|
||||
caps-lock-bs-hl-color=cc241dcc
|
||||
|
||||
# Separator
|
||||
separator-color=28282800
|
||||
|
||||
# Date and time format
|
||||
timestr=%H:%M:%S
|
||||
datestr=%A, %d %B
|
||||
|
||||
# Behavior
|
||||
ignore-empty-password
|
||||
show-failed-attempts
|
||||
show-keyboard-layout
|
||||
20
private_dot_config/tealdeer/config.toml
Normal file
20
private_dot_config/tealdeer/config.toml
Normal file
@ -0,0 +1,20 @@
|
||||
[display]
|
||||
use_pager = false
|
||||
compact = false
|
||||
|
||||
[style.description]
|
||||
bold = true
|
||||
|
||||
[style.command_name]
|
||||
foreground = "blue"
|
||||
bold = true
|
||||
|
||||
[style.exemple_text]
|
||||
background = "blue"
|
||||
|
||||
[style.exemple_variable]
|
||||
underline = true
|
||||
|
||||
[updates]
|
||||
auto_update = true
|
||||
auto_update_interval_hours = 360
|
||||
229
private_dot_config/topgrade.d/topgrade.toml
Normal file
229
private_dot_config/topgrade.d/topgrade.toml
Normal file
@ -0,0 +1,229 @@
|
||||
# Include any additional configuration file(s)
|
||||
# [include] sections are processed in the order you write them
|
||||
# Files in $CONFIG_DIR/topgrade.d/ are automatically included before this file
|
||||
[include]
|
||||
# paths = ["~/.config/topgrade/topgrade.toml"]
|
||||
|
||||
|
||||
[misc]
|
||||
# Run `sudo -v` to cache credentials at the start of the run
|
||||
# This avoids a blocking password prompt in the middle of an unattended run
|
||||
# (default: false)
|
||||
pre_sudo = true
|
||||
|
||||
# Sudo command to be used
|
||||
sudo_command = "sudo"
|
||||
|
||||
# Disable specific steps - same options as the command line flag
|
||||
# disable = ["system", "emacs"]
|
||||
|
||||
# Ignore failures for these steps
|
||||
# ignore_failures = ["powershell"]
|
||||
|
||||
# List of remote machines with Topgrade installed on them
|
||||
# remote_topgrades = ["toothless", "pi", "parnas"]
|
||||
|
||||
# Path to Topgrade executable on remote machines
|
||||
# remote_topgrade_path = ".cargo/bin/topgrade"
|
||||
|
||||
# Arguments to pass to SSH when upgrading remote systems
|
||||
# ssh_arguments = "-o ConnectTimeout=2"
|
||||
|
||||
# Do not set the terminal title (default: true)
|
||||
set_title = true
|
||||
|
||||
# Display the time in step titles (default: true)
|
||||
display_time = true
|
||||
|
||||
# Don't ask for confirmations (no default value)
|
||||
assume_yes = true
|
||||
|
||||
# Do not ask to retry failed steps (default: false)
|
||||
no_retry = true
|
||||
|
||||
# Run inside tmux (default: false)
|
||||
# run_in_tmux = true
|
||||
|
||||
# Cleanup temporary or old files (default: false)
|
||||
cleanup = true
|
||||
|
||||
# Send a notification for every step (default: false)
|
||||
notify_each_step = false
|
||||
|
||||
# Skip sending a notification at the end of a run (default: false)
|
||||
skip_notify = true
|
||||
|
||||
# The Bash-it branch to update (default: "stable")
|
||||
# bashit_branch = "stable"
|
||||
|
||||
# Run specific steps - same options as the command line flag
|
||||
# only = ["system", "emacs"]
|
||||
|
||||
# Whether to self update
|
||||
#
|
||||
# this will be ignored if the binary is built without self update support
|
||||
#
|
||||
# available also via setting the environment variable TOPGRADE_NO_SELF_UPGRADE)
|
||||
no_self_update = false
|
||||
|
||||
# Extra tracing filter directives
|
||||
# These are prepended to the `--log-filter` argument
|
||||
# See: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives
|
||||
# log_filters = ["topgrade::command=debug", "warn"]
|
||||
|
||||
|
||||
# Commands to run before anything
|
||||
[pre_commands]
|
||||
# "Emacs Snapshot" = "rm -rf ~/.emacs.d/elpa.bak && cp -rl ~/.emacs.d/elpa ~/.emacs.d/elpa.bak"
|
||||
|
||||
|
||||
# Commands to run after anything
|
||||
[post_commands]
|
||||
# "Emacs Snapshot" = "rm -rf ~/.emacs.d/elpa.bak && cp -rl ~/.emacs.d/elpa ~/.emacs.d/elpa.bak"
|
||||
|
||||
|
||||
# Custom commands
|
||||
[commands]
|
||||
# "Python Environment" = "~/dev/.env/bin/pip install -i https://pypi.python.org/simple -U --upgrade-strategy eager jupyter"
|
||||
# "Custom command using interactive shell (unix)" = "-i vim_upgrade"
|
||||
|
||||
|
||||
[python]
|
||||
# enable_pip_review = true ###disabled by default
|
||||
# enable_pip_review_local = true ###disabled by default
|
||||
# enable_pipupgrade = true ###disabled by default
|
||||
# pipupgrade_arguments = "-y -u --pip-path pip" ###disabled by default
|
||||
|
||||
|
||||
[composer]
|
||||
# self_update = true
|
||||
|
||||
|
||||
[brew]
|
||||
# greedy_cask = true
|
||||
# autoremove = true
|
||||
|
||||
|
||||
[linux]
|
||||
# Arch Package Manager to use.
|
||||
# Allowed values:
|
||||
# autodetect, aura, garuda_update, pacman, pamac, paru, pikaur, trizen, yay
|
||||
arch_package_manager = "pacman"
|
||||
|
||||
# Arguments to pass yay (or paru) when updating packages
|
||||
# yay_arguments = "--nodevel"
|
||||
|
||||
# Arguments to pass dnf when updating packages
|
||||
# dnf_arguments = "--refresh"
|
||||
|
||||
# aura_aur_arguments = "-kx"
|
||||
|
||||
# aura_pacman_arguments = ""
|
||||
# garuda_update_arguments = ""
|
||||
|
||||
# show_arch_news = true
|
||||
|
||||
# trizen_arguments = "--devel"
|
||||
|
||||
# pikaur_arguments = ""
|
||||
|
||||
# pamac_arguments = "--no-devel"
|
||||
|
||||
# enable_tlmgr = true
|
||||
|
||||
# emerge_sync_flags = "-q"
|
||||
|
||||
# emerge_update_flags = "-uDNa --with-bdeps=y world"
|
||||
|
||||
# redhat_distro_sync = false
|
||||
|
||||
# suse_dup = false
|
||||
|
||||
# rpm_ostree = false
|
||||
|
||||
# nix_arguments = "--flake"
|
||||
|
||||
# nix_env_arguments = "--prebuilt-only"
|
||||
|
||||
# Extra Home Manager arguments
|
||||
# home_manager_arguments = ["--flake", "file"]
|
||||
|
||||
|
||||
[git]
|
||||
# How many repos to pull at max in parallel
|
||||
# max_concurrency = 5
|
||||
|
||||
# Additional git repositories to pull
|
||||
# repos = [
|
||||
# "~/src/*/",
|
||||
# "~/.config/something"
|
||||
# ]
|
||||
|
||||
# Don't pull the predefined git repos
|
||||
# pull_predefined = false
|
||||
|
||||
# Arguments to pass Git when pulling Repositories
|
||||
# arguments = "--rebase --autostash"
|
||||
|
||||
|
||||
[windows]
|
||||
# Manually select Windows updates
|
||||
# accept_all_updates = false
|
||||
|
||||
# open_remotes_in_new_terminal = true
|
||||
|
||||
# wsl_update_pre_release = true
|
||||
|
||||
# wsl_update_use_web_download = true
|
||||
|
||||
# Causes Topgrade to rename itself during the run to allow package managers
|
||||
# to upgrade it. Use this only if you installed Topgrade by using a package
|
||||
# manager such as Scoop or Cargo
|
||||
# self_rename = true
|
||||
|
||||
# Enable WinGet upgrade
|
||||
# enable_winget = true
|
||||
|
||||
|
||||
[npm]
|
||||
# Use sudo if the NPM directory isn't owned by the current user
|
||||
# use_sudo = true
|
||||
|
||||
|
||||
[yarn]
|
||||
# Run `yarn global upgrade` with `sudo`
|
||||
# use_sudo = true
|
||||
|
||||
|
||||
[vim]
|
||||
# For `vim-plug`, execute `PlugUpdate!` instead of `PlugUpdate`
|
||||
# force_plug_update = true
|
||||
|
||||
|
||||
[firmware]
|
||||
# Offer to update firmware; if false just check for and display available updates
|
||||
# upgrade = true
|
||||
|
||||
|
||||
[vagrant]
|
||||
# Vagrant directories
|
||||
# directories = []
|
||||
|
||||
# power on vagrant boxes if needed
|
||||
# power_on = true
|
||||
|
||||
# Always suspend vagrant boxes instead of powering off
|
||||
# always_suspend = true
|
||||
|
||||
|
||||
[flatpak]
|
||||
# Use sudo for updating the system-wide installation
|
||||
# use_sudo = true
|
||||
|
||||
|
||||
[distrobox]
|
||||
# use_root = false
|
||||
|
||||
# containers = ["archlinux-latest"]
|
||||
[containers]
|
||||
# ignored_containers = ["ghcr.io/rancher-sandbox/rancher-desktop/rdx-proxy:latest"]
|
||||
100
private_dot_config/waybar/config
Normal file
100
private_dot_config/waybar/config
Normal file
@ -0,0 +1,100 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"height": 30,
|
||||
"spacing": 0,
|
||||
"margin-top": 4,
|
||||
"margin-left": 8,
|
||||
"margin-right": 8,
|
||||
|
||||
"modules-left": [
|
||||
"hyprland/window"
|
||||
],
|
||||
|
||||
"modules-center": [
|
||||
"hyprland/workspaces"
|
||||
],
|
||||
|
||||
"modules-right": [
|
||||
"custom/controls",
|
||||
"network",
|
||||
"battery",
|
||||
"clock",
|
||||
"custom/power"
|
||||
],
|
||||
|
||||
"hyprland/window": {
|
||||
"format": "{}",
|
||||
"max-length": 50,
|
||||
"separate-outputs": true
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"format": "{icon}",
|
||||
"on-click": "activate",
|
||||
"format-icons": {
|
||||
"1": "•",
|
||||
"2": "•",
|
||||
"3": "•",
|
||||
"4": "•",
|
||||
"5": "•",
|
||||
"urgent": "",
|
||||
"active": "",
|
||||
"default": "·"
|
||||
},
|
||||
"persistent-workspaces": {
|
||||
"*": 5
|
||||
},
|
||||
"sort-by-number": true
|
||||
},
|
||||
|
||||
"custom/controls": {
|
||||
"format": "",
|
||||
"on-click": "~/.config/waybar/scripts/control-center.sh",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"format": " {:%H:%M}",
|
||||
"format-alt": " {:%a %d %b}",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"calendar": {
|
||||
"mode": "month",
|
||||
"format": {
|
||||
"months": "<span color='#98971a'>{}</span>",
|
||||
"days": "<span color='#458588'>{}</span>",
|
||||
"weeks": "<span color='#b16286'>W{}</span>",
|
||||
"weekdays": "<span color='#cc241d'>{}</span>",
|
||||
"today": "<span color='#fb4934'><b>{}</b></span>"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{icon}",
|
||||
"format-charging": "",
|
||||
"format-plugged": "",
|
||||
"format-alt": "{capacity}%",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
},
|
||||
|
||||
"network": {
|
||||
"format-wifi": "",
|
||||
"format-ethernet": "",
|
||||
"format-linked": "",
|
||||
"format-disconnected": "",
|
||||
"tooltip-format": "{essid} ({signalStrength}%)",
|
||||
"on-click": "nm-connection-editor"
|
||||
},
|
||||
|
||||
"custom/power": {
|
||||
"format": "",
|
||||
"on-click": "wlogout -b 4",
|
||||
"tooltip": false
|
||||
}
|
||||
}
|
||||
16
private_dot_config/waybar/scripts/control-center.sh
Executable file
16
private_dot_config/waybar/scripts/control-center.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
WINDOW_NAME="control_center"
|
||||
|
||||
# Vérifie si la fenêtre est déjà ouverte
|
||||
if eww list-windows | grep -q "^${WINDOW_NAME}\*$"; then
|
||||
# Si ouverte, la ferme
|
||||
eww close $WINDOW_NAME
|
||||
else
|
||||
# Si fermée, on s'assure que le daemon tourne et on ouvre la fenêtre
|
||||
if ! eww ping > /dev/null 2>&1; then
|
||||
eww daemon
|
||||
sleep 0.5
|
||||
fi
|
||||
eww open $WINDOW_NAME
|
||||
fi
|
||||
128
private_dot_config/waybar/style.css
Normal file
128
private_dot_config/waybar/style.css
Normal file
@ -0,0 +1,128 @@
|
||||
* {
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
font-size: 13px;
|
||||
min-height: 0;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
color: #ebdbb2;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: rgba(40, 40, 40, 0.95);
|
||||
border: 2px solid rgba(80, 73, 69, 0.9);
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: #ebdbb2;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background: rgba(60, 56, 54, 0.8);
|
||||
border-radius: 8px;
|
||||
margin: 4px;
|
||||
padding: 2px 8px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 4px;
|
||||
background: transparent;
|
||||
color: #928374;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
margin: 0 2px;
|
||||
transition: all 0.3s ease;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: #ebdbb2;
|
||||
font-weight: bold;
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
color: #ebdbb2;
|
||||
text-shadow: 0 0 2px rgba(235, 219, 178, 0.377);
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#window {
|
||||
background: rgba(60, 56, 54, 0.8);
|
||||
border-radius: 8px;
|
||||
margin: 4px;
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
#custom-controls {
|
||||
background: rgba(104, 157, 106, 0.8);
|
||||
color: #282828;
|
||||
border-radius: 8px;
|
||||
margin: 4px;
|
||||
padding: 0 12px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
#custom-controls:hover {
|
||||
background: rgba(142, 192, 124, 0.8);
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
background: rgba(204, 36, 29, 0.8);
|
||||
color: #282828;
|
||||
border-radius: 8px;
|
||||
margin: 4px;
|
||||
padding: 0 8px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
#custom-power:hover {
|
||||
background: rgba(251, 73, 52, 0.8);
|
||||
}
|
||||
|
||||
#clock,
|
||||
#battery,
|
||||
#network {
|
||||
background: rgba(60, 56, 54, 0.8);
|
||||
padding: 0 12px;
|
||||
margin: 4px 2px;
|
||||
border-radius: 8px;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
#clock {
|
||||
background-color: rgba(146, 131, 116, 0.8);
|
||||
color: #282828;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background-color: rgba(152, 151, 26, 0.8);
|
||||
color: #282828;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
background-color: rgba(184, 187, 38, 0.8);
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: rgba(204, 36, 29, 0.8);
|
||||
animation: blink 0.5s linear infinite alternate;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: rgba(251, 73, 52, 0.8);
|
||||
}
|
||||
}
|
||||
|
||||
#network {
|
||||
background-color: rgba(69, 133, 136, 0.8);
|
||||
color: #282828;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
background-color: rgba(204, 36, 29, 0.8);
|
||||
}
|
||||
24
private_dot_config/wlogout/layout
Normal file
24
private_dot_config/wlogout/layout
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"label" : "lock",
|
||||
"action" : "swaylock",
|
||||
"text" : "Verrouiller",
|
||||
"keybind" : "l"
|
||||
}
|
||||
{
|
||||
"label" : "suspend",
|
||||
"action" : "systemctl suspend",
|
||||
"text" : "Suspendre",
|
||||
"keybind" : "u"
|
||||
}
|
||||
{
|
||||
"label" : "reboot",
|
||||
"action" : "systemctl reboot",
|
||||
"text" : "Redémarrer",
|
||||
"keybind" : "r"
|
||||
}
|
||||
{
|
||||
"label" : "shutdown",
|
||||
"action" : "systemctl poweroff",
|
||||
"text" : "Éteindre",
|
||||
"keybind" : "s"
|
||||
}
|
||||
63
private_dot_config/wlogout/style.css
Normal file
63
private_dot_config/wlogout/style.css
Normal file
@ -0,0 +1,63 @@
|
||||
* {
|
||||
background-image: none;
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: rgba(29, 32, 33, 0.85);
|
||||
}
|
||||
|
||||
button {
|
||||
color: #928374;
|
||||
background-color: rgba(60, 56, 54, 0.7);
|
||||
border-style: solid;
|
||||
border-width: 2px;
|
||||
border-radius: 20px;
|
||||
border-color: rgba(80, 73, 69, 0.5);
|
||||
padding: 20px;
|
||||
margin: 20px;
|
||||
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 25%;
|
||||
transition: all 0.3s ease;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
button:focus, button:active, button:hover {
|
||||
background-color: rgba(152, 151, 26, 0.7);
|
||||
color: #282828;
|
||||
border-color: #98971a;
|
||||
}
|
||||
|
||||
#lock {
|
||||
background-image: image(url("/usr/share/wlogout/icons/lock.png"));
|
||||
}
|
||||
|
||||
#logout {
|
||||
background-image: image(url("/usr/share/wlogout/icons/logout.png"));
|
||||
}
|
||||
|
||||
#suspend {
|
||||
background-image: image(url("/usr/share/wlogout/icons/suspend.png"));
|
||||
}
|
||||
|
||||
#hibernate {
|
||||
background-image: image(url("/usr/share/wlogout/icons/hibernate.png"));
|
||||
}
|
||||
|
||||
#shutdown {
|
||||
background-image: image(url("/usr/share/wlogout/icons/shutdown.png"));
|
||||
}
|
||||
|
||||
#reboot {
|
||||
background-image: image(url("/usr/share/wlogout/icons/reboot.png"));
|
||||
}
|
||||
|
||||
button label {
|
||||
padding-top: 120px;
|
||||
color: inherit;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
[preferred]
|
||||
default=hyprland;gtk
|
||||
org.freedesktop.impl.portal.FileChooser=kde
|
||||
Loading…
Reference in New Issue
Block a user