This repo contains softwares configuration that I can't afford to lose:
- i3wm
- nvim
- polybar
i3 window manager configuration should go to $XDG_CONFIG_HOME/i3
.
There is not much custom configuration:
- keyboard layout
- rofi and clipboard screen capture
- logout/reboot/power off mode
- polybar
- dunst: notification manager
- feh: background utility
- greenclip: clipboard manager
- maim: screenshot utility
- polybar: top bar, see below
- rofi: dmenu replacement, with clipboard integration
This configuration is optimized for a PHP environment.
Javascript, Yaml, Twig, Json, Behat, CSS are also needed.
- ripgrep: for telescope search
- nerdfonts: specificaly Hack Nerd Font
- Node (with NPM) for tsserver and others LSP
- PHP and Composer for phpactor
- phpactor for the nvim plugin
- python3.10-venv for Nginx LSP
Symlink nvim
directory to $XDG_CONFIG_HOME/nvim
and .vimrc
to home directory.
Then simply run :PlugInstall
.
- argwrap: wrap/unwrap arguments
- barbar: buffer as tabs
- dressing: vim.ui interface
- easy-motion: move rapidly into current buffer
- edge: color theme
- gitsigns: simple git integration
- indent-blankline: shows indentation guides
- lspconfig: multi LSP preconfigurations
- mardown-preview: markdown live preview in the browser
- mason: easy LSP integration with lspconfig (with mason-lspconfig)
- nvim-autopairs
- nvim-cmp: entire autocomplete feature
- nvim-lualine: status line
- quickfix-reflector: edit quickfix list
- telescope
- telescope-fzf-native: better file search
- telescope-live-grep-args: usage of rg args
- toggleterm: terminal
- tree: with web-devicons
- tree-sitter: with text objects plugin
- ulti-snips: snippets integration
- vim-abolish: better substitution and coercion
- vim-commentary: comment stuff out
- vim-fugitive: mostly for git blame
- vim-illuminate: match words under cursor
- vim-plug
- vim-polyglot: language pack plugin
- which-key
- yaml: yaml integration (yank key/value, find with Telescope)
- Add the new plugin (with Plug) in the
.vimrc
inside theplug
block. - Run
:PlugInstall
- If configuration is necessary, create a lua file in
lua/config
- Require it in
lua/config/init.lua
- html
- javascript
- make
- php
- twig
- yaml
Install parsers with this command:
:TSInstall javascript
:TSInstall make
Installing a LSP is made easy with mason-lspconfig, just run the following command to install a LSP:
:MasonInstall dockerfile-language-server
:MasonInstall docker-compose-language-service
:MasonInstall emmet-language-server
:MasonInstall lua-language-server
:MasonInstall nginx-language-server
:MasonInstall phpactor
:MasonInstall tsserver
The corresponding LSP are attached in lua/config/nvim-cmp.lua
.
Symlink phpactor.json
to $XDG_CONFIG_HOME/phpactor
, and make sure the config file is loaded:
phpactor status
:LspInfo
gives great infos about errors of LSP not correctly setup
If fzf fails to install, go to the plugin dir $XDG_CONFIG_HOME/nvim/plugged/telescope-fzf-native.nvim
and run make:
make
polybar configuration should go to $XDG_CONFIG_HOME/polybar
.
This configuration is required by i3.
There is a launch.sh
script that starts the bar on each monitor.
The network dropdown has been taken from https://github.com/P3rf/rofi-network-manager.
- playerctl