├── .gitignore ├── nvim ├── .gitignore ├── ftdetect │ ├── html.vim │ └── bg.vim ├── stylua.toml ├── after │ └── plugin │ │ ├── nvim-web-devicons.lua │ │ ├── null-ls.lua │ │ ├── lualine.lua │ │ ├── treesitter.lua │ │ ├── nvim-tree.lua │ │ ├── git-signs.lua │ │ ├── telescope.lua │ │ └── lspconfig.lua ├── lua │ └── delete │ │ ├── disable_builtin.lua │ │ ├── utils.lua │ │ ├── autocommands.lua │ │ ├── settings.lua │ │ ├── keymaps.lua │ │ └── plugins.lua └── init.lua ├── README.md ├── neovim ├── macos.vim ├── plug.vim ├── settings.vim ├── maps.vim └── init.vim ├── macOS ├── README.md └── install.sh ├── sublime-settings ├── aliases.zsh ├── .functions ├── .oh-my-zsh └── custom │ └── aliases.zsh ├── tmux └── tmux.conf ├── i3 ├── i3status └── config ├── vscode └── user-setings ├── .conkyrc └── .vimrc /.gitignore: -------------------------------------------------------------------------------- 1 | # Confidencial exports 2 | .extra 3 | -------------------------------------------------------------------------------- /nvim/.gitignore: -------------------------------------------------------------------------------- 1 | plugged 2 | envs 3 | .netrwhist 4 | plugin/* 5 | -------------------------------------------------------------------------------- /nvim/ftdetect/html.vim: -------------------------------------------------------------------------------- 1 | augroup HTMLDetect 2 | au! 3 | au BufReadPost *.astro set filetype=html 4 | augroup END 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # mydotfiles 2 | 3 | My config files. 4 | 5 | ##Conkyrc example: 6 | ![](http://i.imgur.com/HBqNKmR.jpg) 7 | -------------------------------------------------------------------------------- /neovim/macos.vim: -------------------------------------------------------------------------------- 1 | " Description: macOS-specific configs 2 | 3 | " Use OSX clipboard to copy and to paste 4 | set clipboard+=unnamedplus 5 | -------------------------------------------------------------------------------- /nvim/ftdetect/bg.vim: -------------------------------------------------------------------------------- 1 | augroup BgHighlight 2 | autocmd! 3 | autocmd WinEnter * set cul 4 | autocmd WinLeave * set nocul 5 | augroup END 6 | -------------------------------------------------------------------------------- /nvim/stylua.toml: -------------------------------------------------------------------------------- 1 | column_width = 80 2 | line_endings = "Unix" 3 | indent_type = "Spaces" 4 | indent_width = 2 5 | call_parentheses = "Always" 6 | quote_style = "AutoPreferSingle" 7 | -------------------------------------------------------------------------------- /macOS/README.md: -------------------------------------------------------------------------------- 1 | # macOS scripts 2 | 3 | Install packges with `install.sh` 4 | 5 | `$ chmod +x install.sh && ./install.sh` 6 | 7 | zsh packages: 8 | 9 | 10 | - [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh/#basic-installation) 11 | 12 | if you get some permission error when installing oh-my-zsh, try 13 | 14 | `$ compaudit | xargs chmod g-w,o-w /usr/local/share/zsh` 15 | 16 | `$ compaudit | xargs chmod g-w,o-w /usr/local/share/zsh/site-functions` 17 | 18 | - [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md#oh-my-zsh) -------------------------------------------------------------------------------- /nvim/after/plugin/nvim-web-devicons.lua: -------------------------------------------------------------------------------- 1 | require('nvim-web-devicons').setup({ 2 | -- your personnal icons can go here (to override) 3 | -- you can specify color or cterm_color instead of specifying both of them 4 | -- DevIcon will be appended to `name` 5 | override = { 6 | zsh = { 7 | icon = '', 8 | color = '#428850', 9 | cterm_color = '65', 10 | name = 'Zsh', 11 | }, 12 | }, 13 | -- globally enable different highlight colors per icon (default to true) 14 | -- if set to false all icons will have the default icon's color 15 | color_icons = true, 16 | -- globally enable default icons (default to false) 17 | -- will get overriden by `get_icons` option 18 | default = true, 19 | }) 20 | -------------------------------------------------------------------------------- /nvim/lua/delete/disable_builtin.lua: -------------------------------------------------------------------------------- 1 | -- Disable nvim intro 2 | vim.opt.shortmess:append('sI') 3 | 4 | -- Disable builtin plugins 5 | local disabled_built_ins = { 6 | '2html_plugin', 7 | 'getscript', 8 | 'getscriptPlugin', 9 | 'gzip', 10 | 'logipat', 11 | 'netrw', 12 | 'netrwPlugin', 13 | 'netrwSettings', 14 | 'netrwFileHandlers', 15 | 'matchit', 16 | 'tar', 17 | 'tarPlugin', 18 | 'rrhelper', 19 | 'spellfile_plugin', 20 | 'vimball', 21 | 'vimballPlugin', 22 | 'zip', 23 | 'zipPlugin', 24 | 'tutor', 25 | 'rplugin', 26 | 'synmenu', 27 | 'optwin', 28 | 'compiler', 29 | 'bugreport', 30 | 'ftplugin', 31 | } 32 | 33 | for _, plugin in pairs(disabled_built_ins) do 34 | vim.g['loaded_' .. plugin] = 1 35 | end 36 | -------------------------------------------------------------------------------- /nvim/lua/delete/utils.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | -- Modes 4 | -- normal_mode = "n" 5 | -- insert_mode = "i" 6 | -- visual_mode = "v" 7 | -- visual_block_mode = "x" 8 | -- term_mode = "t" 9 | -- command_mode = "c" 10 | 11 | -- Creates a new mapping 12 | -- @param mode string|table: can be for example 'n', 'i', 'v', 'x', 's', 't', '!', or a table with any combination of those 13 | -- @param lhs string: the left hand side of the mapping 14 | -- @param rhs string: the right hand side of the mapping 15 | -- @param opts table: options for the mapping e.g. {noremap = true, silent = true} 16 | M.map = function(mode, lhs, rhs, opts) 17 | local options = { noremap = true } 18 | if opts then 19 | options = vim.tbl_extend('force', options, opts) 20 | end 21 | vim.keymap.set(mode, lhs, rhs, options) 22 | end 23 | 24 | return M 25 | -------------------------------------------------------------------------------- /nvim/after/plugin/null-ls.lua: -------------------------------------------------------------------------------- 1 | local null_ls = require('null-ls') 2 | local lsp = require('lsp-zero') 3 | 4 | local null_opts = lsp.build_options('null-ls', { 5 | on_attach = function(client) 6 | if client.server_capabilities.documentFormattingProvider then 7 | vim.cmd('autocmd BufWritePre lua vim.lsp.buf.format()') 8 | end 9 | end, 10 | }) 11 | 12 | local formatting = null_ls.builtins.formatting 13 | local lint = null_ls.builtins.diagnostics 14 | local action = null_ls.builtins.code_actions 15 | 16 | null_ls.setup({ 17 | debug = true, 18 | on_attach = null_opts.on_attach, 19 | sources = { 20 | -- formatting 21 | -- formatting.prettier, 22 | formatting.stylua, -- Lua 23 | formatting.eslint_d, 24 | 25 | -- linting 26 | lint.eslint_d, 27 | 28 | -- code actions 29 | action.eslint_d, 30 | }, 31 | }) 32 | -------------------------------------------------------------------------------- /sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "always_show_minimap_viewport": false, 3 | "bold_folder_labels": true, 4 | "color_scheme": "Packages/Agila Theme/Agila Monokai Extended.tmTheme", 5 | "font_size": 8, 6 | "ignored_packages": 7 | [ 8 | "Vintage" 9 | ], 10 | "indent_guide_options": 11 | [ 12 | "draw_normal", 13 | "draw_active" 14 | ], 15 | "line_padding_bottom": 3, 16 | "line_padding_top": 3, 17 | "overlay_scroll_bars": "enabled", 18 | "show_encoding": true, 19 | "theme": "Agila Monokai.sublime-theme", 20 | "theme_agila_active_tab_entry_lightblue": true, 21 | "theme_agila_camouflage": true, 22 | "theme_agila_compact_tab": true, 23 | "theme_agila_sidebar_font_small": true, 24 | "theme_agila_sidebar_heading_lightblue": true, 25 | "theme_agila_sidebar_light_icons": true, 26 | "theme_agila_sidebar_mini": true, 27 | "theme_agila_sidebar_selected_entry_lightblue": true 28 | } 29 | -------------------------------------------------------------------------------- /nvim/lua/delete/autocommands.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------- 2 | -- Autocommand functions 3 | ----------------------------------------------------------- 4 | 5 | -- Define autocommands with Lua APIs 6 | -- See: h:api-autocmd, h:augroup 7 | 8 | local augroup = vim.api.nvim_create_augroup -- Create/get autocommand group 9 | local autocmd = vim.api.nvim_create_autocmd -- Create autocommand 10 | 11 | -- General settings: 12 | -------------------- 13 | 14 | -- Highlight on yank 15 | augroup('YankHighlight', { clear = true }) 16 | autocmd('TextYankPost', { 17 | group = 'YankHighlight', 18 | pattern = '*', 19 | callback = function() 20 | vim.highlight.on_yank({ 21 | higroup = 'IncSearch', 22 | timeout = 40, 23 | }) 24 | end, 25 | }) 26 | 27 | -- Don't auto commenting new lines 28 | autocmd('BufEnter', { 29 | pattern = '', 30 | command = 'set fo-=c fo-=r fo-=o', 31 | }) 32 | -------------------------------------------------------------------------------- /nvim/after/plugin/lualine.lua: -------------------------------------------------------------------------------- 1 | local status, lualine = pcall(require, "lualine") 2 | if (not status) then return end 3 | 4 | lualine.setup { 5 | options = { 6 | icons_enabled = true, 7 | theme = 'dracula', 8 | section_separators = {'', ''}, 9 | component_separators = {'', ''}, 10 | disabled_filetypes = {} 11 | }, 12 | sections = { 13 | lualine_a = {'mode'}, 14 | lualine_b = {'branch'}, 15 | lualine_c = {'filename'}, 16 | lualine_x = { 17 | { 'diagnostics', sources = {"nvim_lsp"}, symbols = {error = ' ', warn = ' ', info = ' ', hint = ' '} }, 18 | 'encoding', 19 | 'filetype' 20 | }, 21 | lualine_y = {'progress'}, 22 | lualine_z = {'location'} 23 | }, 24 | inactive_sections = { 25 | lualine_a = {}, 26 | lualine_b = {}, 27 | lualine_c = {'filename'}, 28 | lualine_x = {'location'}, 29 | lualine_y = {}, 30 | lualine_z = {} 31 | }, 32 | tabline = {}, 33 | extensions = {'fugitive'} 34 | } 35 | 36 | -------------------------------------------------------------------------------- /aliases.zsh: -------------------------------------------------------------------------------- 1 | # linux aliasses 2 | if [[ $OSTYPE == linux-gnu* ]]; then 3 | 4 | alias sysup='sudo pacman -Syu && yaourt -Syyuua --noconfirm' 5 | alias clearcache='sudo pacman -Scc --noconfirm && sudo journalctl --vacuum-time=2d && rm -rf ~/.local/share/Trash/files' 6 | 7 | # Modified Commands 8 | alias free='free -m' 9 | 10 | # macOS aliasses 11 | elif [[ $OSTYPE == darwin* ]]; then 12 | 13 | fi 14 | 15 | # Remove all node_modules directory 16 | alias rmnode='find . -name "node_modules" -type d -exec rm -rf '{}' +' 17 | 18 | # Docker 19 | alias drm="docker ps --filter status=dead --filter status=exited -aq |│ xargs docker rm -v" 20 | alias drmi="docker images --no-trunc | grep '' | awk '{ print $3 │ }' | xargs docker rmi" 21 | alias dstop='docker stop $(docker ps -a -q)' 22 | alias drmv='docker volume ls -qf dangling=true | xargs -r docker volume rm' 23 | alias rmvolumes='cat volumes | while read LINE; do docker volume rm ${LINE}; done' 24 | 25 | # Modified Commands 26 | alias df='df -h' 27 | alias mkdir='mkdir -p -v' 28 | alias ll='ls -alh' 29 | 30 | # Projects 31 | alias cdef="cd ~/Projects/easyflow" 32 | 33 | # SSH 34 | alias loginssh="ssh-add ~/.ssh/id_rsa &>/dev/null" -------------------------------------------------------------------------------- /.functions: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ###### Functions by @jessfraz 4 | 5 | # 'tre' is a shorthand for ''tree' with hidden files and color enabled, ignoring 6 | # the '.git' directory, listing directories first. The output gets piped into 7 | # 'less' with options to preserve color and line numbers, unless the output is 8 | # small enough for one screen. 9 | tre() { 10 | tree -aC -I '.git' --dirsfirst "$@" | less -FRNX 11 | } 12 | 13 | #Get colors in manual pages 14 | man() { 15 | env \ 16 | LESS_TERMCAP_mb="$(printf '\e[1;31m')" \ 17 | LESS_TERMCAP_md="$(printf '\e[1;31m')" \ 18 | LESS_TERMCAP_me="$(printf '\e[0m')" \ 19 | LESS_TERMCAP_se="$(printf '\e[0m')" \ 20 | LESS_TERMCAP_so="$(printf '\e[1;44;33m')" \ 21 | LESS_TERMCAP_ue="$(printf '\e[0m')" \ 22 | LESS_TERMCAP_us="$(printf '\e[1;32m')" \ 23 | man "$@" 24 | } 25 | 26 | # Determine size of a file or total size of a directory 27 | fs() { 28 | if du -b /dev/null > /dev/null 2>&1; then 29 | local arg=-sbh 30 | else 31 | local arg=-sh 32 | fi 33 | if [[ -n "$@" ]]; then 34 | du $arg -- "$@" 35 | else 36 | du $arg -- .[^.]* * 37 | fi 38 | } 39 | ###### 40 | -------------------------------------------------------------------------------- /.oh-my-zsh/custom/aliases.zsh: -------------------------------------------------------------------------------- 1 | # linux aliasses 2 | if [[ $OSTYPE == linux-gnu* ]]; then 3 | 4 | alias sysup='sudo pacman -Syu && yaourt -Syyuua --noconfirm' 5 | alias clearcache='sudo pacman -Scc --noconfirm && sudo journalctl --vacuum-time=2d && rm -rf ~/.local/share/Trash/files' 6 | 7 | # Modified Commands 8 | alias free='free -m' 9 | 10 | # macOS aliasses 11 | elif [[ $OSTYPE == darwin* ]]; then 12 | 13 | fi 14 | 15 | # Remove all node_modules directory 16 | alias rmnode='find . -name "node_modules" -type d -exec rm -rf '{}' +' 17 | 18 | # Docker 19 | alias drm="docker ps --filter status=dead --filter status=exited -aq | xargs docker rm -v" 20 | alias drmi="docker images --no-trunc | grep '' | awk '{ print $3 }' | xargs docker rmi" 21 | alias dstop='docker stop $(docker ps -a -q)' 22 | alias drmv='docker volume ls -qf dangling=true | xargs -r docker volume rm' 23 | alias rmvolumes='cat volumes | while read LINE; do docker volume rm ${LINE}; done' 24 | 25 | # Modified Commands 26 | alias df='df -h' 27 | alias mkdir='mkdir -p -v' 28 | alias ll='ls -alh' 29 | alias cdhome='cd ~' 30 | 31 | # Projects 32 | alias cdef="cd ~/Projects/easyflow" 33 | 34 | # SSH 35 | alias loginssh="ssh-add ~/.ssh/id_rsa &>/dev/null" 36 | -------------------------------------------------------------------------------- /nvim/after/plugin/treesitter.lua: -------------------------------------------------------------------------------- 1 | require('nvim-treesitter.configs').setup({ 2 | -- A list of parser names, or "all" 3 | ensure_installed = { 4 | 'bash', 5 | 'comment', 6 | 'css', 7 | 'dockerfile', 8 | 'html', 9 | 'javascript', 10 | 'jsdoc', 11 | 'json', 12 | 'jsonc', 13 | 'lua', 14 | 'scss', 15 | 'tsx', 16 | 'typescript', 17 | 'yaml', 18 | 'go', 19 | 'vim', 20 | }, 21 | 22 | -- Install parsers synchronously (only applied to `ensure_installed`) 23 | sync_install = false, 24 | 25 | -- Automatically install missing parsers when entering buffer 26 | -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally 27 | auto_install = true, 28 | autopairs = { enable = true }, 29 | autotag = { 30 | enable = true, 31 | }, 32 | 33 | highlight = { 34 | -- `false` will disable the whole extension 35 | enable = true, 36 | 37 | -- Setting this to true will run `:h syntax` and tree-sitter at the same time. 38 | -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). 39 | -- Using this option may slow down your editor, and you may see some duplicate highlights. 40 | -- Instead of true it can also be a list of languages 41 | additional_vim_regex_highlighting = false, 42 | }, 43 | indent = { 44 | enable = true, 45 | }, 46 | }) 47 | -------------------------------------------------------------------------------- /neovim/plug.vim: -------------------------------------------------------------------------------- 1 | if has("nvim") 2 | let g:plug_home = stdpath('data') . '/plugged' 3 | endif 4 | 5 | call plug#begin() 6 | 7 | " Git 8 | Plug 'tpope/vim-fugitive' 9 | Plug 'lewis6991/gitsigns.nvim' 10 | 11 | " Plug 'cohama/lexima.vim' 12 | Plug 'jiangmiao/auto-pairs' 13 | " Plug 'tpope/vim-commentary' 14 | 15 | if has("nvim") 16 | " Plug 'honza/vim-snippets' 17 | "Plug 'SirVer/ultisnips' 18 | Plug 'hoob3rt/lualine.nvim' 19 | 20 | " LSP Support 21 | Plug 'VonHeikemen/lsp-zero.nvim', { 'branch': 'v1.x' } 22 | Plug 'williamboman/mason.nvim' 23 | Plug 'williamboman/mason-lspconfig.nvim' 24 | Plug 'neovim/nvim-lspconfig' 25 | 26 | " Autocomplete 27 | Plug 'hrsh7th/nvim-cmp' 28 | Plug 'hrsh7th/cmp-buffer' 29 | Plug 'hrsh7th/cmp-path' 30 | Plug 'saadparwaiz1/cmp_luasnip' 31 | Plug 'hrsh7th/cmp-nvim-lsp' 32 | Plug 'hrsh7th/cmp-nvim-lua' 33 | 34 | " Snippets 35 | Plug 'L3MON4D3/LuaSnip' 36 | Plug 'rafamadriz/friendly-snippets' 37 | 38 | Plug 'jose-elias-alvarez/null-ls.nvim' 39 | "Plug 'glepnir/lspsaga.nvim' 40 | " Plug 'folke/lsp-colors.nvim' 41 | " Plug 'nvim-lua/completion-nvim' 42 | 43 | Plug 'nvim-treesitter/nvim-treesitter', { 'do': ':TSUpdate' } 44 | Plug 'nvim-treesitter/nvim-treesitter-context' 45 | 46 | " Plug 'nvim-lua/popup.nvim' 47 | 48 | Plug 'nvim-lua/plenary.nvim' 49 | Plug 'nvim-telescope/telescope.nvim' 50 | 51 | Plug 'dracula/vim', { 'as': 'dracula' } 52 | Plug 'yuttie/comfortable-motion.vim' 53 | Plug 'nvim-tree/nvim-tree.lua' 54 | Plug 'kyazdani42/nvim-web-devicons' 55 | endif 56 | 57 | call plug#end() 58 | -------------------------------------------------------------------------------- /tmux/tmux.conf: -------------------------------------------------------------------------------- 1 | set-option -sa terminal-overrides ",xterm*:Tc" 2 | set -g mouse on 3 | 4 | unbind C-b 5 | set -g prefix C-Space 6 | bind C-Space send-prefix 7 | 8 | # Vim style pane selection 9 | bind h select-pane -L 10 | bind j select-pane -D 11 | bind k select-pane -U 12 | bind l select-pane -R 13 | 14 | # Start windows and panes at 1, not 0 15 | set -g base-index 1 16 | set -g pane-base-index 1 17 | set-window-option -g pane-base-index 1 18 | set-option -g renumber-windows on 19 | 20 | # Use Alt-arrow keys without prefix key to switch panes 21 | bind -n M-Left select-pane -L 22 | bind -n M-Right select-pane -R 23 | bind -n M-Up select-pane -U 24 | bind -n M-Down select-pane -D 25 | 26 | # Shift arrow to switch windows 27 | bind -n S-Left previous-window 28 | bind -n S-Right next-window 29 | 30 | # Shift Alt vim keys to switch windows 31 | bind -n M-H previous-window 32 | bind -n M-L next-window 33 | 34 | set -g @catppuccin_flavour 'mocha' 35 | 36 | set -g @plugin 'tmux-plugins/tpm' 37 | set -g @plugin 'tmux-plugins/tmux-sensible' 38 | set -g @plugin 'christoomey/vim-tmux-navigator' 39 | set -g @plugin 'dreamsofcode-io/catppuccin-tmux' 40 | set -g @plugin 'tmux-plugins/tmux-yank' 41 | set -g @plugin 'tmux-plugins/tmux-resurrect' 42 | set -g @plugin 'tmux-plugins/tmux-continuum' 43 | 44 | 45 | # Setup sessions 46 | set -g @resurrect-capture-pane-contents 'no' 47 | set -g @continuum-restore 'no' 48 | 49 | 50 | run '~/.tmux/plugins/tpm/tpm' 51 | 52 | # set vi-mode 53 | set-window-option -g mode-keys vi 54 | # keybindings 55 | bind-key -T copy-mode-vi v send-keys -X begin-selection 56 | bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle 57 | bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel 58 | 59 | bind '"' split-window -v -c "#{pane_current_path}" 60 | bind % split-window -h -c "#{pane_current_path}" 61 | -------------------------------------------------------------------------------- /i3/i3status: -------------------------------------------------------------------------------- 1 | # i3status configuration file. 2 | # see "man i3status" for documentation. 3 | 4 | # It is important that this file is edited as UTF-8. 5 | # The following line should contain a sharp s: 6 | # ß 7 | # If the above line is not correctly displayed, fix your editor first! 8 | 9 | general { 10 | colors = true 11 | interval = 2 12 | } 13 | 14 | order += "disk /" 15 | order += "run_watch Docker" 16 | order += "run_watch DHCP" 17 | order += "path_exists VPN" 18 | #order += "ipv6" 19 | order += "wireless wlan0" 20 | order += "ethernet enp7s0" 21 | order += "volume master" 22 | order += "battery 0" 23 | order += "cpu_temperature 0" 24 | order += "load" 25 | order += "tztime local" 26 | 27 | wireless wlan0 { 28 | format_up = "W: (%quality at %essid) %ip" 29 | format_down = "W: down" 30 | } 31 | 32 | ethernet enp7s0 { 33 | # if you use %speed, i3status requires root privileges 34 | format_up = "E: %ip" 35 | format_down = "E: down" 36 | } 37 | 38 | battery 0 { 39 | format = "%status %percentage %remaining" 40 | format_down = "No battery" 41 | status_chr = "⚇ CHR" 42 | status_bat = "⚡ BAT" 43 | status_full = "☻ FULL" 44 | path = "/sys/class/power_supply/BAT%d/uevent 45 | last_full_capacity = true" 46 | low_threshold = 10 47 | } 48 | 49 | run_watch Docker { 50 | pidfile = "/run/docker.pid" 51 | } 52 | 53 | run_watch DHCP { 54 | pidfile = "/var/run/dhclient*.pid" 55 | } 56 | 57 | path_exists VPN { 58 | path = "/proc/sys/net/ipv4/conf/tun0" 59 | } 60 | 61 | tztime local { 62 | format = "%Y-%m-%d %H:%M:%S" 63 | } 64 | 65 | load { 66 | format = "%1min" 67 | } 68 | 69 | cpu_temperature 0 { 70 | format = "T: %degrees °C" 71 | path = "/sys/class/hwmon/hwmon1/temp1_input" 72 | } 73 | 74 | disk "/" { 75 | format = "%avail" 76 | } 77 | 78 | volume master { 79 | format = "♪: %volume" 80 | format_muted = "♪: muted (%volume)" 81 | device = "pulse:alsa_output.pci-0000_00_1b.0.analog-stereo" 82 | mixer = "Master" 83 | mixer_idx = 1 84 | } 85 | -------------------------------------------------------------------------------- /neovim/settings.vim: -------------------------------------------------------------------------------- 1 | autocmd! 2 | " set script encoding 3 | scriptencoding utf-8 4 | 5 | set nocompatible 6 | set number 7 | syntax enable 8 | set fileencodings=utf-8,sjis,euc-jp,latin 9 | set encoding=utf-8 10 | set title 11 | set autoindent 12 | set background=dark 13 | set nobackup 14 | set hlsearch 15 | set showcmd 16 | set cmdheight=1 17 | set laststatus=2 18 | set scrolloff=10 19 | set expandtab 20 | "let loaded_matchparen = 1 21 | set shell=zsh 22 | set backupskip=/tmp/*,/private/tmp/* 23 | set mouse=a 24 | set relativenumber 25 | 26 | " incremental substitution (neovim) 27 | if has('nvim') 28 | set inccommand=split 29 | endif 30 | 31 | " Suppress appending and when pasting 32 | set t_BE= 33 | 34 | set nosc noru nosm 35 | " Don't redraw while executing macros (good performance config) 36 | set lazyredraw 37 | "set showmatch 38 | " How many tenths of a second to blink when matching brackets 39 | "set mat=2 40 | " Ignore case when searching 41 | set ignorecase 42 | " Be smart when using tabs ;) 43 | set smarttab 44 | " indents 45 | filetype plugin indent on 46 | set shiftwidth=2 47 | set tabstop=2 48 | set ai "Auto indent 49 | set si "Smart indent 50 | set nowrap "No Wrap lines 51 | set backspace=start,eol,indent 52 | " Finding files - Search down into subfolders 53 | set path+=** 54 | set wildignore+=*/node_modules/* 55 | 56 | " Turn off paste mode when leaving insert 57 | autocmd InsertLeave * set nopaste 58 | 59 | " Add asterisks in block comments 60 | set formatoptions+=r 61 | 62 | "}}} 63 | 64 | " Highlights "{{{ 65 | " --------------------------------------------------------------------- 66 | set cursorline 67 | set cursorcolumn 68 | 69 | " Set cursor line color on visual mode 70 | highlight Visual cterm=NONE ctermbg=236 ctermfg=NONE guibg=Grey40 71 | 72 | highlight LineNr cterm=none ctermfg=240 guifg=#2b506e guibg=#000000 73 | 74 | augroup BgHighlight 75 | autocmd! 76 | autocmd WinEnter * set cul 77 | autocmd WinLeave * set nocul 78 | augroup END 79 | 80 | 81 | -------------------------------------------------------------------------------- /nvim/init.lua: -------------------------------------------------------------------------------- 1 | -- Fellipe Pinheiro 2 | -- https://fellipe.me 3 | -- https://github.com/delete 4 | -- 5 | -- 6 | -- [[ Notes to people reading my configuration! 7 | -- 8 | -- Much of the configuration of individual plugins you can find in either: 9 | -- 10 | -- ./plugin/*.lua 11 | -- This is where many of the new plugin configurations live. 12 | -- 13 | -- ./after/plugin/*.vim 14 | -- This is where configuration for plugins live. 15 | -- 16 | -- They get auto sourced on startup. In general, the name of the file configures 17 | -- the plugin with the corresponding name. 18 | -- 19 | -- ./lua/delete/*.lua 20 | -- This is where configuration/extensions for new style plugins live. 21 | -- 22 | -- They don't get sourced automatically, but do get sourced by doing something like: 23 | -- require('delete.treesiter') 24 | -- 25 | -- or similar. I generally recommend that people do this so that you don't accidentally 26 | -- override any of the plugin requires with namespace clashes. So don't just put your configuration 27 | -- in "./lua/treesitter.lua" because then it will override the plugin version of "treesitter.lua" 28 | -- ]] 29 | 30 | pcall(require, 'impatient') 31 | 32 | -- Disable builtin plugins and other things that I don't want. 33 | require('delete.disable_builtin') 34 | 35 | -- Settings.lua contains all global options that are set. Most of these will 36 | -- should have a description. This has to come first, since it defines the 37 | -- mapleader, and many many other keymappings require that to be set. 38 | require('delete.settings') 39 | 40 | -- Defines all the autocommands that are used. `:h vim.autocmd` to learn more! 41 | require('delete.autocommands') 42 | 43 | -- Defines global keymaps. `:h vim.keymap` and `:h map` to learn more! 44 | require('delete.keymaps') 45 | 46 | -- Defines a list of plugins to pull down and use, as well as their 47 | -- configurations. 48 | require('delete.plugins') 49 | 50 | -- A builtin Lua module which byte-compiles and caches Lua files (speeds up load times) 51 | -- vim.loader.enable() 52 | -------------------------------------------------------------------------------- /nvim/after/plugin/nvim-tree.lua: -------------------------------------------------------------------------------- 1 | local map = require('delete.utils').map 2 | 3 | -- disable netrw at the very start of your init.lua (strongly advised) 4 | vim.g.loaded_netrw = 1 5 | vim.g.loaded_netrwPlugin = 1 6 | 7 | -- set termguicolors to enable highlight groups 8 | vim.opt.termguicolors = true 9 | 10 | -- empty setup using defaults 11 | -- require('nvim-tree').setup() 12 | 13 | -- OR setup with some options 14 | require('nvim-tree').setup({ 15 | sort_by = 'case_sensitive', 16 | view = { 17 | adaptive_size = true, 18 | }, 19 | filters = { 20 | dotfiles = true, 21 | }, 22 | actions = { 23 | open_file = { 24 | quit_on_open = true, 25 | }, 26 | }, 27 | renderer = { 28 | indent_markers = { 29 | enable = true, 30 | icons = { 31 | corner = '└ ', 32 | edge = '│ ', 33 | item = '│ ', 34 | none = ' ', 35 | }, 36 | }, 37 | icons = { 38 | webdev_colors = true, 39 | show = { 40 | file = true, 41 | folder = true, 42 | folder_arrow = false, 43 | git = true, 44 | }, 45 | glyphs = { 46 | default = '', 47 | symlink = '', 48 | folder = { 49 | arrow_closed = '', 50 | arrow_open = '', 51 | default = '', 52 | open = '', 53 | empty = '', 54 | empty_open = '', 55 | symlink = '', 56 | symlink_open = '', 57 | }, 58 | git = { 59 | unstaged = '', --  60 | staged = '', 61 | unmerged = '', 62 | renamed = '➜', 63 | untracked = '', 64 | deleted = '', 65 | ignored = '◌', 66 | }, 67 | }, 68 | }, 69 | }, 70 | diagnostics = { 71 | enable = false, 72 | show_on_dirs = false, 73 | icons = { 74 | hint = '', 75 | info = '', 76 | warning = '', 77 | error = '', 78 | }, 79 | }, 80 | }) 81 | 82 | map( 83 | 'n', 84 | 'b', 85 | ':NvimTreeToggle', 86 | { desc = 'Toogle NvimTree ', noremap = true, silent = true } 87 | ) 88 | -------------------------------------------------------------------------------- /macOS/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | function print_step() { 6 | printf "\E[1;36m" 7 | printf "\n + %s\n\n" "$1" 8 | printf "\E[0m" 9 | } 10 | 11 | github_username="Fellipe Pinheiro" 12 | github_email="pinheiro.llip@gmail.com" 13 | github_editor="vim" 14 | 15 | 16 | ##------------- Install XCode Command Line Tools 17 | xcode-select --install 18 | 19 | if ! [ -x "$(command -v brew)" ]; then 20 | print_step "Homebrew is not installed." 21 | print_step "Installing Homebrew..." 22 | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 23 | fi 24 | 25 | print_step "Homebrew is installed! We are good to go!" 26 | 27 | print_step "Installing apps..." 28 | 29 | ##------------- Utilitaries 30 | brew install wget 31 | brew install htop 32 | brew install tree 33 | brew install bat 34 | brew install m-cli 35 | brew install neovim 36 | brew install node 37 | brew install yarn 38 | brew install --cask alfred 39 | brew install --cask cleanmymac 40 | 41 | brew install fzf 42 | $(brew --prefix)/opt/fzf/install 43 | 44 | ##------------- Virtualization apps 45 | brew install docker 46 | brew install --cask virtualbox 47 | brew install --cask docker 48 | brew install --cask docker-compose 49 | brew install docker-machine 50 | 51 | ##------------- Music apps 52 | brew install --cask spotify 53 | 54 | ##------------- Video apps 55 | brew install --cask iina 56 | brew install --cask kap 57 | 58 | ##------------- Communications apps 59 | brew install --cask slack 60 | brew install --cask zoom 61 | 62 | ##------------- Web apps 63 | brew install --cask firefox 64 | brew install --cask google-chrome 65 | 66 | ##------------- Coding apps 67 | brew install --cask visual-studio-code 68 | brew install --cask gitkraken 69 | brew install --cask iterm2 70 | brew install --cask postman 71 | 72 | ##------------- System 73 | brew install --cask homebrew/cask-fonts/font-fira-code 74 | 75 | 76 | ##------------- Install and setup Git 77 | brew install git 78 | brew install tig 79 | 80 | ( 81 | set -x 82 | git config --global user.name "$github_username" 83 | git config --global user.email "$github_email" 84 | git config --global core.editor "$github_editor" 85 | ) 86 | 87 | ##------------- Create directories 88 | mkdir ~/Projects -------------------------------------------------------------------------------- /nvim/lua/delete/settings.lua: -------------------------------------------------------------------------------- 1 | vim.o.clipboard = 'unnamedplus' -- Use system clipboard 2 | vim.o.cursorline = true -- Find the current line quickly. 3 | vim.o.scrolloff = 8 -- Scroll screen after 8 lines 4 | vim.o.mouse = 'a' -- Enable mouse support 5 | vim.wo.colorcolumn = '120' -- Highlight column 120 6 | vim.o.number = true -- show line number 7 | vim.o.relativenumber = true -- show line number relative to the current line 8 | vim.o.smartcase = true -- case insentive unless capitals used in search 9 | vim.o.smartindent = true -- make indenting smarter again 10 | vim.o.smarttab = true -- make tab smarter 11 | vim.o.hlsearch = true -- highlight all matches on previous search pattern 12 | vim.o.ignorecase = true -- ignore case in search patterns 13 | vim.o.title = true -- Show title at top of the terminal 14 | vim.o.titlestring = '%<%F%=%l/%L - nvim' -- what the title of the window will be set to 15 | vim.o.timeoutlen = 300 -- hold up 300ms after key press 16 | vim.o.hidden = true -- TextEdit might fail if hidden is not set 17 | vim.o.signcolumn = 'yes' 18 | vim.o.updatetime = 50 -- Update delay to 5ms 19 | vim.o.splitbelow = true -- Horizontal splits will automatically be below 20 | vim.o.splitright = true -- Vertical splits will automatically be to the right 21 | vim.o.foldmethod = 'expr' -- Folding method (expr, syntax, indent) 22 | vim.o.foldlevelstart = 99 -- Start folded (0 = all unfolded, 99 = all folded) 23 | vim.o.foldexpr = 'nvim_treesitter#foldexpr()' -- Fold based on treesitter syntax 24 | vim.bo.expandtab = true -- Use spaces instead of tabs 25 | vim.bo.tabstop = 2 -- Insert 2 spaces for a tab 26 | vim.bo.shiftwidth = 2 -- Change the number of space characters inserted for indentation 27 | vim.o.list = true -- Show some invisible characters (tabs...) 28 | vim.o.listchars = 'eol:¬,space:⋅' -- Unicode characters used for whitespace 29 | vim.o.backup = false -- don"t create backup file 30 | vim.o.writebackup = false 31 | vim.o.swapfile = false -- don"t use swap file 32 | vim.o.termguicolors = true -- set term gui colors most terminals support this 33 | vim.o.lhowmode = false -- Dont show mode since we have a statusline 34 | vim.o.updatetime = 250 -- Faster completion (default is 4000 ms = 4 s) 35 | 36 | vim.opt.termguicolors = true 37 | 38 | -- Enable theme Dracula 39 | vim.cmd([[ 40 | syntax enable 41 | colorscheme dracula 42 | ]]) 43 | 44 | -- Show diagnostics on cursor hold (default 500ms) 45 | vim.cmd([[ 46 | autocmd! CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false}) 47 | ]]) 48 | -------------------------------------------------------------------------------- /nvim/after/plugin/git-signs.lua: -------------------------------------------------------------------------------- 1 | require('gitsigns').setup({ 2 | signs = { 3 | add = { 4 | hl = 'GitSignsAdd', 5 | text = '│', 6 | numhl = 'GitSignsAddNr', 7 | linehl = 'GitSignsAddLn', 8 | }, 9 | change = { 10 | hl = 'GitSignsChange', 11 | text = '│', 12 | numhl = 'GitSignsChangeNr', 13 | linehl = 'GitSignsChangeLn', 14 | }, 15 | delete = { 16 | hl = 'GitSignsDelete', 17 | text = '_', 18 | numhl = 'GitSignsDeleteNr', 19 | linehl = 'GitSignsDeleteLn', 20 | }, 21 | topdelete = { 22 | hl = 'GitSignsDelete', 23 | text = '‾', 24 | numhl = 'GitSignsDeleteNr', 25 | linehl = 'GitSignsDeleteLn', 26 | }, 27 | changedelete = { 28 | hl = 'GitSignsChange', 29 | text = '~', 30 | numhl = 'GitSignsChangeNr', 31 | linehl = 'GitSignsChangeLn', 32 | }, 33 | }, 34 | numhl = false, 35 | linehl = false, 36 | watch_gitdir = { 37 | interval = 1000, 38 | follow_files = true, 39 | }, 40 | current_line_blame_opts = { 41 | deplay = 1000, 42 | virt_text_pos = 'eol', 43 | }, 44 | current_line_blame = true, 45 | sign_priority = 6, 46 | update_debounce = 100, 47 | status_formatter = nil, -- Use default 48 | word_diff = false, 49 | diff_opts = { 50 | internal = true, 51 | }, 52 | }) 53 | 54 | -- keymaps = { 55 | -- -- Default keymap options 56 | -- noremap = true, 57 | -- 58 | -- ['n ]c'] = { expr = true, "&diff ? ']c' : 'lua require\"gitsigns.actions\".next_hunk()'"}, 59 | -- ['n [c'] = { expr = true, "&diff ? '[c' : 'lua require\"gitsigns.actions\".prev_hunk()'"}, 60 | -- 61 | -- ['n hs'] = 'lua require"gitsigns".stage_hunk()', 62 | -- ['v hs'] = 'lua require"gitsigns".stage_hunk({vim.fn.line("."), vim.fn.line("v")})', 63 | -- ['n hu'] = 'lua require"gitsigns".undo_stage_hunk()', 64 | -- ['n hr'] = 'lua require"gitsigns".reset_hunk()', 65 | -- ['v hr'] = 'lua require"gitsigns".reset_hunk({vim.fn.line("."), vim.fn.line("v")})', 66 | -- ['n hR'] = 'lua require"gitsigns".reset_buffer()', 67 | -- ['n hp'] = 'lua require"gitsigns".preview_hunk()', 68 | -- ['n hb'] = 'lua require"gitsigns".blame_line(true)', 69 | -- 70 | -- -- Text objects 71 | -- ['o ih'] = ':lua require"gitsigns.actions".select_hunk()', 72 | -- ['x ih'] = ':lua require"gitsigns.actions".select_hunk()' 73 | -- }, 74 | -------------------------------------------------------------------------------- /neovim/maps.vim: -------------------------------------------------------------------------------- 1 | " Description: Keymaps 2 | 3 | let mapleader = "," 4 | 5 | " Permite que o cursor acompanhe a rolagem da tela 6 | let g:comfortable_motion_scroll_down_key = "j" 7 | let g:comfortable_motion_scroll_up_key = "k" 8 | " nnoremap "0p 9 | " Delete without yank 10 | " nnoremap x "_x 11 | 12 | " Increment/decrement 13 | " nnoremap + 14 | " nnoremap - 15 | 16 | " Select all 17 | nmap ggG 18 | 19 | "Salva usando CTRL + S 20 | nmap :w 21 | 22 | " Save with root permission 23 | command! W w !sudo tee > /dev/null % 24 | 25 | " Search for selected text, forwards or backwards. 26 | vnoremap * : 27 | \let old_reg=getreg('"')let old_regtype=getregtype('"') 28 | \gvy/=substitute( 29 | \escape(@", '/\.*$^~['), '\_s\+', '\\_s\\+', 'g') 30 | \gV:call setreg('"', old_reg, old_regtype) 31 | vnoremap # : 32 | \let old_reg=getreg('"')let old_regtype=getregtype('"') 33 | \gvy?=substitute( 34 | \escape(@", '?\.*$^~['), '\_s\+', '\\_s\\+', 'g') 35 | \gV:call setreg('"', old_reg, old_regtype) 36 | 37 | "----------------------------- 38 | " Tabs 39 | 40 | " Open current directory 41 | nmap tn :tabnew 42 | nmap te :tabedit 43 | nmap tc :tabclose 44 | nmap :tabprev 45 | nmap :tabnext 46 | 47 | "------------------------------ 48 | " Windows 49 | 50 | " Split window 51 | nmap ss :splitw 52 | nmap sv :vsplitw 53 | " Move window 54 | nmap w 55 | map s h 56 | map s k 57 | map s j 58 | map s l 59 | map sh h 60 | map sk k 61 | map sj j 62 | map sl l 63 | " Resize window 64 | nmap < 65 | nmap > 66 | nmap + 67 | nmap - 68 | 69 | 70 | " Disable arrows 71 | noremap 72 | noremap 73 | noremap 74 | noremap 75 | 76 | " Scroll para floating windows 77 | nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" 78 | nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" 79 | inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" 80 | inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" 81 | 82 | iabbrev lenght length 83 | iabbrev widht width 84 | iabbrev heigth height 85 | 86 | 87 | " Snippets 88 | map ic o// eslint-disable-next-line no-consoleoxxiconsole.log() 89 | 90 | 91 | 92 | lua << EOF 93 | vim.keymap.set("n", "Q", "") 94 | EOF 95 | -------------------------------------------------------------------------------- /vscode/user-setings: -------------------------------------------------------------------------------- 1 | { 2 | "workbench.colorTheme": "Dracula", 3 | "workbench.iconTheme": "vscode-icons", 4 | "files.watcherExclude": { 5 | "**/.DS_Store": true, 6 | "**/.hg": true, 7 | "**/.git/objects/**": true, 8 | "**/.git/subtree-cache/**": true, 9 | "**/node_modules/*/**": true 10 | }, 11 | "explorer.confirmDragAndDrop": false, 12 | "typescript.updateImportsOnFileMove.enabled": "always", 13 | "explorer.confirmDelete": false, 14 | "javascript.updateImportsOnFileMove.enabled": "always", 15 | "diffEditor.renderSideBySide": false, 16 | "[typescript]": { 17 | "editor.defaultFormatter": "esbenp.prettier-vscode" 18 | // "editor.defaultFormatter": "esbenp.prettier-vscode" 19 | }, 20 | "tailwindCSS.includeLanguages": { 21 | "typescriptreact": "html", 22 | "plaintext": "javascript" 23 | }, 24 | "css.validate": false, 25 | "[javascriptreact]": { 26 | "editor.defaultFormatter": "dbaeumer.vscode-eslint" 27 | }, 28 | "[javascript]": { 29 | "editor.defaultFormatter": "dbaeumer.vscode-eslint" 30 | }, 31 | "[typescriptreact]": { 32 | "editor.defaultFormatter": "esbenp.prettier-vscode" 33 | }, 34 | // Editor 35 | "editor.linkedEditing": true, 36 | "editor.formatOnSave": true, 37 | "editor.tabSize": 2, 38 | "editor.minimap.enabled": false, 39 | "editor.quickSuggestions": { 40 | "strings": true 41 | }, 42 | "editor.codeActionsOnSave": { 43 | "source.fixAll": true, 44 | "source.fixAll.eslint": true, 45 | "source.fixAll.tslint": true, 46 | "source.fixAll.stylelint": true 47 | // "source.organizeImports": true 48 | }, 49 | "launch": { 50 | "configurations": [], 51 | "compounds": [] 52 | }, 53 | // Eslint 54 | "eslint.packageManager": "yarn", 55 | "eslint.alwaysShowStatus": true, 56 | "eslint.lintTask.enable": true, 57 | "eslint.format.enable": true, 58 | "eslint.validate": [ 59 | "javascript", 60 | "javascriptreact", 61 | "typescript", 62 | "typescriptreact" 63 | ], 64 | "editor.inlineSuggest.enabled": true, 65 | "github.copilot.enable": { 66 | "*": false, 67 | "yaml": false, 68 | "plaintext": false, 69 | "markdown": false, 70 | "typescriptreact": true, 71 | "typescript": true 72 | }, 73 | // Spaceduck 74 | "editor.fontSize": 14, 75 | // "editor.lineHeight": 25, 76 | "editor.letterSpacing": 0.5, 77 | "files.trimTrailingWhitespace": true, 78 | "workbench.editor.showTabs": true, 79 | "git.path": "/usr/local/bin/git", 80 | "window.titleBarStyle": "native", 81 | "errorLens.lintFilePaths": { 82 | "eslint": ["**/*.eslintrc.{js,cjs,yaml,yml,json}", "**/*package.json"], 83 | "Stylelint": [ 84 | "**/*.stylelintrc", 85 | "**/*.stylelintrc.{cjs,js,json,yaml,yml}", 86 | "**/*stylelint.config.{cjs,js}", 87 | "**/*package.json" 88 | ] 89 | }, 90 | "dart.flutterSdkPath": "/Users/fellipepinheiro/flutter" 91 | } 92 | -------------------------------------------------------------------------------- /nvim/lua/delete/keymaps.lua: -------------------------------------------------------------------------------- 1 | local map = require('delete.utils').map 2 | 3 | -- Leader key 4 | vim.g.mapleader = ',' 5 | vim.g.maplocalleader = ',' 6 | 7 | -- Disable arrows 8 | map('n', '', '') 9 | map('n', '', '') 10 | map('n', '', '') 11 | map('n', '', '') 12 | 13 | -- Source current file 14 | map('n', 'rl', ':so %', { desc = 'Reload current lua file' }) 15 | 16 | -- Clear search with 17 | map( 18 | { 'i', 'n' }, 19 | '', 20 | 'noh', 21 | { desc = 'Escape and clear hlsearch' } 22 | ) 23 | 24 | --- Saving 25 | map({ 'i', 'v', 'n', 's' }, '', 'w', { desc = 'Save buffer' }) 26 | map('n', 'w', 'w', { desc = 'Save buffer' }) 27 | map('n', 'ww', 'noa w', { desc = 'Save all buffers' }) 28 | 29 | -- Selecting all 30 | map('n', '', 'ggG', { desc = 'Select al' }) 31 | 32 | -- Quitting 33 | map('n', 'q', ':q!', { desc = 'Quit buffer' }) 34 | map('n', 'qq', ':qa!', { desc = 'Quit all buffers' }) 35 | 36 | -- better indenting 37 | map('v', '<', '', '>gv') 39 | 40 | -- new file 41 | map('n', 'fn', 'enew', { desc = 'New File' }) 42 | 43 | -- Buffer navigation 44 | map('n', '', ':bnext', { desc = 'Next buffer' }) 45 | map('n', '', ':bprevious', { desc = 'Previous buffer' }) 46 | map('n', 'bd', ':bdelete', { desc = 'Buffer Delete' }) 47 | map('n', 'bD', ':bufdo bd', { desc = 'Buffer Delete all' }) 48 | map('n', ';', '', { desc = 'Toggle last buffers' }) -- toggle last buffers 49 | 50 | -- Better window navigation 51 | map('n', '', 'h', { desc = 'Go to left window' }) 52 | map('n', '', 'j', { desc = 'Go to lower window' }) 53 | map('n', '', 'k', { desc = 'Go to upper window' }) 54 | map('n', '', 'l', { desc = 'Go to right window' }) 55 | map('n', 'e', '', { desc = 'Window' }) 56 | map('n', 'ss', 's', { desc = 'Split window' }) 57 | map('n', 'sv', 'v', { desc = 'Split window vertically' }) 58 | 59 | -- better up/down 60 | map('v', 'J', ":m '>+1gv=gv", { desc = 'Move line up' }) 61 | map('v', 'K', ":m '<-2gv=gv", { desc = 'Move line down' }) 62 | map('v', 'p', '"_dP', { desc = '[P] paste' }) 63 | 64 | -- Quickfix 65 | map('n', 'ck', ':cexpr []', { desc = 'Clear list' }) 66 | map('n', 'cc', ':cclose ', { desc = 'Close list' }) 67 | map('n', 'co', ':copen ', { desc = 'Open list' }) 68 | map('n', 'cf', ':cfdo %s/', { desc = 'Search & Replace' }) 69 | map('n', 'cp', ':cprevzz', { desc = 'Prev Item' }) 70 | map('n', 'cn', ':cnextzz', { desc = 'Next Item' }) 71 | 72 | -- Search & Replace 73 | map( 74 | 'n', 75 | 'rr', 76 | [[:%s/\<\>//gI]], 77 | { desc = 'Replace word' } 78 | ) 79 | 80 | -- Markdown 81 | map( 82 | 'n', 83 | 'mp', 84 | 'MarkdownPreviewToggle', 85 | { desc = 'Markdown Preview' } 86 | ) 87 | 88 | -- Toggle relative number 89 | map('n', 'rn', ':set relativenumber!', { desc = 'Relative Number' }) 90 | -------------------------------------------------------------------------------- /nvim/after/plugin/telescope.lua: -------------------------------------------------------------------------------- 1 | local status_ok, telescope = pcall(require, 'telescope') 2 | if not status_ok then 3 | return 4 | end 5 | 6 | local actions = require('telescope.actions') 7 | 8 | local map = require('delete.utils').map 9 | 10 | telescope.setup({ 11 | defaults = { 12 | dynamic_preview_title = true, 13 | path_display = { 'smart' }, 14 | sorting_strategy = 'descending', 15 | vimgrep_arguments = { 16 | 'rg', 17 | '--color=never', 18 | '--no-heading', 19 | '--with-filename', 20 | '--line-number', 21 | '--column', 22 | '--smart-case', 23 | '--hidden', 24 | '--trim', 25 | }, 26 | file_ignore_patterns = { 27 | 'dist/.*', 28 | '%.git/.*', 29 | '%.vim/.*', 30 | 'node_modules/.*', 31 | '%.idea/.*', 32 | '%.vscode/.*', 33 | '%.history/.*', 34 | }, 35 | mappings = { 36 | i = { 37 | [''] = actions.cycle_history_next, 38 | [''] = actions.cycle_history_prev, 39 | [''] = 'which_key', 40 | }, 41 | 42 | n = { 43 | [''] = actions.close, 44 | ['X'] = actions.delete_buffer, 45 | [''] = actions.select_default, 46 | ['?'] = actions.which_key, 47 | }, 48 | }, 49 | }, 50 | pickers = { 51 | buffers = { 52 | sort_lastused = true, 53 | }, 54 | find_files = { 55 | find_command = { 56 | 'fd', 57 | '--type', 58 | 'file', 59 | '--type', 60 | 'symlink', 61 | '--hidden', 62 | '--exclude', 63 | '.git', 64 | }, 65 | }, 66 | }, 67 | extensions = { 68 | fzf = { 69 | fuzzy = true, -- false will only do exact matching 70 | override_generic_sorter = true, -- override the generic sorter 71 | override_file_sorter = true, -- override the file sorter 72 | case_mode = 'smart_case', -- "ignore_case" or "respect_case" or "smart_case" 73 | }, 74 | }, 75 | }) 76 | 77 | require('telescope').load_extension('fzf') 78 | require('telescope').load_extension('gh') 79 | 80 | -- Files 81 | map('n', ';f', ':Telescope find_files', { desc = 'Find Files' }) 82 | map('n', ';r', ':Telescope live_grep', { desc = 'Find Grep' }) 83 | map( 84 | 'n', 85 | 'ff', 86 | ':Telescope current_buffer_fuzzy_find', 87 | { desc = 'Find Fuzzy current buffer' } 88 | ) 89 | map('n', 'fq', ':Telescope quickfix', { desc = 'Find Quickfix' }) 90 | 91 | -- Git 92 | map('n', 'fs', ':Telescope git_status', { desc = 'Find Status' }) 93 | map('n', 'fc', ':Telescope git_commits', { desc = 'Find Commits' }) 94 | map('n', ';g', ':Telescope git_files', { desc = 'Find Git files' }) 95 | 96 | -- Neovim 97 | map('n', 'fh', ':Telescope help_tags', { desc = 'Find Help' }) 98 | map('n', 'fo', ':Telescope vim_options', { desc = 'Find Options' }) 99 | map('n', 'fb', ':Telescope buffers', { desc = 'Find Buffers' }) 100 | map('n', 'fk', ':Telescope keymaps', { desc = 'Find Keymaps' }) 101 | map( 102 | 'n', 103 | 'fd', 104 | ':Telescope diagnostics', 105 | { desc = 'Find Diagnostics' } 106 | ) 107 | -------------------------------------------------------------------------------- /nvim/lua/delete/plugins.lua: -------------------------------------------------------------------------------- 1 | local fn = vim.fn 2 | local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim' 3 | if fn.empty(fn.glob(install_path)) > 0 then 4 | packer_bootstrap = fn.system({ 5 | 'git', 6 | 'clone', 7 | '--depth', 8 | '1', 9 | 'https://github.com/wbthomason/packer.nvim', 10 | install_path, 11 | }) 12 | end 13 | 14 | local _, packer = pcall(require, 'packer') 15 | 16 | -- Have packer use a popup window 17 | packer.init({ 18 | display = { 19 | open_fn = function() 20 | return require('packer.util').float({ border = 'rounded' }) 21 | end, 22 | }, 23 | }) 24 | 25 | return packer.startup(function(use) 26 | use('wbthomason/packer.nvim') 27 | use('lewis6991/impatient.nvim') -- Speed up loading Lua modules to improve startup time 28 | use('tpope/vim-fugitive') -- Git commands in nvim 29 | use('hoob3rt/lualine.nvim') -- Status line 30 | -- use('windwp/nvim-autopairs') -- Insert or delete brackets, parens, quotes in pair 31 | use({ 32 | 'RRethy/vim-illuminate', -- Highlight all instances of the word under the cursor 33 | config = function() 34 | vim.g.Illuminate_delay = 100 35 | end, 36 | }) 37 | use({ 38 | 'numToStr/Comment.nvim', 39 | config = function() 40 | require('Comment').setup() 41 | end, 42 | }) 43 | use({ 44 | 'lewis6991/gitsigns.nvim', 45 | config = function() 46 | require('gitsigns').setup() 47 | end, 48 | }) 49 | 50 | -- Markdown Preview 51 | use({ 52 | 'iamcco/markdown-preview.nvim', 53 | run = 'cd app && npm install', 54 | setup = function() 55 | vim.g.mkdp_filetypes = { 'markdown' } 56 | end, 57 | ft = { 'markdown' }, 58 | }) 59 | 60 | -- File Explorer 61 | use({ 62 | 'nvim-tree/nvim-tree.lua', 63 | requires = { 64 | 'nvim-tree/nvim-web-devicons', -- optional 65 | }, 66 | config = function() 67 | require('nvim-tree').setup({}) 68 | end, 69 | }) 70 | 71 | -- Treesitter Syntax Highlighting 72 | use({ 73 | 'nvim-treesitter/nvim-treesitter', 74 | -- run = ':TSUpdate', 75 | requires = { 76 | { 77 | 'windwp/nvim-ts-autotag', 78 | config = function() 79 | require('nvim-ts-autotag').setup() 80 | end, 81 | }, 82 | { 83 | 'nvim-treesitter/nvim-treesitter-context', 84 | }, 85 | }, 86 | }) 87 | 88 | use({ 89 | 'VonHeikemen/lsp-zero.nvim', 90 | requires = { 91 | -- LSP Support 92 | { 'neovim/nvim-lspconfig' }, 93 | { 'williamboman/mason.nvim' }, 94 | { 'williamboman/mason-lspconfig.nvim' }, 95 | 96 | -- Formatting, Linting 97 | { 'jose-elias-alvarez/null-ls.nvim' }, 98 | 99 | -- Autocompletion 100 | { 'hrsh7th/nvim-cmp' }, 101 | { 'hrsh7th/cmp-buffer' }, 102 | { 'hrsh7th/cmp-path' }, 103 | { 'saadparwaiz1/cmp_luasnip' }, 104 | { 'hrsh7th/cmp-nvim-lsp' }, 105 | { 'hrsh7th/cmp-nvim-lua' }, 106 | 107 | -- Snippets 108 | { 'L3MON4D3/LuaSnip' }, 109 | { 'rafamadriz/friendly-snippets' }, 110 | }, 111 | }) 112 | 113 | -- Telescope - Fuzzy Finder 114 | use({ 115 | 'nvim-telescope/telescope.nvim', 116 | branch = '0.1.x', 117 | requires = { 118 | { 'nvim-lua/plenary.nvim' }, -- Lua utils methods shared with plugins 119 | { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' }, 120 | { 'nvim-telescope/telescope-github.nvim' }, 121 | { 'kyazdani42/nvim-web-devicons' }, 122 | }, 123 | }) 124 | 125 | -- Theme 126 | use({ 'dracula/vim', as = 'dracula' }) 127 | 128 | -- Automatically set up your configuration after cloning packer.nvim 129 | -- Put this at the end after all plugins 130 | if packer_bootstrap then 131 | require('packer').sync() 132 | end 133 | end) 134 | -------------------------------------------------------------------------------- /neovim/init.vim: -------------------------------------------------------------------------------- 1 | " Fundamentals "{{{ 2 | " --------------------------------------------------------------------- 3 | 4 | " init autocmd 5 | autocmd! 6 | " set script encoding 7 | scriptencoding utf-8 8 | " stop loading config if it's on tiny or small 9 | if !1 | finish | endif 10 | 11 | set nocompatible 12 | set number 13 | syntax enable 14 | set fileencodings=utf-8,sjis,euc-jp,latin 15 | set encoding=utf-8 16 | set title 17 | set autoindent 18 | set background=dark 19 | set nobackup 20 | set hlsearch 21 | set showcmd 22 | set cmdheight=1 23 | set laststatus=2 24 | set scrolloff=10 25 | set expandtab 26 | "let loaded_matchparen = 1 27 | set shell=zsh 28 | set backupskip=/tmp/*,/private/tmp/* 29 | set mouse=a 30 | set relativenumber 31 | 32 | " incremental substitution (neovim) 33 | if has('nvim') 34 | set inccommand=split 35 | endif 36 | 37 | " Suppress appending and when pasting 38 | set t_BE= 39 | 40 | set nosc noru nosm 41 | " Don't redraw while executing macros (good performance config) 42 | set lazyredraw 43 | "set showmatch 44 | " How many tenths of a second to blink when matching brackets 45 | "set mat=2 46 | " Ignore case when searching 47 | set ignorecase 48 | " Be smart when using tabs ;) 49 | set smarttab 50 | " indents 51 | filetype plugin indent on 52 | set shiftwidth=2 53 | set tabstop=2 54 | set ai "Auto indent 55 | set si "Smart indent 56 | set nowrap "No Wrap lines 57 | set backspace=start,eol,indent 58 | " Finding files - Search down into subfolders 59 | set path+=** 60 | set wildignore+=*/node_modules/* 61 | 62 | " Turn off paste mode when leaving insert 63 | autocmd InsertLeave * set nopaste 64 | 65 | " Add asterisks in block comments 66 | set formatoptions+=r 67 | 68 | "}}} 69 | 70 | " Highlights "{{{ 71 | " --------------------------------------------------------------------- 72 | set cursorline 73 | set cursorcolumn 74 | 75 | " Set cursor line color on visual mode 76 | highlight Visual cterm=NONE ctermbg=236 ctermfg=NONE guibg=Grey40 77 | 78 | highlight LineNr cterm=none ctermfg=240 guifg=#2b506e guibg=#000000 79 | 80 | augroup BgHighlight 81 | autocmd! 82 | autocmd WinEnter * set cul 83 | autocmd WinLeave * set nocul 84 | augroup END 85 | 86 | if &term =~ "screen" 87 | autocmd BufEnter * if bufname("") !~ "^?[A-Za-z0-9?]*://" | silent! exe '!echo -n "\ek[`hostname`:`basename $PWD`/`basename %`]\e\\"' | endif 88 | autocmd VimLeave * silent! exe '!echo -n "\ek[`hostname`:`basename $PWD`]\e\\"' 89 | endif 90 | 91 | "}}} 92 | 93 | " File types "{{{ 94 | " --------------------------------------------------------------------- 95 | " JavaScript 96 | au BufNewFile,BufRead *.es6 setf javascript 97 | " TypeScript 98 | au BufNewFile,BufRead *.tsx setf typescriptreact 99 | " Markdown 100 | au BufNewFile,BufRead *.md set filetype=markdown 101 | 102 | set suffixesadd=.js,.es,.jsx,.json,.css,.less,.sass,.py,.md 103 | 104 | autocmd FileType yaml setlocal shiftwidth=2 tabstop=2 105 | 106 | "}}} 107 | 108 | " Imports "{{{ 109 | " --------------------------------------------------------------------- 110 | runtime ./plug.vim 111 | if has("unix") 112 | let s:uname = system("uname -s") 113 | " Do Mac stuff 114 | if s:uname == "Darwin\n" 115 | runtime ./macos.vim 116 | endif 117 | endif 118 | 119 | runtime ./maps.vim 120 | "}}} 121 | 122 | " Syntax theme "{{{ 123 | " --------------------------------------------------------------------- 124 | 125 | " true color 126 | if exists("&termguicolors") && exists("&winblend") 127 | syntax enable 128 | set termguicolors 129 | set winblend=0 130 | set wildoptions=pum 131 | set pumblend=5 132 | set background=dark 133 | " Use dracula 134 | endif 135 | 136 | colorscheme dracula 137 | "}}} 138 | 139 | " Extras "{{{ 140 | " --------------------------------------------------------------------- 141 | set exrc 142 | "}}} 143 | 144 | " Paths "{{{ 145 | " --------------------------------------------------------------------- 146 | let g:python_host_prog = '/usr/bin/python' 147 | let g:python3_host_prog = '/Users/fellipepinheiro/.config/nvim/envs/neovim3/bin/python3' 148 | "}}} 149 | 150 | " vim: set foldmethod=marker foldlevel=0: 151 | -------------------------------------------------------------------------------- /.conkyrc: -------------------------------------------------------------------------------- 1 | alignment tl 2 | background no 3 | border_inner_margin 0 4 | border_width 0 5 | default_color black 6 | default_outline_color black 7 | double_buffer yes 8 | draw_borders no 9 | draw_graph_borders yes 10 | draw_outline no 11 | draw_shades no 12 | gap_x 10 # left-right 13 | gap_y 10 # up-down 14 | minimum_size 250 0 15 | no_buffers yes 16 | override_utf8_locale yes 17 | own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager 18 | own_window_transparent yes 19 | own_window yes 20 | pad_percents 2 21 | short_units yes 22 | stippled_borders 0 23 | top_name_width 5 24 | update_interval 1 25 | uppercase no 26 | use_spacer right 27 | use_xft yes 28 | xftalpha 1.0 #0.2 29 | xftfont Vibrocentric Mono:size=7 30 | 31 | TEXT 32 | ${goto 12}+----System 33 | ${goto 15}|${goto 40}| 34 | ${goto 15}|${goto 38}+-- Kernel ${goto 125}${kernel} 35 | ${goto 15}|${goto 38}+-- Machine${goto 125}${machine} 36 | ${goto 15}|${goto 38}+-- Uptime${goto 125}${uptime} 37 | #${goto 15}|${goto 38}+-- ${if_running audacious2}Audacious - ${exec audtool2 --current-song | cut -b-32} 38 | ${goto 12}+----Memory 39 | ${goto 15}|${goto 40}| 40 | ${goto 15}|${goto 38}+-- Total${goto 125}${memmax} 41 | ${goto 15}|${goto 38}+-- In Use${goto 125}${mem} (${memperc}%) 42 | ${goto 15}|${goto 38}+-- Free${goto 125}${memfree} 43 | ${goto 15}|${goto 38}+-- Up to${goto 125}${memeasyfree} freed easily 44 | ${goto 15}|${goto 38}+-- Swap 45 | ${goto 15}|${goto 60}+-- Total${goto 125}${swapmax} 46 | ${goto 15}|${goto 60}+-- Used${goto 125}${swap} - ${swapperc}% 47 | ${goto 15}|${goto 60}+-- Free${goto 125}${swapfree} 48 | ${goto 12}+----Status 49 | ${goto 15}|${goto 40}| 50 | ${goto 15}|${goto 38}+-- CPU${goto 125}${cpu cpu0}% - ${freq_g}GHz 51 | ${goto 15}|${goto 40}|${goto 60}+-- ${cpugraph cpu0 10,175 FF0000 FFB90F} 52 | ${goto 15}|${goto 40}| 53 | ${goto 15}|${goto 38}+-- CPU${goto 125}${cpu cpu1}% - ${freq_g}GHz 54 | ${goto 15}|${goto 40}|${goto 60}+-- ${cpugraph cpu1 10,175 FF0000 FFB90F} 55 | ${goto 15}|${goto 40}| 56 | ${goto 15}|${goto 38}+-- CPU${goto 125}${cpu cpu2}% - ${freq_g}GHz 57 | ${goto 15}|${goto 40}|${goto 60}+-- ${cpugraph cpu2 10,175 FF0000 FFB90F} 58 | ${goto 15}|${goto 40}| 59 | ${goto 15}|${goto 38}+-- CPU${goto 125}${cpu cpu3}% - ${freq_g}GHz 60 | ${goto 15}|${goto 40}|${goto 60}+-- ${cpugraph cpu3 10,175 FF0000 FFB90F} 61 | ${goto 15}|${goto 40}| 62 | ${goto 15}|${goto 38}+-- Ram${goto 125}${memperc}% 63 | ${goto 15}|${goto 40}|${goto 60}+-- ${membar 4} 64 | ${goto 15}|${goto 38}+-- LoadAvg${goto 125}${loadavg} 65 | ${goto 15}|${goto 38}+-- Disk${goto 125}${fs_used_perc /}% Used 66 | ${goto 15}|${goto 38}+-- Diskio ${goto 125}${diskio} 67 | ${goto 15}|${goto 60}+-- Read${goto 125}${diskio_read} 68 | ${goto 15}|${goto 60}+-- Write${goto 125}${diskio_write} 69 | ${goto 12}+----Storage 70 | ${goto 15}|${goto 40}| 71 | ${goto 15}|${goto 38}+-- /ROOT${goto 125}${fs_used /} / ${fs_size /} 72 | ${goto 15}|${goto 40}|${goto 60}+-- ${fs_bar 6,120 /} 73 | ${goto 15}|${goto 38}+-- /HOME${goto 125}${fs_used /home} / ${fs_size /home} 74 | ${goto 15}|${goto 40}|${goto 60}+-- ${fs_bar 6,120 /home} 75 | ${goto 15}|${goto 40}| 76 | ${goto 15}|${goto 38}+-- Total${goto 125}${processes} 77 | ${goto 15}|${goto 38}+-- Running${goto 125}${running_processes} 78 | ${goto 15}|${goto 40}| 79 | ${goto 15}|${goto 38}+-- CPU 80 | ${goto 15}|${goto 40}|${goto 60}+-- ${top name 1}${goto 125}${top cpu 1}${top mem 1} 81 | ${goto 15}|${goto 40}|${goto 60}+-- ${top name 2}${goto 125}${top cpu 2}${top mem 2} 82 | ${goto 15}|${goto 40}|${goto 60}+-- ${top name 3}${goto 125}${top cpu 3}${top mem 3} 83 | ${goto 15}|${goto 38}+-- MEM 84 | ${goto 15}|${goto 60}+-- ${top_mem name 1}${goto 125}${top_mem cpu 1}${top_mem mem 1} 85 | ${goto 15}|${goto 60}+-- ${top_mem name 2}${goto 125}${top_mem cpu 2}${top_mem mem 2} 86 | ${goto 15}|${goto 60}+-- ${top_mem name 3}${goto 125}${top_mem cpu 3}${top_mem mem 3} 87 | ${goto 12}+----Net 88 | ${goto 40}| 89 | ${goto 38}+-- Ip 90 | ${goto 40}|${goto 60}+-- Local ${goto 125}${addr wlp8s0} 91 | ${goto 38}+-- Up 92 | ${goto 40}|${goto 60}+-- Speed${goto 125}${upspeedf wlp8s0}KBps 93 | ${goto 60}|${goto 40}|${goto 90}+-- ${upspeedgraph wlp8s0 10,100 F57900 FCAF3E} 94 | ${goto 60}| 95 | ${goto 40}|${goto 60}+-- Total${goto 125}${totalup wlp8s0} 96 | ${goto 38}+-- Down 97 | ${goto 60}+-- Speed${goto 125}${downspeedf wlp8s0}KBps 98 | ${goto 60}|${goto 90}+-- ${downspeedgraph wlp8s0 10,100 F57900 FCAF3E} 99 | ${goto 60}| 100 | ${goto 60}+-- Total${goto 125}${totaldown wlp8s0} -------------------------------------------------------------------------------- /nvim/after/plugin/lspconfig.lua: -------------------------------------------------------------------------------- 1 | local lsp = require('lsp-zero') 2 | local map = require('delete.utils').map 3 | 4 | lsp.preset('recommended') 5 | 6 | lsp.ensure_installed({ 7 | 'eslint', 8 | 'tsserver', 9 | 'cssls', 10 | 'html', 11 | 'jsonls', 12 | }) 13 | 14 | -- Fix Undefined global 'vim' 15 | lsp.configure('lua_ls', { 16 | cmd = { 'lua-language-server' }, 17 | settings = { 18 | Lua = { 19 | runtime = { 20 | version = 'LuaJIT', 21 | path = vim.split(package.path, ';'), 22 | }, 23 | diagnostics = { 24 | globals = { 'vim' }, 25 | }, 26 | workspace = { 27 | library = { 28 | [vim.fn.expand('$VIMRUNTIME/lua')] = true, 29 | [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true, 30 | }, 31 | }, 32 | }, 33 | }, 34 | }) 35 | 36 | local cmp = require('cmp') 37 | local cmp_select = { behavior = cmp.SelectBehavior.Select } 38 | local cmp_mappings = lsp.defaults.cmp_mappings({ 39 | [''] = cmp.mapping.select_prev_item(cmp_select), 40 | [''] = cmp.mapping.select_next_item(cmp_select), 41 | [''] = cmp.mapping.complete(), 42 | [''] = cmp.mapping.confirm({ select = true }), 43 | }) 44 | 45 | -- cmp_mappings[''] = nil 46 | -- cmp_mappings[''] = nil 47 | 48 | -- Mason 49 | map('n', 'm', ':Mason', { desc = 'Mason' }) 50 | 51 | lsp.setup_nvim_cmp({ 52 | mapping = cmp_mappings, 53 | sources = { 54 | { name = 'path' }, 55 | { name = 'nvim_lsp' }, 56 | { name = 'buffer', keyword_length = 3 }, 57 | { name = 'luasnip', keyword_length = 2 }, 58 | { name = 'nvim_lua' }, 59 | }, 60 | formatting = { 61 | -- changing the order of fields so the icon is the first 62 | fields = { 'menu', 'abbr', 'kind' }, 63 | -- here is where the change happens 64 | format = function(entry, item) 65 | local menu_icon = { 66 | nvim_lsp = 'λ', 67 | luasnip = '⋗', 68 | buffer = 'Ω', 69 | path = '🖫', 70 | nvim_lua = 'Π', 71 | } 72 | 73 | item.menu = menu_icon[entry.source.name] 74 | return item 75 | end, 76 | }, 77 | }) 78 | 79 | lsp.set_preferences({ 80 | suggest_lsp_servers = false, 81 | sign_icons = { 82 | error = 'E', 83 | warn = 'W', 84 | hint = 'H', 85 | info = 'I', 86 | }, 87 | }) 88 | 89 | lsp.on_attach(function(_, bufnr) 90 | map('n', 'gD', ':lua vim.lsp.buf.declaration()', { 91 | buffer = bufnr, 92 | noremap = true, 93 | desc = 'Go to declaration', 94 | }) 95 | 96 | map('n', 'gd', ':lua vim.lsp.buf.definition()', { 97 | buffer = bufnr, 98 | noremap = true, 99 | desc = 'Go to definition', 100 | }) 101 | 102 | map('n', 'gt', ':lua vim.lsp.buf.type_definition', { 103 | buffer = bufnr, 104 | noremap = true, 105 | desc = 'Go to type definition', 106 | }) 107 | 108 | map('n', 'gr', ':lua vim.lsp.buf.references()', { 109 | buffer = bufnr, 110 | noremap = true, 111 | desc = 'Go to references', 112 | }) 113 | 114 | map('n', 'K', ':lua vim.lsp.buf.hover()', { 115 | buffer = bufnr, 116 | noremap = true, 117 | desc = 'Hover', 118 | }) 119 | 120 | map('n', 'lk', ':lua vim.diagnostic.goto_prev()', { 121 | buffer = bufnr, 122 | noremap = true, 123 | desc = 'Go to previous diagnostic', 124 | }) 125 | 126 | map('n', 'lj', ':lua vim.diagnostic.goto_next()', { 127 | buffer = bufnr, 128 | noremap = true, 129 | desc = 'Go to next diagnostic', 130 | }) 131 | 132 | map( 133 | { 'n', 'v' }, 134 | 'la', 135 | ':lua vim.lsp.buf.code_action()', 136 | { buffer = bufnr, noremap = true, desc = 'Code Action' } 137 | ) 138 | 139 | map('n', 'lr', ':lua vim.lsp.buf.rename()', { 140 | buffer = bufnr, 141 | noremap = true, 142 | desc = 'Rename', 143 | }) 144 | 145 | map('n', 'ls', ':lua vim.lsp.buf.signature_help()', { 146 | buffer = bufnr, 147 | noremap = true, 148 | desc = 'Signature Help', 149 | }) 150 | 151 | map('n', 'li', ':LspInfo', { 152 | buffer = bufnr, 153 | noremap = true, 154 | desc = 'LSP Info', 155 | }) 156 | 157 | map('n', 'lf', ':lua vim.lsp.buf.format { async = true }', { 158 | buffer = bufnr, 159 | noremap = true, 160 | desc = 'Format', 161 | }) 162 | -- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#eslint 163 | -- if client.supports_method('textDocument/formatting') then 164 | -- vim.api.nvim_create_autocmd('BufWritePre', { 165 | -- buffer = bufnr, 166 | -- command = 'EslintFixAll', 167 | -- }) 168 | -- end 169 | end) 170 | 171 | lsp.setup() 172 | 173 | vim.diagnostic.config({ 174 | virtual_text = true, 175 | }) 176 | 177 | require('luasnip').config.set_config({ 178 | region_check_events = 'InsertEnter', 179 | delete_check_events = 'InsertLeave', 180 | }) 181 | 182 | require('luasnip.loaders.from_vscode').lazy_load() 183 | -------------------------------------------------------------------------------- /.vimrc: -------------------------------------------------------------------------------- 1 | call plug#begin('~/.config/nvim/plugged') 2 | 3 | Plug 'scrooloose/nerdtree' 4 | Plug 'neoclide/coc.nvim', {'do': 'yarn install --frozen-lockfile'} 5 | Plug 'junegunn/fzf', { 'do': './install --bin' } 6 | Plug 'junegunn/fzf.vim' 7 | Plug 'prettier/vim-prettier' 8 | Plug 'mbbill/undotree' 9 | Plug 'leafgarland/typescript-vim' 10 | Plug 'peitalin/vim-jsx-typescript' 11 | Plug 'ayu-theme/ayu-vim' 12 | Plug 'airblade/vim-gitgutter' 13 | 14 | call plug#end() 15 | 16 | " set autoread 17 | " set autochdir 18 | set number 19 | set hidden 20 | set nobackup 21 | set nowritebackup 22 | set termguicolors 23 | set updatetime=300 24 | set shortmess+=c 25 | set signcolumn=yes 26 | set encoding=utf-8 27 | set t_Co=256 28 | set noerrorbells 29 | set tabstop=2 30 | set shiftwidth=2 31 | set expandtab 32 | set nowrap 33 | set cmdheight=2 34 | 35 | set termguicolors " enable true colors support 36 | let ayucolor="dark" " for dark version of theme 37 | colorscheme ayu 38 | 39 | " nerdtree 40 | let NERDTreeMinimalUI = 1 41 | 42 | " Open automatically 43 | autocmd vimenter * NERDTree 44 | 45 | map :NERDTreeToggle 46 | 47 | " Check if NERDTree is open or active 48 | function! IsNERDTreeOpen() 49 | return exists("t:NERDTreeBufName") && (bufwinnr(t:NERDTreeBufName) != -1) 50 | endfunction 51 | 52 | " Call NERDTreeFind iff NERDTree is active, current window contains a modifiable 53 | " file, and we're not in vimdiff 54 | function! SyncTree() 55 | if &modifiable && IsNERDTreeOpen() && strlen(expand('%')) > 0 && !&diff 56 | NERDTreeFind 57 | wincmd p 58 | endif 59 | endfunction 60 | 61 | " Highlight currently open buffer in NERDTree 62 | autocmd BufEnter * call SyncTree() 63 | 64 | 65 | " Let definitions 66 | let mapleader = "," 67 | 68 | " prettier 69 | let g:prettier#config#bracket_spacing = 'true' 70 | let g:prettier#config#jsx_bracket_same_line = 'false' 71 | let g:prettier#autoformat = 0 72 | autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue PrettierAsync 73 | 74 | " set filetypes as typescript.tsx 75 | autocmd BufNewFile,BufRead *.tsx,*.jsx set filetype=typescript.tsx 76 | 77 | " dark red 78 | hi tsxTagName guifg=#E06C75 79 | 80 | " orange 81 | hi tsxCloseString guifg=#F99575 82 | hi tsxCloseTag guifg=#F99575 83 | hi tsxCloseTagName guifg=#F99575 84 | hi tsxAttributeBraces guifg=#F99575 85 | hi tsxEqual guifg=#F99575 86 | 87 | " yellow 88 | hi tsxAttrib guifg=#F8BD7F cterm=italic 89 | 90 | " Basic remaps. This is where the magic of vim happens 91 | nmap h :wincmd h 92 | nmap j :wincmd j 93 | nmap k :wincmd k 94 | nmap l :wincmd l 95 | nmap u :UndotreeShow 96 | " nnoremap pt :NERDTreeToggle 97 | nnoremap pv :NERDTreeFind 98 | nmap :GFiles 99 | nmap :Rg 100 | 101 | " move line up and down 102 | nnoremap :m-2 103 | nnoremap :m+ 104 | inoremap :m-2 105 | inoremap :m+ 106 | 107 | " move between split views 108 | nnoremap h 109 | nnoremap j 110 | nnoremap k 111 | nnoremap l 112 | 113 | "" Clean search (highlight) 114 | nnoremap :nohi 115 | 116 | vmap < >gv 118 | 119 | "" Move visual block 120 | vnoremap J :m '>+1gv=gv 121 | vnoremap K :m '<-2gv=gv 122 | 123 | " F10 tppgles paste mode 124 | set pastetoggle= 125 | 126 | " coc extensions 127 | let g:coc_global_extensions = ['coc-tslint-plugin', 'coc-tsserver', 'coc-emmet', 'coc-css', 'coc-html', 'coc-json', 'coc-yank', 'coc-prettier'] 128 | 129 | " Use tab for trigger completion with characters ahead and navigate. 130 | inoremap 131 | \ pumvisible() ? "\" : 132 | \ check_back_space() ? "\" : 133 | \ coc#refresh() 134 | inoremap pumvisible() ? "\" : "\" 135 | 136 | function! s:check_back_space() abort 137 | let col = col('.') - 1 138 | return !col || getline('.')[col - 1] =~# '\s' 139 | endfunction 140 | 141 | " Use to trigger completion. 142 | inoremap coc#refresh() 143 | 144 | " Use to confirm completion, `u` means break undo chain at current 145 | " position. Coc only does snippet and additional edit on confirm. 146 | if has('patch8.1.1068') 147 | " Use `complete_info` if your (Neo)Vim version supports it. 148 | inoremap complete_info()["selected"] != "-1" ? "\" : "\u\" 149 | else 150 | imap pumvisible() ? "\" : "\u\" 151 | endif 152 | 153 | " Use `[g` and `]g` to navigate diagnostics 154 | nmap [g (coc-diagnostic-prev) 155 | nmap ]g (coc-diagnostic-next) 156 | 157 | " GoTo code navigation. 158 | nmap gd (coc-definition) 159 | nmap gy (coc-type-definition) 160 | nmap gi (coc-implementation) 161 | nmap gr (coc-references) 162 | 163 | " Use K to show documentation in preview window. 164 | nnoremap K :call show_documentation() 165 | 166 | function! s:show_documentation() 167 | if (index(['vim','help'], &filetype) >= 0) 168 | execute 'h '.expand('') 169 | else 170 | call CocAction('doHover') 171 | endif 172 | endfunction 173 | 174 | " Highlight the symbol and its references when holding the cursor. 175 | autocmd CursorHold * silent call CocActionAsync('highlight') 176 | 177 | " Symbol renaming. 178 | nmap rn (coc-rename) 179 | 180 | " Formatting selected code. 181 | xmap f (coc-format-selected) 182 | nmap f (coc-format-selected) 183 | 184 | augroup mygroup 185 | autocmd! 186 | " Setup formatexpr specified filetype(s). 187 | autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') 188 | " Update signature help on jump placeholder. 189 | autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') 190 | augroup end 191 | 192 | " Applying codeAction to the selected region. 193 | " Example: `aap` for current paragraph 194 | xmap a (coc-codeaction-selected) 195 | nmap a (coc-codeaction-selected) 196 | 197 | " Remap keys for applying codeAction to the current line. 198 | nmap ac (coc-codeaction) 199 | " Apply AutoFix to problem on the current line. 200 | nmap qf (coc-fix-current) 201 | 202 | " Introduce function text object 203 | " NOTE: Requires 'textDocument.documentSymbol' support from the language server. 204 | xmap if (coc-funcobj-i) 205 | xmap af (coc-funcobj-a) 206 | omap if (coc-funcobj-i) 207 | omap af (coc-funcobj-a) 208 | 209 | " Use for selections ranges. 210 | " NOTE: Requires 'textDocument/selectionRange' support from the language server. 211 | " coc-tsserver, coc-python are the examples of servers that support it. 212 | nmap (coc-range-select) 213 | xmap (coc-range-select) 214 | 215 | " Add `:Format` command to format current buffer. 216 | command! -nargs=0 Format :call CocAction('format') 217 | 218 | " Add `:Fold` command to fold current buffer. 219 | command! -nargs=? Fold :call CocAction('fold', ) 220 | 221 | " Add `:OR` command for organize imports of the current buffer. 222 | command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') 223 | 224 | " Add (Neo)Vim's native statusline support. 225 | " NOTE: Please see `:h coc-status` for integrations with external plugins that 226 | " provide custom statusline: lightline.vim, vim-airline. 227 | set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} 228 | 229 | " Mappings using CoCList: 230 | " Show all diagnostics. 231 | nnoremap a :CocList diagnostics 232 | " Manage extensions. 233 | nnoremap e :CocList extensions 234 | " Show commands. 235 | nnoremap c :CocList commands 236 | " Find symbol of current document. 237 | nnoremap o :CocList outline 238 | " Search workspace symbols. 239 | nnoremap s :CocList -I symbols 240 | " Do default action for next item. 241 | nnoremap j :CocNext 242 | " Do default action for previous item. 243 | nnoremap k :CocPrev 244 | " Resume latest coc list. 245 | nnoremap p :CocListResume 246 | 247 | " Plugin: GitGutter 248 | let g:gitgutter_map_keys = 0 249 | let g:gitgutter_sign_added = '▎' 250 | let g:gitgutter_sign_modified = '▎' 251 | let g:gitgutter_sign_removed = '▎' 252 | let g:gitgutter_sign_removed_first_line = '▔' 253 | let g:gitgutter_sign_modified_removed = '▋' 254 | 255 | autocmd BufWritePost * GitGutter 256 | 257 | " Disable arrows 258 | noremap 259 | noremap 260 | noremap 261 | noremap 262 | -------------------------------------------------------------------------------- /i3/config: -------------------------------------------------------------------------------- 1 | # This file has been auto-generated by i3-config-wizard(1). 2 | # It will not be overwritten, so edit it as you like. 3 | # 4 | # Should you change your keyboard layout some time, delete 5 | # this file and re-run i3-config-wizard(1). 6 | # 7 | 8 | # i3 config file (v4) 9 | # 10 | # Please see http://i3wm.org/docs/userguide.html for a complete reference! 11 | 12 | set $mod Mod4 13 | 14 | # Font for window titles. Will also be used by the bar unless a different font 15 | # is used in the bar {} block below. 16 | font pango:monospace 8 17 | 18 | # This font is widely installed, provides lots of unicode glyphs, right-to-left 19 | # text rendering and scalability on retina/hidpi displays (thanks to pango). 20 | #font pango:DejaVu Sans Mono 8 21 | 22 | # Before i3 v4.8, we used to recommend this one as the default: 23 | # font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 24 | # The font above is very space-efficient, that is, it looks good, sharp and 25 | # clear in small sizes. However, its unicode glyph coverage is limited, the old 26 | # X core fonts rendering does not support right-to-left and this being a bitmap 27 | # font, it doesn’t scale on retina/hidpi displays. 28 | 29 | # FLoaint into all workspaces 30 | bindsym $mod+s sticky toggle 31 | 32 | 33 | # Use Mouse+$mod to drag floating windows to their wanted position 34 | floating_modifier $mod 35 | 36 | # start a terminal 37 | bindsym $mod+Return exec i3-sensible-terminal 38 | 39 | # kill focused window 40 | bindsym $mod+Shift+q kill 41 | 42 | # start dmenu (a program launcher) 43 | #bindsym $mod+d exec dmenu_run 44 | # There also is the (new) i3-dmenu-desktop which only displays applications 45 | # shipping a .desktop file. It is a wrapper around dmenu, so you need that 46 | # installed. 47 | #bindsym $mod+d exec --no-startup-id i3-dmenu-desktop 48 | 49 | bindsym $mod+d exec rofi -show run -lines 3 50 | 51 | # spotify: no border 52 | #for_window [class="^Spotify$"] border none 53 | #for_window [class="^Spotify Premium$"] border none 54 | 55 | 56 | # Remove border from all window 57 | 58 | for_window [class="^.*"] border pixel 1 59 | # skype, steam, wine: float Gimp 60 | for_window [class="Code"] floating enable 61 | for_window [class="Firefox"] floating enable 62 | for_window [class="Gimp"] floating enable 63 | for_window [instance="google-chrome"] floating enable 64 | for_window [class="Keybase"] floating enable 65 | for_window [class="Neoman"] floating enable 66 | for_window [class="NES"] floating enable 67 | for_window [class="Pidgin"] floating enable 68 | for_window [class="Portal"] floating enable 69 | for_window [class="RStudio"] floating enable 70 | for_window [class="Skype"] floating enable 71 | for_window [class="Slack"] floating enable 72 | for_window [class="Steam"] floating enable 73 | for_window [class="Tor Browser"] floating enable 74 | for_window [class="Virt-viewer"] floating enable 75 | #for_window [class="VirtualBox"] floating enable 76 | for_window [class="vlc"] floating enable 77 | for_window [class="Wine"] floating enable 78 | for_window [class="Wireshark"] floating enable 79 | 80 | # lock screen 81 | bindsym $mod+l exec i3lock -i "/home/delete/.i3lock/background.png" 82 | 83 | # change focus 84 | #bindsym $mod+j focus left 85 | #bindsym $mod+k focus down 86 | #bindsym $mod+l focus up 87 | #bindsym $mod+ccedilla focus right 88 | 89 | # alternatively, you can use the cursor keys: 90 | bindsym $mod+Left focus left 91 | bindsym $mod+Down focus down 92 | bindsym $mod+Up focus up 93 | bindsym $mod+Right focus right 94 | 95 | # move focused window 96 | bindsym $mod+Shift+j move left 97 | bindsym $mod+Shift+k move down 98 | bindsym $mod+Shift+l move up 99 | bindsym $mod+Shift+ccedilla move right 100 | 101 | # alternatively, you can use the cursor keys: 102 | bindsym $mod+Shift+Left move left 103 | bindsym $mod+Shift+Down move down 104 | bindsym $mod+Shift+Up move up 105 | bindsym $mod+Shift+Right move right 106 | 107 | # split in horizontal orientation 108 | bindsym $mod+h split h 109 | 110 | # split in vertical orientation 111 | bindsym $mod+v split v 112 | 113 | # enter fullscreen mode for the focused container 114 | bindsym $mod+f fullscreen toggle 115 | 116 | # change container layout (stacked, tabbed, toggle split) 117 | #bindsym $mod+s layout stacking 118 | bindsym $mod+w layout tabbed 119 | bindsym $mod+e layout toggle split 120 | 121 | # toggle tiling / floating 122 | bindsym $mod+Shift+space floating toggle 123 | 124 | # change focus between tiling / floating windows 125 | bindsym $mod+space focus mode_toggle 126 | 127 | # focus the parent container 128 | bindsym $mod+a focus parent 129 | 130 | # focus the child container 131 | #bindsym $mod+d focus child 132 | 133 | 134 | # Workspaces variables 135 | 136 | set $workspace1 "1 " 137 | set $workspace2 "2 " 138 | set $workspace3 "3 " 139 | set $workspace4 "4 " 140 | set $workspace5 "5 " 141 | set $workspace6 "6 " 142 | set $workspace7 "7 " 143 | set $workspace8 "8 " 144 | set $workspace8 "9 " 145 | set $workspace10 "10 " 146 | 147 | 148 | # switch to workspace 149 | bindsym $mod+1 workspace $workspace1 150 | bindsym $mod+2 workspace $workspace2 151 | bindsym $mod+3 workspace $workspace3 152 | bindsym $mod+4 workspace 4 153 | bindsym $mod+5 workspace 5 154 | bindsym $mod+6 workspace 6 155 | bindsym $mod+7 workspace 7 156 | bindsym $mod+8 workspace 8 157 | bindsym $mod+9 workspace 9 158 | bindsym $mod+0 workspace $workspace10 159 | 160 | # move focused container to workspace 161 | bindsym $mod+Shift+1 move container to workspace $workspace1 162 | bindsym $mod+Shift+2 move container to workspace $workspace2 163 | bindsym $mod+Shift+3 move container to workspace $workspace3 164 | bindsym $mod+Shift+4 move container to workspace 4 165 | bindsym $mod+Shift+5 move container to workspace 5 166 | bindsym $mod+Shift+6 move container to workspace 6 167 | bindsym $mod+Shift+7 move container to workspace 7 168 | bindsym $mod+Shift+8 move container to workspace 8 169 | bindsym $mod+Shift+9 move container to workspace 9 170 | bindsym $mod+Shift+0 move container to workspace $workspace10 171 | 172 | 173 | # Open program on workspace 174 | 175 | assign [class="Terminator"] $workspace2 176 | assign [class="Google-chrome"] $workspace1 177 | 178 | assign [class="Spotify"] $workspace10 179 | for_window [class="Spotify"] move to workspace $workspace10 180 | 181 | # audio controls 182 | bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume 183 | bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume 184 | bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound 185 | #bindsym XF86AudioMicMute exec amixer set Capture toggle # mute mic 186 | 187 | #bindsym XF86AudioMute exec --no-startup-id amixer set Master toggle 188 | #bindsym XF86AudioRaiseVolume exec --no-startup-id amixer set Master 5+ 189 | #bindsym XF86AudioLowerVolume exec --no-startup-id amixer set Master 5- 190 | 191 | # Media player controls 192 | bindsym XF86AudioPlay exec playerctl play 193 | bindsym XF86AudioPause exec playerctl pause 194 | bindsym XF86AudioNext exec playerctl next 195 | bindsym XF86AudioPrev exec playerctl previous 196 | 197 | # screen brightness controls 198 | bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness 199 | bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness 200 | 201 | # Screenshots 202 | # Screenshot fullscreen 203 | bindsym Print exec "scrot -q 100 ${HOME}'/Pictures/Screenshots/%Y-%m-%d-%H-%M-%S_$wx$h.png'" 204 | # Screenshot with selection 205 | bindsym $mod+Print exec "sleep 0.4; scrot -q 100 -s ${HOME}'/Pictures/Screenshots/%Y-%m-%d-%H-%M-%S_$wx$h.png'" 206 | # Screenshot current focused window 207 | bindsym Shift+Print exec "scrot -q 100 -u ${HOME}'/Pictures/Screenshots/%Y-%m-%d-%H-%M-%S_$wx$h.png'" 208 | 209 | 210 | # reload the configuration file 211 | bindsym $mod+Shift+c reload 212 | # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) 213 | bindsym $mod+Shift+r restart 214 | # exit i3 (logs you out of your X session) 215 | bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" 216 | 217 | # resize window (you can also use the mouse for that) 218 | mode "resize" { 219 | # These bindings trigger as soon as you enter the resize mode 220 | 221 | # Pressing left will shrink the window’s width. 222 | # Pressing right will grow the window’s width. 223 | # Pressing up will shrink the window’s height. 224 | # Pressing down will grow the window’s height. 225 | bindsym j resize shrink width 10 px or 10 ppt 226 | bindsym k resize grow height 10 px or 10 ppt 227 | bindsym l resize shrink height 10 px or 10 ppt 228 | bindsym ccedilla resize grow width 10 px or 10 ppt 229 | 230 | # same bindings, but for the arrow keys 231 | bindsym Left resize shrink width 10 px or 10 ppt 232 | bindsym Down resize grow height 10 px or 10 ppt 233 | bindsym Up resize shrink height 10 px or 10 ppt 234 | bindsym Right resize grow width 10 px or 10 ppt 235 | 236 | # back to normal: Enter or Escape 237 | bindsym Return mode "default" 238 | bindsym Escape mode "default" 239 | } 240 | 241 | bindsym $mod+r mode "resize" 242 | 243 | 244 | # Colors 245 | set $bg-color #2f343f 246 | set $inactive-bg-color #2f343f 247 | set $text-color #f3f4f5 248 | set $inactive-text-color #676E7D 249 | set $urgent-bg-color #E53935 250 | 251 | # window colors 252 | # border background text indicator 253 | client.focused $bg-color $bg-color $text-color #000000 254 | client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-color #000000 255 | client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color #000000 256 | client.urgent $urgent-bg-color $urgent-bg-color $text-color #00ff00 257 | 258 | # Start i3bar to display a workspace bar (plus the system information i3status 259 | # finds out, if available) 260 | bar { 261 | status_command i3status 262 | colors { 263 | background $bg-color 264 | separator #757575 265 | # border background text 266 | focused_workspace $bg-color $bg-color $text-color 267 | inactive_workspace $inactive-bg-color $inactive-bg-color $inactive-text-color 268 | urgent_workspace $urgent-bg-color $urgent-bg-color $text-color 269 | } 270 | } 271 | 272 | 273 | 274 | 275 | exec xrdb -merge $HOME/.Xresources 276 | 277 | # Run at start 278 | exec --no-startup-id devmon --no-gui 279 | exec --no-startup-id pulseaudio --start 280 | exec --no-startup-id volumeicon 281 | exec --no-startup-id blueman-applet 282 | exec --no-startup-id nm-applet 283 | # Transparent background 284 | exec nitrogen --restore 285 | exec --no-startup-id compton -f 286 | --------------------------------------------------------------------------------