Merge branch 'master' of frogit:geoffrey/dotfiles
This commit is contained in:
commit
75462e7e5d
|
@ -1,3 +1,3 @@
|
|||
#include ".Xresources.d/xft"
|
||||
#include ".Xresources.d/solarized.dark"
|
||||
#include ".Xresources.d/theme"
|
||||
#include ".Xresources.d/xterm"
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
#define S_base03 #002b36
|
||||
#define S_base02 #073642
|
||||
#define S_base01 #586e75
|
||||
#define S_base00 #657b83
|
||||
#define S_base0 #839496
|
||||
#define S_base1 #93a1a1
|
||||
#define S_base2 #eee8d5
|
||||
#define S_base3 #fdf6e3
|
||||
|
||||
*background: S_base03
|
||||
*foreground: S_base0
|
||||
*fadeColor: S_base03
|
||||
*cursorColor: S_base1
|
||||
*pointerColorBackground:S_base01
|
||||
*pointerColorForeground:S_base1
|
||||
|
||||
#define S_yellow #b58900
|
||||
#define S_orange #cb4b16
|
||||
#define S_red #dc322f
|
||||
#define S_magenta #d33682
|
||||
#define S_violet #6c71c4
|
||||
#define S_blue #268bd2
|
||||
#define S_cyan #2aa198
|
||||
#define S_green #859900
|
||||
|
||||
!! black dark/light
|
||||
*color0: S_base02
|
||||
*color8: S_base03
|
||||
|
||||
!! red dark/light
|
||||
*color1: S_red
|
||||
*color9: S_orange
|
||||
|
||||
!! green dark/light
|
||||
*color2: S_green
|
||||
*color10: S_base01
|
||||
|
||||
!! yellow dark/light
|
||||
*color3: S_yellow
|
||||
*color11: S_base00
|
||||
|
||||
!! blue dark/light
|
||||
*color4: S_blue
|
||||
*color12: S_base0
|
||||
|
||||
!! magenta dark/light
|
||||
*color5: S_magenta
|
||||
*color13: S_violet
|
||||
|
||||
!! cyan dark/light
|
||||
*color6: S_cyan
|
||||
*color14: S_base1
|
||||
|
||||
!! white dark/light
|
||||
*color7: S_base2
|
||||
*color15: S_base3
|
2
Xresources.d/configure
vendored
2
Xresources.d/configure
vendored
|
@ -1,7 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
wget "https://raw.githubusercontent.com/solarized/xresources/master/Xresources.light" -O solarized.light
|
||||
wget "https://raw.githubusercontent.com/solarized/xresources/master/Xresources.dark" -O solarized.dark
|
||||
mkdir -p $HOME/.local/share/fonts
|
||||
echo $(for i in "" "%20Bold" "%20Oblique" "%20Bold%20Oblique"; do
|
||||
cd $HOME/.local/share/fonts
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
#define S_base03 #002b36
|
||||
#define S_base02 #073642
|
||||
#define S_base01 #586e75
|
||||
#define S_base00 #657b83
|
||||
#define S_base0 #839496
|
||||
#define S_base1 #93a1a1
|
||||
#define S_base2 #eee8d5
|
||||
#define S_base3 #fdf6e3
|
||||
|
||||
*background: S_base03
|
||||
*foreground: S_base0
|
||||
*fadeColor: S_base03
|
||||
*cursorColor: S_base1
|
||||
*pointerColorBackground:S_base01
|
||||
*pointerColorForeground:S_base1
|
||||
|
||||
#define S_yellow #b58900
|
||||
#define S_orange #cb4b16
|
||||
#define S_red #dc322f
|
||||
#define S_magenta #d33682
|
||||
#define S_violet #6c71c4
|
||||
#define S_blue #268bd2
|
||||
#define S_cyan #2aa198
|
||||
#define S_green #859900
|
||||
|
||||
!! black dark/light
|
||||
*color0: S_base02
|
||||
*color8: S_base03
|
||||
|
||||
!! red dark/light
|
||||
*color1: S_red
|
||||
*color9: S_orange
|
||||
|
||||
!! green dark/light
|
||||
*color2: S_green
|
||||
*color10: S_base01
|
||||
|
||||
!! yellow dark/light
|
||||
*color3: S_yellow
|
||||
*color11: S_base00
|
||||
|
||||
!! blue dark/light
|
||||
*color4: S_blue
|
||||
*color12: S_base0
|
||||
|
||||
!! magenta dark/light
|
||||
*color5: S_magenta
|
||||
*color13: S_violet
|
||||
|
||||
!! cyan dark/light
|
||||
*color6: S_cyan
|
||||
*color14: S_base1
|
||||
|
||||
!! white dark/light
|
||||
*color7: S_base2
|
||||
*color15: S_base3
|
|
@ -1,56 +0,0 @@
|
|||
#define S_base03 #002b36
|
||||
#define S_base02 #073642
|
||||
#define S_base01 #586e75
|
||||
#define S_base00 #657b83
|
||||
#define S_base0 #839496
|
||||
#define S_base1 #93a1a1
|
||||
#define S_base2 #eee8d5
|
||||
#define S_base3 #fdf6e3
|
||||
|
||||
*background: S_base3
|
||||
*foreground: S_base00
|
||||
*fadeColor: S_base3
|
||||
*cursorColor: S_base01
|
||||
*pointerColorBackground:S_base1
|
||||
*pointerColorForeground:S_base01
|
||||
|
||||
#define S_yellow #b58900
|
||||
#define S_orange #cb4b16
|
||||
#define S_red #dc322f
|
||||
#define S_magenta #d33682
|
||||
#define S_violet #6c71c4
|
||||
#define S_blue #268bd2
|
||||
#define S_cyan #2aa198
|
||||
#define S_green #859900
|
||||
|
||||
!! black dark/light
|
||||
*color0: S_base02
|
||||
*color8: S_base03
|
||||
|
||||
!! red dark/light
|
||||
*color1: S_red
|
||||
*color9: S_orange
|
||||
|
||||
!! green dark/light
|
||||
*color2: S_green
|
||||
*color10: S_base01
|
||||
|
||||
!! yellow dark/light
|
||||
*color3: S_yellow
|
||||
*color11: S_base00
|
||||
|
||||
!! blue dark/light
|
||||
*color4: S_blue
|
||||
*color12: S_base0
|
||||
|
||||
!! magenta dark/light
|
||||
*color5: S_magenta
|
||||
*color13: S_violet
|
||||
|
||||
!! cyan dark/light
|
||||
*color6: S_cyan
|
||||
*color14: S_base1
|
||||
|
||||
!! white dark/light
|
||||
*color7: S_base2
|
||||
*color15: S_base3
|
36
Xresources.d/theme
Normal file
36
Xresources.d/theme
Normal file
|
@ -0,0 +1,36 @@
|
|||
! special
|
||||
*.foreground: #f1ebeb
|
||||
*.background: #272822
|
||||
*.cursorColor: #f1ebeb
|
||||
|
||||
! black
|
||||
*.color0: #48483e
|
||||
*.color8: #76715e
|
||||
|
||||
! red
|
||||
*.color1: #dc2566
|
||||
*.color9: #fa2772
|
||||
|
||||
! green
|
||||
*.color2: #8fc029
|
||||
*.color10: #a7e22e
|
||||
|
||||
! yellow
|
||||
*.color3: #d4c96e
|
||||
*.color11: #e7db75
|
||||
|
||||
! blue
|
||||
*.color4: #55bcce
|
||||
*.color12: #66d9ee
|
||||
|
||||
! magenta
|
||||
*.color5: #9358fe
|
||||
*.color13: #ae82ff
|
||||
|
||||
! cyan
|
||||
*.color6: #56b7a5
|
||||
*.color14: #66efd5
|
||||
|
||||
! white
|
||||
*.color7: #acada1
|
||||
*.color15: #cfd0c2
|
|
@ -10,3 +10,6 @@ xterm*rightScrollBar: false
|
|||
xterm*jumpScroll: true
|
||||
xterm*multiScroll: true
|
||||
xterm*toolBar: false
|
||||
XTerm.vt100.translations: #override \n\
|
||||
Ctrl Shift <Key>C: copy-selection(CLIPBOARD) \n\
|
||||
Ctrl Shift <Key>V: insert-selection(CLIPBOARD)
|
||||
|
|
218
bashrc
218
bashrc
|
@ -1,55 +1,79 @@
|
|||
# Custom scripts
|
||||
#
|
||||
# ~/.bashrc
|
||||
#
|
||||
|
||||
# ENVIRONMENT VARIABLES
|
||||
|
||||
# Region preferences
|
||||
export LANG=fr_FR.utf8
|
||||
export TZ=/usr/share/zoneinfo/Europe/Paris
|
||||
|
||||
#find ~/.scripts/ ~/.gscripts/ -type f -name "*.sh" | while read script; do
|
||||
#source "$script"
|
||||
#done
|
||||
[ -f ~/.scripts/index.sh ] && source ~/.scripts/index.sh
|
||||
[ -f ~/.gscripts/index.sh ] && source ~/.gscripts/index.sh
|
||||
|
||||
# Prompt
|
||||
if [[ $USER == 'root' ]]; then
|
||||
col=31;
|
||||
elif [[ -n $ME ]]; then # $ME is a var set by my private config that is not empty if it is my account (and not a system account e.g. `git`)
|
||||
col=32;
|
||||
else
|
||||
col=33;
|
||||
fi
|
||||
|
||||
export USER=$(whoami)
|
||||
PS1="\[\e]2;\u@\h \w\a\]\[\e[0;37m\][\[\e[0;${col}m\]\u\[\e[0;37m\]@\[\e[0;34m\]\h \[\e[0;36m\]\W\[\e[0;37m\]]\$\[\e[0m\] "
|
||||
PS2="> "
|
||||
PS3="+ "
|
||||
PS4="- "
|
||||
|
||||
|
||||
# Vars
|
||||
# Favourite commands
|
||||
export PAGER=less
|
||||
export EDITOR=vim
|
||||
export VISUAL=vim
|
||||
export BROWSER=/usr/bin/qutebrowser
|
||||
export TZ=/usr/share/zoneinfo/Europe/Paris
|
||||
export BROWSER=qutebrowser
|
||||
|
||||
export PATH="$PATH:$HOME/.gem/ruby/2.3.0/bin/"
|
||||
export LANG=fr_FR.utf8
|
||||
export HISTSIZE=10000
|
||||
export HISTFILESIZE=${HISTSIZE}
|
||||
export HISTCONTROL=ignoreboth
|
||||
# Some programs need those changes
|
||||
export PATH="/usr/lib/ccache/bin/:$PATH"
|
||||
if [ -d $HOME/.gem/ruby/2.4.0/bin ]; then
|
||||
export PATH="$HOME/.gem/ruby/2.4.0/bin/:$PATH"
|
||||
fi
|
||||
#export PATH="$(echo "$PATH" | sed 's|:|\n|g' | sort | uniq | tr '\n' ':' | sed 's|:$||')"
|
||||
export JAVA_FONTS=/usr/share/fonts/TTF
|
||||
export ANDROID_HOME=/opt/android-sdk
|
||||
export GOPATH=$HOME/.go
|
||||
export PATH=$GOPATH/bin:$PATH
|
||||
export XDG_CONFIG_HOME=$HOME/.config
|
||||
export ARDUINO=/usr/share/arduino
|
||||
export ARDUINO_DIR=$ARDUINO
|
||||
export ARDMK_VENDOR=archlinux-arduino
|
||||
|
||||
if [ -z $XDG_CONFIG_HOME ]; then
|
||||
export XDG_CONFIG_HOME=$HOME/.config
|
||||
# ALIASES
|
||||
|
||||
# Completion for existing commands
|
||||
export LS_OPTIONS='--group-directories-first --time-style=+"%d/%m/%Y %H:%M:%S" --color=auto --file-type --human-readable'
|
||||
alias ls="ls $LS_OPTIONS"
|
||||
alias grep='grep --color=tty -d skip'
|
||||
alias mkdir='mkdir -v'
|
||||
alias cp="cp -i"
|
||||
alias mv="mv -iv"
|
||||
alias dd='dd status=progress'
|
||||
alias rm='rm -Iv --one-file-system'
|
||||
alias free='free -m'
|
||||
alias df='df -h'
|
||||
alias pacman='pacman --color auto'
|
||||
alias dmesg='dmesg --ctime'
|
||||
|
||||
# Frequent mistakes
|
||||
alias systemclt=systemctl
|
||||
|
||||
# Shortcuts for commonly used commands
|
||||
alias ll="ls -l $LS_OPTIONS"
|
||||
alias la="ls -la $LS_OPTIONS"
|
||||
alias al=sl
|
||||
alias x='startx; logout'
|
||||
alias s='sudo -s -E'
|
||||
alias po='eval $(proxy off)'
|
||||
alias nw="sudo systemctl restart NetworkManager"
|
||||
alias mc="machines"
|
||||
alias tracefiles="strace -f -t -e trace=file"
|
||||
alias vpn="sudo systemctl start openvpn-client@$HOSTNAME"
|
||||
alias vpno="sudo systemctl stop openvpn-client@$HOSTNAME"
|
||||
alias vpns="sudo systemctl status openvpn-client@$HOSTNAME"
|
||||
alias vpnr="sudo systemctl restart openvpn-client@$HOSTNAME"
|
||||
# Superseding commands with better ones if they are present
|
||||
if which vim &> /dev/null; then
|
||||
alias vi='vim'
|
||||
fi
|
||||
if which gopass &> /dev/null; then
|
||||
alias pass='gopass'
|
||||
fi
|
||||
if which wakeonlan &> /dev/null; then
|
||||
alias wol='wakeonlan'
|
||||
fi
|
||||
|
||||
# Tweaks
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
if [ -f /etc/bash_completion ]; then . /etc/bash_completion; fi
|
||||
|
||||
xhost +local:root > /dev/null 2>&1
|
||||
# SHELL CUSTOMIZATION
|
||||
|
||||
complete -cf sudo
|
||||
|
||||
|
@ -62,78 +86,60 @@ shopt -s extglob
|
|||
shopt -s histappend
|
||||
shopt -s hostcomplete
|
||||
|
||||
export LS_OPTIONS='--group-directories-first --time-style=+"%d/%m/%Y %H:%M" --color=auto --classify --human-readable'
|
||||
alias ls="ls $LS_OPTIONS"
|
||||
alias ll="ls -l $LS_OPTIONS"
|
||||
alias la="ls -la $LS_OPTIONS"
|
||||
alias al=sl
|
||||
alias grep='grep --color=tty -d skip'
|
||||
alias mkdir='mkdir -v'
|
||||
alias cp="cp -i"
|
||||
alias mv="mv -iv"
|
||||
alias dd='dd status=progress'
|
||||
alias rm='rm -Iv --one-file-system'
|
||||
alias free='free -m'
|
||||
alias df='df -h'
|
||||
alias 49.3='sudo'
|
||||
alias pacman='pacman --color auto'
|
||||
alias x='startx; logout'
|
||||
alias s='sudo -s -E'
|
||||
export HISTSIZE=100000
|
||||
export HISTFILESIZE=${HISTSIZE}
|
||||
export HISTCONTROL=ignoreboth
|
||||
|
||||
# Solarized theme for tty, the dark version.
|
||||
# Based on:
|
||||
# - Solarized (http://ethanschoonover.com/solarized)
|
||||
# - Xresources from http://github.com/altercation/solarized
|
||||
# Generated with pty2tty.awk by Joep van Delft
|
||||
# http://github.com/joepvd/tty-solarized
|
||||
if [ "$TERM" = "linux" ]; then
|
||||
echo -en "\e]PB657b83" # S_base00
|
||||
echo -en "\e]PA586e75" # S_base01
|
||||
echo -en "\e]P0073642" # S_base02
|
||||
echo -en "\e]P62aa198" # S_cyan
|
||||
echo -en "\e]P8002b36" # S_base03
|
||||
echo -en "\e]P2859900" # S_green
|
||||
echo -en "\e]P5d33682" # S_magenta
|
||||
echo -en "\e]P1dc322f" # S_red
|
||||
echo -en "\e]PC839496" # S_base0
|
||||
echo -en "\e]PE93a1a1" # S_base1
|
||||
echo -en "\e]P9cb4b16" # S_orange
|
||||
echo -en "\e]P7eee8d5" # S_base2
|
||||
echo -en "\e]P4268bd2" # S_blue
|
||||
echo -en "\e]P3b58900" # S_yellow
|
||||
echo -en "\e]PFfdf6e3" # S_base3
|
||||
echo -en "\e]PD6c71c4" # S_violet
|
||||
clear # against bg artifacts
|
||||
# PROMPT CUSTOMIZATION
|
||||
|
||||
if [[ $USER == 'root' ]]; then
|
||||
col=31;
|
||||
elif [[ $USER == 'geoffrey' || $USER == 'gbontoux' || $USER == 'gpreud' ]]; then
|
||||
col=32;
|
||||
else
|
||||
col=33;
|
||||
fi
|
||||
export PS1="\[\e]2;\u@\h \w\a\]\[\e[0;37m\][\[\e[0;${col}m\]\u\[\e[0;37m\]@\[\e[0;34m\]\h \[\e[0;36m\]\W\[\e[0;37m\]]\$\[\e[0m\] "
|
||||
export PS2="> "
|
||||
export PS3="+ "
|
||||
export PS4="- "
|
||||
|
||||
# Utils
|
||||
alias fuck='eval $(thefuck $(fc -ln -1))'
|
||||
# CUSTOM SCRIPTS
|
||||
|
||||
export PATH="$HOME/.bin/:$HOME/.scripts/:$PATH"
|
||||
[ -f ~/.gscripts/gprofile ] && source ~/.gscripts/gprofile
|
||||
|
||||
# UTILITIES
|
||||
|
||||
# Bash completion
|
||||
[ -f /etc/bash_completion ] && . /etc/bash_completion
|
||||
|
||||
# Bad day mood-saver
|
||||
function fuck {
|
||||
if which thefuck &> /dev/null
|
||||
then
|
||||
eval $(thefuck --alias)
|
||||
fuck $@
|
||||
else
|
||||
echo "thefuck is not installed on this system."
|
||||
fi
|
||||
}
|
||||
alias FUCK='fuck'
|
||||
|
||||
# Command not found
|
||||
[ -r /usr/share/doc/pkgfile/command-not-found.bash ] && . /usr/share/doc/pkgfile/command-not-found.bash
|
||||
[ -r /etc/profile.d/cnf.sh ] && . /etc/profile.d/cnf.sh
|
||||
|
||||
# Functions
|
||||
function clean {
|
||||
find . -type d -name bower_components -or -name node_modules -print0 | while read file; do
|
||||
rm -rf "$file"
|
||||
done
|
||||
find . -type f -name Makefile -print0 | while IFS= read -r -d '' file; do
|
||||
echo "--> $file"
|
||||
(cd "${file//Makefile}"; make clean)
|
||||
done
|
||||
find . -type d -name .git -print0 | while IFS= read -r -d '' dir; do
|
||||
echo "--> $file"
|
||||
(cd "$dir"; git gc)
|
||||
done
|
||||
# Node Version Manager
|
||||
function nvm {
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
if [ -s "$NVM_DIR/nvm.sh" ]
|
||||
then
|
||||
. "$NVM_DIR/nvm.sh"
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
|
||||
nvm $@
|
||||
else
|
||||
echo "NVM is not installed on this system."
|
||||
fi
|
||||
}
|
||||
|
||||
function dafont {
|
||||
wget "http://dl.dafont.com/dl/?f=$1" -O /tmp/dafont.zip
|
||||
unzip /tmp/dafont.zip -d ~/.local/share/fonts -x *.txt
|
||||
rm -rf /tmp/dafont.zip
|
||||
}
|
||||
|
||||
alias nw="sudo systemctl restart NetworkManager"
|
||||
# Command not found handlers
|
||||
[ -r /usr/share/doc/pkgfile/command-not-found.bash ] && . /usr/share/doc/pkgfile/command-not-found.bash # Arch
|
||||
[ -r /etc/profile.d/cnf.sh ] && . /etc/profile.d/cnf.sh # Arch (alternative, for Manjaro mostly)
|
||||
|
||||
|
|
2
bin/.gitignore
vendored
Normal file
2
bin/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
*
|
||||
!.gitignore
|
|
@ -1,15 +1,15 @@
|
|||
# Beware! This file is rewritten by htop when settings are changed in the interface.
|
||||
# The parser is also very primitive, and not human-friendly.
|
||||
fields=0 48 17 18 38 39 40 2 46 47 49 1
|
||||
sort_key=46
|
||||
sort_key=47
|
||||
sort_direction=1
|
||||
hide_threads=0
|
||||
hide_kernel_threads=0
|
||||
hide_userland_threads=0
|
||||
hide_kernel_threads=1
|
||||
hide_userland_threads=1
|
||||
shadow_other_users=0
|
||||
show_thread_names=0
|
||||
show_program_path=1
|
||||
highlight_base_name=0
|
||||
show_program_path=0
|
||||
highlight_base_name=1
|
||||
highlight_megabytes=0
|
||||
highlight_threads=1
|
||||
tree_view=0
|
||||
|
|
10
config/i3/autorandrdefaultmenu
Executable file
10
config/i3/autorandrdefaultmenu
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
shopt -s nullglob globstar
|
||||
|
||||
profile=$(echo -e "$(autorandr 2>&1 | cut -d' ' -f1)" | ~/.config/i3/dmenu_cmd -p "Default profile" "$@")
|
||||
|
||||
[[ -n $profile ]] || exit
|
||||
|
||||
autorandr --default "$profile"
|
||||
|
10
config/i3/autorandrloadmenu
Executable file
10
config/i3/autorandrloadmenu
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
shopt -s nullglob globstar
|
||||
|
||||
profile=$(echo -e "common\nhorizontal\nvertical\n$(autorandr 2>&1 | cut -d' ' -f1)" | ~/.config/i3/dmenu_cmd -p "Load profile" "$@")
|
||||
|
||||
[[ -n $profile ]] || exit
|
||||
|
||||
autorandr --load "$profile"
|
||||
|
10
config/i3/autorandrremovemenu
Executable file
10
config/i3/autorandrremovemenu
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
shopt -s nullglob globstar
|
||||
|
||||
profile=$(echo -e "$(autorandr 2>&1 | cut -d' ' -f1)" | ~/.config/i3/dmenu_cmd -p "Remove profile" "$@")
|
||||
|
||||
[[ -n $profile ]] || exit
|
||||
|
||||
autorandr --remove "$profile"
|
||||
|
10
config/i3/autorandrsavemenu
Executable file
10
config/i3/autorandrsavemenu
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
shopt -s nullglob globstar
|
||||
|
||||
profile=$(echo -e "$(autorandr 2>&1 | cut -d' ' -f1)" | ~/.config/i3/dmenu_cmd -p "Save profile" "$@")
|
||||
|
||||
[[ -n $profile ]] || exit
|
||||
|
||||
autorandr --save "$profile"
|
||||
|
156
config/i3/config
156
config/i3/config
|
@ -22,6 +22,7 @@ hide_edge_borders both
|
|||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
|
||||
font pango:Source Code Pro 8
|
||||
font pango:DejaVu Sans Mono 8
|
||||
font pango:Sans 8
|
||||
|
||||
|
@ -38,7 +39,7 @@ bindsym $mod+F2 exec --no-startup-id ~/.config/i3/dmenu_run
|
|||
bindsym Mod1+F2 exec --no-startup-id ~/.config/i3/dmenu_run
|
||||
|
||||
bindsym $mod+c exec --no-startup-id ~/.config/i3/passmenu
|
||||
bindsym $mod+x exec --no-startup-id ~/.config/i3/clipmenu
|
||||
#bindsym $mod+x exec --no-startup-id ~/.config/i3/clipmenu
|
||||
bindsym $mod+asterisk exec --no-startup-id ~/.config/i3/sshmenu
|
||||
bindsym $mod+dollar exec --no-startup-id ~/.config/i3/sshmenu root
|
||||
|
||||
|
@ -51,7 +52,7 @@ set $up_bar killall -USR1 i3status
|
|||
# Start Applications
|
||||
bindsym $mod+Return exec xterm
|
||||
bindsym $mod+p exec thunar
|
||||
bindsym $mod+m exec qutebrowser
|
||||
bindsym $mod+m exec qutebrowser --override-restore --backend=webengine
|
||||
|
||||
# Volume control
|
||||
#bindsym XF86AudioRaiseVolume exec amixer -q set Master 5+ unmute; exec $up_bar
|
||||
|
@ -102,7 +103,7 @@ bindsym $mod+Shift+l move right
|
|||
#bindsym $mod+Shift+Right move right
|
||||
|
||||
# workspace back and forth (with/without active container)
|
||||
workspace_auto_back_and_forth yes
|
||||
workspace_auto_back_and_forth no
|
||||
bindsym $mod+b workspace back_and_forth
|
||||
bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth
|
||||
|
||||
|
@ -133,27 +134,27 @@ bindsym $mod+a focus parent
|
|||
bindsym $mod+q focus child
|
||||
|
||||
# Workspace names
|
||||
set $WS1 1 Édition
|
||||
set $WS2 2 Éxecution
|
||||
set $WS3 3 Organisation
|
||||
set $WS4 4 Référence
|
||||
set $WS5 5 Divers 1
|
||||
set $WS6 6 Divers 2
|
||||
set $WS7 7 Contact
|
||||
set $WS8 8 Social
|
||||
set $WS9 9 Veille
|
||||
set $WS10 10 Musique
|
||||
set $WS1 1
|
||||
set $WS2 2
|
||||
set $WS3 3
|
||||
set $WS4 4
|
||||
set $WS5 5
|
||||
set $WS6 6
|
||||
set $WS7 7
|
||||
set $WS8 8
|
||||
set $WS9 9
|
||||
set $WS10 10
|
||||
|
||||
# Workspace output
|
||||
workspace "$WS1" output LVDS1
|
||||
workspace "$WS2" output VGA1
|
||||
workspace "$WS3" output LVDS1
|
||||
workspace "$WS4" output VGA1
|
||||
workspace "$WS5" output LVDS1
|
||||
workspace "$WS6" output VGA1
|
||||
workspace "$WS7" output LVDS1
|
||||
workspace "$WS8" output VGA1
|
||||
workspace "$WS9" output LVDS1
|
||||
workspace "$WS1" output LVDS1
|
||||
workspace "$WS2" output VGA1
|
||||
workspace "$WS3" output LVDS1
|
||||
workspace "$WS4" output VGA1
|
||||
workspace "$WS5" output LVDS1
|
||||
workspace "$WS6" output VGA1
|
||||
workspace "$WS7" output LVDS1
|
||||
workspace "$WS8" output VGA1
|
||||
workspace "$WS9" output LVDS1
|
||||
workspace "$WS10" output VGA1
|
||||
|
||||
# switch to workspace
|
||||
|
@ -301,66 +302,55 @@ mode "Resize" {
|
|||
|
||||
bindsym $mod+r mode "Resize"
|
||||
|
||||
set $background exec --no-startup-id feh --bg-fill $HOME/.config/i3/bg.jpg
|
||||
bindsym $mod+Shift+a $background
|
||||
set $mode_screen_select [V] VGA1 [H] HDMI1
|
||||
mode "$mode_screen_select" {
|
||||
bindsym v mode "$mode_screen_VGA1"
|
||||
bindsym h mode "$mode_screen_HDMI1"
|
||||
|
||||
# back to normal: Enter or Escape
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+t mode "$mode_screen_select"
|
||||
|
||||
set $mode_screen_VGA1 VGA [R] Right [L] Left [U] Up [D] Down [C] Copy [O] Off
|
||||
mode "$mode_screen_VGA1" {
|
||||
bindsym r exec xrandr --output VGA1 --auto --right-of LVDS1; $background
|
||||
bindsym l exec xrandr --output VGA1 --auto --left-of LVDS1; $background
|
||||
bindsym u exec xrandr --output VGA1 --auto --above LVDS1; $background
|
||||
bindsym d exec xrandr --output VGA1 --auto --below LVDS1; $background
|
||||
bindsym c exec xrandr --output VGA1 --auto --same-as LVDS1; $background
|
||||
bindsym o exec xrandr --output VGA1 --auto --off; $background
|
||||
set $mode_screen Screen setup [A] Auto [L] Load [S] Save [R] Remove [D] Default
|
||||
bindsym $mod+t mode "$mode_screen"
|
||||
mode "$mode_screen" {
|
||||
bindsym a exec autorandr --change --force, mode "default"
|
||||
bindsym l exec ~/.config/i3/autorandrloadmenu, mode "default"
|
||||
bindsym s exec ~/.config/i3/autorandrsavemenu, mode "default"
|
||||
bindsym r exec ~/.config/i3/autorandrremovemenu, mode "default"
|
||||
bindsym d exec ~/.config/i3/autorandrdefaultmenu, mode "default"
|
||||
|
||||
# back to normal: Enter or Escape
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
set $mode_screen_HDMI1 HDMI [R] Right [L] Left [U] Up [D] Down [C] Copy [O] Off
|
||||
mode "$mode_screen_HDMI1" {
|
||||
bindsym r exec xrandr --output HDMI1 --auto --right-of LVDS1; $background
|
||||
bindsym l exec xrandr --output HDMI1 --auto --left-of LVDS1; $background
|
||||
bindsym u exec xrandr --output HDMI1 --auto --above LVDS1; $background
|
||||
bindsym d exec xrandr --output HDMI1 --auto --below LVDS1; $background
|
||||
bindsym c exec xrandr --output HDMI1 --auto --same-as LVDS1; $background
|
||||
bindsym o exec xrandr --output HDMI1 --auto --off; $background
|
||||
# Screen temperature ("redness") setting
|
||||
bindsym $mod+y mode "$mode_temp"
|
||||
set $mode_temp Temperature [R] Red [D] Dust storm [C] Campfire [O] Normal [A] All nighter [B] Blue
|
||||
mode "$mode_temp" {
|
||||
bindsym r exec sct 1000
|
||||
bindsym d exec sct 2000
|
||||
bindsym c exec sct 4500
|
||||
bindsym o exec sct
|
||||
bindsym a exec sct 8000
|
||||
bindsym b exec sct 10000
|
||||
|
||||
# back to normal: Enter or Escape
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status if available)
|
||||
bar {
|
||||
#i3bar_command ~/.config/lemonbar/i3_lemonbar.sh
|
||||
mode hide
|
||||
status_command i3status
|
||||
# wheel_up_cmd nop
|
||||
# wheel_down_cmd nop
|
||||
font pango:DejaVu Sans Mono 9
|
||||
font pango:Sans 8
|
||||
colors {
|
||||
separator #4E9C00
|
||||
background #333333
|
||||
statusline #FFFFFF
|
||||
focused_workspace #4E9C00 #4E9C00 #FFFFFF
|
||||
active_workspace #333333 #333333 #FFFFFF
|
||||
inactive_workspace #333333 #222222 #888888
|
||||
urgent_workspace #C20000 #C20000 #FFFFFF
|
||||
}
|
||||
}
|
||||
# Colors
|
||||
set $bg #272822
|
||||
set $fg #f1ebeb
|
||||
set $00 #48483e
|
||||
set $01 #dc2566
|
||||
set $02 #8fc029
|
||||
set $03 #d4c96e
|
||||
set $04 #55bcce
|
||||
set $05 #9358fe
|
||||
set $06 #56b7a5
|
||||
set $07 #acada1
|
||||
set $08 #76715e
|
||||
set $09 #fa2772
|
||||
set $10 #a7e22e
|
||||
set $11 #e7db75
|
||||
set $12 #66d9ee
|
||||
set $13 #ae82ff
|
||||
set $14 #66efd5
|
||||
set $15 #cfd0c2
|
||||
|
||||
# Inactivity settings
|
||||
exec --no-startup-id xautolock -time 10 -locker 'xset dpms force standby' -killtime 1 -killer '$locker'
|
||||
|
@ -369,26 +359,26 @@ bindsym $mod+F5 exec --no-startup-id xautolock -enable
|
|||
|
||||
|
||||
# Autostart applications
|
||||
$background
|
||||
exec --no-startup-id autorandr --change # Screen configuration and everything that depends on it
|
||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 # Password remembering
|
||||
exec --no-startup-id gnome-keyring-daemon # Password remembering
|
||||
exec --no-startup-id numlockx on # Activate Num lock
|
||||
#exec --no-startup-id nm-applet # Network manager tray icon
|
||||
#exec --no-startup-id compton -b # Compositing manager
|
||||
#exec --no-startup-id conky -c $HOME/.conky/status # Desktop widget
|
||||
exec --no-startup-id unclutter # Hide mouse cursor after some time
|
||||
exec --no-startup-id dunst # Notifications
|
||||
exec --no-startup-id $HOME/.config/i3/clipmenud # Clipboard manager
|
||||
exec --no-startup-id keynav # Keyboard cursor controller
|
||||
#exec --no-startup-id $HOME/.config/i3/clipmenud # Clipboard manager
|
||||
exec --no-startup-id mpd # Music Player Daemon
|
||||
|
||||
# Autostart programs
|
||||
#exec --no-startup-id i3-msg 'workspace $WS8; exec firefox --new-window tweetdeck.twitter.com'
|
||||
#exec --no-startup-id i3-msg 'workspace $WS9; exec firefox --new-window rss.frogeye.fr'
|
||||
#exec --no-startup-id clementine
|
||||
#exec --no-startup-id evolution
|
||||
#exec --no-startup-id pidgin
|
||||
set $ignore #ff00000
|
||||
|
||||
# Theme colors
|
||||
client.focused #4E9C00 #4E9C00 #FFFFFF #FFFFFF
|
||||
client.focused_inactive #1B3600 #1B3600 #888888 #FFFFFF
|
||||
client.unfocused #333333 #333333 #888888 #FFFFFF
|
||||
client.urgent #C20000 #C20000 #FFFFFF #FFFFFF
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused $02 $02 $bg $07 $10
|
||||
client.focused_inactive $03 $03 $08 $15 $14
|
||||
client.unfocused $08 $08 $fg $11 $00
|
||||
client.urgent $01 $01 $fg $05 $09
|
||||
client.placeholder $ignore $06 $fg $ignore $14
|
||||
|
||||
client.background $15
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#!/bin/sh
|
||||
dmenu -fn 'DejaVu Sans Mono-10' -nb '#222222' -nf '#888888' -sb '#4E9C00' -sf '#FFFFFF' -l 8 -f -i -h 19 "$@"
|
||||
dmenu -fn 'DejaVu Sans Mono-10' -nb '#48483e' -nf '#f1ebeb' -sb '#8fc029' -sf '#272822' -l 8 -f -i -h 19 "$@"
|
||||
|
|
|
@ -7,6 +7,6 @@ if [ $? -ne 0 ]; then
|
|||
}
|
||||
trap revert SIGHUP SIGINT SIGTERM
|
||||
xset dpms 5 5 5
|
||||
i3lock --nofork --color 648901 --ignore-empty-password
|
||||
i3lock --nofork --color 648901 --image=$HOME/.config/i3/lock.png --tiling --ignore-empty-password
|
||||
revert
|
||||
fi
|
||||
|
|
BIN
config/i3/lock.png
Normal file
BIN
config/i3/lock.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 266 B |
1
config/i3/lock.svg
Normal file
1
config/i3/lock.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" height="50" width="50"><path fill="#82a401" d="M0 50h50V0H0z"/><path d="M0 0l50 50H25L0 25zm50 0v25L25 0z" fill="#466c01"/></svg>
|
After Width: | Height: | Size: 189 B |
|
@ -1,9 +1,9 @@
|
|||
#!/bin/bash
|
||||
if [ "$1" == 'root' ]; then
|
||||
a=" (root)"
|
||||
b="sudo -E "
|
||||
b="-t 'sudo -s'"
|
||||
fi
|
||||
machine=$(cat ~/.ssh/config | grep '^Host ' | cut -d ' ' -f 2 | grep -v '*' | sort | $HOME/.config/i3/dmenu_cmd -p "SSH$a to ")
|
||||
if [ ! -z $machine ]; then
|
||||
xterm -e "ssh $machine -t '${b}bash --login'"
|
||||
xterm -e "ssh $machine $b"
|
||||
fi
|
||||
|
|
|
@ -36,7 +36,7 @@ ethernet eth0 {
|
|||
ethernet usb0 {
|
||||
# if you use %speed, i3status requires the cap_net_admin capability
|
||||
format_up = " %ip"
|
||||
format_down = ""
|
||||
format_down = "📱"
|
||||
}
|
||||
|
||||
cpu_usage {
|
||||
|
@ -56,11 +56,11 @@ battery 0 {
|
|||
path_exists VPN {
|
||||
# path exists when a VPN tunnel launched by nmcli/nm-applet is active
|
||||
path = "/proc/sys/net/ipv4/conf/tun0"
|
||||
format = ""
|
||||
format = "🔐"
|
||||
}
|
||||
|
||||
tztime local {
|
||||
format = "%d/%m/%Y %H:%M:%S"
|
||||
format = "🕘 %d/%m/%Y %H:%M:%S"
|
||||
timezone = "Europe/Paris"
|
||||
}
|
||||
|
||||
|
@ -76,8 +76,8 @@ disk "/home" {
|
|||
format = " %avail / %total"
|
||||
}
|
||||
volume master {
|
||||
format = " %volume"
|
||||
format_muted = " %volume"
|
||||
format = "🔈 %volume"
|
||||
format_muted = "🔇 %volume"
|
||||
device = "default"
|
||||
mixer = "Master"
|
||||
mixer_idx = 0
|
||||
|
|
24
config/linuxColors.sh
Normal file
24
config/linuxColors.sh
Normal file
|
@ -0,0 +1,24 @@
|
|||
#!/bin/sh
|
||||
if [ "$TERM" = "linux" ]; then
|
||||
/bin/echo -e "
|
||||
\e]P048483e
|
||||
\e]P1dc2566
|
||||
\e]P28fc029
|
||||
\e]P3d4c96e
|
||||
\e]P455bcce
|
||||
\e]P59358fe
|
||||
\e]P656b7a5
|
||||
\e]P7acada1
|
||||
\e]P876715e
|
||||
\e]P9fa2772
|
||||
\e]PAa7e22e
|
||||
\e]PBe7db75
|
||||
\e]PC66d9ee
|
||||
\e]PDae82ff
|
||||
\e]PE66efd5
|
||||
\e]PFcfd0c2
|
||||
"
|
||||
# get rid of artifacts
|
||||
clear
|
||||
fi
|
||||
|
342
config/polybar/config
Normal file
342
config/polybar/config
Normal file
|
@ -0,0 +1,342 @@
|
|||
;=====================================================
|
||||
;
|
||||
; To learn more about how to configure Polybar
|
||||
; go to https://github.com/jaagr/polybar
|
||||
;
|
||||
; The README contains alot of information
|
||||
;
|
||||
;=====================================================
|
||||
|
||||
[theme]
|
||||
foreground = #f1ebeb
|
||||
background = #272822
|
||||
blackB = #48483e
|
||||
blackF = #76715e
|
||||
redB = #dc2566
|
||||
redF = #fa2772
|
||||
greenB = #8fc029
|
||||
greenF = #a7e22e
|
||||
yellowB = #d4c96e
|
||||
yellowF = #e7db75
|
||||
blueB = #55bcce
|
||||
blueF = #66d9ee
|
||||
magentaB = #9358fe
|
||||
magentaF = #ae82ff
|
||||
cyanB = #56b7a5
|
||||
cyanF = #66efd5
|
||||
whiteB = #acada1
|
||||
whiteF = #cfd0c2
|
||||
|
||||
[colors]
|
||||
background = ${theme.blackB}
|
||||
foreground = ${theme.foreground}
|
||||
|
||||
[bar/base]
|
||||
monitor = ${env:display:LVDS1}
|
||||
width = 100%
|
||||
height = 20
|
||||
fixed-center = false
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 0
|
||||
|
||||
border-size = 0
|
||||
border-color = ${colors.background}
|
||||
|
||||
padding-left = 2
|
||||
padding-right = 2
|
||||
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
|
||||
font-0 = "Font Awesome:size=10;0"
|
||||
font-1 = "DejaVu Sans:size=10;0"
|
||||
font-2 = "DejaVu Sans Mono for Powerline:pixelsize=10;0"
|
||||
|
||||
modules-left = i3
|
||||
|
||||
;wm-restack = bspwm
|
||||
wm-restack = i3
|
||||
|
||||
;override-redirect = true
|
||||
|
||||
;scroll-up = bspwm-desknext
|
||||
;scroll-down = bspwm-deskprev
|
||||
|
||||
;scroll-up = i3wm-wsnext
|
||||
;scroll-down = i3wm-wsprev
|
||||
|
||||
bottom = true
|
||||
|
||||
enable-ipc = true
|
||||
|
||||
[bar/primary]
|
||||
inherit = bar/base
|
||||
|
||||
modules-right = cpu memory temperature eth wlan xbacklight volume battery date
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 2
|
||||
tray-transparent = false
|
||||
|
||||
[bar/secondary]
|
||||
inherit = bar/base
|
||||
modules-center = mpd
|
||||
modules-right = ethMore wlanMore filesystem xbacklight volume date
|
||||
|
||||
|
||||
[module/filesystem]
|
||||
type = internal/fs
|
||||
interval = 25
|
||||
|
||||
mount-0 = /
|
||||
mount-1 = /home
|
||||
|
||||
label-mounted-foreground = ${theme.magentaB}
|
||||
label-mounted = %{F#ae81ff}%mountpoint%%{F-} %free%
|
||||
label-unmounted =
|
||||
|
||||
[module/i3]
|
||||
type = internal/i3
|
||||
pin-workspaces = true
|
||||
strip-wsnumbers = false
|
||||
index-sort = true
|
||||
enable-click = true
|
||||
enable-scroll = true
|
||||
wrapping-scroll = false
|
||||
reverse-scroll = true
|
||||
fuzzy-match = false
|
||||
|
||||
ws-icon-0 = "1;"
|
||||
ws-icon-1 = "2;"
|
||||
ws-icon-2 = "3;"
|
||||
ws-icon-3 = "4;"
|
||||
ws-icon-4 = "5;▲"
|
||||
ws-icon-5 = "6;▲"
|
||||
ws-icon-6 = "7;"
|
||||
ws-icon-7 = "8;"
|
||||
ws-icon-8 = "9;"
|
||||
ws-icon-9 = "10;"
|
||||
ws-icon-default = ?
|
||||
|
||||
format = <label-state> <label-mode>
|
||||
|
||||
label-mode = %mode%
|
||||
label-mode-padding = 2
|
||||
label-mode-background = ${theme.redB}
|
||||
|
||||
label-focused = %index% %icon%
|
||||
label-focused-foreground = ${theme.background}
|
||||
label-focused-background = ${theme.greenB}
|
||||
label-focused-padding = 2
|
||||
|
||||
label-unfocused = ${self.label-focused}
|
||||
label-unfocused-padding = ${self.label-focused-padding}
|
||||
|
||||
label-visible = ${self.label-focused}
|
||||
label-visible-padding = ${self.label-focused-padding}
|
||||
label-visible-foreground = ${theme.greenF}
|
||||
|
||||
label-urgent = ${self.label-focused}
|
||||
label-urgent-padding = ${self.label-focused-padding}
|
||||
label-urgent-foreground = ${theme.foreground}
|
||||
label-urgent-background = ${theme.redB}
|
||||
|
||||
[module/mpd]
|
||||
type = internal/mpd
|
||||
; format-online = <icon-prev> <icon-seekb> <icon-stop> <toggle> <icon-seekf> <icon-next> <icon-repeat> <icon-random> <bar-progress> <label-time> <label-song>
|
||||
format-online = <icon-prev> <icon-seekb> <icon-stop> <toggle> <icon-seekf> <icon-next> <icon-repeat> <icon-random> <label-time> <label-song>
|
||||
format-playing = ${self.format-online}
|
||||
format-paused = ${self.format-online}
|
||||
format-stopped = <toggle>
|
||||
|
||||
label-song = %title% - %artist%
|
||||
label-song-maxlen = 35
|
||||
label-song-ellipsis = true
|
||||
|
||||
label-time = %elapsed%/%total%
|
||||
|
||||
label-offline =
|
||||
|
||||
icon-play =
|
||||
icon-pause =
|
||||
icon-stop =
|
||||
icon-prev =
|
||||
icon-next =
|
||||
icon-seekb =
|
||||
icon-seekf =
|
||||
icon-random =
|
||||
icon-repeat =
|
||||
icon-repeatone = 1
|
||||
|
||||
toggle-on-foreground = ${theme.foreground}
|
||||
toggle-off-foreground = #55
|
||||
|
||||
|
||||
[module/xbacklight]
|
||||
type = internal/xbacklight
|
||||
output = ${env:display:LVDS1}
|
||||
enable-scroll = true
|
||||
format = <ramp>
|
||||
ramp-0 = 🌕
|
||||
ramp-1 = 🌔
|
||||
ramp-2 = 🌓
|
||||
ramp-3 = 🌒
|
||||
ramp-4 = 🌑
|
||||
format-foreground = ${theme.redF}
|
||||
|
||||
[module/backlight-acpi]
|
||||
inherit = module/xbacklight
|
||||
type = internal/backlight
|
||||
card = intel_backlight
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 0.5
|
||||
format = <ramp-coreload>
|
||||
format-foreground = ${theme.redF}
|
||||
ramp-coreload-0 = ▁
|
||||
ramp-coreload-1 = ▂
|
||||
ramp-coreload-2 = ▃
|
||||
ramp-coreload-3 = ▄
|
||||
ramp-coreload-4 = ▅
|
||||
ramp-coreload-5 = ▆
|
||||
ramp-coreload-6 = ▇
|
||||
ramp-coreload-7 = █
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
format-foreground = ${theme.greenF}
|
||||
label = %gb_free%
|
||||
|
||||
[module/eth]
|
||||
type = internal/network
|
||||
interface = ${env:ethI:eth0}
|
||||
interval = 1
|
||||
|
||||
format-connected = <label-connected>
|
||||
label-connected = %local_ip%
|
||||
format-connected-foreground = ${theme.blueF}
|
||||
|
||||
format-disconnected =
|
||||
|
||||
[module/ethMore]
|
||||
inherit = module/eth
|
||||
label-connected = ↑%upspeed% ↓%downspeed%
|
||||
|
||||
[module/wlan]
|
||||
type = internal/network
|
||||
interface = ${env:wlanI:wlan0}
|
||||
interval = 1
|
||||
|
||||
format-connected = <ramp-signal> <label-connected>
|
||||
label-connected = %local_ip% %essid%
|
||||
format-connected-foreground = ${theme.cyanF}
|
||||
|
||||
format-disconnected =
|
||||
|
||||
ramp-signal-0 = ▁
|
||||
ramp-signal-1 = ▂
|
||||
ramp-signal-2 = ▃
|
||||
ramp-signal-3 = ▄
|
||||
ramp-signal-4 = ▅
|
||||
ramp-signal-5 = ▆
|
||||
ramp-signal-6 = ▇
|
||||
ramp-signal-7 = █
|
||||
|
||||
animation-packetloss-0 =
|
||||
animation-packetloss-1 =
|
||||
animation-packetloss-framerate = 500
|
||||
|
||||
[module/wlanMore]
|
||||
inherit = module/wlan
|
||||
label-connected = ↑%upspeed% ↓%downspeed%
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
date = " %d/%m/%Y"
|
||||
time = %H:%M:%S
|
||||
|
||||
format = <label>
|
||||
format-foreground = ${theme.cyanF}
|
||||
|
||||
label = %date% %time%
|
||||
|
||||
[module/volume]
|
||||
type = internal/volume
|
||||
|
||||
master-soundcard = default
|
||||
format-volume = <ramp-volume> <label-volume>
|
||||
format-volume-foreground = ${theme.greenF}
|
||||
|
||||
label-muted =
|
||||
label-muted-foreground = #66
|
||||
format-muted-foreground = ${self.format-volume-foreground}
|
||||
|
||||
ramp-volume-0 =
|
||||
ramp-volume-1 =
|
||||
ramp-volume-2 =
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
battery = BAT0
|
||||
adapter = ADP0
|
||||
full-at = 100
|
||||
time-format = %H:%M
|
||||
|
||||
label-full =
|
||||
|
||||
format-charging = <ramp-capacity> <label-charging>
|
||||
format-charging-foreground = ${theme.yellowF}
|
||||
label-charging = %percentage%% (%time%)
|
||||
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
format-discharging-foreground = ${self.format-charging-foreground}
|
||||
format-discharging-background = ${theme.redB}
|
||||
label-discharging = %percentage%% (%time%)
|
||||
|
||||
format-full-prefix = " "
|
||||
format-full-foreground = ${self.format-charging-foreground}
|
||||
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-4 =
|
||||
|
||||
[module/temperature]
|
||||
type = internal/temperature
|
||||
thermal-zone = 2
|
||||
warn-temperature = 70
|
||||
|
||||
format = <ramp> <label>
|
||||
format-foreground = ${theme.yellowB}
|
||||
label = %temperature%
|
||||
|
||||
format-warn = <ramp> <label-warn>
|
||||
format-warn-foreground = ${self.format-foreground}
|
||||
format-warn-background = ${theme.redB}
|
||||
label-warn = %temperature%
|
||||
|
||||
ramp-0 =
|
||||
ramp-1 =
|
||||
ramp-2 =
|
||||
ramp-3 =
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
;compositing-background = xor
|
||||
;compositing-background = screen
|
||||
;compositing-foreground = source
|
||||
;compositing-border = over
|
||||
|
||||
[global/wm]
|
||||
margin-top = 5
|
||||
margin-bottom = 5
|
||||
|
||||
; vim:ft=dosini
|
28
config/polybar/launch.sh
Executable file
28
config/polybar/launch.sh
Executable file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# Terminate already running bar instances
|
||||
killall -q polybar
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -x polybar >/dev/null; do sleep 1; done
|
||||
|
||||
# Getting some vars
|
||||
primary=$(xrandr | grep primary | head -1 | cut -d' ' -f1)
|
||||
export ethI=$(/bin/ls /sys/class/net/ | grep ^enp* | head -1)
|
||||
export wlanI=$(/bin/ls /sys/class/net/ | grep ^wl* | head -1)
|
||||
|
||||
# Launch bar for each display
|
||||
polybar -m | cut -d':' -f1 | while read display
|
||||
do
|
||||
export display=$display
|
||||
if [ "$display" == "$primary" ]
|
||||
then
|
||||
bar="primary"
|
||||
else
|
||||
bar="secondary"
|
||||
fi
|
||||
polybar $bar &
|
||||
done
|
||||
|
||||
echo "Bars launched..."
|
||||
|
0
config/qutebrowser/.dfrecur
Normal file
0
config/qutebrowser/.dfrecur
Normal file
701
config/qutebrowser/keys.conf
Normal file
701
config/qutebrowser/keys.conf
Normal file
|
@ -0,0 +1,701 @@
|
|||
# vim: ft=conf
|
||||
#
|
||||
# In this config file, qutebrowser's key bindings are configured.
|
||||
# The format looks like this:
|
||||
#
|
||||
# [keymode]
|
||||
#
|
||||
# command
|
||||
# keychain
|
||||
# keychain2
|
||||
# ...
|
||||
#
|
||||
# All blank lines and lines starting with '#' are ignored.
|
||||
# Inline-comments are not permitted.
|
||||
#
|
||||
# keymode is a comma separated list of modes in which the key binding should be
|
||||
# active. If keymode starts with !, the key binding is active in all modes
|
||||
# except the listed modes.
|
||||
#
|
||||
# For special keys (can't be part of a keychain), enclose them in `<`...`>`.
|
||||
# For modifiers, you can use either `-` or `+` as delimiters, and these names:
|
||||
#
|
||||
# * Control: `Control`, `Ctrl`
|
||||
# * Meta: `Meta`, `Windows`, `Mod4`
|
||||
# * Alt: `Alt`, `Mod1`
|
||||
# * Shift: `Shift`
|
||||
#
|
||||
# For simple keys (no `<>`-signs), a capital letter means the key is pressed
|
||||
# with Shift. For special keys (with `<>`-signs), you need to explicitly add
|
||||
# `Shift-` to match a key pressed with shift.
|
||||
#
|
||||
# Note that default keybindings are always bound, and need to be explicitly
|
||||
# unbound if you wish to remove them:
|
||||
#
|
||||
# <unbound>
|
||||
# keychain
|
||||
# keychain2
|
||||
# ...
|
||||
|
||||
[!normal]
|
||||
|
||||
leave-mode
|
||||
<escape>
|
||||
<ctrl-[>
|
||||
|
||||
[normal]
|
||||
# Keybindings for normal mode.
|
||||
|
||||
clear-keychain ;; search ;; fullscreen --leave
|
||||
<escape>
|
||||
|
||||
set-cmd-text -s :open
|
||||
o
|
||||
|
||||
set-cmd-text :open {url:pretty}
|
||||
go
|
||||
|
||||
set-cmd-text -s :open -t
|
||||
O
|
||||
|
||||
set-cmd-text :open -t -i {url:pretty}
|
||||
gO
|
||||
|
||||
set-cmd-text -s :open -b
|
||||
xo
|
||||
|
||||
set-cmd-text :open -b -i {url:pretty}
|
||||
xO
|
||||
|
||||
set-cmd-text -s :open -w
|
||||
wo
|
||||
|
||||
set-cmd-text :open -w {url:pretty}
|
||||
wO
|
||||
|
||||
set-cmd-text /
|
||||
/
|
||||
|
||||
set-cmd-text ?
|
||||
?
|
||||
|
||||
set-cmd-text :
|
||||
:
|
||||
|
||||
open -t
|
||||
ga
|
||||
<ctrl-t>
|
||||
|
||||
open -w
|
||||
<ctrl-n>
|
||||
|
||||
tab-close
|
||||
d
|
||||
<ctrl-w>
|
||||
|
||||
tab-close -o
|
||||
D
|
||||
|
||||
tab-only
|
||||
co
|
||||
|
||||
tab-focus
|
||||
T
|
||||
|
||||
tab-move
|
||||
gm
|
||||
|
||||
tab-move -
|
||||
gl
|
||||
|
||||
tab-move +
|
||||
gr
|
||||
|
||||
tab-next
|
||||
L
|
||||
<ctrl-pgdown>
|
||||
|
||||
tab-prev
|
||||
H
|
||||
<ctrl-pgup>
|
||||
|
||||
tab-clone
|
||||
gC
|
||||
|
||||
reload
|
||||
r
|
||||
<f5>
|
||||
|
||||
reload -f
|
||||
R
|
||||
<ctrl-f5>
|
||||
|
||||
back
|
||||
J
|
||||
<back>
|
||||
|
||||
back -t
|
||||
tj
|
||||
|
||||
back -w
|
||||
wj
|
||||
|
||||
forward
|
||||
K
|
||||
<forward>
|
||||
|
||||
forward -t
|
||||
tk
|
||||
|
||||
forward -w
|
||||
wk
|
||||
|
||||
fullscreen
|
||||
<f11>
|
||||
|
||||
hint
|
||||
f
|
||||
|
||||
hint all tab
|
||||
F
|
||||
|
||||
hint all window
|
||||
wf
|
||||
|
||||
hint all tab-bg
|
||||
;b
|
||||
|
||||
hint all tab-fg
|
||||
;f
|
||||
|
||||
hint all hover
|
||||
;h
|
||||
|
||||
hint images
|
||||
;i
|
||||
|
||||
hint images tab
|
||||
;I
|
||||
|
||||
hint links fill :open {hint-url}
|
||||
;o
|
||||
|
||||
hint links fill :open -t -i {hint-url}
|
||||
;O
|
||||
|
||||
hint links yank
|
||||
;y
|
||||
|
||||
hint links yank-primary
|
||||
;Y
|
||||
|
||||
hint --rapid links tab-bg
|
||||
;r
|
||||
|
||||
hint --rapid links window
|
||||
;R
|
||||
|
||||
hint links download
|
||||
;d
|
||||
|
||||
hint inputs
|
||||
;t
|
||||
|
||||
scroll left
|
||||
h
|
||||
|
||||
scroll down
|
||||
j
|
||||
|
||||
scroll up
|
||||
k
|
||||
|
||||
scroll right
|
||||
l
|
||||
|
||||
undo
|
||||
u
|
||||
<ctrl-shift-t>
|
||||
|
||||
scroll-perc 0
|
||||
gg
|
||||
|
||||
scroll-perc
|
||||
G
|
||||
|
||||
search-next
|
||||
n
|
||||
|
||||
search-prev
|
||||
N
|
||||
|
||||
enter-mode insert
|
||||
i
|
||||
|
||||
enter-mode caret
|
||||
v
|
||||
|
||||
enter-mode set_mark
|
||||
`
|
||||
|
||||
enter-mode jump_mark
|
||||
'
|
||||
|
||||
yank
|
||||
yy
|
||||
|
||||
yank -s
|
||||
yY
|
||||
|
||||
yank title
|
||||
yt
|
||||
|
||||
yank title -s
|
||||
yT
|
||||
|
||||
yank domain
|
||||
yd
|
||||
|
||||
yank domain -s
|
||||
yD
|
||||
|
||||
yank pretty-url
|
||||
yp
|
||||
|
||||
yank pretty-url -s
|
||||
yP
|
||||
|
||||
open -- {clipboard}
|
||||
pp
|
||||
|
||||
open -- {primary}
|
||||
pP
|
||||
|
||||
open -t -- {clipboard}
|
||||
Pp
|
||||
|
||||
open -t -- {primary}
|
||||
PP
|
||||
|
||||
open -w -- {clipboard}
|
||||
wp
|
||||
|
||||
open -w -- {primary}
|
||||
wP
|
||||
|
||||
quickmark-save
|
||||
m
|
||||
|
||||
set-cmd-text -s :quickmark-load
|
||||
b
|
||||
|
||||
set-cmd-text -s :quickmark-load -t
|
||||
B
|
||||
|
||||
set-cmd-text -s :quickmark-load -w
|
||||
wb
|
||||
|
||||
bookmark-add
|
||||
M
|
||||
|
||||
set-cmd-text -s :bookmark-load
|
||||
gb
|
||||
|
||||
set-cmd-text -s :bookmark-load -t
|
||||
gB
|
||||
|
||||
set-cmd-text -s :bookmark-load -w
|
||||
wB
|
||||
|
||||
save
|
||||
sf
|
||||
|
||||
set-cmd-text -s :set
|
||||
ss
|
||||
|
||||
set-cmd-text -s :set -t
|
||||
sl
|
||||
|
||||
set-cmd-text -s :bind
|
||||
sk
|
||||
|
||||
zoom-out
|
||||
-
|
||||
|
||||
zoom-in
|
||||
+
|
||||
|
||||
zoom
|
||||
=
|
||||
|
||||
navigate prev
|
||||
[[
|
||||
|
||||
navigate next
|
||||
]]
|
||||
|
||||
navigate prev -t
|
||||
{{
|
||||
|
||||
navigate next -t
|
||||
}}
|
||||
|
||||
navigate up
|
||||
gu
|
||||
|
||||
navigate up -t
|
||||
gU
|
||||
|
||||
navigate increment
|
||||
<ctrl-a>
|
||||
|
||||
navigate decrement
|
||||
<ctrl-x>
|
||||
|
||||
inspector
|
||||
wi
|
||||
|
||||
download
|
||||
gd
|
||||
|
||||
download-cancel
|
||||
ad
|
||||
|
||||
download-clear
|
||||
cd
|
||||
|
||||
view-source
|
||||
gf
|
||||
|
||||
set-cmd-text -s :buffer
|
||||
gt
|
||||
|
||||
tab-focus last
|
||||
<ctrl-tab>
|
||||
|
||||
enter-mode passthrough
|
||||
<ctrl-v>
|
||||
|
||||
quit
|
||||
<ctrl-q>
|
||||
|
||||
scroll-page 0 1
|
||||
<ctrl-f>
|
||||
|
||||
scroll-page 0 -1
|
||||
<ctrl-b>
|
||||
|
||||
scroll-page 0 0.5
|
||||
<ctrl-d>
|
||||
|
||||
scroll-page 0 -0.5
|
||||
<ctrl-u>
|
||||
|
||||
tab-focus 1
|
||||
<alt-1>
|
||||
|
||||
tab-focus 2
|
||||
<alt-2>
|
||||
|
||||
tab-focus 3
|
||||
<alt-3>
|
||||
|
||||
tab-focus 4
|
||||
<alt-4>
|
||||
|
||||
tab-focus 5
|
||||
<alt-5>
|
||||
|
||||
tab-focus 6
|
||||
<alt-6>
|
||||
|
||||
tab-focus 7
|
||||
<alt-7>
|
||||
|
||||
tab-focus 8
|
||||
<alt-8>
|
||||
|
||||
tab-focus 9
|
||||
<alt-9>
|
||||
|
||||
home
|
||||
<ctrl-h>
|
||||
|
||||
stop
|
||||
<ctrl-s>
|
||||
|
||||
print
|
||||
<ctrl-alt-p>
|
||||
|
||||
open qute:settings
|
||||
Ss
|
||||
|
||||
follow-selected
|
||||
<return>
|
||||
<ctrl-m>
|
||||
<ctrl-j>
|
||||
<shift-return>
|
||||
<enter>
|
||||
<shift-enter>
|
||||
|
||||
follow-selected -t
|
||||
<ctrl-return>
|
||||
<ctrl-enter>
|
||||
|
||||
repeat-command
|
||||
.
|
||||
|
||||
record-macro
|
||||
q
|
||||
|
||||
run-macro
|
||||
@
|
||||
|
||||
wq
|
||||
ZZ
|
||||
|
||||
tab-focus -1
|
||||
g$
|
||||
|
||||
tab-pin
|
||||
<ctrl-p>
|
||||
|
||||
[insert]
|
||||
# Keybindings for insert mode.
|
||||
# Since normal keypresses are passed through, only special keys are
|
||||
# supported in this mode.
|
||||
# Useful hidden commands to map in this section:
|
||||
# * `open-editor`: Open a texteditor with the focused field.
|
||||
# * `paste-primary`: Paste primary selection at cursor position.
|
||||
|
||||
open-editor
|
||||
<ctrl-e>
|
||||
|
||||
insert-text {primary}
|
||||
<shift-ins>
|
||||
|
||||
[hint]
|
||||
# Keybindings for hint mode.
|
||||
# Since normal keypresses are passed through, only special keys are
|
||||
# supported in this mode.
|
||||
# Useful hidden commands to map in this section:
|
||||
# * `follow-hint`: Follow the currently selected hint.
|
||||
|
||||
follow-hint
|
||||
<return>
|
||||
<ctrl-m>
|
||||
<ctrl-j>
|
||||
<shift-return>
|
||||
<enter>
|
||||
<shift-enter>
|
||||
|
||||
hint --rapid links tab-bg
|
||||
<ctrl-r>
|
||||
|
||||
hint links
|
||||
<ctrl-f>
|
||||
|
||||
hint all tab-bg
|
||||
<ctrl-b>
|
||||
|
||||
[command]
|
||||
# Keybindings for command mode.
|
||||
# Since normal keypresses are passed through, only special keys are
|
||||
# supported in this mode.
|
||||
# Useful hidden commands to map in this section:
|
||||
# * `command-history-prev`: Switch to previous command in history.
|
||||
# * `command-history-next`: Switch to next command in history.
|
||||
# * `completion-item-focus`: Select another item in completion.
|
||||
# * `command-accept`: Execute the command currently in the commandline.
|
||||
|
||||
command-history-prev
|
||||
<ctrl-p>
|
||||
|
||||
command-history-next
|
||||
<ctrl-n>
|
||||
|
||||
completion-item-focus prev
|
||||
<shift-tab>
|
||||
<up>
|
||||
|
||||
completion-item-focus next
|
||||
<tab>
|
||||
<down>
|
||||
|
||||
completion-item-focus next-category
|
||||
<ctrl-tab>
|
||||
|
||||
completion-item-focus prev-category
|
||||
<ctrl-shift-tab>
|
||||
|
||||
completion-item-del
|
||||
<ctrl-d>
|
||||
|
||||
command-accept
|
||||
<return>
|
||||
<ctrl-m>
|
||||
<ctrl-j>
|
||||
<shift-return>
|
||||
<enter>
|
||||
<shift-enter>
|
||||
|
||||
[prompt]
|
||||
# Keybindings for prompts in the status line.
|
||||
# You can bind normal keys in this mode, but they will be only active
|
||||
# when a yes/no-prompt is asked. For other prompt modes, you can only
|
||||
# bind special keys.
|
||||
# Useful hidden commands to map in this section:
|
||||
# * `prompt-accept`: Confirm the entered value.
|
||||
# * `prompt-accept yes`: Answer yes to a yes/no question.
|
||||
# * `prompt-accept no`: Answer no to a yes/no question.
|
||||
|
||||
prompt-accept
|
||||
<return>
|
||||
<ctrl-m>
|
||||
<ctrl-j>
|
||||
<shift-return>
|
||||
<enter>
|
||||
<shift-enter>
|
||||
|
||||
prompt-accept yes
|
||||
y
|
||||
|
||||
prompt-accept no
|
||||
n
|
||||
|
||||
prompt-open-download
|
||||
<ctrl-x>
|
||||
|
||||
prompt-item-focus prev
|
||||
<shift-tab>
|
||||
<up>
|
||||
|
||||
prompt-item-focus next
|
||||
<tab>
|
||||
<down>
|
||||
|
||||
[command,prompt]
|
||||
|
||||
rl-backward-char
|
||||
<ctrl-b>
|
||||
|
||||
rl-forward-char
|
||||
<ctrl-f>
|
||||
|
||||
rl-backward-word
|
||||
<alt-b>
|
||||
|
||||
rl-forward-word
|
||||
<alt-f>
|
||||
|
||||
rl-beginning-of-line
|
||||
<ctrl-a>
|
||||
|
||||
rl-end-of-line
|
||||
<ctrl-e>
|
||||
|
||||
rl-unix-line-discard
|
||||
<ctrl-u>
|
||||
|
||||
rl-kill-line
|
||||
<ctrl-k>
|
||||
|
||||
rl-kill-word
|
||||
<alt-d>
|
||||
|
||||
rl-unix-word-rubout
|
||||
<ctrl-w>
|
||||
|
||||
rl-backward-kill-word
|
||||
<alt-backspace>
|
||||
|
||||
rl-yank
|
||||
<ctrl-y>
|
||||
|
||||
rl-delete-char
|
||||
<ctrl-?>
|
||||
|
||||
rl-backward-delete-char
|
||||
<ctrl-h>
|
||||
|
||||
[caret]
|
||||
|
||||
toggle-selection
|
||||
v
|
||||
<space>
|
||||
|
||||
drop-selection
|
||||
<ctrl-space>
|
||||
|
||||
enter-mode normal
|
||||
c
|
||||
|
||||
move-to-next-line
|
||||
j
|
||||
|
||||
move-to-prev-line
|
||||
k
|
||||
|
||||
move-to-next-char
|
||||
l
|
||||
|
||||
move-to-prev-char
|
||||
h
|
||||
|
||||
move-to-end-of-word
|
||||
e
|
||||
|
||||
move-to-next-word
|
||||
w
|
||||
|
||||
move-to-prev-word
|
||||
b
|
||||
|
||||
move-to-start-of-next-block
|
||||
]
|
||||
|
||||
move-to-start-of-prev-block
|
||||
[
|
||||
|
||||
move-to-end-of-next-block
|
||||
}
|
||||
|
||||
move-to-end-of-prev-block
|
||||
{
|
||||
|
||||
move-to-start-of-line
|
||||
0
|
||||
|
||||
move-to-end-of-line
|
||||
$
|
||||
|
||||
move-to-start-of-document
|
||||
gg
|
||||
|
||||
move-to-end-of-document
|
||||
G
|
||||
|
||||
yank selection -s
|
||||
Y
|
||||
|
||||
yank selection
|
||||
y
|
||||
<return>
|
||||
<ctrl-m>
|
||||
<ctrl-j>
|
||||
<shift-return>
|
||||
<enter>
|
||||
<shift-enter>
|
||||
|
||||
scroll left
|
||||
H
|
||||
|
||||
scroll down
|
||||
J
|
||||
|
||||
scroll up
|
||||
K
|
||||
|
||||
scroll right
|
||||
L
|
||||
|
1602
config/qutebrowser/qutebrowser.conf
Normal file
1602
config/qutebrowser/qutebrowser.conf
Normal file
File diff suppressed because it is too large
Load diff
37
inputrc
37
inputrc
|
@ -1,16 +1,35 @@
|
|||
$include /etc/inputrc
|
||||
set bell-style none
|
||||
set completion-ignore-case on
|
||||
set completion-prefix-display-length 4
|
||||
set completion-query-items 200
|
||||
set editing-mode vi
|
||||
set history-preserve-point on
|
||||
set history-size 10000
|
||||
set horizontal-scroll-mode off
|
||||
set mark-directories on
|
||||
set mark-modified-lines off
|
||||
set mark-symlinked-directories on
|
||||
set match-hidden-files on
|
||||
set page-completions on
|
||||
set print-completions-horizontally on
|
||||
set revert-all-at-newline off
|
||||
set show-all-if-ambiguous on
|
||||
set show-all-if-unmodified on
|
||||
set skip-completed-text on
|
||||
set visible-stats on
|
||||
set page-completions off
|
||||
|
||||
$if mode=vi
|
||||
set keymap vi-command
|
||||
# these are for vi-command mode
|
||||
"\e[A": history-search-backward
|
||||
"\e[B": history-search-forward
|
||||
set keymap vi-insert
|
||||
# these are for vi-insert mode
|
||||
"\e[A": history-search-backward
|
||||
"\e[B": history-search-forward
|
||||
set keymap vi-command
|
||||
# these are for vi-command mode
|
||||
"\e[A": history-search-backward
|
||||
"\e[B": history-search-forward
|
||||
Control-l: clear-screen
|
||||
set keymap vi-insert
|
||||
# these are for vi-insert mode
|
||||
"jk": vi-movement-mode
|
||||
"\e[A": history-search-backward
|
||||
"\e[B": history-search-forward
|
||||
Control-l: clear-screen
|
||||
$endif
|
||||
|
||||
|
|
12
profile
12
profile
|
@ -1,8 +1,12 @@
|
|||
#
|
||||
# ~/.profile
|
||||
#
|
||||
if [ -z "$SSH_AUTH_SOCK" ] ; then
|
||||
eval `ssh-agent -s` > /dev/null
|
||||
fi
|
||||
|
||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
||||
# SSH agent
|
||||
[[ -z "$SSH_AUTH_SOCK" && -x "$(which ssh-agent)" ]] && eval `ssh-agent -s` &> /dev/null
|
||||
|
||||
# TTY Colors
|
||||
[ -f "$HOME/.config/linuxColors.sh" ] && . "$HOME/.config/linuxColors.sh"
|
||||
|
||||
# Bashrc
|
||||
[ -f ~/.bashrc ] && . ~/.bashrc
|
||||
|
|
2
scripts/.gitignore
vendored
Normal file
2
scripts/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
sct
|
||||
node_modules
|
16
scripts/cleandev
Executable file
16
scripts/cleandev
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Removes files that can be regenerated
|
||||
# from a dev environment
|
||||
|
||||
find . -type d -name bower_components -or -name node_modules -print0 | while read file; do
|
||||
rm -rf "$file"
|
||||
done
|
||||
find . -type f -name Makefile -print0 | while IFS= read -r -d '' file; do
|
||||
echo "--> $file"
|
||||
(cd "${file//Makefile}"; make clean)
|
||||
done
|
||||
find . -type d -name .git -print0 | while IFS= read -r -d '' dir; do
|
||||
echo "--> $file"
|
||||
(cd "$dir"; git gc)
|
||||
done
|
8
scripts/dafont
Executable file
8
scripts/dafont
Executable file
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Downloads a font from dafont.com and
|
||||
# extracts it in the user's font dir
|
||||
|
||||
wget "http://dl.dafont.com/dl/?f=$1" -O /tmp/dafont.zip
|
||||
unzip /tmp/dafont.zip -d ~/.local/share/fonts -x *.txt
|
||||
rm -rf /tmp/dafont.zip
|
|
@ -2,34 +2,38 @@
|
|||
|
||||
# Installs Debian packages on a Debian system
|
||||
# with no root access, in the user home
|
||||
# (sourceable)
|
||||
|
||||
if [ ! -f /etc/apt/sources.list ]; then
|
||||
# Not a Debian system
|
||||
return 0
|
||||
# CONFIGURATION
|
||||
|
||||
# Verifications
|
||||
|
||||
if [[ -z $DEBIAN_MIRROR && ! -f /etc/apt/sources.list ]]; then
|
||||
echo "Unable to find a mirror. Try setting DEBIAN_MIRROR (see help)."
|
||||
exit 1
|
||||
fi
|
||||
if [[ -z $DEBIAN_DB && ! $(which apt &> /dev/null) ]]; then
|
||||
echo "Unable to find a database for packages to install. Try setting DEBIAN_DB (see help)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Overrides
|
||||
|
||||
ARCH=$(dpkg --print-architecture)
|
||||
DEBLOC_DB=$HOME/.config/debloc/$ARCH
|
||||
DEBLOC_ROOT=$HOME/.debloc/$ARCH
|
||||
[ -z $DEBLOC_PREFIX ] && DEBLOC_PREFIX=$(dpkg --print-architecture)
|
||||
[ -z $DEBLOC_DB ] && DEBLOC_DB=${XDG_CONFIG_HOME:-$HOME/.config}/debloc/$DEBLOC_PREFIX
|
||||
[ -z $DEBLOC_ROOT ] && DEBLOC_ROOT=$HOME/.debloc/$DEBLOC_PREFIX
|
||||
DEBLOC_LD=$DEBLOC_ROOT/ld
|
||||
|
||||
if [ -z $DEBIAN_MIRROR ]; then
|
||||
if [ -z "$DEBIAN_MIRROR" ]; then
|
||||
DEBIAN_MIRROR="$(cat /etc/apt/sources.list | grep '^deb ' | grep main | grep -v backports)"
|
||||
DEBIAN_MIRROR="$(echo -e "$DEBIAN_MIRROR" | cut -d ' ' -f 2 | sed 's/\/$//')"
|
||||
DEBIAN_MIRROR="$(echo -e "$DEBIAN_MIRROR" | cut -d ' ' -f 2 | sed 's/\/$//' | sort | uniq)"
|
||||
fi
|
||||
|
||||
# Preparation
|
||||
|
||||
mkdir -p $DEBLOC_DB &> /dev/null
|
||||
mkdir -p $DEBLOC_ROOT &> /dev/null
|
||||
|
||||
export PATH="$DEBLOC_ROOT/usr/bin:$DEBLOC_ROOT/usr/games/:$DEBLOC_ROOT/usr/lib/git-core:$PATH"
|
||||
export LIBRARY_PATH="$DEBLOC_LD:$LIBRARY_PATH"
|
||||
export C_INCLUDE_PATH="$DEBLOC_ROOT/usr/include:$C_INCLUDE_PATH"
|
||||
export CPLUS_INCLUDE_PATH="$DEBLOC_ROOT/usr/include:$CPLUS_INCLUDE_PATH"
|
||||
export LD_LIBRARY_PATH="$DEBLOC_LD:$LD_LIBRARY_PATH"
|
||||
export PYTHONPATH="$DEBLOC_ROOT/usr/lib/python3/dist-packages:$PYTHONPATH"
|
||||
export QT_QPA_PLATFORM_PLUGIN_PATH="$DEBLOC_ROOT/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms"
|
||||
# PRIVATE FUNCTIONS
|
||||
|
||||
# Tell if a package exists
|
||||
function _debloc-exists { # package
|
||||
|
@ -94,8 +98,11 @@ function _debloc-globallyInstalled { # package
|
|||
function _debloc-packageShow { # package
|
||||
pkg=$1
|
||||
if [[ -n $DEBIAN_DB && -f $DEBIAN_DB ]]; then
|
||||
startline=$(grep "^Package: ${pkg}\$" $DEBIAN_DB --line-number | cut -d ':' -f 1)
|
||||
sed -n $startline,$(expr $startline + 100)p $DEBIAN_DB | while read line; do
|
||||
startline=$(grep "^Package: ${pkg}\$" $DEBIAN_DB --line-number | tail -1 | cut -d ':' -f 1)
|
||||
if [ -z "$startline" ]; then
|
||||
return 0
|
||||
fi
|
||||
sed -n "$startline,$(expr $startline + 100)p" $DEBIAN_DB | while read line; do
|
||||
if [ -z "$line" ]; then
|
||||
return 0
|
||||
fi
|
||||
|
@ -107,7 +114,7 @@ function _debloc-packageShow { # package
|
|||
if [ -z "$line" ]; then
|
||||
return 0
|
||||
fi
|
||||
echo $line
|
||||
echo "$line"
|
||||
done
|
||||
return 0
|
||||
fi
|
||||
|
@ -184,7 +191,7 @@ function _debloc-install { # package
|
|||
fi
|
||||
done
|
||||
if [ ! -s $DEB_FILE ]; then
|
||||
echo "→ Failed!"
|
||||
echo "→ Failed (no deb file)!"
|
||||
rm $DEBLOC_DB/$pkg &> /dev/null
|
||||
return 4
|
||||
fi
|
||||
|
@ -194,7 +201,7 @@ function _debloc-install { # package
|
|||
real=$(md5sum $DEB_FILE | cut -d ' ' -f 1)
|
||||
if [ "$theo" != "$real" ]; then
|
||||
rm -f $DEB_FILE &> /dev/null
|
||||
echo "→ Failed!"
|
||||
echo "→ Failed (sum doesn't match)!"
|
||||
rm $DEBLOC_DB/$pkg &> /dev/null
|
||||
return 5
|
||||
fi
|
||||
|
@ -236,8 +243,46 @@ function _debloc-installDeps { # package
|
|||
return 0
|
||||
}
|
||||
|
||||
# Install package with dependencies (user version with verifications)
|
||||
function debloc-install { # package
|
||||
# PUBLIC FUNCTIONS
|
||||
|
||||
function proxy_set_help {
|
||||
echo "Usage: $0 env"
|
||||
echo
|
||||
echo "Examples:"
|
||||
echo ' eval "$(debloc env)"'
|
||||
return 0
|
||||
}
|
||||
function debloc_env {
|
||||
echo "export PATH=\"$DEBLOC_ROOT/usr/bin:$DEBLOC_ROOT/usr/games/:$DEBLOC_ROOT/usr/lib/git-core:\$PATH\""
|
||||
echo "export LIBRARY_PATH=\"$DEBLOC_LD:\$LIBRARY_PATH\""
|
||||
echo "export C_INCLUDE_PATH=\"$DEBLOC_ROOT/usr/include:\$C_INCLUDE_PATH\""
|
||||
echo "export CPLUS_INCLUDE_PATH=\"$DEBLOC_ROOT/usr/include:$DEBLOC_ROOT/usr/include/python2.7/:$DEBLOC_ROOT/usr/include/x86_64-linux-gnu/python2.7/:\$CPLUS_INCLUDE_PATH\""
|
||||
echo "export LD_LIBRARY_PATH=\"$DEBLOC_LD:\$LD_LIBRARY_PATH\""
|
||||
echo "export PYTHONPATH=\"$DEBLOC_ROOT/usr/lib/python3/dist-packages:\$PYTHONPATH\""
|
||||
echo "export QT_QPA_PLATFORM_PLUGIN_PATH=\"$DEBLOC_ROOT/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms\""
|
||||
}
|
||||
|
||||
function debloc_info {
|
||||
echo "DEBLOC_PREFIX=$DEBLOC_PREFIX"
|
||||
echo "DEBLOC_ROOT=$DEBLOC_ROOT"
|
||||
echo "DEBLOC_DB=$DEBLOC_DB"
|
||||
echo "DEBLOC_LD=$DEBLOC_LD"
|
||||
echo "DEBIAN_MIRROR='$DEBIAN_MIRROR'"
|
||||
echo "DEBIAN_DB=$DEBIAN_DB"
|
||||
}
|
||||
|
||||
function debloc_install_help {
|
||||
echo "Usage: $0 install PACKAGE"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " PACKAGE Package name"
|
||||
return 0
|
||||
}
|
||||
|
||||
function debloc_install { # package
|
||||
if [ -z $1 ]; then
|
||||
debloc_deb_help
|
||||
fi
|
||||
for pkg in $*; do
|
||||
pkg=$(_debloc-filterVirtual $pkg)
|
||||
_debloc-exists $pkg
|
||||
|
@ -261,8 +306,17 @@ function debloc-install { # package
|
|||
|
||||
}
|
||||
|
||||
# Install debian archive (user version with verifications)
|
||||
function debloc-deb { # path
|
||||
function debloc_deb_help {
|
||||
echo "Usage: $0 deb PATH"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " PATH Path to the .deb file"
|
||||
return 0
|
||||
}
|
||||
function debloc_deb { # path
|
||||
if [ -z $1 ]; then
|
||||
debloc_deb_help
|
||||
fi
|
||||
for path in $*; do
|
||||
if [ ! -f "$path" ]; then
|
||||
echo "$path is not a file"
|
||||
|
@ -275,8 +329,82 @@ function debloc-deb { # path
|
|||
|
||||
}
|
||||
|
||||
# Remove every package installed with Debloc
|
||||
function debloc-flush {
|
||||
function debloc_altern_help {
|
||||
echo "Usage: $0 altern PROGRAM ALTERNATIVE"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " PROGRAM Program to set the alternative for"
|
||||
echo " ALTERNATIVE Alternative to set"
|
||||
echo
|
||||
echo "Examples:"
|
||||
echo " $0 altern vim nox"
|
||||
echo " $0 altern dmenu xft"
|
||||
return 0
|
||||
}
|
||||
function debloc_altern { # program alternative
|
||||
if [[ -z $1 || -z $2 ]]; then
|
||||
debloc_altern_help
|
||||
exit 1
|
||||
fi
|
||||
if [ -f "$DEBLOC_ROOT/usr/bin/$1.$2" ]; then
|
||||
dest="$DEBLOC_ROOT/usr/bin/$1"
|
||||
alte="$DEBLOC_ROOT/usr/bin/$1.$2"
|
||||
elif [ -f "$DEBLOC_ROOT/bin/$1.$2" ]; then
|
||||
dest="$DEBLOC_ROOT/bin/$1"
|
||||
alte="$DEBLOC_ROOT/bin/$1.$2"
|
||||
else
|
||||
echo "Unknown alternative for $1 : $2"
|
||||
exit 1
|
||||
fi
|
||||
if [ -e "$dest" ]; then
|
||||
rm $dest
|
||||
fi
|
||||
ln -s "$alte" "$dest"
|
||||
}
|
||||
|
||||
function debloc_flush {
|
||||
rm -rf $DEBLOC_ROOT/* &> /dev/null
|
||||
rm -f $DEBLOC_DB/* &> /dev/null
|
||||
}
|
||||
|
||||
# TODO Other word for 'fake filesystem' and/or explain what this is
|
||||
function debloc_help {
|
||||
command="$1"
|
||||
if [ -n "$command" ]; then
|
||||
if type "debloc_${command}_help" &> /dev/null; then
|
||||
shift
|
||||
"debloc_${command}_help" "$@"
|
||||
return $?
|
||||
fi
|
||||
fi
|
||||
echo "Usage: $0 COMMAND"
|
||||
echo
|
||||
echo "Commands:"
|
||||
echo " env Provides the environment variables required to run applications from the fake filesystem"
|
||||
echo " info Gives some information about the fake filesystem"
|
||||
echo " install Install a debian package in the fake filesystem"
|
||||
echo " deb Install from a .deb file in the fake filesystem"
|
||||
echo " altern Update alternative"
|
||||
echo " flush Remove every package installed from the fake filesystem"
|
||||
echo " help Get help with commands"
|
||||
echo
|
||||
echo "Environment variables:"
|
||||
echo " DEBLOC_PREFIX Name of the fake filesystem to use (default: uses dpkg architecture)"
|
||||
echo " DEBLOC_ROOT Path of the fake filesystem (default: ~/.debloc/\$DEBLOC_PREFIX/)"
|
||||
echo " DEBLOC_DB Database of the fake filesystem (default: \$XDG_CONFIG_HOME/debloc/\$DEBLOC_PREFIX)"
|
||||
echo " DEBIAN_MIRROR Multiline list of debian mirror (default: uses /etc/apt/sources.list)"
|
||||
echo " DEBIAN_DB Path to a file with all packages description (default: uses apt-cache showpkg)"
|
||||
echo " help Get help with commands"
|
||||
return 0
|
||||
}
|
||||
|
||||
# MAIN
|
||||
|
||||
command="$1"
|
||||
shift
|
||||
if type "debloc_$command" &> /dev/null; then
|
||||
"debloc_$command" "$@"
|
||||
else
|
||||
debloc_help
|
||||
fi
|
||||
|
11
scripts/docker-image-childs
Executable file
11
scripts/docker-image-childs
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# Find the dependent child image from an image
|
||||
|
||||
parent="$1"
|
||||
|
||||
# From https://stackoverflow.com/a/41634462
|
||||
for i in $(docker images -q)
|
||||
do
|
||||
docker history "$i" | grep -q "$parent" && echo "$i"
|
||||
done | grep -v "$parent" | sort -u
|
5
scripts/docker-rm
Executable file
5
scripts/docker-rm
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env sh
|
||||
docker unpause $(docker ps -q)
|
||||
docker kill $(docker ps -q)
|
||||
docker container prune -f
|
||||
docker network prune -f
|
|
@ -1,9 +1,7 @@
|
|||
#!/usrenv bash
|
||||
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Handles dotfiles
|
||||
# Yes there are tons of similar scipts yet I wanted no more nor less than what I needed
|
||||
# (sourceable)
|
||||
|
||||
# Config
|
||||
|
||||
|
@ -156,7 +154,19 @@ function _dotfiles-install-dir { # dir
|
|||
|
||||
# Script functions
|
||||
|
||||
function dotfiles-link { # file
|
||||
function dotfiles_link_help {
|
||||
echo "Usage: $0 link DOTFILE"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " DOTFILE Path to the dotfile"
|
||||
return 0
|
||||
|
||||
}
|
||||
function dotfiles_link { # file
|
||||
if [ -z $1 ]; then
|
||||
dotfiles_link_help
|
||||
return 1
|
||||
fi
|
||||
absSource="$(realpath $1 2> /dev/null)"
|
||||
if [[ $? != 0 || ! -e "$absSource" ]]; then
|
||||
echo "[ERROR] $1: no such file or directory"
|
||||
|
@ -194,10 +204,41 @@ function dotfiles-link { # file
|
|||
|
||||
}
|
||||
|
||||
function dotfiles-install {
|
||||
function dotfiles_install {
|
||||
_dotfiles-install-dir /
|
||||
}
|
||||
|
||||
function dotfiles_help {
|
||||
command="$1"
|
||||
if [ -n "$command" ]; then
|
||||
if type "dotfiles_${command}_help" &> /dev/null; then
|
||||
shift
|
||||
"dotfiles_${command}_help" "$@"
|
||||
return $?
|
||||
fi
|
||||
fi
|
||||
echo "Usage: $0 COMMAND"
|
||||
echo
|
||||
echo "Commands:"
|
||||
echo " install Install dotfiles from repository"
|
||||
echo " link Add dotfile to repository"
|
||||
echo " help Get help with commands"
|
||||
echo
|
||||
echo "Environment variables:"
|
||||
echo " DOTHOME Where to install dotfiles"
|
||||
echo " DOTREPO Where do the dotfiles comes from"
|
||||
return 0
|
||||
}
|
||||
|
||||
# MAIN
|
||||
command="$1"
|
||||
shift
|
||||
if type "dotfiles_$command" &> /dev/null; then
|
||||
"dotfiles_$command" "$@"
|
||||
else
|
||||
dotfiles_help
|
||||
fi
|
||||
|
||||
# TODO dotfiles-{link,unlink,clean,uninstall}, better handling of DRY_RUN (use functions probably), clarify source/target thingy
|
||||
# Link and Unlink should have a clever behavior regarding
|
||||
# recusive folders
|
13
scripts/emergency-clean
Executable file
13
scripts/emergency-clean
Executable file
|
@ -0,0 +1,13 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Clears everything it can to save space
|
||||
|
||||
rm -rf $HOME/.cache
|
||||
if which pacman &> /dev/null; then
|
||||
sudo pacman -Scc
|
||||
elif which apt-get &> /deb/null; then
|
||||
sudo apt-get clean
|
||||
fi
|
||||
if which journalctl &> /dev/null; then
|
||||
sudo journalctl --vacuum-size=100M
|
||||
fi
|
52
scripts/html2pdf
Executable file
52
scripts/html2pdf
Executable file
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
// Imports
|
||||
var fs = require('fs');
|
||||
var pdf = require('html-pdf');
|
||||
var yargs = require('yargs');
|
||||
|
||||
|
||||
// Understanding
|
||||
var argv = yargs
|
||||
.usage("Usage: $0 -o out.pdf [options]")
|
||||
.example('$0 -i doc.pdf -o doc.pdf', 'Convert doc.html to PDF using the default values')
|
||||
.help('h')
|
||||
.alias('h', 'help')
|
||||
|
||||
.describe('i', 'Input file')
|
||||
.alias('i', 'input')
|
||||
.default('i', '/dev/stdin')
|
||||
|
||||
.describe('o', 'Output file')
|
||||
.alias('o', 'output')
|
||||
|
||||
.describe('t', 'Title of file')
|
||||
.alias('t', 'title')
|
||||
.default('t', 'Sans titre')
|
||||
|
||||
.demandOption(['o'])
|
||||
.argv;
|
||||
|
||||
|
||||
// Settings
|
||||
options = {
|
||||
"base": "file://" + process.cwd() + '/',
|
||||
"format": "A4",
|
||||
"orientation": "portrait",
|
||||
"border": "2cm",
|
||||
|
||||
"footer": {
|
||||
"height": "10mm",
|
||||
"contents": {
|
||||
default: '<div style="text-align: left; float: left;">' + argv.title + '</div> <div style="text-align:right; float: right;">{{page}}/{{pages}}</div>',
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
// Reading
|
||||
htmlString = fs.readFileSync(argv.i, "utf8");
|
||||
|
||||
// Conversion
|
||||
pdf.create(htmlString, options).toFile(argv.o, function(err, res) {
|
||||
if (err) console.error(err);
|
||||
});
|
|
@ -1,10 +0,0 @@
|
|||
source ~/.scripts/proxy.sh
|
||||
source ~/.scripts/machines.sh
|
||||
source ~/.scripts/debloc.sh
|
||||
source ~/.scripts/dotfiles.sh
|
||||
source ~/.scripts/installPreferences.sh
|
||||
source ~/.scripts/installArch.sh
|
||||
function optimize {
|
||||
bash ~/.scripts/optimize.sh
|
||||
}
|
||||
alias beep=~/.scripts/beep.sh
|
106
scripts/install-arch
Executable file
106
scripts/install-arch
Executable file
|
@ -0,0 +1,106 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Setups an Arch Linux system the way I like it
|
||||
# (requires sudo)
|
||||
|
||||
if which pacman &> /dev/null; then
|
||||
echo "This is not an Arch Linux system (or pacman isn't installed)"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Configuration
|
||||
function prompt { # text
|
||||
while true; do
|
||||
read -p "$1 [yn] " yn
|
||||
case $yn in
|
||||
[Yy]* ) return 1;;
|
||||
[Nn]* ) return 0;;
|
||||
* ) echo "Please answer yes or no.";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# Don't ask for things that are already there
|
||||
if which yaourt &> /dev/null; then
|
||||
local YAOURT=1
|
||||
fi
|
||||
if which bauerbill &> /dev/null; then
|
||||
local BAUERBILL=1
|
||||
fi
|
||||
|
||||
if [ -z $YAOURT ]; then
|
||||
prompt "Do you want yaourt on this machine?"
|
||||
local YAOURT=$?
|
||||
fi
|
||||
if [ $YAOURT == 1 ]; then
|
||||
if [ -z $BAUERBILL ]; then
|
||||
prompt "Do you want bauerbill on this machine?"
|
||||
local BAUERBILL=$?
|
||||
fi
|
||||
else
|
||||
BAUERBILL=0
|
||||
fi
|
||||
|
||||
# COMMON
|
||||
|
||||
# Install packages if they aren't installed
|
||||
function inst {
|
||||
for pkg in $*; do
|
||||
pacman -Q $pkg &> /dev/null
|
||||
if [ $? == 1 ]; then
|
||||
sudo pacman -S $pkg --noconfirm
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Install package from PKGBUILD file
|
||||
function installPKGBUILD { # url
|
||||
TMP_DIR="$(mktemp -d /tmp/pkgbuild.XXXXXXXXXX)"
|
||||
cd "$TMP_DIR"
|
||||
wget "$1" -O PKGBUILD
|
||||
makepkg -si
|
||||
cd -
|
||||
rm -rf "$TMP_DIR"
|
||||
}
|
||||
|
||||
# SYSTEM
|
||||
inst wget
|
||||
|
||||
pacman -Q yaourt &> /dev/null
|
||||
if [[ $YAOURT == 1 && $? == 1 ]]; then
|
||||
installPKGBUILD "https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=package-query"
|
||||
installPKGBUILD "https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=yaourt"
|
||||
fi
|
||||
|
||||
if pacman -Q pamac ; then
|
||||
sudo pacman -Rsc pamac
|
||||
fi
|
||||
|
||||
pacman -Q bauerbill &> /dev/null
|
||||
if [[ $BAUERBILL == 1 && $? == 1 ]]; then
|
||||
sudo pacman -Sy manjaro-{hotfixes,keyring,release,system} --noconfirm
|
||||
|
||||
gpg --recv-keys 1D1F0DC78F173680
|
||||
installPKGBUILD http://xyne.archlinux.ca/projects/reflector/pkgbuild/PKGBUILD
|
||||
yaourt -S bauerbill --noconfirm
|
||||
|
||||
bb-wrapper -Su
|
||||
# TODO Prompt if all went well, if not restart
|
||||
else
|
||||
sudo pacman -Syu
|
||||
fi
|
||||
|
||||
# Disable predictable network names
|
||||
sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
|
||||
|
||||
# TLP
|
||||
# sudo pacman -S tlp
|
||||
# sudo systemctl enable tlp.service tlp-sleep.service
|
||||
# sudo systemctl disable systemd-rfkill
|
||||
|
||||
# TODO
|
||||
# make -j8 in MAKEPKG
|
||||
# time
|
||||
# nfs
|
||||
# hibernate
|
||||
|
313
scripts/install-prefs
Executable file
313
scripts/install-prefs
Executable file
|
@ -0,0 +1,313 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Installs user preferences the way I like it
|
||||
|
||||
# Configuration
|
||||
function prompt { # text
|
||||
while true; do
|
||||
read -p "$1 [yn] " yn
|
||||
case $yn in
|
||||
[Yy]* ) return 1;;
|
||||
[Nn]* ) return 0;;
|
||||
* ) echo "Please answer yes or no.";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# Don't ask for things that are already there
|
||||
TERMUX=0
|
||||
if [ -d /data/data/com.termux/files ]; then
|
||||
TERMUX=1
|
||||
GUI=0
|
||||
fi
|
||||
|
||||
if which i3 &> /dev/null; then
|
||||
GUI=1
|
||||
fi
|
||||
|
||||
if [ -z $ADMIN ]; then
|
||||
prompt "Are you a superuser on this machine?"
|
||||
ADMIN=$?
|
||||
fi
|
||||
if [ -z $GUI ]; then
|
||||
prompt "Do you want a X environment on this machine?"
|
||||
GUI=$?
|
||||
fi
|
||||
if [ -z $EXTRA ]; then
|
||||
prompt "Do you want not-so-needed software on this machine?"
|
||||
EXTRA=$?
|
||||
fi
|
||||
|
||||
# TODO Verify if the package exists before installing it
|
||||
|
||||
# System detection
|
||||
if which pacman &> /dev/null; then
|
||||
ARCH=1
|
||||
if [ $ADMIN == 1 ]; then
|
||||
sudo pacman -Sy
|
||||
function installOne { # package
|
||||
pacman -Q $1 &> /dev/null
|
||||
if [ $? == 1 ]; then
|
||||
sudo pacman -S $1 --noconfirm --needed
|
||||
fi
|
||||
}
|
||||
function installFileOne { # file
|
||||
sudo pacman -U "$1"
|
||||
}
|
||||
if which yaourt &> /dev/null; then
|
||||
function altInstallOne { # package
|
||||
pacman -Q $1 &> /dev/null
|
||||
if [ $? == 1 ]; then
|
||||
yaourt -S "$1" --noconfirm
|
||||
fi
|
||||
}
|
||||
else
|
||||
# Install package from PKGBUILD file
|
||||
function installPKGBUILD { # url
|
||||
TMP_DIR="$(mktemp -d /tmp/pkgbuild.XXXXXXXXXX)"
|
||||
cd "$TMP_DIR"
|
||||
wget "$1" -O PKGBUILD
|
||||
makepkg -si
|
||||
cd -
|
||||
rm -rf "$TMP_DIR"
|
||||
}
|
||||
|
||||
function altInstallOne { # package
|
||||
pacman -Q $1 &> /dev/null
|
||||
if [ $? == 1 ]; then
|
||||
installPKGBUILD "https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=$1"
|
||||
fi
|
||||
}
|
||||
fi
|
||||
else
|
||||
echo "You're on a Arch System but it's not yours? Did Arch got that popular?"
|
||||
return 42
|
||||
fi
|
||||
|
||||
elif which dpkg &> /dev/null; then
|
||||
DEBIAN=1
|
||||
if [[ $ADMIN == 1 || $TERMUX == 1 ]]; then
|
||||
if [ $TERMUX == 1 ]; then
|
||||
DEBIAN=0
|
||||
apt update -y
|
||||
else
|
||||
sudo apt-get update -y
|
||||
fi
|
||||
function installOne { # package
|
||||
|
||||
# Finding out if it's already installed or not
|
||||
STATUS=$(mktemp)
|
||||
LANG=C dpkg-query --status $1 &> $STATUS
|
||||
installed=0
|
||||
if [ $? == 0 ]; then
|
||||
cat $STATUS | grep '^Status:' | grep ' installed' --quiet
|
||||
if [ $? == 0 ]; then
|
||||
installed=1
|
||||
fi
|
||||
fi
|
||||
rm -f $STATUS > /dev/null
|
||||
|
||||
echo 101 $1 $installed
|
||||
# Installing if it's not installed
|
||||
if [ $installed == 0 ]; then
|
||||
# TODO noconfirm
|
||||
if [ $TERMUX == 1 ]; then
|
||||
apt install $1 -y
|
||||
else
|
||||
sudo apt-get install $1 -y
|
||||
fi
|
||||
fi
|
||||
}
|
||||
function installFileOne { # file
|
||||
dpkg -i "$1"
|
||||
}
|
||||
else
|
||||
function installOne { # package
|
||||
debloc install $1
|
||||
}
|
||||
function installFileOne { # file
|
||||
debloc deb "$1"
|
||||
}
|
||||
fi
|
||||
function altInstallOne {
|
||||
echo "[ERROR] There's no alternate installer for this distribution. Can't install $1."
|
||||
}
|
||||
else
|
||||
echo "Uuuh, what kind of distribution is this?"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Install package with the standard
|
||||
# package manager for the distribution
|
||||
function inst {
|
||||
for pkg in $*; do
|
||||
installOne $pkg
|
||||
done
|
||||
}
|
||||
|
||||
# Install package FILE with the standard
|
||||
# package manager for the distribution
|
||||
function instFile {
|
||||
for pkg in $*; do
|
||||
installFileOne $pkg
|
||||
done
|
||||
}
|
||||
|
||||
# Install package with the alternate
|
||||
# package manager for the distribution
|
||||
function altInst {
|
||||
for pkg in $*; do
|
||||
altInstallOne $pkg
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
# Common CLI
|
||||
|
||||
.Xresources.d/configure
|
||||
|
||||
# Utils
|
||||
inst coreutils man openssl-tool grep sed sh tar
|
||||
if [ $TERMUX == 1 ]; then
|
||||
inst termux-api
|
||||
if [ $ADMIN == 1 ]; then
|
||||
inst tsu
|
||||
fi
|
||||
fi
|
||||
inst moreutils screen ncdu lsof htop proxytunnel pv curl wget sshfs netcat mosh bash-completion rsync
|
||||
if [ $ARCH == 1 ]; then
|
||||
inst gopass
|
||||
else
|
||||
inst pass
|
||||
fi
|
||||
if [[ $ARCH == 1 && $ADMIN == 1 ]]; then
|
||||
inst pkgfile
|
||||
sudo systemctl enable pkgfile-update.timer
|
||||
fi
|
||||
|
||||
# Dev
|
||||
if [ $DEBIAN == 1 ]; then
|
||||
inst build-essential
|
||||
elif [ $ARCH == 1 ]; then
|
||||
inst base-devel
|
||||
else
|
||||
inst make
|
||||
fi
|
||||
inst git
|
||||
|
||||
|
||||
# Text editor
|
||||
if [ $TERMUX == 1 ]; then
|
||||
inst vim-python
|
||||
elif [ $DEBIAN == 1 ]; then
|
||||
inst vim-nox
|
||||
if [ $ADMIN == 0 ]; then
|
||||
debloc altern vim nox
|
||||
fi
|
||||
else
|
||||
inst vim
|
||||
fi
|
||||
if [ $DEBIAN == 1 ]; then
|
||||
inst exuberant-ctags
|
||||
else
|
||||
inst ctags
|
||||
fi
|
||||
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
|
||||
vim +PluginInstall +qall
|
||||
|
||||
# YouCompleteMe (vim plugin)
|
||||
if [ $ARCH == 1 ] && [ $ADMIN == 1 ]; then
|
||||
if [ $EXTRA == 1 ]; then
|
||||
altInst vim-youcompleteme-git
|
||||
else
|
||||
altInst vim-youcompleteme-core-git
|
||||
fi
|
||||
else
|
||||
if [ $DEBIAN == 1 || $TERMUX == 1 ]; then
|
||||
inst python-dev python3-dev
|
||||
fi
|
||||
YCM_ARGS=""
|
||||
if [ $TERMUX != 1 ]; then
|
||||
YCM_ARGS="$YCM_ARGS --clang-completer --tern-completer"
|
||||
fi
|
||||
python $HOME/.vim/bundle/YouCompleteMe/install.py $YCM_ARGS
|
||||
fi
|
||||
|
||||
# Common GUI
|
||||
|
||||
if [ $GUI == 1 ]; then
|
||||
# Desktop manager
|
||||
inst i3 i3lock dunst unclutter xautolock feh numlockx scrot xterm xclip
|
||||
if [ $ARCH == 1 ]; then
|
||||
altInst polybar-git ttf-font-awesome autorandr-git keynav-enhanced
|
||||
else
|
||||
echo "TODO compile polybar-git autorandr-git"
|
||||
fi
|
||||
if [ $DEBIAN == 1 ]; then
|
||||
inst suckless-tools keynav
|
||||
if [ $ADMIN == 0 ]; then
|
||||
debloc altern dmenu xft
|
||||
fi
|
||||
else
|
||||
inst dmenu
|
||||
fi
|
||||
if [ "$(source /etc/os-release; echo $NAME)" == "Manjaro Linux" ]; then
|
||||
inst menda-themes menda-circle-icon-theme xcursor-menda
|
||||
fi
|
||||
|
||||
# qutebrowser
|
||||
if [ $DEBIAN == 1 ]; then
|
||||
inst python3-lxml python-tox python3-pyqt5 python3-pyqt5.qtwebkit python3-pyqt5.qtquick python3-sip python3-jinja2 python3-pygments python3-yaml
|
||||
TMP_DIR=$(mktemp -d)
|
||||
$(cd $TMP_DIR; wget https://qutebrowser.org/python3-pypeg2_2.15.2-1_all.deb)
|
||||
$(cd $TMP_DIR; wget https://github.com/qutebrowser/qutebrowser/releases/download/v0.9.1/qutebrowser_0.9.1-2_all.deb)
|
||||
instFile $TMP_DIR/*.deb
|
||||
rm -rf $TMP_DIR
|
||||
|
||||
elif [ $ARCH == 1 ]; then
|
||||
inst qutebrowser qt5-webengine python-opengl
|
||||
fi
|
||||
|
||||
# Screen filter
|
||||
if [ $ARCH == 1 ]; then
|
||||
altInst sct
|
||||
elif [ $TERMUX != 1 ]; then
|
||||
if [ ! -f $HOME/.bin/sct ]; then
|
||||
TMP=$(mktemp)
|
||||
wget http://www.tedunangst.com/flak/files/sct.c -O $TMP
|
||||
cc -std=c99 -O2 -I /usr/X11R6/include -o $HOME/.bin/sct $TMP -L /usr/X11R6/lib -lm -lX11 -lXrandr
|
||||
rm $TMP
|
||||
fi
|
||||
fi
|
||||
|
||||
# Graphical vim
|
||||
if [ $DEBIAN == 1 ]; then
|
||||
inst vim-gtk
|
||||
else
|
||||
inst gvim
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $EXTRA == 1 ]; then
|
||||
# Extra dev
|
||||
inst cmake clang llvm npm
|
||||
|
||||
# Extra CLI
|
||||
inst sl ffmpeg youtube-dl optipng
|
||||
|
||||
if [ $ARCH == 1 ]; then
|
||||
inst jq
|
||||
altInst pdftk translate-shell git-lfs js-beautify insect visidata-git
|
||||
fi
|
||||
|
||||
# Extra GUI
|
||||
if [ $GUI == 1 ]; then
|
||||
inst vlc gimp mpd vimpc alsa-utils
|
||||
|
||||
if [ $ARCH == 1 ]; then
|
||||
inst simplescreenrecorder
|
||||
fi
|
||||
|
||||
fi
|
||||
fi
|
||||
|
41
scripts/install-termux
Executable file
41
scripts/install-termux
Executable file
|
@ -0,0 +1,41 @@
|
|||
#!/data/data/com.termux/files/usr/bin/env bash
|
||||
|
||||
# Setups a Termux system the way I like it
|
||||
|
||||
if [ ! -d /data/data/com.termux/files ]; then
|
||||
echo "This is not a Termux system (or pacman isn't installed)"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Configuration
|
||||
function prompt { # text
|
||||
while true; do
|
||||
read -p "$1 [yn] " yn
|
||||
case $yn in
|
||||
[Yy]* ) return 1;;
|
||||
[Nn]* ) return 0;;
|
||||
* ) echo "Please answer yes or no.";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
if [ -z $ROOT ]; then
|
||||
prompt "Is this device rooted and BusyBox installed in /system/xbin/?"
|
||||
ROOT=$?
|
||||
fi
|
||||
|
||||
# Update
|
||||
apt update
|
||||
apt upgrade
|
||||
|
||||
# (needed for install-prefs)
|
||||
apt install coreutils
|
||||
apt install grep
|
||||
|
||||
# Config
|
||||
touch ~/.hushlogin
|
||||
|
||||
if [ $ROOT == 1 ]; then
|
||||
apt install tsu
|
||||
echo '/system/xbin/mount -o remount,rw /; ln -s /data/data/com.termux/files/usr /usr; /system/xbin/mount -o remount,ro /' | tsu
|
||||
fi
|
11
scripts/install-wsl
Executable file
11
scripts/install-wsl
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Setups a WSL system the way I like it
|
||||
|
||||
# Remember to use the alwsl script on GitHub to install Arch Linux on WSL
|
||||
# Use github:cbucher/console as a console and github:mintty/wsltty as a shell
|
||||
# (%LOCALAPPDATA%/wsltty/bin/wsl-bridge) to avoid arrow keys bypassing
|
||||
|
||||
(cd /usr/share/i18n/charmaps/; sudo gunzip -k UTF8.gz)
|
||||
echo "fr_FR.UTF-8 UTF-8" | sudo tee -a /etc/locale.gen
|
||||
sudo locale-gen
|
|
@ -1,106 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Setups an Arch Linux system the way I like it
|
||||
# (sourceable, requires sudo)
|
||||
|
||||
if which pacman &> /dev/null; then
|
||||
# Not an Arch system
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Configuration
|
||||
|
||||
function install-arch {
|
||||
|
||||
# Configuration
|
||||
function prompt { # text
|
||||
while true; do
|
||||
read -p "$1 [yn] " yn
|
||||
case $yn in
|
||||
[Yy]* ) return 1;;
|
||||
[Nn]* ) return 0;;
|
||||
* ) echo "Please answer yes or no.";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# Don't ask for things that are already there
|
||||
if which yaourt &> /dev/null; then
|
||||
local YAOURT=1
|
||||
fi
|
||||
if which bauerbill &> /dev/null; then
|
||||
local BAUERBILL=1
|
||||
fi
|
||||
|
||||
if [ -z $YAOURT ]; then
|
||||
prompt "Do you want yaourt on this machine?"
|
||||
local YAOURT=$?
|
||||
fi
|
||||
if [ $YAOURT == 1 ]; then
|
||||
if [ -z $BAUERBILL ]; then
|
||||
prompt "Do you want bauerbill on this machine?"
|
||||
local BAUERBILL=$?
|
||||
fi
|
||||
else
|
||||
BAUERBILL=0
|
||||
fi
|
||||
|
||||
# COMMON
|
||||
|
||||
# Install packages if they aren't installed
|
||||
function inst {
|
||||
for pkg in $*; do
|
||||
pacman -Q $pkg &> /dev/null
|
||||
if [ $? == 1 ]; then
|
||||
sudo pacman -S $pkg --noconfirm
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Install package from PKGBUILD file
|
||||
function installPKGBUILD { # url
|
||||
TMP_DIR="$(mktemp -d /tmp/pkgbuild.XXXXXXXXXX)"
|
||||
cd "$TMP_DIR"
|
||||
wget "$1" -O PKGBUILD
|
||||
makepkg -si
|
||||
cd -
|
||||
rm -rf "$TMP_DIR"
|
||||
}
|
||||
|
||||
# SYSTEM
|
||||
inst wget
|
||||
|
||||
pacman -Q yaourt &> /dev/null
|
||||
if [[ $YAOURT == 1 && $? == 1 ]]; then
|
||||
installPKGBUILD "https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=package-query"
|
||||
installPKGBUILD "https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=yaourt"
|
||||
fi
|
||||
|
||||
if pacman -Q pamac ; then
|
||||
sudo pacman -Rsc pamac
|
||||
fi
|
||||
|
||||
pacman -Q bauerbill &> /dev/null
|
||||
if [[ $BAUERBILL == 1 && $? == 1 ]]; then
|
||||
sudo pacman -Sy manjaro-{hotfixes,keyring,release,system} --noconfirm
|
||||
|
||||
gpg --recv-keys 1D1F0DC78F173680
|
||||
installPKGBUILD http://xyne.archlinux.ca/projects/reflector/pkgbuild/PKGBUILD
|
||||
yaourt -S bauerbill --noconfirm
|
||||
|
||||
bb-wrapper -Su
|
||||
# TODO Prompt if all went well, if not restart
|
||||
else
|
||||
sudo pacman -Syu
|
||||
fi
|
||||
|
||||
# Disable predictable network names
|
||||
sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
|
||||
|
||||
# TODO
|
||||
# make -j8 in MAKEPKG
|
||||
# time
|
||||
# nfs
|
||||
# hibernate
|
||||
|
||||
}
|
|
@ -1,275 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Installs user preferences the way I like it
|
||||
# (sourceable)
|
||||
|
||||
function install-preferences {
|
||||
|
||||
# Configuration
|
||||
function prompt { # text
|
||||
while true; do
|
||||
read -p "$1 [yn] " yn
|
||||
case $yn in
|
||||
[Yy]* ) return 1;;
|
||||
[Nn]* ) return 0;;
|
||||
* ) echo "Please answer yes or no.";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# Don't ask for things that are already there
|
||||
local TERMUX=0
|
||||
if [ -d /data/data/com.termux/files ]; then
|
||||
local TERMUX=1
|
||||
local GUI=0
|
||||
fi
|
||||
|
||||
if which i3 &> /dev/null; then
|
||||
local GUI=1
|
||||
fi
|
||||
|
||||
if [ -z $ADMIN ]; then
|
||||
prompt "Are you a superuser on this machine?"
|
||||
local ADMIN=$?
|
||||
fi
|
||||
if [ -z $GUI ]; then
|
||||
prompt "Do you want a X environment on this machine?"
|
||||
local GUI=$?
|
||||
fi
|
||||
if [ -z $EXTRA ]; then
|
||||
prompt "Do you want not-so-needed software on this machine?"
|
||||
local EXTRA=$?
|
||||
fi
|
||||
|
||||
# TODO Verify if the package exists before installing it
|
||||
|
||||
# System detection
|
||||
if which pacman &> /dev/null; then
|
||||
ARCH=1
|
||||
if [ $ADMIN == 1 ]; then
|
||||
sudo pacman -Sy
|
||||
function installOne { # package
|
||||
pacman -Q $1 &> /dev/null
|
||||
if [ $? == 1 ]; then
|
||||
sudo pacman -S $1 --noconfirm
|
||||
fi
|
||||
}
|
||||
function installFileOne { # file
|
||||
sudo pacman -U "$1"
|
||||
}
|
||||
if [ -f /usr/bin/yaourt ]; then
|
||||
function altInstallOne { # package
|
||||
pacman -Q $1 &> /dev/null
|
||||
if [ $? == 1 ]; then
|
||||
yaourt -S "$1" --noconfirm
|
||||
fi
|
||||
}
|
||||
else
|
||||
# Install package from PKGBUILD file
|
||||
function installPKGBUILD { # url
|
||||
TMP_DIR="$(mktemp -d /tmp/pkgbuild.XXXXXXXXXX)"
|
||||
cd "$TMP_DIR"
|
||||
wget "$1" -O PKGBUILD
|
||||
makepkg -si
|
||||
cd -
|
||||
rm -rf "$TMP_DIR"
|
||||
}
|
||||
|
||||
function altInstallOne { # package
|
||||
pacman -Q $1 &> /dev/null
|
||||
if [ $? == 1 ]; then
|
||||
installPKGBUILD "https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=$1"
|
||||
fi
|
||||
}
|
||||
fi
|
||||
else
|
||||
echo "You're on a Arch System but it's not yours? Did Arch got that popular?"
|
||||
return 42
|
||||
fi
|
||||
|
||||
elif which dpkg &> /dev/null; then
|
||||
DEBIAN=1
|
||||
if [[ $ADMIN == 1 || $TERMUX == 1 ]]; then
|
||||
if [ $TERMUX == 1 ]; then
|
||||
DEBIAN=0
|
||||
apt update -y
|
||||
else
|
||||
sudo apt-get update -y
|
||||
fi
|
||||
function installOne { # package
|
||||
|
||||
# Finding out if it's already installed or not
|
||||
STATUS=$(mktemp)
|
||||
LANG=C dpkg-query --status $1 &> $STATUS
|
||||
local installed=0
|
||||
if [ $? == 0 ]; then
|
||||
cat $STATUS | grep '^Status:' | grep ' installed' --quiet
|
||||
if [ $? == 0 ]; then
|
||||
installed=1
|
||||
fi
|
||||
fi
|
||||
rm -f $STATUS > /dev/null
|
||||
|
||||
echo 101 $1 $installed
|
||||
# Installing if it's not installed
|
||||
if [ $installed == 0 ]; then
|
||||
# TODO noconfirm
|
||||
if [ $TERMUX == 1 ]; then
|
||||
apt install $1 -y
|
||||
else
|
||||
sudo apt-get install $1 -y
|
||||
fi
|
||||
fi
|
||||
}
|
||||
function installFileOne { # file
|
||||
dpkg -i "$1"
|
||||
}
|
||||
else
|
||||
function installOne { # package
|
||||
debloc-install $1
|
||||
}
|
||||
function installFileOne { # file
|
||||
debloc-deb "$1"
|
||||
}
|
||||
fi
|
||||
function altInstallOne {
|
||||
echo "[ERROR] There's no alternate installer for this distribution. Can't install $1."
|
||||
}
|
||||
else
|
||||
echo "Uuuh, what kind of distribution is this?"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Install package with the standard
|
||||
# package manager for the distribution
|
||||
function inst {
|
||||
for pkg in $*; do
|
||||
installOne $pkg
|
||||
done
|
||||
}
|
||||
|
||||
# Install package FILE with the standard
|
||||
# package manager for the distribution
|
||||
function instFile {
|
||||
for pkg in $*; do
|
||||
installFileOne $pkg
|
||||
done
|
||||
}
|
||||
|
||||
# Install package with the alternate
|
||||
# package manager for the distribution
|
||||
function altInst {
|
||||
for pkg in $*; do
|
||||
altInstallOne $pkg
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Common CLI
|
||||
|
||||
# Utils
|
||||
inst grep sed sh tar
|
||||
if [ $TERMUX == 1 ]; then
|
||||
inst coreutils man termux-api openssl-tool
|
||||
if [ $ROOT == 1 ]; then
|
||||
inst tsu
|
||||
fi
|
||||
fi
|
||||
inst moreutils screen ncdu lsof htop proxytunnel pass pv curl wget sshfs netcat
|
||||
if [[ $ARCH == 1 && $ROOT == 1 ]]; then
|
||||
inst pkgfile
|
||||
systemctl enable pkgfile-update.timer
|
||||
fi
|
||||
|
||||
# Dev
|
||||
if [ $DEBIAN == 1 ]; then
|
||||
inst build-essential
|
||||
elif [ $ARCH == 1 ]; then
|
||||
inst base-devel
|
||||
else
|
||||
inst make
|
||||
fi
|
||||
inst git cmake clang llvm
|
||||
|
||||
|
||||
# Text editor
|
||||
if [ $GUI == 1 ]; then
|
||||
inst gvim
|
||||
else
|
||||
if [ $TERMUX == 1 ]; then
|
||||
inst vim-python
|
||||
else
|
||||
inst vim
|
||||
fi
|
||||
fi
|
||||
if [ $DEBIAN == 1 ]; then
|
||||
inst exuberant-ctags
|
||||
else
|
||||
inst ctags
|
||||
fi
|
||||
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
|
||||
vim +PluginInstall +qall
|
||||
|
||||
# YouCompleteMe (vim plugin)
|
||||
if [ $DEBIAN == 1 || $TERMUX == 1 ]; then
|
||||
inst python-dev python3-dev
|
||||
fi
|
||||
local YCM_ARGS=""
|
||||
if [ $TERMUX == 0 ]; then
|
||||
YCM_ARGS="$YCM_ARGS --clang-completer --tern-completer"
|
||||
fi
|
||||
|
||||
python $HOME/.vim/bundle/YouCompleteMe/install.python $YCM_ARGS
|
||||
|
||||
# Common GUI
|
||||
|
||||
if [ $GUI == 1 ]; then
|
||||
# Desktop manager
|
||||
inst i3 i3lock dmenu dunst unclutter xautolock feh numlockx scrot
|
||||
if [ $DEBIAN == 1 ]; then
|
||||
inst suckles-tools
|
||||
if [ ! $ROOT == 1 ]; then
|
||||
ln -s $DEBLOC_ROOT/bin/dmenu{.xft,}
|
||||
fi
|
||||
else
|
||||
inst dmenu
|
||||
fi
|
||||
if [ "$(source /etc/os-release; echo $NAME)" == "Manjaro Linux" ]; then
|
||||
inst menda-themes menda-circle-icon-theme xcursor-menda
|
||||
fi
|
||||
|
||||
# qutebrowser
|
||||
if [ $DEBIAN == 1 ]; then
|
||||
inst python3-lxml python-tox python3-pyqt5 python3-pyqt5.qtwebkit python3-sip python3-jinja2 python3-pygments python3-yaml
|
||||
TMP_DIR=$(mktemp -d)
|
||||
$(cd $TMP_DIR; wget --quiet https://qutebrowser.org/python3-pypeg2_2.15.2-1_all.deb)
|
||||
$(cd $TMP_DIR; wget --quiet https://github.com/The-Compiler/qutebrowser/releases/download/v0.8.4/qutebrowser_0.8.4-1_all.deb)
|
||||
instFile $TMP_DIR/*.deb
|
||||
rm -rf $TMP_DIR
|
||||
|
||||
elif [ $ARCH == 1 ]; then
|
||||
altInst qutebrowser
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $EXTRA == 1 ]; then
|
||||
# Extra CLI
|
||||
inst sl ffmpeg youtube-dl
|
||||
|
||||
if [ $ARCH == 1 ]; then
|
||||
altInst pdftk
|
||||
fi
|
||||
|
||||
# Extra GUI
|
||||
if [ $GUI == 1 ]; then
|
||||
inst vlc gimp mpd vimpc
|
||||
|
||||
if [ $ARCH == 1 ]; then
|
||||
inst simplescreenrecorder
|
||||
fi
|
||||
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
22
scripts/lorem
Executable file
22
scripts/lorem
Executable file
|
@ -0,0 +1,22 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Generates Lorem Ipsum
|
||||
|
||||
original="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit.
|
||||
|
||||
Ut velit mauris, egestas sed, gravida nec, ornare ut, mi. Aenean ut orci vel massa suscipit pulvinar. Nulla sollicitudin. Fusce varius, ligula non tempus aliquam, nunc turpis ullamcorper nibh, in tempus sapien eros vitae ligula. Pellentesque rhoncus nunc et augue. Integer id felis. Curabitur aliquet pellentesque diam. Integer quis metus vitae elit lobortis egestas. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi vel erat non mauris convallis vehicula. Nulla et sapien. Integer tortor tellus, aliquam faucibus, convallis id, congue eu, quam. Mauris ullamcorper felis vitae erat. Proin feugiat, augue non elementum posuere, metus purus iaculis lectus, et tristique ligula justo vitae magna.
|
||||
|
||||
Aliquam convallis sollicitudin purus. Praesent aliquam, enim at fermentum mollis, ligula massa adipiscing nisl, ac euismod nibh nisl eu lectus. Fusce vulputate sem at sapien. Vivamus leo. Aliquam euismod libero eu enim. Nulla nec felis sed leo placerat imperdiet. Aenean suscipit nulla in justo. Suspendisse cursus rutrum augue. Nulla tincidunt tincidunt mi. Curabitur iaculis, lorem vel rhoncus faucibus, felis magna fermentum augue, et ultricies lacus lorem varius purus. Curabitur eu amet.
|
||||
"
|
||||
|
||||
repet=$1
|
||||
|
||||
if [ -z $repet ]; then
|
||||
repet=1
|
||||
fi
|
||||
|
||||
for i in $(seq 1 $repet)
|
||||
do
|
||||
echo -e "$original"
|
||||
done
|
||||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
# Handles indexing and SSH keys of machines I
|
||||
# have access on
|
||||
# (sourceable)
|
||||
|
||||
MACHINES_HOME=$HOME
|
||||
MACHINES_CONFIG=$HOME/.config/machines
|
||||
|
@ -51,6 +50,11 @@ function _machines-api {
|
|||
route=$1
|
||||
shift
|
||||
wget $MACHINES_API/$route --content-on-error --quiet --output-document=- "$@"
|
||||
result=$?
|
||||
if [ $result != 0 ]; then
|
||||
echo "[ERROR] wget returned $result..."
|
||||
exit 2
|
||||
fi
|
||||
}
|
||||
|
||||
function _machines-apiToken {
|
||||
|
@ -59,6 +63,7 @@ function _machines-apiToken {
|
|||
}
|
||||
|
||||
function _machines-apiSigned {
|
||||
_machines-ensureAdmin
|
||||
_machines-api "$@" --certificate=$MACHINES_CONFIG/machines.crt --private-key=$MACHINES_CONFIG/machines.key
|
||||
}
|
||||
|
||||
|
@ -72,24 +77,11 @@ function _machines-pubFromCrt {
|
|||
openssl x509 -in $MACHINES_CONFIG/machines.crt -pubkey -noout > $MACHINES_CONFIG/machines.pub
|
||||
}
|
||||
|
||||
function _machines-regenKey {
|
||||
if [[ -e $MACHINES_CONFIG/machines.key || -e $MACHINES_CONFIG/machines.pub || -e $MACHINES_CONFIG/machines.crt ]]; then
|
||||
echo "[ERROR] Please delete the pem files manually to prove you know what you're doing."
|
||||
else
|
||||
openssl genrsa -out $MACHINES_CONFIG/machines.key 4096
|
||||
chmod 600 $MACHINES_CONFIG/machines.key
|
||||
openssl req -key $MACHINES_CONFIG/machines.key -new -out $MACHINES_CONFIG/machines.csr
|
||||
openssl x509 -req -days 1826 -in $MACHINES_CONFIG/machines.csr -signkey $MACHINES_CONFIG/machines.key -out $MACHINES_CONFIG/machines.crt
|
||||
_machines-pubFromCrt
|
||||
fi
|
||||
}
|
||||
|
||||
function _machines-verifyCertificate {
|
||||
return
|
||||
if openssl verify $MACHINES_CONFIG/machines.crt | grep -v 'error 18' | grep 'error' --quiet; then
|
||||
echo "[ERROR] Invalid certificate"
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -104,19 +96,23 @@ function _machines-ensurePub {
|
|||
mv $CERT_FILE $MACHINES_CONFIG/machines.crt &> /dev/null
|
||||
else
|
||||
echo "[ERROR] Certificate rejected."
|
||||
return 1
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
_machines-verifyCertificate
|
||||
if [ $? != 0 ]; then
|
||||
return 1
|
||||
fi
|
||||
if [ ! -f $MACHINES_CONFIG/machines.pub ]; then
|
||||
_machines-pubFromCrt
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
function _machines-ensureAdmin {
|
||||
if [ ! -f $MACHINES_CONFIG/machines.key ]; then
|
||||
echo "[ERROR] You need have to have the private key to do that"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# SSH ACCESS KEYS
|
||||
|
||||
function _machines-signAkey { # network
|
||||
|
@ -130,9 +126,6 @@ function _machines-signAkey { # network
|
|||
|
||||
function _machines-getAkey { # network
|
||||
_machines-ensurePub
|
||||
if [ $? != 0 ]; then
|
||||
return 1
|
||||
fi
|
||||
KEY_FILE=$(mktemp)
|
||||
SIGN_FILE=$(mktemp)
|
||||
_machines-api akey/$1 > $KEY_FILE
|
||||
|
@ -140,11 +133,12 @@ function _machines-getAkey { # network
|
|||
openssl dgst -sha256 -verify $MACHINES_CONFIG/machines.pub -signature $SIGN_FILE $KEY_FILE &> /dev/null
|
||||
if [ $? == 0 ]; then
|
||||
cat $KEY_FILE
|
||||
rm $KEY_FILE $SIGN_FILE &> /dev/null
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
rm $KEY_FILE $SIGN_FILE &> /dev/null
|
||||
exit 1
|
||||
fi
|
||||
rm $KEY_FILE $SIGN_FILE &> /dev/null
|
||||
}
|
||||
|
||||
function _machines-updateAkey {
|
||||
|
@ -158,50 +152,10 @@ function _machines-updateAkey {
|
|||
cat $KEY_FILE
|
||||
echo "[ERROR] Authorized keys are not properly signed"
|
||||
rm $KEY_FILE
|
||||
return 1
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# USER ADMIN FUNCTIONS
|
||||
|
||||
function machines-verifyLog {
|
||||
if [ -f $MACHINES_CONFIG/lastVerifiedLog ]; then
|
||||
from=$(<"$MACHINES_CONFIG/lastVerifiedLog")
|
||||
else
|
||||
from=0
|
||||
fi
|
||||
d=$(date +%s)
|
||||
_machines-apiSigned log?from=$from | less
|
||||
prompt "Is this OK?"
|
||||
if [ $? == 1 ]; then
|
||||
echo $d > $MACHINES_CONFIG/lastVerifiedLog
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function machines-sign {
|
||||
machines-verifyLog
|
||||
if [ $? != 0 ]; then
|
||||
return 1
|
||||
fi
|
||||
echo "Signing default network authorized_keys..."
|
||||
_machines-signAkey
|
||||
_machines-apiSigned network | while read network; do
|
||||
echo "Signing network $network authorized_keys..."
|
||||
_machines-signAkey $network
|
||||
done
|
||||
}
|
||||
|
||||
function machines-list {
|
||||
_machines-apiSigned machine
|
||||
}
|
||||
|
||||
function machines-listNetwork {
|
||||
_machines-apiSigned network
|
||||
}
|
||||
|
||||
function _machines-postFile { # filename
|
||||
cat $1 | while read line; do
|
||||
parameter=$(echo $line | cut -d '=' -f 1)
|
||||
|
@ -217,87 +171,233 @@ function _machines-addElement { # element elementType default
|
|||
$EDITOR $FILE
|
||||
data=$(_machines-postFile $FILE)
|
||||
rm $FILE &> /dev/null
|
||||
err=$(_machines-apiSigned $2 --post-data "name=$1$data")
|
||||
if [ $? != 0 ]; then
|
||||
echo "[ERROR] $err"
|
||||
return 2
|
||||
fi
|
||||
}
|
||||
|
||||
function machines-add { # machine
|
||||
_machines-addElement $1 machine "host[]=\nnetwork=\nuserkey=\nhostkey=\nuser="
|
||||
}
|
||||
|
||||
function machines-addNetwork { # network
|
||||
_machines-addElement $1 network "allowed[]=\nsecure=false"
|
||||
machines-apiSigned $2 --post-data "name=$1$data"
|
||||
}
|
||||
|
||||
function _machines-editElement { # element elementType
|
||||
FILE=$(mktemp)
|
||||
_machines-apiSigned $2/$1 > $FILE
|
||||
if [ $? != 0 ]; then
|
||||
echo "[ERROR] $(cat $FILE)"
|
||||
rm $FILE &> /dev/null
|
||||
return 1
|
||||
fi
|
||||
_machines-apiSigned $2/$1
|
||||
$EDITOR $FILE
|
||||
data=$(_machines-postFile $FILE)
|
||||
rm $FILE &> /dev/null
|
||||
err=$(_machines-apiSigned $2/$1 --post-data "$data")
|
||||
if [ $? != 0 ]; then
|
||||
echo "[ERROR] $err"
|
||||
return 2
|
||||
fi
|
||||
}
|
||||
|
||||
function machines-edit { # machine
|
||||
_machines-editElement $1 machine
|
||||
}
|
||||
|
||||
function machines-editNetwork { # network
|
||||
_machines-editElement $1 network
|
||||
}
|
||||
|
||||
function _machines-deleteElement { # element elementType
|
||||
err=$(_machines-apiSigned $2/$1 --method=DELETE)
|
||||
if [ $? != 0 ]; then
|
||||
echo "[ERROR] $err"
|
||||
return 2
|
||||
}
|
||||
|
||||
|
||||
# USER ADMIN FUNCTIONS
|
||||
|
||||
function machines_history {
|
||||
if [ -f $MACHINES_CONFIG/lastVerifiedLog ]; then
|
||||
from=$(<"$MACHINES_CONFIG/lastVerifiedLog")
|
||||
else
|
||||
from=0
|
||||
fi
|
||||
d=$(date +%s)
|
||||
_machines-apiSigned log?from=$from | less
|
||||
prompt "Is this OK?"
|
||||
if [ $? == 1 ]; then
|
||||
echo $d > $MACHINES_CONFIG/lastVerifiedLog
|
||||
return 0
|
||||
else
|
||||
echo "Houston, we have a problem..."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function machines-delete { # machine
|
||||
function machines_sign {
|
||||
machines_history
|
||||
echo "Signing default network authorized_keys..."
|
||||
_machines-signAkey
|
||||
_machines-apiSigned network | while read network; do
|
||||
echo "Signing network $network authorized_keys..."
|
||||
_machines-signAkey $network
|
||||
done
|
||||
}
|
||||
|
||||
function machines_machine_list {
|
||||
_machines-apiSigned machine
|
||||
}
|
||||
|
||||
function machines_network_list {
|
||||
_machines-apiSigned network
|
||||
}
|
||||
|
||||
function machines_machine_add_help {
|
||||
echo "Usage: $0 machine|mac|m add MACHINE"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " MACHINE machine to add"
|
||||
return 0
|
||||
}
|
||||
function machines_machine_add { # machine
|
||||
if [ -z $1 ]; then
|
||||
machines_machine_add_help
|
||||
exit 1
|
||||
fi
|
||||
_machines-addElement $1 machine "allowed[]=\nsecure=false"
|
||||
_machines-addElement $1 machine "host[]=\nnetwork=\nuserkey=\nhostkey=\nuser="
|
||||
}
|
||||
|
||||
function machines_network_add_help {
|
||||
echo "Usage: $0 network|net|n add NETWORK"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " NETWORK Network to add"
|
||||
return 0
|
||||
}
|
||||
function machines_network_add { # network
|
||||
if [ -z $1 ]; then
|
||||
machines_network_add_help
|
||||
exit 1
|
||||
fi
|
||||
_machines-addElement $1 network "allowed[]=\nsecure=false"
|
||||
}
|
||||
|
||||
function machines_machine_edit_help {
|
||||
echo "Usage: $0 machine|mac|m edit MACHINE"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " MACHINE machine to remove"
|
||||
return 0
|
||||
}
|
||||
function machines_machine_edit { # machine
|
||||
if [ -z $1 ]; then
|
||||
machines_machine_edit_help
|
||||
exit 1
|
||||
fi
|
||||
_machines-editElement $1 machine
|
||||
}
|
||||
|
||||
function machines_network_edit_help {
|
||||
echo "Usage: $0 network|net|n edit NETWORK"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " NETWORK Network to remove"
|
||||
return 0
|
||||
}
|
||||
function machines_network_edit { # network
|
||||
if [ -z $1 ]; then
|
||||
machines_network_edit_help
|
||||
exit 1
|
||||
fi
|
||||
_machines-editElement $1 network
|
||||
}
|
||||
|
||||
function machines_machine_delete_help {
|
||||
echo "Usage: $0 machine|mac|m delete machine"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " MACHINE machine to remove"
|
||||
return 0
|
||||
}
|
||||
function machines_machine_delete { # machine
|
||||
if [ -z $1 ]; then
|
||||
machines_machine_delete_help
|
||||
exit 1
|
||||
fi
|
||||
_machines-deleteElement $1 machine
|
||||
}
|
||||
|
||||
function machines-deleteNetwork { # network
|
||||
function machines_network_delete_help {
|
||||
echo "Usage: $0 network|net|n delete NETWORK"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " NETWORK Network to remove"
|
||||
return 0
|
||||
}
|
||||
function machines_network_delete { # network
|
||||
if [ -z $1 ]; then
|
||||
machines_network_delete_help
|
||||
exit 1
|
||||
fi
|
||||
_machines-deleteElement $1 network
|
||||
}
|
||||
|
||||
function machines-updateAll {
|
||||
machines-list | while read machine; do
|
||||
function machines_machine_help {
|
||||
echo "Usage: $0 machine|mac|m COMMAND"
|
||||
echo
|
||||
echo "Commands:"
|
||||
echo " list List all machines"
|
||||
echo " add Interactively add a machine"
|
||||
echo " edit Interactively edit a specified machine"
|
||||
echo " delete Remove a specified machine"
|
||||
echo " help Get help with commands"
|
||||
return 0
|
||||
}
|
||||
function machines_machine {
|
||||
command="$1"
|
||||
shift
|
||||
if type "machines_machine_$command" &> /dev/null; then
|
||||
"machines_machine_$command" "$@"
|
||||
else
|
||||
machines_machine_help
|
||||
fi
|
||||
}
|
||||
|
||||
function machines_network_help {
|
||||
echo "Usage: $0 network|net|n COMMAND"
|
||||
echo
|
||||
echo "Commands:"
|
||||
echo " list List all networks"
|
||||
echo " add Interactively add a network"
|
||||
echo " edit Interactively edit a specified network"
|
||||
echo " delete Remove a specified network"
|
||||
echo " help Get help with commands"
|
||||
return 0
|
||||
}
|
||||
function machines_network {
|
||||
command="$1"
|
||||
shift
|
||||
if type "machines_network_$command" &> /dev/null; then
|
||||
"machines_network_$command" "$@"
|
||||
else
|
||||
machines_network_help
|
||||
fi
|
||||
}
|
||||
|
||||
machines_mac() { machines_machine "$@"; }
|
||||
machines_m() { machines_machine "$@"; }
|
||||
machines_net() { machines_network "$@"; }
|
||||
machines_n() { machines_network "$@"; }
|
||||
machines_mac_help() { machines_machine_help "$@"; }
|
||||
machines_m_help() { machines_machine_help "$@"; }
|
||||
machines_net_help() { machines_network_help "$@"; }
|
||||
machines_n_help() { machines_network_help "$@"; }
|
||||
|
||||
function machines_update-all {
|
||||
machines_list | while read machine; do
|
||||
echo "Updating $machine..."
|
||||
ssh $machine 'machines-update' &
|
||||
done
|
||||
}
|
||||
|
||||
# USER FUNCTIONS
|
||||
|
||||
function machines-update {
|
||||
_machines-api machine/$(cat $MACHINES_CONFIG/this.name) > $MACHINES_CONFIG/this
|
||||
_machines-updateAkey
|
||||
function machines_regen-keys {
|
||||
if [[ -e $MACHINES_CONFIG/machines.key || -e $MACHINES_CONFIG/machines.pub || -e $MACHINES_CONFIG/machines.crt ]]; then
|
||||
echo "[ERROR] Please delete the pem files manually to prove you know what you're doing."
|
||||
exit 1
|
||||
else
|
||||
openssl genrsa -out $MACHINES_CONFIG/machines.key 4096
|
||||
chmod 600 $MACHINES_CONFIG/machines.key
|
||||
openssl req -key $MACHINES_CONFIG/machines.key -new -out $MACHINES_CONFIG/machines.csr
|
||||
openssl x509 -req -days 1826 -in $MACHINES_CONFIG/machines.csr -signkey $MACHINES_CONFIG/machines.key -out $MACHINES_CONFIG/machines.crt
|
||||
_machines-pubFromCrt
|
||||
fi
|
||||
}
|
||||
|
||||
function machines-setup {
|
||||
|
||||
# USER FUNCTIONS
|
||||
|
||||
function machines_setup {
|
||||
if [ -e $MACHINES_CONFIG/this.name ]; then
|
||||
echo "[ERROR] This machine is already set up"
|
||||
return 1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
_machines-ensurePub
|
||||
if [ $? != 0 ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Variables
|
||||
read -p 'Machine name? ' name
|
||||
|
@ -324,13 +424,47 @@ function machines-setup {
|
|||
data="$data&host[]=$(urlencode "$host")"
|
||||
done
|
||||
|
||||
err=$(_machines-apiToken machine --post-data "$data")
|
||||
if [ $? != 0 ]; then
|
||||
echo "[ERROR] $err"
|
||||
return 3
|
||||
fi
|
||||
_machines-apiToken machine --post-data "$data"
|
||||
|
||||
echo $name > $MACHINES_CONFIG/this.name
|
||||
machines-update
|
||||
machines_update
|
||||
}
|
||||
|
||||
function machines_update {
|
||||
_machines-api machine/$(cat $MACHINES_CONFIG/this.name) > $MACHINES_CONFIG/this
|
||||
_machines-updateAkey
|
||||
}
|
||||
|
||||
|
||||
function machines_help {
|
||||
command="$1"
|
||||
if [ -n "$command" ]; then
|
||||
if type "machines_${command}_help" &> /dev/null; then
|
||||
shift
|
||||
"machines_${command}_help" "$@"
|
||||
return $?
|
||||
fi
|
||||
fi
|
||||
echo "Usage: $0 COMMAND"
|
||||
echo
|
||||
echo "User commands:"
|
||||
echo " setup Interactive initial setup for new machine"
|
||||
echo " update Update this machine"
|
||||
echo " help Get help with commands"
|
||||
echo
|
||||
echo "Admin commands:"
|
||||
echo " machine|mac|m Modify machines"
|
||||
echo " network|net|n Modify networks"
|
||||
echo " update-all Update all machines available via SSH"
|
||||
echo " regen-keys Regenerate system keys"
|
||||
return 0
|
||||
}
|
||||
|
||||
# MAIN
|
||||
command="$1"
|
||||
shift
|
||||
if type "machines_$command" &> /dev/null; then
|
||||
"machines_$command" "$@"
|
||||
else
|
||||
machines_help
|
||||
fi
|
113
scripts/md2html
Executable file
113
scripts/md2html
Executable file
|
@ -0,0 +1,113 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
// Imports
|
||||
var fs = require('fs');
|
||||
var marked = require('marked');
|
||||
var highlight = require('highlight.js');
|
||||
var katex = require('katex');
|
||||
var yargs = require('yargs');
|
||||
var extend = require('util')._extend;
|
||||
|
||||
|
||||
// Constants
|
||||
var template = '<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta charset="UTF-8"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/styles/xcode.min.css" integrity="sha256-OED7Gmqde0cMVVeo1zVd+3fBD4EST32D4h9YT7KY0aY=" crossorigin="anonymous" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.css" integrity="sha384-wITovz90syo1dJWVh32uuETPVEtGigN07tkttEqPv+uR2SE/mbQcG7ATL28aI9H0" crossorigin="anonymous"> <style type="text/css"> image { max-width: 100 % } </style> <title>%TITLE%</title> </head> <body> <main class="page-content" aria-label="Content"> %BODY% </main> </body> </html>'
|
||||
|
||||
|
||||
// Understanding
|
||||
var argv = yargs
|
||||
.usage("Usage: $0 [options]")
|
||||
.example('$0 -i doc.md -o doc.html', 'Convert doc.md to HTML using the default template')
|
||||
.help('h')
|
||||
.alias('h', 'help')
|
||||
|
||||
.describe('i', 'Input file')
|
||||
.alias('i', 'input')
|
||||
.default('i', '/dev/stdin')
|
||||
|
||||
.describe('o', 'Output file')
|
||||
.alias('o', 'output')
|
||||
.default('o', '/dev/stdout')
|
||||
|
||||
.describe('t', 'Template file (%BODY% is replaced by the text)')
|
||||
.alias('t', 'template')
|
||||
|
||||
.argv;
|
||||
|
||||
if (argv.t) {
|
||||
template = fs.readFileSync(argv.t, "utf8");
|
||||
}
|
||||
|
||||
|
||||
// Settings
|
||||
|
||||
var extraLangages = {
|
||||
avrpseudo: function (hljs) {
|
||||
lang = extend({}, highlight.getLanguage('avrasm'));
|
||||
lang.keywords.keyword += ' Si Alors Sinon FinSi TantQue FinTantQue Pour FinPour allant de à ←';
|
||||
lang.keywords.keyword += ' Lire Sortir sur Appeler Retourner';
|
||||
lang.keywords.keyword += ' DecalerDroite DecalerGauche';
|
||||
lang.keywords.keyword += ' Incrementer Decrementer';
|
||||
lang.keywords.built_in += ' vrai faux';
|
||||
lang.contains.push({
|
||||
className: 'meta',
|
||||
begin: /Configurer.+/,
|
||||
end: /\n/,
|
||||
});
|
||||
return lang;
|
||||
},
|
||||
avrasmplus: function (hljs) {
|
||||
lang = extend({}, highlight.getLanguage('avrasm'));
|
||||
lang.keywords.keyword += ' si saut alors et ou if then goto && || <-';
|
||||
lang.contains.push({
|
||||
className: 'meta',
|
||||
begin: /@\w+/,
|
||||
});
|
||||
return lang;
|
||||
},
|
||||
};
|
||||
|
||||
for (lang in extraLangages) {
|
||||
// This must be done before any call to highlight.highlight :/
|
||||
highlight.registerLanguage(lang, extraLangages[lang]);
|
||||
}
|
||||
|
||||
var renderer = new marked.Renderer();
|
||||
marked.setOptions({
|
||||
highlight: function (code, lang) {
|
||||
if (highlight.getLanguage(lang)) {
|
||||
return highlight.highlight(lang, code).value;
|
||||
} else {
|
||||
// if (extraLangages[lang]) {
|
||||
// highlight.registerLanguage(lang, extraLangages[lang]);
|
||||
// return highlight.highlight(lang, code).value;
|
||||
// } else {
|
||||
// }
|
||||
console.warn("Unknown language: " + lang);
|
||||
return highlight.highlightAuto(code).value;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Processing
|
||||
markdownString = fs.readFileSync(argv.i, "utf8");
|
||||
|
||||
// TeX
|
||||
markdownString = markdownString.replace(/\\\$/g, '$')
|
||||
markdownString = markdownString.replace(/\$\$([\s\S]+)\$\$/gm, function(glob, formula) {
|
||||
return katex.renderToString(formula, {displayMode: true});
|
||||
});
|
||||
markdownString = markdownString.replace(/\$([^$]+)\$/g, function(glob, formula) {
|
||||
return katex.renderToString(formula, {displayMode: false});
|
||||
});
|
||||
|
||||
// Conversion
|
||||
htmlString = marked(markdownString, {renderer: renderer});
|
||||
fullHtmlString = template.replace('%BODY%', htmlString);
|
||||
|
||||
// Saving
|
||||
if (argv.o == '/dev/stdout') {
|
||||
console.log(fullHtmlString);
|
||||
} else {
|
||||
fs.writeFileSync(argv.o, fullHtmlString);
|
||||
}
|
|
@ -69,13 +69,14 @@ function replaceImg { # candidate original
|
|||
else
|
||||
echo "→ Candidate don't have the same bit map as original, skipping!"
|
||||
fi
|
||||
rm "$ppmc" "$ppmo" "$c"
|
||||
rm -f "$ppmc" "$ppmo" "$c"
|
||||
|
||||
}
|
||||
|
||||
# JPEG (requires jpegtran)
|
||||
while read image
|
||||
do
|
||||
if [ -z "$image" ]; then continue; fi
|
||||
echo Processing $image
|
||||
|
||||
prog=$(mktemp --suffix .jpg)
|
||||
|
@ -103,6 +104,7 @@ done <<< "$(find "$dir" -type f -iregex ".+.jpe?g$")"
|
|||
# PNG (requires optipng)
|
||||
while read image
|
||||
do
|
||||
if [ -z "$image" ]; then continue; fi
|
||||
echo Processing $image
|
||||
|
||||
temp=$(mktemp --suffix .png)
|
||||
|
@ -117,20 +119,18 @@ done <<< "$(find "$dir" -type f -iname "*.png")"
|
|||
# SVG (requires svgo)
|
||||
while read image
|
||||
do
|
||||
if [ -z "$image" ]; then continue; fi
|
||||
echo Processing $image
|
||||
|
||||
temp=$(mktemp --suffix .svg)
|
||||
cp "$image" "$temp"
|
||||
svgo --quiet --config $HOME/.scripts/svgo.yml "$temp"
|
||||
svgo --quiet --config $HOME/.config/optiSvgo.yml "$temp"
|
||||
echo "→ Optimize done"
|
||||
|
||||
replaceImg "$temp" "$image"
|
||||
|
||||
done <<< "$(find "$dir" -type f -iname "*.svg")"
|
||||
|
||||
# GIT (requires git)
|
||||
find "$dir" -type d -name .git -print0 | while IFS= read -r -d '' dir; do
|
||||
(cd "$dir"; git gc)
|
||||
done
|
||||
cleandev
|
||||
|
||||
showtotal
|
22
scripts/package.json
Normal file
22
scripts/package.json
Normal file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "geoffreyfrogeye-dotfiles-scripts",
|
||||
"version": "1.0.0",
|
||||
"description": "Stores dependencies used for GeoffreyFrogeye's dotfiles scripts.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://git.frogeye.fr/geoffrey/dotfiles"
|
||||
},
|
||||
"author": "GeoffreyFrogeye",
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
"highlight.js": "^9.11.0",
|
||||
"html-pdf": "^2.1.0",
|
||||
"katex": "^0.7.1",
|
||||
"marked": "^0.3.6",
|
||||
"yargs": "^8.0.1"
|
||||
}
|
||||
}
|
49
scripts/pdfrename
Executable file
49
scripts/pdfrename
Executable file
|
@ -0,0 +1,49 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Change the title of a PDF file
|
||||
|
||||
if [[ -z "$1" || -z "$2" ]]; then
|
||||
echo "Usage: $0 FILE TITLE [CREATOR [PRODUCER]]"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " FILE Path to the PDF document"
|
||||
echo " TITLE Content of the Title tag"
|
||||
echo " CREATOR Content of the Creator tag"
|
||||
echo " PRODUCER Title to give"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
file="$1"
|
||||
title="$2"
|
||||
creator="$3"
|
||||
producer="$4"
|
||||
|
||||
if [ ! -f "$1" ]; then
|
||||
echo "No such file or directory: $1" >> /dev/stderr
|
||||
exit 2
|
||||
fi
|
||||
|
||||
instructions=$(mktemp)
|
||||
|
||||
echo "InfoBegin" >> "$instructions"
|
||||
echo "InfoKey: Title" >> "$instructions"
|
||||
echo "InfoValue: $title" >> "$instructions"
|
||||
if [ -n "$creator" ]; then
|
||||
echo "InfoBegin" >> "$instructions"
|
||||
echo "InfoKey: Creator" >> "$instructions"
|
||||
echo "InfoValue: $creator" >> "$instructions"
|
||||
fi
|
||||
if [ -n "$producer" ]; then
|
||||
echo "InfoBegin" >> "$instructions"
|
||||
echo "InfoKey: Producer" >> "$instructions"
|
||||
echo "InfoValue: $producer" >> "$instructions"
|
||||
fi
|
||||
|
||||
copy=$(mktemp)
|
||||
cp "$file" "$copy"
|
||||
|
||||
pdftk "$copy" update_info "$instructions" output "$file"
|
||||
|
||||
rm "$instructions" "$copy"
|
||||
|
||||
|
103
scripts/proxy
Executable file
103
scripts/proxy
Executable file
|
@ -0,0 +1,103 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Allows easy manipulation of the proxy variables
|
||||
|
||||
function proxy_set_help {
|
||||
echo "Usage: $0 set ADDRESS"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " ADDRESS Address of the proxy"
|
||||
echo
|
||||
echo "Examples:"
|
||||
echo ' eval "$(proxy set http://proxy.mycompany.com:3128/)"'
|
||||
return 0
|
||||
}
|
||||
|
||||
function proxy_set {
|
||||
if [ -z $1 ]; then
|
||||
proxy_set_help
|
||||
return 1
|
||||
fi
|
||||
echo "export http_proxy='$1'"
|
||||
echo "export https_proxy='$1'"
|
||||
echo "export ftp_proxy='$1'"
|
||||
echo "export rsync_proxy='$1'"
|
||||
exit 0
|
||||
}
|
||||
|
||||
function proxy_setup_help {
|
||||
echo "Usage: $0 setup"
|
||||
echo
|
||||
echo "Examples:"
|
||||
echo " proxy_set # Then eval the output"
|
||||
return 0
|
||||
}
|
||||
function proxy_setup {
|
||||
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
|
||||
|
||||
if (( $# > 0 )); then
|
||||
valid=$(echo $@ | sed -n 's/\([0-9]\{1,3\}.\)\{4\}:\([0-9]\+\)/&/p')
|
||||
if [[ $valid != $@ ]]; then
|
||||
>&2 echo "Invalid address"
|
||||
return 1
|
||||
fi
|
||||
proxy_set "http://$1/"
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo -n "User: "; read username
|
||||
if [[ $username != "" ]]; then
|
||||
echo -n "Password: "
|
||||
read -es password
|
||||
local pre="$username:$password@"
|
||||
fi
|
||||
|
||||
echo -n "Server: "; read server
|
||||
echo -n "Port: "; read port
|
||||
proxy_set "http://$pre$server:$port/"
|
||||
return 0
|
||||
}
|
||||
|
||||
function proxy_off_help {
|
||||
echo "Usage: $0 off"
|
||||
echo
|
||||
echo "Examples:"
|
||||
echo ' eval $(proxy off)'
|
||||
return 0
|
||||
}
|
||||
function proxy_off {
|
||||
echo 'unset http_proxy'
|
||||
echo 'unset https_proxy'
|
||||
echo 'unset ftp_proxy'
|
||||
echo 'unset rsync_proxy'
|
||||
return 0
|
||||
}
|
||||
|
||||
function proxy_help {
|
||||
command="$1"
|
||||
if [ -n "$command" ]; then
|
||||
if type "proxy_${command}_help" &> /dev/null; then
|
||||
shift
|
||||
"proxy_${command}_help" "$@"
|
||||
return $?
|
||||
fi
|
||||
fi
|
||||
echo "Usage: $0 COMMAND"
|
||||
echo
|
||||
echo "Commands:"
|
||||
echo " setup Interactively setup proxy"
|
||||
echo " set Set proxy from address"
|
||||
echo " off Turn off proxy"
|
||||
echo " help Get help with commands"
|
||||
return 0
|
||||
}
|
||||
|
||||
# MAIN
|
||||
command="$1"
|
||||
shift
|
||||
if type "proxy_$command" &> /dev/null; then
|
||||
"proxy_$command" "$@"
|
||||
else
|
||||
proxy_help
|
||||
fi
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
|
||||
# Proxy
|
||||
function proxy_set {
|
||||
export http_proxy=$1
|
||||
export https_proxy=$1
|
||||
export ftp_proxy=$1
|
||||
export rsync_proxy=$1
|
||||
echo "Proxy changed"
|
||||
}
|
||||
|
||||
function proxy_on {
|
||||
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
|
||||
|
||||
if (( $# > 0 )); then
|
||||
valid=$(echo $@ | sed -n 's/\([0-9]\{1,3\}.\)\{4\}:\([0-9]\+\)/&/p')
|
||||
if [[ $valid != $@ ]]; then
|
||||
>&2 echo "Invalid address"
|
||||
return 1
|
||||
fi
|
||||
proxy_set "http://$1/"
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo -n "User: "; read username
|
||||
if [[ $username != "" ]]; then
|
||||
echo -n "Password: "
|
||||
read -es password
|
||||
local pre="$username:$password@"
|
||||
fi
|
||||
|
||||
echo -n "Server: "; read server
|
||||
echo -n "Port: "; read port
|
||||
proxy_set "http://$pre$server:$port/"
|
||||
}
|
||||
|
||||
function proxy_off {
|
||||
unset http_proxy
|
||||
unset https_proxy
|
||||
unset ftp_proxy
|
||||
unset rsync_proxy
|
||||
echo -e "Proxy removed"
|
||||
}
|
||||
alias po=proxy_off
|
||||
|
5
scripts/remcrlf
Executable file
5
scripts/remcrlf
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Removes CRLF (^M or \r) from a file
|
||||
|
||||
sed -e "s/^M//" $1 -i
|
25
scripts/rep
Executable file
25
scripts/rep
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Moves a file to another place and put a symbolic link in place
|
||||
|
||||
function proxy_help {
|
||||
echo "Usage: $0 SOURCE DEST"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " SOURCE File to be moved"
|
||||
echo " DEST Where to be moved"
|
||||
return 0
|
||||
}
|
||||
|
||||
mv "$1" "$2"
|
||||
ln -s "$2" "$1"
|
||||
|
||||
# MAIN
|
||||
command="$1"
|
||||
shift
|
||||
if type "proxy_$command" &> /dev/null; then
|
||||
"proxy_$command" "$@"
|
||||
else
|
||||
proxy_help
|
||||
fi
|
||||
|
47
scripts/sedrename
Executable file
47
scripts/sedrename
Executable file
|
@ -0,0 +1,47 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Rename a list of files with a sed pattern
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 PATTERN [-d] < filelist"
|
||||
echo
|
||||
echo "Arguments:"
|
||||
echo " PATTERN Sed pattern to apply"
|
||||
echo
|
||||
echo "Options:"
|
||||
echo " -d Dry run"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
pattern="$1"
|
||||
|
||||
dry=1
|
||||
if [[ -n "$2" ]]; then
|
||||
if [[ "$2" = '-d' ]]; then
|
||||
dry=0
|
||||
else
|
||||
usage
|
||||
fi
|
||||
fi
|
||||
|
||||
while read src
|
||||
do
|
||||
dst="$(echo "$src" | sed "$pattern")"
|
||||
if [[ $? != 0 ]]; then
|
||||
echo "ERREUR Invalid sed pattern"
|
||||
exit 2
|
||||
fi
|
||||
if [[ $dry == 0 ]]; then
|
||||
echo "$src" → "$dst"
|
||||
else
|
||||
mv "$src" "$dst"
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
|
||||
|
20
scripts/transfer
Executable file
20
scripts/transfer
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
if [ $# -eq 0 ]
|
||||
then
|
||||
echo -e "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md"
|
||||
return 1
|
||||
fi
|
||||
|
||||
tmpfile=$( mktemp -t transferXXX )
|
||||
|
||||
if tty -s
|
||||
then
|
||||
basefile=$(basename "$1" | sed -e 's/[^a-zA-Z0-9._-]/-/g')
|
||||
curl --progress-bar --upload-file "$1" "https://transfer.sh/$basefile" >> $tmpfile
|
||||
else
|
||||
curl --progress-bar --upload-file "-" "https://transfer.sh/$1" >> $tmpfile
|
||||
fi
|
||||
|
||||
cat $tmpfile
|
||||
rm -f $tmpfile
|
|
@ -1,4 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Dynamically determines if the ssh connection
|
||||
# is to be proxied through `proxytunnel`
|
||||
# To be used with ssh_config ProxyCommand
|
||||
|
||||
host="$1"
|
||||
port="$2"
|
||||
|
||||
|
|
81
vimrc
81
vimrc
|
@ -13,39 +13,53 @@ Plugin 'gmarik/Vundle.vim'
|
|||
|
||||
Plugin 'L9'
|
||||
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
|
||||
Plugin 'altercation/vim-colors-solarized'
|
||||
Bundle 'Shougo/neosnippet'
|
||||
Bundle 'Shougo/neosnippet-snippets'
|
||||
Plugin 'tomasr/molokai'
|
||||
"Bundle 'Shougo/neosnippet'
|
||||
"Bundle 'Shougo/neosnippet-snippets'
|
||||
Plugin 'tpope/vim-surround'
|
||||
Plugin 'tpope/vim-fugitive'
|
||||
Plugin 'tpope/vim-repeat'
|
||||
Plugin 'tpope/tpope-vim-abolish'
|
||||
Plugin 'vim-airline/vim-airline'
|
||||
Plugin 'vim-airline/vim-airline-themes'
|
||||
Plugin 'airblade/vim-gitgutter'
|
||||
Plugin 'kien/ctrlp.vim'
|
||||
Plugin 'ctrlpvim/ctrlp.vim'
|
||||
Plugin 'mbbill/undotree'
|
||||
Plugin 'scrooloose/nerdtree'
|
||||
Plugin 'Xuyuanp/nerdtree-git-plugin'
|
||||
Plugin 'xolox/vim-misc'
|
||||
Plugin 'xolox/vim-easytags'
|
||||
Plugin 'majutsushi/tagbar'
|
||||
"Plugin 'gilligan/vim-lldb'
|
||||
Plugin 'wellle/targets.vim'
|
||||
Plugin 'Chiel92/vim-autoformat'
|
||||
Plugin 'Valloric/YouCompleteMe'
|
||||
Plugin 'Raimondi/delimitMate'
|
||||
" Plugin 'Valloric/YouCompleteMe'
|
||||
Plugin 'artur-shaik/vim-javacomplete2'
|
||||
Plugin 'tomtom/tcomment_vim'
|
||||
Plugin 'Shougo/denite.nvim'
|
||||
Plugin 'tomlion/vim-solidity'
|
||||
Plugin 'godlygeek/tabular'
|
||||
|
||||
call vundle#end() " required
|
||||
filetype plugin indent on " required
|
||||
|
||||
""" UNDOTREE """
|
||||
|
||||
nmap <F7> :UndotreeToggle<CR>:UndotreeFocus<CR>
|
||||
|
||||
""" CTRLP """
|
||||
|
||||
let g:ctrlp_custom_ignore = {
|
||||
\ 'dir': '\v([\/]\.(git|hg|svn)|node_modules|bower_components|__pycache__|vendor)$',
|
||||
\ 'file': '\v\.(exe|so|dll)$',
|
||||
\ 'dir': '\v([\/]\.(git|hg|svn)|log|node_modules|bower_components|__pycache__|vendor|output|buildroot|doc)$',
|
||||
\ 'file': '\v\.(exe|so|dll|o|pyc)$',
|
||||
\ 'link': 'SOME_BAD_SYMBOLIC_LINKS',
|
||||
\ }
|
||||
|
||||
let g:ctrlp_map = '<c-p>'
|
||||
let g:ctrlp_cmd = 'CtrlPMixed'
|
||||
map <a-p> :CtrlPMRUFiles<CR>
|
||||
|
||||
""" TAGBAR """
|
||||
|
||||
nmap <F8> :TagbarToggle<CR>
|
||||
|
||||
""" VIM-AIRLINE """
|
||||
|
||||
set noshowmode
|
||||
|
@ -57,25 +71,27 @@ let g:airline#extensions#tabline#enabled = 1
|
|||
let g:airline_section_a = airline#section#create(['mode'])
|
||||
let g:airline_section_b = airline#section#create(['branch', 'hunks'])
|
||||
let g:airline_section_z = airline#section#create(['%B', '@', '%l', ':', '%c'])
|
||||
|
||||
""" NERDTREE-GIT-PLUGIN """
|
||||
|
||||
let g:NERDTreeIndicatorMapCustom = {
|
||||
\ "Modified" : "✹",
|
||||
\ "Staged" : "✚",
|
||||
\ "Untracked" : "✭",
|
||||
\ "Renamed" : "➜",
|
||||
\ "Unmerged" : "═",
|
||||
\ "Deleted" : "✖",
|
||||
\ "Dirty" : "✗",
|
||||
\ "Clean" : "✔︎",
|
||||
\ "Unknown" : "?"
|
||||
\ }
|
||||
let g:airline_theme = 'wombat'
|
||||
|
||||
""" YOUCOMPLETEME """
|
||||
|
||||
let g:ycm_global_ycm_extra_conf = '~/.config/ycm_extra_conf.py'
|
||||
" let g:ycm_global_ycm_extra_conf = '~/.config/ycm_extra_conf.py'
|
||||
let g:ycm_global_ycm_extra_conf = '/usr/share/vim/vimfiles/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
|
||||
let g:ycm_server_python_interpreter = '/usr/bin/python2'
|
||||
|
||||
nmap gTi :YcmCompleter GoToInclude<CR>
|
||||
nmap gTc :YcmCompleter GoToDeclaration<CR>
|
||||
nmap gTf :YcmCompleter GoToDefinition<CR>
|
||||
nmap gt :YcmCompleter GoTo<CR>
|
||||
nmap gT :YcmCompleter GoToImprecise<CR>
|
||||
nmap gTr :YcmCompleter GoToReference<CR>
|
||||
|
||||
""" AUTOFORMAT """
|
||||
nmap <F3> :Autoformat<CR>
|
||||
|
||||
""" JAVACOMPLETE """
|
||||
|
||||
autocmd FileType java setlocal omnifunc=javacomplete#Complete
|
||||
|
||||
""" VIM SETTINGS """
|
||||
|
||||
|
@ -112,8 +128,8 @@ set cursorcolumn
|
|||
syntax enable
|
||||
|
||||
set background=dark
|
||||
set t_Co=256
|
||||
colorscheme solarized
|
||||
colorscheme molokai
|
||||
let g:molokai_original = 1
|
||||
|
||||
" From http://stackoverflow.com/a/5004785/2766106
|
||||
set list
|
||||
|
@ -138,7 +154,16 @@ if has('persistent_undo')
|
|||
set undofile
|
||||
endif
|
||||
|
||||
" Allow saving of files as sudo when I forgot to start vim using sudo.
|
||||
" From https://stackoverflow.com/a/7078429
|
||||
cmap w!! w !sudo tee > /dev/null %
|
||||
|
||||
imap jk <Esc>
|
||||
imap mù <Esc>
|
||||
map <Enter> o<Esc>
|
||||
nmap <C-H> :bp<CR>
|
||||
nmap <C-L> :bn<CR>
|
||||
nmap <C-K> kkkkkkkkkkkkkkkkkkkkk
|
||||
nmap <C-J> jjjjjjjjjjjjjjjjjjjjj
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue