diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc new file mode 100755 index 0000000..4ed16cd --- /dev/null +++ b/.config/bspwm/bspwmrc @@ -0,0 +1,20 @@ +#! /bin/sh + +pgrep -x sxhkd > /dev/null || sxhkd & +#pgrep -x ~/.config/polybar/launch.sh > /dev/null || ~/.config/polybar/launch.sh & +pgrep -x bspwmbar > /dev/null || bspwmbar & + +bspc monitor -d I II III IV V VI VII VIII IX X + +bspc config border_width 2 +bspc config window_gap 5 + +bspc config split_ratio 0.52 +bspc config borderless_monocle true +bspc config gapless_monocle true + +bspc rule -a Gimp desktop='^8' state=floating follow=on +bspc rule -a Chromium desktop='^2' +bspc rule -a mplayer2 state=floating +bspc rule -a Kupfer.py focus=on +bspc rule -a Screenkey manage=off diff --git a/.config/neomutt/neomuttrc b/.config/neomutt/neomuttrc new file mode 100644 index 0000000..c3832ac --- /dev/null +++ b/.config/neomutt/neomuttrc @@ -0,0 +1,23 @@ +set ssl_starttls=yes +set ssl_force_tls=yes + +set imap_user = "tanguy.herbron@outlook.com" +#set imap_pass = "passwd" +set from = $imap_user +set use_from = yes +set realname = "Tanguy Herbron" +set folder = imaps://imap-mail.outlook.com:993 +set spoolfile = "+INBOX" +set postponed = "+[hotmail]/Drafts" +set mail_check = 100 +set header_cache = "~/.neomutt/cache/headers" +set message_cachedir = "~/.neomutt/cache/bodies" +set certificate_file = "~/.neomutt/certificates" +set smtp_url = "smtp://$imap_user@smtp-mail.outlook.com:587" +#set smtp_pass = $imap_pass +set move = no +set imap_keepalive = 900 +set record = "+Sent" + +# Macros +macro pager \cb 'urlscan' 'Follow links with urlscan' diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index d484d03..2a49704 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -150,3 +150,6 @@ set t_Co=256 set termguicolors let ayucolor="mirage" colorscheme ayu + +" Neomutt configuration for nvim compatibility +au BufRead /tmp/neomutt-* set tw=72 diff --git a/.config/nvim/plugged/NERDTree b/.config/nvim/plugged/NERDTree deleted file mode 160000 index 6571452..0000000 --- a/.config/nvim/plugged/NERDTree +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6571452857fd1b14f15a3886f9fffc113c36bbac diff --git a/.config/nvim/plugged/YouCompleteMe b/.config/nvim/plugged/YouCompleteMe deleted file mode 160000 index 195f730..0000000 --- a/.config/nvim/plugged/YouCompleteMe +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 195f730dfb4d818a81082b383e294a302f61bcfe diff --git a/.config/nvim/plugged/ctrlp.vim b/.config/nvim/plugged/ctrlp.vim deleted file mode 160000 index d93d978..0000000 --- a/.config/nvim/plugged/ctrlp.vim +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d93d97813dc839ef0782302a0debd7c4877f09f3 diff --git a/.config/nvim/plugged/fzf b/.config/nvim/plugged/fzf deleted file mode 160000 index 8e027c4..0000000 --- a/.config/nvim/plugged/fzf +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8e027c445f0eb4495e300522843df335c3b54e60 diff --git a/.config/nvim/plugged/fzf.vim b/.config/nvim/plugged/fzf.vim deleted file mode 160000 index 2bf85d2..0000000 --- a/.config/nvim/plugged/fzf.vim +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2bf85d25e203a536edb2c072c0d41b29e8e4cc1b diff --git a/.config/nvim/plugged/neocomplete.vim b/.config/nvim/plugged/neocomplete.vim deleted file mode 160000 index 5c18aac..0000000 --- a/.config/nvim/plugged/neocomplete.vim +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5c18aacf03e210a23800775bf3585f3735d00a30 diff --git a/.config/nvim/plugged/nerdtree-git-plugin b/.config/nvim/plugged/nerdtree-git-plugin deleted file mode 160000 index f522a09..0000000 --- a/.config/nvim/plugged/nerdtree-git-plugin +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f522a091e2838812d2669c331d7e9c283db6d54d diff --git a/.config/nvim/plugged/syntastic b/.config/nvim/plugged/syntastic deleted file mode 160000 index 63b74a7..0000000 --- a/.config/nvim/plugged/syntastic +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 63b74a7473ec01548298284c210fee0a78a6156d diff --git a/.config/nvim/plugged/tagbar b/.config/nvim/plugged/tagbar deleted file mode 160000 index d7063c7..0000000 --- a/.config/nvim/plugged/tagbar +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d7063c7484f0f99bfa182b02defef7f412a9289c diff --git a/.config/nvim/plugged/undotree b/.config/nvim/plugged/undotree deleted file mode 160000 index be23eac..0000000 --- a/.config/nvim/plugged/undotree +++ /dev/null @@ -1 +0,0 @@ -Subproject commit be23eacb2a63380bd79e207a738c728214ecc9d3 diff --git a/.config/nvim/plugged/vim-airline b/.config/nvim/plugged/vim-airline deleted file mode 160000 index b843321..0000000 --- a/.config/nvim/plugged/vim-airline +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b843321428209c892f4a1fab7a5fe473f0b7d386 diff --git a/.config/nvim/plugged/vim-autoclose b/.config/nvim/plugged/vim-autoclose deleted file mode 160000 index a9a3b73..0000000 --- a/.config/nvim/plugged/vim-autoclose +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a9a3b7384657bc1f60a963fd6c08c63fc48d61c3 diff --git a/.config/nvim/plugged/vim-devicons b/.config/nvim/plugged/vim-devicons deleted file mode 160000 index 1ac5894..0000000 --- a/.config/nvim/plugged/vim-devicons +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1ac58941ba3da654c0e1060e3d6077c5cf93427e diff --git a/.config/nvim/plugged/vim-fugitive b/.config/nvim/plugged/vim-fugitive deleted file mode 160000 index 1da7c13..0000000 --- a/.config/nvim/plugged/vim-fugitive +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1da7c133b109cd329060174a104e325e4d6bcc82 diff --git a/.config/nvim/plugged/vim-jsbeautify b/.config/nvim/plugged/vim-jsbeautify deleted file mode 160000 index 6003f9d..0000000 --- a/.config/nvim/plugged/vim-jsbeautify +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6003f9d420d56b91f5664ec5ed5a9a3a6d8df22b diff --git a/.config/nvim/plugged/vim-ripgrep b/.config/nvim/plugged/vim-ripgrep deleted file mode 160000 index ec87af6..0000000 --- a/.config/nvim/plugged/vim-ripgrep +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ec87af6b69387abb3c4449ce8c4040d2d00d745e diff --git a/.config/nvim/plugged/vim-vue b/.config/nvim/plugged/vim-vue deleted file mode 160000 index 9bcea1b..0000000 --- a/.config/nvim/plugged/vim-vue +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9bcea1b833b4a82531439ec238cef80546ff99f6 diff --git a/.config/polybar/modules.ini b/.config/polybar/modules.ini index 327fd1b..8f98138 100644 --- a/.config/polybar/modules.ini +++ b/.config/polybar/modules.ini @@ -246,126 +246,126 @@ animation-charging-framerate = 750 ;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ -;;[module/bspwm] -;;type = internal/bspwm +[module/bspwm] +type = internal/bspwm -; Only show workspaces defined on the same output as the bar -; NOTE: The bspwm and XRandR monitor names must match, which they do by default. -; Default: true -;;pin-workspaces = true +Only show workspaces defined on the same output as the bar +NOTE: The bspwm and XRandR monitor names must match, which they do by default. +Default: true +pin-workspaces = true -; Output mode flags after focused state label -; Default: false -;;inline-mode = false +Output mode flags after focused state label +Default: false +inline-mode = false -; Create click handler used to focus workspace -; Default: true -;;enable-click = false +Create click handler used to focus workspace +Default: true +enable-click = false -; Create scroll handlers used to cycle workspaces -; Default: true -;;enable-scroll = false +Create scroll handlers used to cycle workspaces +Default: true +enable-scroll = false -; Set the scroll cycle direction -; Default: true -;;reverse-scroll = false +Set the scroll cycle direction +Default: true +reverse-scroll = false -; Use fuzzy (partial) matching on labels when assigning -; icons to workspaces -; Example: code;♚ will apply the icon to all workspaces -; containing 'code' in the label -; Default: false -;;fuzzy-match = true +Use fuzzy (partial) matching on labels when assigning +icons to workspaces +Example: code;♚ will apply the icon to all workspaces +containing 'code' in the label +Default: false +fuzzy-match = true -; ws-icon-[0-9]+ = label;icon -; Note that the label needs to correspond with the bspwm workspace name -;;ws-icon-0 = code;♚ -;;ws-icon-1 = office;♛ -;;ws-icon-2 = graphics;♜ -;;ws-icon-3 = mail;♝ -;;ws-icon-4 = web;♞ -;;ws-icon-default = ♟ +ws-icon-[0-9]+ = label;icon +Note that the label needs to correspond with the bspwm workspace name +ws-icon-0 = code;♚ +ws-icon-1 = office;♛ +ws-icon-2 = graphics;♜ +ws-icon-3 = mail;♝ +ws-icon-4 = web;♞ +ws-icon-default = ♟ -; Available tags: -; -; - gets replaced with -; - gets replaced with -; Default: -;;format = +Available tags: + + - gets replaced with + - gets replaced with +Default: +format = -; Available tokens: -; %name% -; Default: %name% -;;label-monitor = %name% +Available tokens: + %name% +Default: %name% +label-monitor = %name% -; If any values for label-dimmed-N are defined, the workspace/mode -; colors will get overridden with those values if the monitor is out of focus -; To only override workspaces in a specific state, use: -; label-dimmed-focused -; label-dimmed-occupied -; label-dimmed-urgent -; label-dimmed-empty -;;label-dimmed-foreground = #555 -;;label-dimmed-underline = ${bar/top.background} -;;label-dimmed-focused-background = #f00 +If any values for label-dimmed-N are defined, the workspace/mode +colors will get overridden with those values if the monitor is out of focus +To only override workspaces in a specific state, use: + label-dimmed-focused + label-dimmed-occupied + label-dimmed-urgent + label-dimmed-empty +label-dimmed-foreground = #555 +label-dimmed-underline = ${bar/top.background} +label-dimmed-focused-background = #f00 -; Available tokens: -; %name% -; %icon% -; %index% -; Default: %icon% %name% -;;label-focused = %icon% -;;label-focused-foreground = #ffffff -;;label-focused-background = #3f3f3f -;;label-focused-underline = #fba922 +Available tokens: + %name% + %icon% + %index% +Default: %icon% %name% +label-focused = %icon% +label-focused-foreground = #ffffff +label-focused-background = #3f3f3f +label-focused-underline = #fba922 -; Available tokens: -; %name% -; %icon% -; %index% -; Default: %icon% %name% -;;label-occupied = %icon% -;;label-occupied-underline = #555555 +Available tokens: + %name% + %icon% + %index% +Default: %icon% %name% +label-occupied = %icon% +label-occupied-underline = #555555 -; Available tokens: -; %name% -; %icon% -; %index% -; Default: %icon% %name% -;;label-urgent = %icon% -;;label-urgent-foreground = #000000 -;;label-urgent-background = #bd2c40 -;;label-urgent-underline = #9b0a20 +Available tokens: + %name% + %icon% + %index% +Default: %icon% %name% +label-urgent = %icon% +label-urgent-foreground = #000000 +label-urgent-background = #bd2c40 +label-urgent-underline = #9b0a20 -; Available tokens: -; %name% -; %icon% -; %index% -; Default: %icon% %name% -;;label-empty = %icon% -;;label-empty-foreground = #55 +Available tokens: + %name% + %icon% + %index% +Default: %icon% %name% +label-empty = %icon% +label-empty-foreground = #55 -; The following labels will be used to indicate the layout/mode -; for the focused workspace. Requires -; -; Available tokens: -; None -;label-monocle =  -;label-tiled =  -;label-fullscreen =  -;label-floating =  -;label-pseudotiled = P -;label-locked =  -;label-locked-foreground = #bd2c40 -;label-sticky =  -;label-sticky-foreground = #fba922 -;label-private =  -;label-private-foreground = #bd2c40 +The following labels will be used to indicate the layout/mode +for the focused workspace. Requires -; Separator in between workspaces -;;label-separator = | -;;label-separator-padding = 2 -;;label-separator-foreground = #ffb52a +Available tokens: + None +abel-monocle =  +abel-tiled =  +abel-fullscreen =  +abel-floating =  +abel-pseudotiled = P +abel-locked =  +abel-locked-foreground = #bd2c40 +abel-sticky =  +abel-sticky-foreground = #fba922 +abel-private =  +abel-private-foreground = #bd2c40 + +Separator in between workspaces +label-separator = | +label-separator-padding = 2 +label-separator-foreground = #ffb52a ;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc new file mode 100755 index 0000000..0242785 --- /dev/null +++ b/.config/sxhkd/sxhkdrc @@ -0,0 +1,121 @@ +# +# wm independent hotkeys +# + +# terminal emulator +super + Return + xterm + +# browser +super + shift + Return + midori + +# program launcher +super + @space + rofi -show drun -theme ~/.config/rofi/config.rasi + +# make sxhkd reload its configuration files: +super + Escape + pkill -USR1 -x sxhkd + +# +# bspwm hotkeys +# + +# quit/restart bspwm +super + alt + {q,r} + bspc {quit,wm -r} + +# close and kill +super + {_,shift + }q + bspc node -{c,k} + +# alternate between the tiled and monocle layout +super + f + bspc desktop -l next + +# send the newest marked node to the newest preselected node +super + y + bspc node newest.marked.local -n newest.!automatic.local + +# swap the current node and the biggest window +super + g + bspc node -s biggest.window + +# +# state/flags +# + +# set the window state +super + {t,shift + t,s} + bspc node -t {tiled,pseudo_tiled,floating} + +# set the node flags +super + ctrl + {m,x,y,z} + bspc node -g {marked,locked,sticky,private} + +# +# focus/swap +# + +# focus the node in the given direction +super + {_,shift + }{h,j,k,l} + bspc node -{f,s} {west,south,north,east} + +# focus the node for the given path jump +super + {p,b,comma,period} + bspc node -f @{parent,brother,first,second} + +# focus the next/previous window in the current desktop +super + {_,shift + }c + bspc node -f {next,prev}.local.!hidden.window + +# focus the next/previous desktop in the current monitor +super + bracket{left,right} + bspc desktop -f {prev,next}.local + +# focus the last node/desktop +super + {grave,Tab} + bspc {node,desktop} -f last + +# focus the older or newer node in the focus history +super + {o,i} + bspc wm -h off; \ + bspc node {older,newer} -f; \ + bspc wm -h on + +# focus or send to the given desktop +super + {_,shift + }{1-9,0} + bspc {desktop -f,node -d} '^{1-9,10}' + +# +# preselect +# + +# preselect the direction +super + ctrl + {h,j,k,l} + bspc node -p {west,south,north,east} + +# preselect the ratio +super + ctrl + {1-9} + bspc node -o 0.{1-9} + +# cancel the preselection for the focused node +super + ctrl + space + bspc node -p cancel + +# cancel the preselection for the focused desktop +super + ctrl + shift + space + bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel + +# +# move/resize +# + +# expand a window by moving one of its side outward +super + alt + {h,j,k,l} + bspc node -z {right -20 0,top 0 20,top 0 -20,right 20 0} + +# move a floating window +super + {Left,Down,Up,Right} + bspc node -v {-20 0,0 20,0 -20,20 0} diff --git a/.gitmodules b/.gitmodules index d1e2289..ae12582 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,75 +1,3 @@ -[submodule ".config/nvim/plugged/NERDTree"] - path = .config/nvim/plugged/NERDTree - url = https://github.com/preservim/nerdtree - -[submodule ".config/nvim/plugged/YouCompleteMe"] - path = .config/nvim/plugged/YouCompleteMe - url = https://github.com/ycm-core/YouCompleteMe - -[submodule ".config/nvim/plugged/ctrlp.vim"] - path = .config/nvim/plugged/ctrlp.vim - url = https://github.com/ctrlpvim/ctrlp.vim - -[submodule ".config/nvim/plugged/fzf"] - path = .config/nvim/plugged/fzf - url = https://github.com/junegunn/fzf - -[submodule ".config/nvim/plugged/fzf.vim"] - path = .config/nvim/plugged/fzf.vim - url = https://github.com/junegunn/fzf.vim - -[submodule ".config/nvim/plugged/neocomplete.vim"] - path = .config/nvim/plugged/neocomplete.vim - url = https://github.com/Shougo/neocomplete.vim - -[submodule ".config/nvim/plugged/nerdtree-git-plugin"] - path = .config/nvim/plugged/nerdtree-git-plugin - url = https://github.com/Xuyuanp/nerdtree-git-plugin - -[submodule ".config/nvim/plugged/syntastic"] - path = .config/nvim/plugged/syntastic - url = https://github.com/vim-syntastic/syntastic - -[submodule ".config/nvim/plugged/tagbar"] - path = .config/nvim/plugged/tagbar - url = https://github.com/majutsushi/tagbar - -[submodule ".config/nvim/plugged/undotree"] - path = .config/nvim/plugged/undotree - url = https://github.com/mbbill/undotree - -[submodule ".config/nvim/plugged/vim-airline"] - path = .config/nvim/plugged/vim-airline - url = https://github.com/vim-airline/vim-airline - -[submodule ".config/nvim/plugged/vim-autoclose"] - path = .config/nvim/plugged/vim-autoclose - url = https://github.com/Townk/vim-autoclose - -[submodule ".config/nvim/plugged/vim-devicons"] - path = .config/nvim/plugged/vim-devicons - url = https://github.com/ryanoasis/vim-devicons - -[submodule ".config/nvim/plugged/vim-fugitive"] - path = .config/nvim/plugged/vim-fugitive - url = https://github.com/tpope/vim-fugitive - -[submodule ".config/nvim/plugged/vim-jsbeautify"] - path = .config/nvim/plugged/vim-jsbeautify - url = https://github.com/maksimr/vim-jsbeautify - -[submodule ".config/nvim/plugged/vim-ripgrep"] - path = .config/nvim/plugged/vim-ripgrep - url = https://github.com/jremmen/vim-ripgrep - -[submodule ".config/nvim/plugged/vim-vue"] - path = .config/nvim/plugged/vim-vue - url = https://github.com/storyn26383/vim-vue - -[submodule ".config/nvim/plugged/vim-vue"] - path = .config/nvim/plugged/vim-vue - url = https://github.com/storyn26383/vim-vue - [submodule ".oh-my-zsh/custom/themes/powerlevel10k"] path = .oh-my-zsh/custom/themes/powerlevel10k url = https://github.com/romkatv/powerlevel10k diff --git a/.tmux/plugin-installer.sh b/.tmux/plugin-installer.sh new file mode 100755 index 0000000..474de68 --- /dev/null +++ b/.tmux/plugin-installer.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm diff --git a/.xinitrc b/.xinitrc new file mode 100755 index 0000000..1420934 --- /dev/null +++ b/.xinitrc @@ -0,0 +1,52 @@ +#!/bin/sh + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/etc/X11/xinit/.Xresources +sysmodmap=/etc/X11/xinit/.Xmodmap + +# merge in defaults and keymaps + +if [ -f $sysresources ]; then + + + + + + + + xrdb -merge $sysresources + +fi + +if [ -f $sysmodmap ]; then + xmodmap $sysmodmap +fi + +if [ -f "$userresources" ]; then + + + + + + + + xrdb -merge "$userresources" + +fi + +if [ -f "$usermodmap" ]; then + xmodmap "$usermodmap" +fi + +# start some nice programs + +if [ -d /etc/X11/xinit/xinitrc.d ] ; then + for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do + [ -x "$f" ] && . "$f" + done + unset f +fi + +sxhkd & +exec bspwm