initial commit

This commit is contained in:
ayo 2026-06-16 10:29:49 +02:00
commit adf8fe7a9c
10 changed files with 575 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
*~
*swp
*swo

1
.mailcap Normal file
View file

@ -0,0 +1 @@
text/html; links2 -dump %s; nametemplate=%s.html; copiousoutput

73
.muttrc Normal file
View file

@ -0,0 +1,73 @@
# Load secrets
source ${HOME}/.mutt.secrets
# About Me
set from = "ayo@ayco.io"
set realname = "Ayo Ayco"
# Folders
set spoolfile = "+INBOX"
set postponed="+Drafts"
set record="+Sent Messages"
set trash="+Deleted Messages"
# set ssl_force_tls = yes
# set ssl_starttls = yes
set imap_pipeline_depth=0
# Where to put the stuff
set header_cache = "~/.mutt/cache/headers"
set message_cachedir = "~/.mutt/cache/bodies"
set certificate_file = "~/.mutt/certificates"
# Etc
set mail_check = 30
set move = no
set imap_keepalive = 900
set sort = threads
set editor = "vim"
# GnuPG bootstrap
source ~/.mutt/gpg.rc
# PGP
set pgp_autosign
set pgp_verify_sig=yes
set pgp_sign_as=ayo@ayco.io # KEY ID
# Signature
set signature=~/.signature
set sig_dashes
# Navigate & operate on lists
bind index gg first-entry
bind index G last-entry
bind index,pager a group-reply
bind index o display-message
macro index,pager e "<save-message>+Archive<enter><enter>"
bind index,pager <down> next-entry
bind index,pager <up> previous-entry
# macro index J <next-page>
# macro index K <previous-page>
# Navigate folders
macro index,pager gh "<change-folder>+INBOX<enter>"
macro index,pager gi "<change-folder>+INBOX<enter>"
macro index,pager ga "<change-folder>+Archive<enter>"
macro index,pager gd "<change-folder>+Deleted<tab><enter>"
macro index,pager gs "<change-folder>+Sent<tab><enter>"
macro index,pager gj "<change-folder>+Junk<enter>"
macro index,pager gf "<change-folder>+Feed<enter>"
macro index,pager gl "<change-folder>+Lists<enter>"
macro index,pager \\u "<enter-command>set pipe_decode = yes<enter><pipe-message>urlview<enter><enter-command>set pipe_decode = no<enter>" "view URLs"
# HTML Mail handling
# load html emails with links2 (config in ~/.mailcap)
auto_view text/html
# Aliases
source ~/.mutt_aliases
# vim settings
set editor='vim + -c "set textwidth=72" -c "set wrap" -c "set spell spelllang=en"'

87
.nvidia-settings-rc Normal file
View file

@ -0,0 +1,87 @@
# Configuration file for nvidia-settings - the NVIDIA Settings utility
# Generated on Fri Apr 17 18:30:38 2026
#
# ConfigProperties:
RcFileLocale = C
DisplayStatusBar = Yes
SliderTextEntries = Yes
IncludeDisplayNameInConfigFile = No
ShowQuitDialog = Yes
UpdateRulesOnProfileNameChange = Yes
Timer = PowerMizer_Monitor_(GPU_0),Yes,1000
Timer = Thermal_Monitor_(GPU_0),Yes,1000
Timer = Memory_Used_(GPU_0),Yes,3000
# Attributes:
0/SyncToVBlank=1
0/LogAniso=0
0/FSAA=0
0/TextureClamping=1
0/FXAA=0
0/AllowFlipping=1
0/FSAAAppControlled=1
0/LogAnisoAppControlled=1
0/OpenGLImageSettings=1
0/FSAAAppEnhanced=0
0/ShowGraphicsVisualIndicator=0
[DPY:HDMI-0]/Dithering=0
[DPY:HDMI-0]/DitheringMode=0
[DPY:HDMI-0]/DitheringDepth=0
[DPY:HDMI-0]/ColorSpace=0
[DPY:HDMI-0]/ColorRange=0
[DPY:HDMI-0]/SynchronousPaletteUpdates=0
[DPY:DP-0]/Dithering=0
[DPY:DP-0]/DitheringMode=0
[DPY:DP-0]/DitheringDepth=0
[DPY:DP-0]/ColorSpace=0
[DPY:DP-0]/ColorRange=0
[DPY:DP-0]/SynchronousPaletteUpdates=0
[DPY:DP-1]/Dithering=0
[DPY:DP-1]/DitheringMode=0
[DPY:DP-1]/DitheringDepth=0
[DPY:DP-1]/ColorSpace=0
[DPY:DP-1]/ColorRange=0
[DPY:DP-1]/SynchronousPaletteUpdates=0
[DPY:DP-2]/Dithering=0
[DPY:DP-2]/DitheringMode=0
[DPY:DP-2]/DitheringDepth=0
[DPY:DP-2]/ColorSpace=0
[DPY:DP-2]/ColorRange=0
[DPY:DP-2]/SynchronousPaletteUpdates=0
[DPY:DP-3]/Dithering=0
[DPY:DP-3]/DitheringMode=0
[DPY:DP-3]/DitheringDepth=0
[DPY:DP-3]/ColorSpace=0
[DPY:DP-3]/ColorRange=0
[DPY:DP-3]/SynchronousPaletteUpdates=0
[DPY:DP-4]/Dithering=0
[DPY:DP-4]/DitheringMode=0
[DPY:DP-4]/DitheringDepth=0
[DPY:DP-4]/ColorSpace=0
[DPY:DP-4]/ColorRange=0
[DPY:DP-4]/SynchronousPaletteUpdates=0
[DPY:DP-5]/Dithering=0
[DPY:DP-5]/DitheringMode=0
[DPY:DP-5]/DitheringDepth=0
[DPY:DP-5]/ColorSpace=0
[DPY:DP-5]/ColorRange=0
[DPY:DP-5]/SynchronousPaletteUpdates=0
[DPY:HDMI-1]/RedBrightness=0.010000
[DPY:HDMI-1]/GreenBrightness=0.010000
[DPY:HDMI-1]/BlueBrightness=0.010000
[DPY:HDMI-1]/RedContrast=0.000000
[DPY:HDMI-1]/GreenContrast=0.000000
[DPY:HDMI-1]/BlueContrast=0.000000
[DPY:HDMI-1]/RedGamma=1.000000
[DPY:HDMI-1]/GreenGamma=1.000000
[DPY:HDMI-1]/BlueGamma=1.000000
[DPY:HDMI-1]/Dithering=0
[DPY:HDMI-1]/DitheringMode=0
[DPY:HDMI-1]/DitheringDepth=0
[DPY:HDMI-1]/DigitalVibrance=300
[DPY:HDMI-1]/ColorSpace=0
[DPY:HDMI-1]/ColorRange=0
[DPY:HDMI-1]/SynchronousPaletteUpdates=0

19
.tmux.conf Normal file
View file

@ -0,0 +1,19 @@
# IMPORTANT: To apply plugins, while on tmux press: <prefix>, I
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
# Solarized theme
set -g @plugin 'seebi/tmux-colors-solarized'
set -g @colors-solarized 'light'
# Terminal type configuration
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"
# Bindings
bind M-c a -c "%{pane_current_path}"
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

199
.vimrc Normal file
View file

@ -0,0 +1,199 @@
set encoding=UTF-8
set wrap
set linebreak
set nolist " list disables linebreak
set textwidth=0
set wrapmargin=0
set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe,*.*~ " Windows
highlight LineNr ctermfg=grey
let g:ctrlp_map = '<c-p>'
let g:ctrlp_custom_ignore = 'node_modules\|DS_Store\|git'
nmap <F5> i<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc>
imap <F5> <C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR>
set ic
""""""""""" Set tab to 4 spaces
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
""""""""""" Display line numbers
set nu
""""""""""" Disable error bells
set noerrorbells visualbell t_vb=
autocmd GUIEnter * set visualbell t_vb=
""""""""""" Key mappings
nmap ga <Plug>(EasyAlign)
xmap ga <Plug>(EasyAlign)
map <C-n> :NERDTreeToggle<CR>
map <C-p> :find
" xmap <C-q> :wq<CR>
""" from Andrew
nnoremap j gj
nnoremap k gk
xnoremap j gj
xnoremap k gk
nmap = +
nmap J 5j
nmap K 5k
xmap J 5j
xmap K 5k
nmap DD d5d
xmap DD d5d
nmap gh <C-w>h
nmap gj <C-w>j
nmap gk <C-w>k
nmap gl <C-w>l
nmap <C-l> gt
nmap <C-h> gT
nmap <C-/> :nohl<CR>
""""""""""" Close vim when NERDTree is the only split left open
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
""""""""""" Open NERDTree by default
" autocmd StdinReadPre * let s:std_in=1
" autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
""""""""""" Start Enable Vundle
set nocompatible " be iMproved, required
filetype off " required
" set The runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
""" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
""" TODO - review following plugins
Plugin 'tpope/vim-sensible'
Plugin 'vim-airline/vim-airline'
Plugin 'tpope/vim-fugitive'
Plugin 'tpope/vim-surround'
Plugin 'scrooloose/nerdtree'
Plugin 'mattn/emmet-vim'
" Plugin 'jiangmiao/auto-pairs'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'junegunn/vim-easy-align'
" Plugin 'instant-markdown/vim-instant-markdown'
Plugin 'ervandew/supertab'
Plugin 'leafgarland/typescript-vim'
Plugin 'dense-analysis/ale'
""" Syntax highlighting
Plugin 'Sheerun/vim-polyglot'
Plugin 'wuelnerdotexe/vim-astro'
""" Themes
" Plugin 'ryanoasis/vim-devicons'
Plugin 'morhetz/gruvbox'
Plugin 'Rigellute/shades-of-purple.vim'
Plugin 'NLKNguyen/papercolor-theme'
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
""""""""""" End Enable Vundle
set nocompatible " be iMproved, required
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '"' . $VIMRUNTIME . '\diff"'
let eq = '""'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction
"""" enable 24bit true color
" If you have vim >=8.0 or Neovim >= 0.1.5
" Enable true color 启用终端24位色
syntax enable
set guioptions-=r
set cursorline
if (has('termguicolors'))
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
set termguicolors
colorscheme shades_of_purple
else
colorscheme gruvbox
set bg=dark
endif
if has("gui_running")
if has("gui_gtk2")
set guifont=Inconsolata\ 12
elseif has("gui_macvim")
set guifont=Menlo\ Regular:h14
elseif has("gui_win32")
set guifont=Consolas:h11:cANSI
endif
endif
" set directory where swap files are stored
silent !mkdir -p ~/.vim/swap > /dev/null 2>&1
silent !mkdir -p ~/.vim/backup > /dev/null 2>&1
set swapfile
set directory=$HOME/.vim/swap//
set backupdir=$HOME/.vim/backup//
" set window size
" if has("gui_running")
" " GUI is running or is about to start.
" set lines=50 columns=200
" else
" " This is console Vim.
" if exists("+lines")
" set lines=50
" endif
" if exists("+columns")
" set columns=200
" endif
" endif
let g:ale_fixers = {
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\ 'javascript': ['eslint', 'prettier'],
\}
" Set this variable to 1 to fix files when you save them.
let g:ale_fix_on_save = 1

14
.zshrc Normal file
View file

@ -0,0 +1,14 @@
export NVM_DIR="$HOME/.nvm"
# [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"
# [ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"
export PATH="$HOME/.gem/ruby/2.6.0/bin:$PATH"
alias vi=/opt/homebrew/bin/vim
alias vim=/opt/homebrew/bin/vim
# Load Angular CLI autocompletion.
source <(ng completion script)

21
LICENSE Normal file
View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 Ayo Ayco
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

25
README.md Normal file
View file

@ -0,0 +1,25 @@
# Ayo's various configuration files
Clone the repo
```bash
git clone git@github.com:ayo-run/dotfiles
```
Then symlink to correct places. For example, the `.vimrc` usually goes to user home directory
```bash
cd dotfiles
ln -rsf ./.vimrc ~/
```
## For vim, vundle is used
1. install vundle
```bash
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
```
2. open `vim` then run `:PluginInstall`
[See more](https://github.com/VundleVim/Vundle.vim?tab=readme-ov-file#quick-start)

133
vscode-settings.json Normal file
View file

@ -0,0 +1,133 @@
{
"git.autofetch": true,
"chat.disableAIFeatures": true,
"terminal.integrated.defaultProfile.linux": "bash",
"vim.insertModeKeyBindings": [
{
"before": ["j", "j"],
"after": ["<Esc>"]
}
],
"vim.visualModeKeyBindingsNonRecursive": [
{
"before": ["j"],
"after": ["g", "j"]
},
{
"before": ["k"],
"after": ["g", "k"]
},
{
"before": ["J"],
"after": ["5", "j"]
},
{
"before": ["K"],
"after": ["5", "k"]
},
{
"before": ["H"],
"after": ["5", "h"]
},
{
"before": ["L"],
"after": ["5", "l"]
},
{
"before": ["="],
"after": ["-"]
},
{
"before": ["-"],
"after": ["+"]
}
],
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["j"],
"after": ["g", "j"]
},
{
"before": ["k"],
"after": ["g", "k"]
},
{
"before": ["J"],
"after": ["5", "j"]
},
{
"before": ["K"],
"after": ["5", "k"]
},
{
"before": ["H"],
"after": ["5", "h"]
},
{
"before": ["L"],
"after": ["5", "l"]
},
{
"before": ["="],
"after": ["-"]
},
{
"before": ["-"],
"after": ["+"]
}
],
"typescript.updateImportsOnFileMove.enabled": "always",
"workbench.iconTheme": "vscode-icons",
"workbench.secondarySideBar.defaultVisibility": "hidden",
"javascript.updateImportsOnFileMove.enabled": "always",
"editor.wordWrap": "wordWrapColumn",
"editor.wordWrapColumn": 100,
"editor.cursorSmoothCaretAnimation": "on",
"editor.smoothScrolling": true,
"oneDarkPro.vivid": true,
"window.autoDetectColorScheme": true,
"github.copilot.enable": {
"*": true,
"plaintext": false,
"markdown": false,
"scminput": false,
"javascript": false
},
"eslint.codeActionsOnSave.rules": null,
"diffEditor.ignoreTrimWhitespace": false,
"security.workspace.trust.untrustedFiles": "open",
"git.confirmSync": false,
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"explorer.confirmDragAndDrop": false,
"editor.semanticHighlighting.enabled": true,
"window.zoomLevel": 1,
"files.exclude": {
"**/*~": true,
"**/*swo": true,
"**/*swp": true
},
"editor.gotoLocation.multipleDefinitions": "goto",
"vim.useCtrlKeys": false,
"workbench.preferredLightColorTheme": "Shades of Purple",
"workbench.preferredDarkColorTheme": "Shades of Purple (Super Dark)",
"editor.fontLigatures": true,
"editor.fontFamily": "'Fira Code', 'monospace', monospace",
"editor.formatOnSave": true,
"prettier.configPath": "",
"prettier.ignorePath": "",
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[xml]": {
"editor.defaultFormatter": "redhat.vscode-xml"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"git.suggestSmartCommit": false
}