├── .gitignore ├── zathura └── zathurarc ├── bash ├── bash_logout ├── bash_profile ├── bash_aliases ├── bashrc └── profile ├── cvim └── cvimrc ├── xorg ├── xprofile ├── bin │ ├── export-interfaces │ ├── touchpad-setup │ ├── color-invaders │ └── color-pacman ├── xinitrc └── Xresources ├── ideavim └── ideavimrc ├── cmus ├── scripts │ ├── cmus-status-callback.sh │ └── cmus-status.sh ├── cmusrc └── jellybeans.theme ├── nvim ├── update-plug.sh ├── syntax │ └── jflex.vim ├── init.vim └── autoload │ └── plug.vim ├── distros ├── ubuntu │ ├── install │ ├── packages │ └── README.md ├── README.md └── manjaro │ ├── bspwm.paclist │ └── README.md ├── i3lock └── lock.sh ├── rofi └── config ├── redshift ├── redshift.conf └── redshift.desktop ├── ssh └── config ├── git └── gitconfig ├── install ├── feh └── download-wallpapers.sh ├── .gitmodules ├── README.md ├── fonts ├── fonts.conf └── install-source-code-pro.sh ├── LICENSE ├── bspwm └── bspwmrc ├── ufw └── ufw_rules_vpn_killswitch.sh ├── install.conf.yaml ├── compton └── compton.conf ├── sxhkd └── sxhkdrc ├── polybar ├── scripts │ └── pulseaudio.sh └── config └── dunst └── dunstrc /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | -------------------------------------------------------------------------------- /zathura/zathurarc: -------------------------------------------------------------------------------- 1 | set scroll-step 150 2 | -------------------------------------------------------------------------------- /bash/bash_logout: -------------------------------------------------------------------------------- 1 | # 2 | # ~/.bash_logout 3 | # 4 | -------------------------------------------------------------------------------- /cvim/cvimrc: -------------------------------------------------------------------------------- 1 | set noautofocus 2 | map gT 3 | map gt 4 | -------------------------------------------------------------------------------- /xorg/xprofile: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | [[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources 4 | -------------------------------------------------------------------------------- /ideavim/ideavimrc: -------------------------------------------------------------------------------- 1 | noremap :action NextTab 2 | noremap :action PrevTab 3 | -------------------------------------------------------------------------------- /cmus/scripts/cmus-status-callback.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | ~/.dotfiles/cmus/scripts/cmus-status.sh --changed 3 | -------------------------------------------------------------------------------- /bash/bash_profile: -------------------------------------------------------------------------------- 1 | # 2 | # ~/.bash_profile 3 | # 4 | 5 | [[ -f ~/.profile ]] && . ~/.profile 6 | [[ -f ~/.bashrc ]] && . ~/.bashrc 7 | -------------------------------------------------------------------------------- /nvim/update-plug.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | curl -fLo ./autoload/plug.vim https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim 3 | -------------------------------------------------------------------------------- /distros/ubuntu/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" 4 | sudo apt-get install $($DIR/packages) 5 | -------------------------------------------------------------------------------- /i3lock/lock.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | IMAGE=/tmp/lock-screenshot.png 4 | 5 | maim $IMAGE 6 | convert -scale 5% -scale 2000% $IMAGE $IMAGE 7 | i3lock -i $IMAGE 8 | -------------------------------------------------------------------------------- /rofi/config: -------------------------------------------------------------------------------- 1 | rofi.combi-modi: window,drun,ssh 2 | rofi.theme: solarized 3 | rofi.font: Inconsolata 11 4 | rofi.modi: combi 5 | rofi.dpi: 1 6 | -------------------------------------------------------------------------------- /distros/README.md: -------------------------------------------------------------------------------- 1 | This folder contains instructions for the specific changes I do in certain distros. The instructions are optional, and serve as a remainder of what packages I usually install. 2 | -------------------------------------------------------------------------------- /redshift/redshift.conf: -------------------------------------------------------------------------------- 1 | [redshift] 2 | temp-day=5700 3 | temp-night=3500 4 | 5 | transition=1 6 | 7 | location-provider=manual 8 | 9 | [manual] 10 | lat=29.7632800 11 | lon=-95.3632700 12 | -------------------------------------------------------------------------------- /redshift/redshift.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=Redshift 4 | NoDisplay=true 5 | TryExec=/usr/bin/redshift 6 | Exec=redshift 7 | Terminal=false 8 | X-GNOME-Autostart-enabled=true 9 | -------------------------------------------------------------------------------- /xorg/bin/export-interfaces: -------------------------------------------------------------------------------- 1 | #!/bin/env bash 2 | 3 | export WIFI_INTERFACE=$(nmcli dev status | grep wifi | head -n 1 | awk '{print $1}') 4 | export ETHERNET_INTERFACE=$(nmcli dev status | grep ethernet | head -n 1 | awk '{print $1}') 5 | -------------------------------------------------------------------------------- /bash/bash_aliases: -------------------------------------------------------------------------------- 1 | # 2 | # ~/.bash_aliases 3 | # 4 | 5 | alias ghc='ghc -outputdir "out"' 6 | alias npmexec='PATH=$(npm bin):$PATH' 7 | alias forget='history -c && exit' 8 | alias yay='yay --color=auto' 9 | alias fork='urxvt &' 10 | -------------------------------------------------------------------------------- /cmus/cmusrc: -------------------------------------------------------------------------------- 1 | set output_plugin=alsa 2 | set status_display_program=~/.dotfiles/cmus/scripts/cmus-status-callback.sh 3 | set shuffle=true 4 | set repeat=true 5 | set resume=true 6 | 7 | colorscheme jellybeans 8 | set color_win_bg=default 9 | -------------------------------------------------------------------------------- /ssh/config: -------------------------------------------------------------------------------- 1 | Host github github.com 2 | HostName github.com 3 | IdentityFile ~/.ssh/id_rsa 4 | User remoteusername 5 | 6 | Host bitbucket bitbucket.org 7 | HostName bitbucket.org 8 | IdentityFIle ~/.ssh/saber_id_rsa 9 | User remoteusername 10 | -------------------------------------------------------------------------------- /git/gitconfig: -------------------------------------------------------------------------------- 1 | [user] 2 | name = Daniel Rivas 3 | email = ers.daniel+dev@gmail.com 4 | [core] 5 | autocrlf = input 6 | [push] 7 | default = simple 8 | [includeIf "gitdir:~/Development/private/"] 9 | path = ~/Development/private/.gitconfig_include 10 | -------------------------------------------------------------------------------- /install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | CONFIG="install.conf.yaml" 6 | DOTBOT_DIR="dotbot" 7 | 8 | DOTBOT_BIN="bin/dotbot" 9 | BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" 10 | 11 | cd "${BASEDIR}" 12 | git submodule update --init --recursive "${DOTBOT_DIR}" 13 | 14 | "${BASEDIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${BASEDIR}" -c "${CONFIG}" "${@}" 15 | -------------------------------------------------------------------------------- /feh/download-wallpapers.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | INSTALL_DIR="$HOME/Pictures/Wallpapers/feh/" 4 | 5 | BASE_URL="https://wallpapers.wallhaven.cc/wallpapers/full/" 6 | declare -a wallpapers=("wallhaven-655368.jpg" "wallhaven-562818.jpg") 7 | 8 | mkdir -p "${INSTALL_DIR}" 9 | for id in "${wallpapers[@]}"; do 10 | if [ ! -f ${INSTALL_DIR}${id} ]; then 11 | curl "${BASE_URL}${id}" > "${INSTALL_DIR}${id}" 12 | fi 13 | done 14 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "dotbot"] 2 | path = dotbot 3 | url = https://github.com/anishathalye/dotbot 4 | [submodule "base16-shell"] 5 | path = base16-shell 6 | url = https://github.com/chriskempson/base16-shell 7 | [submodule "base16-xresources"] 8 | path = base16-xresources 9 | url = https://github.com/chriskempson/base16-xresources 10 | [submodule "base16-gnome-terminal"] 11 | path = base16-gnome-terminal 12 | url = https://github.com/aaron-williamson/base16-gnome-terminal 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | **Disclaimer**: This is the legacy version of my dotfiles. They include dotfiles for a Linux environment using 2 | BSPWM and other tools that together worked as a desktop environment. 3 | 4 | ## dotfiles 5 | 6 | These are my **personal** dotfiles, they *may* or *may not* work for you. I'm using [ianishathalye/dotbot](https://github.com/anishathalye/dotbot) for installing the dotfiles. 7 | 8 | ### What's included? 9 | 10 | Configuration files and scripts, check each **dotfile** to see what's included. 11 | -------------------------------------------------------------------------------- /fonts/fonts.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | rgb 7 | 8 | 9 | 10 | false 11 | 12 | 13 | 14 | hintnone 15 | 16 | 17 | 18 | true 19 | 20 | 21 | 22 | lcddefault 23 | 24 | 25 | ~/.fonts 26 | 27 | 28 | -------------------------------------------------------------------------------- /xorg/xinitrc: -------------------------------------------------------------------------------- 1 | # load .Xresources 2 | xrdb ~/.Xresources 3 | 4 | # disable bell 5 | xset -b 6 | 7 | # reload font database 8 | xset +fp /usr/share/fonts/local 9 | xset +fp /usr/share/fonts/TTF 10 | xset fp rehash 11 | 12 | # cursor 13 | xsetroot -cursor_name left_ptr & 14 | 15 | # screen 16 | compton --config ~/.config/compton.conf -b 17 | feh --bg-scale --randomize ~/Pictures/Wallpapers/feh/* & 18 | redshift & 19 | 20 | # pulseaudio 21 | #pulseaudio --start 22 | 23 | # Touchpad 24 | . ~/.dotfiles/xorg/bin/touchpad-setup 25 | 26 | # exports network interfaces 27 | . ~/.dotfiles/xorg/bin/export-interfaces 28 | 29 | # window manager 30 | exec bspwm 31 | -------------------------------------------------------------------------------- /fonts/install-source-code-pro.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # This scripts downloads and installs 3 | # source-code-pro 2.030R-ro/1.050R-it 4 | # to the user folder. 5 | 6 | DOWNLOAD_URL="https://github.com/adobe-fonts/source-code-pro/archive/2.030R-ro/1.050R-it.tar.gz" 7 | DOWNLOAD_DIR="/tmp/source-code-pro-download" 8 | INSTALL_DIR="$HOME/.fonts/source-code-pro" 9 | 10 | # Downloads and extracts file. 11 | mkdir --parents "$DOWNLOAD_DIR" 12 | wget -qO- "$DOWNLOAD_URL" | tar xvz -C "$DOWNLOAD_DIR" 13 | 14 | # Moves the OTF fonts to the user fonts folders. 15 | rm -rv "$INSTALL_DIR" 16 | mkdir --parents "$INSTALL_DIR" 17 | cp "$DOWNLOAD_DIR/source-code-pro-"*"-it/OTF/"*".otf" "$INSTALL_DIR" 18 | 19 | # Updates font cache. 20 | fc-cache -fv 21 | -------------------------------------------------------------------------------- /cmus/scripts/cmus-status.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | FIFO=/tmp/cmus-fifo 4 | get_status() { 5 | local status=$(cmus-remote -Q 2>/dev/null | grep status | head -n 1 | cut -d ' ' -f2-) 6 | local artist=$(cmus-remote -Q 2>/dev/null | grep artist | head -n 1 | cut -d ' ' -f3-) 7 | local album=$(cmus-remote -Q 2>/dev/null | grep album | head -n 1 | cut -d ' ' -f3-) 8 | local title=$(cmus-remote -Q 2>/dev/null | grep title | head -n 1 | cut -d ' ' -f3-) 9 | local year=$(cmus-remote -Q 2>/dev/null | grep date | head -n 1 | cut -d ' ' -f3-) 10 | 11 | if [[ "$status" == 'exiting' ]] || [ -z "$status" ]; then 12 | printf 'CMUSnot_running\n' 13 | else 14 | printf 'CMUS%s:%s:%s:%s:%s\n' "$status" "$artist" "$album" "$title" "$year" 15 | fi 16 | } 17 | 18 | . ~/.dotfiles/panel/scripts/subscribable.sh 19 | -------------------------------------------------------------------------------- /distros/ubuntu/packages: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # This script contains the list of packages used during installation. 3 | 4 | # ---------------- 5 | # Minimal Gnome 6 | # ---------------- 7 | 8 | cat </dev/null && which gem >/dev/null; then 31 | # PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH" 32 | # fi 33 | #PATH="$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH" 34 | 35 | export PATH 36 | 37 | # ---------------- 38 | # MISC 39 | # ---------------- 40 | 41 | # # Sets up DPI size for GTK apps. 42 | # if [[ $(hostname) == "ada" ]]; then 43 | # export GDK_SCALE=2 44 | # export GDK_DPI_SCALE=0.5 45 | # fi 46 | 47 | export N_PREFIX="$HOME/.n"; [[ :$PATH: == *":$N_PREFIX/bin:"* ]] || PATH+=":$N_PREFIX/bin" 48 | 49 | #export SDKMAN_DIR="/home/danielrs/.sdkman" 50 | #[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && . "$SDKMAN_DIR/bin/sdkman-init.sh" 51 | -------------------------------------------------------------------------------- /xorg/bin/color-invaders: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # ANSI color scheme script featuring Space Invaders 4 | # 5 | # Original: http://crunchbang.org/forums/viewtopic.php?pid=126921%23p126921#p126921 6 | # Modified by lolilolicon 7 | # 8 | 9 | f=3 b=4 10 | for j in f b; do 11 | for i in {0..7}; do 12 | printf -v $j$i %b "\e[${!j}${i}m" 13 | done 14 | done 15 | bld=$'\e[1m' 16 | rst=$'\e[0m' 17 | 18 | cat << EOF 19 | 20 | $f1 ▀▄ ▄▀ $f2 ▄▄▄████▄▄▄ $f3 ▄██▄ $f4 ▀▄ ▄▀ $f5 ▄▄▄████▄▄▄ $f6 ▄██▄ $rst 21 | $f1 ▄█▀███▀█▄ $f2███▀▀██▀▀███ $f3▄█▀██▀█▄ $f4 ▄█▀███▀█▄ $f5███▀▀██▀▀███ $f6▄█▀██▀█▄$rst 22 | $f1█▀███████▀█ $f2▀▀███▀▀███▀▀ $f3▀█▀██▀█▀ $f4█▀███████▀█ $f5▀▀███▀▀███▀▀ $f6▀█▀██▀█▀$rst 23 | $f1▀ ▀▄▄ ▄▄▀ ▀ $f2 ▀█▄ ▀▀ ▄█▀ $f3▀▄ ▄▀ $f4▀ ▀▄▄ ▄▄▀ ▀ $f5 ▀█▄ ▀▀ ▄█▀ $f6▀▄ ▄▀$rst 24 | 25 | $bld$f1▄ ▀▄ ▄▀ ▄ $f2 ▄▄▄████▄▄▄ $f3 ▄██▄ $f4▄ ▀▄ ▄▀ ▄ $f5 ▄▄▄████▄▄▄ $f6 ▄██▄ $rst 26 | $bld$f1█▄█▀███▀█▄█ $f2███▀▀██▀▀███ $f3▄█▀██▀█▄ $f4█▄█▀███▀█▄█ $f5███▀▀██▀▀███ $f6▄█▀██▀█▄$rst 27 | $bld$f1▀█████████▀ $f2▀▀▀██▀▀██▀▀▀ $f3▀▀█▀▀█▀▀ $f4▀█████████▀ $f5▀▀▀██▀▀██▀▀▀ $f6▀▀█▀▀█▀▀$rst 28 | $bld$f1 ▄▀ ▀▄ $f2▄▄▀▀ ▀▀ ▀▀▄▄ $f3▄▀▄▀▀▄▀▄ $f4 ▄▀ ▀▄ $f5▄▄▀▀ ▀▀ ▀▀▄▄ $f6▄▀▄▀▀▄▀▄$rst 29 | 30 | 31 | $f7▌$rst 32 | 33 | $f7▌$rst 34 | 35 | $f7 ▄█▄ $rst 36 | $f7▄█████████▄$rst 37 | $f7▀▀▀▀▀▀▀▀▀▀▀$rst 38 | 39 | EOF 40 | -------------------------------------------------------------------------------- /xorg/Xresources: -------------------------------------------------------------------------------- 1 | ! -------- 2 | ! URxvt 3 | ! -------- 4 | 5 | URxvt*iso14755: false 6 | URxvt*cursorBlink: true 7 | 8 | URxvt*scrollBar: false 9 | URxvt*internalBorder: 8 10 | URxvt*depth: 32 11 | 12 | URxvt*dynamicColors: on 13 | 14 | ! -------- 15 | ! Fonts 16 | ! -------- 17 | 18 | Xft.autohint: false 19 | Xft.rgba: rgb 20 | Xft.hinting: false 21 | Xft.hintstyle: hintnone 22 | Xft.antialias: true 23 | Xft.lcdfilter: lcddefault 24 | 25 | !! Bitmap 26 | !URxvt*font: -*-terminus-medium-r-normal-*-12-*-*-*-c-*-*-1 */ 27 | 28 | ! Inconsolata 29 | URxvt.font: xft:Inconsolata:medium:size=13,xft:Dejavu Sans Mono:medium:size=13 30 | URxvt.boldFont: xft:Inconsolata:bold:size=13:style=bold,xft:Dejavu Sans Mono:bold:size=13:style=bold 31 | URxvt.italicFont: xft:Inconsolata:italic:size=13:style=italic,xft:Dejavu Sans Mono:italic:size=13:style=italic 32 | !URxvt.letterSpace: -1 33 | 34 | ! Source Code Pro 35 | !URxvt.font: xft:Source Code Pro:medium:pixelsize=15 36 | !URxvt.boldFont: xft:Source Code Pro:bold:pixelsize=15 37 | !URxvt.italicFont: xft:Source Code Pro:italic:pixelsize=15 38 | !URxvt.letterSpace: -1 39 | 40 | ! -------- 41 | ! Cursor 42 | ! -------- 43 | 44 | Xcursor.theme: Vanilla-DMZ-AA 45 | 46 | ! -------- 47 | ! Laptop settings 48 | ! -------- 49 | 50 | ! 13 inches FHD 51 | #ifdef SRVR_ada 52 | Xft.dpi: 120 53 | Xcursor.size: 36 54 | URxvt.font: xft:Inconsolata:medium:size=12,xft:Dejavu Sans Mono:medium:size=12 55 | URxvt.boldFont: xft:Inconsolata:bold:size=12:style=bold,xft:Dejavu Sans Mono:bold:size=12:style=bold 56 | URxvt.italicFont: xft:Inconsolata:italic:size=12:style=italic,xft:Dejavu Sans Mono:italic:size=12:style=italic 57 | #endif 58 | 59 | ! -------- 60 | ! Color-scheme 61 | ! -------- 62 | ! Loaded from base16-xresources 63 | 64 | #define background_opacity 95 65 | #include ".config/base16-xresources/xresources/base16-tomorrow-night-256.Xresources" 66 | -------------------------------------------------------------------------------- /install.conf.yaml: -------------------------------------------------------------------------------- 1 | - defaults: 2 | link: 3 | create: true 4 | 5 | - clean: ['~', '~/.config'] 6 | 7 | - link: 8 | # admiral 9 | #~/.config/admiral.d: admiral.d 10 | 11 | # base16 12 | ~/.config/base16-shell: base16-shell 13 | ~/.config/base16-xresources: base16-xresources 14 | ~/.config/base16-gnome-terminal: base16-gnome-terminal 15 | 16 | # bash 17 | ~/.bash_aliases: bash/bash_aliases 18 | ~/.bash_logout: bash/bash_logout 19 | ~/.bash_profile: bash/bash_profile 20 | ~/.bashrc: bash/bashrc 21 | ~/.profile: bash/profile 22 | 23 | # bspwm 24 | ~/.config/bspwm: bspwm 25 | 26 | # cmus 27 | 28 | # colors 29 | #~/.config/colors: colors 30 | 31 | # compton 32 | ~/.config/compton.conf: compton/compton.conf 33 | 34 | # cvim 35 | ~/.cvimrc: cvim/cvimrc 36 | 37 | # dunst 38 | ~/.config/dunst/dunstrc: dunst/dunstrc 39 | 40 | # fonts 41 | #~/.config/fontconfig/fonts.conf: fonts/fonts.conf 42 | 43 | # git 44 | ~/.gitconfig: git/gitconfig 45 | 46 | # ideavim 47 | ~/.ideavimrc: ideavim/ideavimrc 48 | 49 | # nvim and vim 50 | ~/.config/nvim/autoload: nvim/autoload 51 | ~/.config/nvim/syntax: nvim/syntax 52 | ~/.config/nvim/init.vim: nvim/init.vim 53 | 54 | ~/.vim/autoload: nvim/autoload 55 | ~/.vim/syntax: nvim/syntax 56 | ~/.vim/vimrc: nvim/init.vim 57 | 58 | # polybar 59 | ~/.config/polybar/config: polybar/config 60 | ~/.config/polybar/scripts: polybar/scripts 61 | 62 | # redshift 63 | #~/.config/redshift.conf: redshift/redshift.conf 64 | #~/.config/autostart/redshift.desktop: redshift/redshift.desktop 65 | 66 | # rofi 67 | ~/.config/rofi/config: rofi/config 68 | 69 | # ssh 70 | ~/.ssh/config: ssh/config 71 | 72 | # sxhkd 73 | ~/.config/sxhkd/sxhkdrc: sxhkd/sxhkdrc 74 | 75 | # xorg 76 | ~/.xinitrc: xorg/xinitrc 77 | ~/.Xresources: xorg/Xresources 78 | ~/.xprofile: xorg/xprofile 79 | 80 | # zathura 81 | ~/.config/zathura/zathurarc: zathura/zathurarc 82 | 83 | - shell: 84 | - [sh feh/download-wallpapers.sh, Downloading feh wallpapers] 85 | 86 | - [git submodule update --init --recursive, Installing submodules] 87 | 88 | - [cd nvim; ./update-plug.sh, Updating plug.vim] 89 | -------------------------------------------------------------------------------- /compton/compton.conf: -------------------------------------------------------------------------------- 1 | # Shadow 2 | shadow = true; 3 | no-dnd-shadow = true; 4 | no-dock-shadow = true; 5 | clear-shadow = true; 6 | shadow-radius = 16; 7 | shadow-offset-x = -24; 8 | shadow-offset-y = -24; 9 | # shadow-opacity = 0.7; 10 | # shadow-red = 0.0; 11 | # shadow-green = 0.0; 12 | # shadow-blue = 0.0; 13 | shadow-exclude = [ 14 | "name = 'Notification'", 15 | "class_g = 'Conky'", 16 | "class_g ?= 'Notify-osd'", 17 | "class_g = 'Cairo-clock'", 18 | "_GTK_FRAME_EXTENTS@:c" 19 | ]; 20 | # shadow-exclude = "n:e:Notification"; 21 | # shadow-exclude-reg = "x10+0+0"; 22 | # xinerama-shadow-crop = true; 23 | 24 | # Opacity 25 | menu-opacity = 0.9; 26 | inactive-opacity = 0.9; 27 | # active-opacity = 0.8; 28 | frame-opacity = 0.7; 29 | inactive-opacity-override = false; 30 | alpha-step = 0.06; 31 | # inactive-dim = 0.2; 32 | # inactive-dim-fixed = true; 33 | # blur-background = true; 34 | # blur-background-frame = true; 35 | blur-kern = "3x3box"; 36 | # blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; 37 | # blur-background-fixed = true; 38 | blur-background-exclude = [ 39 | "window_type = 'dock'", 40 | "window_type = 'desktop'", 41 | "_GTK_FRAME_EXTENTS@:c" 42 | ]; 43 | # opacity-rule = [ "80:class_g = 'URxvt'" ]; 44 | 45 | # Fading 46 | fading = true; 47 | # fade-delta = 30; 48 | fade-in-step = 0.1; 49 | fade-out-step = 0.1; 50 | # no-fading-openclose = true; 51 | # no-fading-destroyed-argb = true; 52 | fade-exclude = [ ]; 53 | 54 | # Other 55 | backend = "xrender"; 56 | mark-wmwin-focused = true; 57 | mark-ovredir-focused = true; 58 | # use-ewmh-active-win = true; 59 | detect-rounded-corners = true; 60 | detect-client-opacity = true; 61 | refresh-rate = 0; 62 | vsync = "none"; 63 | dbe = false; 64 | paint-on-overlay = true; 65 | # sw-opti = true; 66 | # unredir-if-possible = true; 67 | # unredir-if-possible-delay = 5000; 68 | # unredir-if-possible-exclude = [ ]; 69 | focus-exclude = [ "class_g = 'Cairo-clock'" ]; 70 | detect-transient = true; 71 | detect-client-leader = true; 72 | invert-color-include = [ ]; 73 | # resize-damage = 1; 74 | 75 | # GLX backend 76 | # glx-no-stencil = true; 77 | glx-copy-from-front = false; 78 | # glx-use-copysubbuffermesa = true; 79 | # glx-no-rebind-pixmap = true; 80 | glx-swap-method = "undefined"; 81 | # glx-use-gpushader4 = true; 82 | # xrender-sync = true; 83 | # xrender-sync-fence = true; 84 | 85 | # Window type settings 86 | wintypes: 87 | { 88 | tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; }; 89 | }; 90 | -------------------------------------------------------------------------------- /xorg/bin/color-pacman: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Original Posted at http://crunchbang.org/forums/viewtopic.php?pid=126921%23p126921#p126921 3 | # [ESC] character in original post removed here. 4 | 5 | # ANSI Color -- use these variables to easily have different color 6 | # and format output. Make sure to output the reset sequence after 7 | # colors (f = foreground, b = background), and use the 'off' 8 | # feature for anything you turn on. 9 | 10 | initializeANSI() 11 | { 12 | esc="$(echo -en '\e')" 13 | 14 | blackf="${esc}[30m"; redf="${esc}[31m"; greenf="${esc}[32m" 15 | yellowf="${esc}[33m" bluef="${esc}[34m"; purplef="${esc}[35m" 16 | cyanf="${esc}[36m"; whitef="${esc}[37m" 17 | 18 | blackb="${esc}[40m"; redb="${esc}[41m"; greenb="${esc}[42m" 19 | yellowb="${esc}[43m" blueb="${esc}[44m"; purpleb="${esc}[45m" 20 | cyanb="${esc}[46m"; whiteb="${esc}[47m" 21 | 22 | boldon="${esc}[1m"; boldoff="${esc}[22m" 23 | italicson="${esc}[3m"; italicsoff="${esc}[23m" 24 | ulon="${esc}[4m"; uloff="${esc}[24m" 25 | invon="${esc}[7m"; invoff="${esc}[27m" 26 | 27 | reset="${esc}[0m" 28 | } 29 | 30 | # note in this first use that switching colors doesn't require a reset 31 | # first - the new color overrides the old one. 32 | 33 | #clear 34 | 35 | initializeANSI 36 | 37 | cat << EOF 38 | 39 | ${yellowf} ▄███████▄${reset} ${redf} ▄██████▄${reset} ${greenf} ▄██████▄${reset} ${bluef} ▄██████▄${reset} ${purplef} ▄██████▄${reset} ${cyanf} ▄██████▄${reset} 40 | ${yellowf}▄█████████▀▀${reset} ${redf}▄${whitef}█▀█${redf}██${whitef}█▀█${redf}██▄${reset} ${greenf}▄${whitef}█▀█${greenf}██${whitef}█▀█${greenf}██▄${reset} ${bluef}▄${whitef}█▀█${bluef}██${whitef}█▀█${bluef}██▄${reset} ${purplef}▄${whitef}█▀█${purplef}██${whitef}█▀█${purplef}██▄${reset} ${cyanf}▄${whitef}█▀█${cyanf}██${whitef}█▀█${cyanf}██▄${reset} 41 | ${yellowf}███████▀${reset} ${redf}█${whitef}▄▄█${redf}██${whitef}▄▄█${redf}███${reset} ${greenf}█${whitef}▄▄█${greenf}██${whitef}▄▄█${greenf}███${reset} ${bluef}█${whitef}▄▄█${bluef}██${whitef}▄▄█${bluef}███${reset} ${purplef}█${whitef}▄▄█${purplef}██${whitef}▄▄█${purplef}███${reset} ${cyanf}█${whitef}▄▄█${cyanf}██${whitef}▄▄█${cyanf}███${reset} 42 | ${yellowf}███████▄${reset} ${redf}████████████${reset} ${greenf}████████████${reset} ${bluef}████████████${reset} ${purplef}████████████${reset} ${cyanf}████████████${reset} 43 | ${yellowf}▀█████████▄▄${reset} ${redf}██▀██▀▀██▀██${reset} ${greenf}██▀██▀▀██▀██${reset} ${bluef}██▀██▀▀██▀██${reset} ${purplef}██▀██▀▀██▀██${reset} ${cyanf}██▀██▀▀██▀██${reset} 44 | ${yellowf} ▀███████▀${reset} ${redf}▀ ▀ ▀ ▀${reset} ${greenf}▀ ▀ ▀ ▀${reset} ${bluef}▀ ▀ ▀ ▀${reset} ${purplef}▀ ▀ ▀ ▀${reset} ${cyanf}▀ ▀ ▀ ▀${reset} 45 | 46 | ${boldon}${yellowf} ▄███████▄ ${redf} ▄██████▄ ${greenf} ▄██████▄ ${bluef} ▄██████▄ ${purplef} ▄██████▄ ${cyanf} ▄██████▄${reset} 47 | ${boldon}${yellowf}▄█████████▀▀ ${redf}▄${whitef}█▀█${redf}██${whitef}█▀█${redf}██▄ ${greenf}▄${whitef}█▀█${greenf}██${whitef}█▀█${greenf}██▄ ${bluef}▄${whitef}█▀█${bluef}██${whitef}█▀█${bluef}██▄ ${purplef}▄${whitef}█▀█${purplef}██${whitef}█▀█${purplef}██▄ ${cyanf}▄${whitef}█▀█${cyanf}██${whitef}█▀█${cyanf}██▄${reset} 48 | ${boldon}${yellowf}███████▀ ${redf}█${whitef}▄▄█${redf}██${whitef}▄▄█${redf}███ ${greenf}█${whitef}▄▄█${greenf}██${whitef}▄▄█${greenf}███ ${bluef}█${whitef}▄▄█${bluef}██${whitef}▄▄█${bluef}███ ${purplef}█${whitef}▄▄█${purplef}██${whitef}▄▄█${purplef}███ ${cyanf}█${whitef}▄▄█${cyanf}██${whitef}▄▄█${cyanf}███${reset} 49 | ${boldon}${yellowf}███████▄ ${redf}████████████ ${greenf}████████████ ${bluef}████████████ ${purplef}████████████ ${cyanf}████████████${reset} 50 | ${boldon}${yellowf}▀█████████▄▄ ${redf}██▀██▀▀██▀██ ${greenf}██▀██▀▀██▀██ ${bluef}██▀██▀▀██▀██ ${purplef}██▀██▀▀██▀██ ${cyanf}██▀██▀▀██▀██${reset} 51 | ${boldon}${yellowf} ▀███████▀ ${redf}▀ ▀ ▀ ▀ ${greenf}▀ ▀ ▀ ▀ ${bluef}▀ ▀ ▀ ▀ ${purplef}▀ ▀ ▀ ▀ ${cyanf}▀ ▀ ▀ ▀${reset} 52 | 53 | EOF 54 | -------------------------------------------------------------------------------- /sxhkd/sxhkdrc: -------------------------------------------------------------------------------- 1 | # 2 | # wm independent hotkeys 3 | # 4 | 5 | # terminal emulator 6 | super + Return 7 | urxvt 8 | 9 | # program launcher 10 | super + @space 11 | rofi -show combi 12 | 13 | # make sxhkd reload its configuration files: 14 | super + Escape 15 | pkill -USR1 -x sxhkd 16 | 17 | # 18 | # bspwm hotkeys 19 | # 20 | 21 | # quit bspwm normally 22 | super + alt + Escape 23 | bspc quit 24 | 25 | # close and kill 26 | super + {_,shift + }w 27 | bspc node -{c,k} 28 | 29 | # alternate between the tiled and monocle layout 30 | super + m 31 | bspc desktop -l next 32 | 33 | # if the current node is automatic, send it to the last manual, otherwise pull the last leaf 34 | super + y 35 | bspc query -N -n focused.automatic && bspc node -n last.!automatic || bspc node last.leaf -n focused 36 | 37 | # swap the current node and the biggest node 38 | super + g 39 | bspc node -s biggest 40 | 41 | # 42 | # state/flags 43 | # 44 | 45 | # set the window state 46 | super + {t,shift + t,s,f} 47 | bspc node -t {tiled,pseudo_tiled,floating,fullscreen} 48 | 49 | # set the node flags 50 | super + ctrl + {x,y,z} 51 | bspc node -g {locked,sticky,private} 52 | 53 | # 54 | # focus/swap 55 | # 56 | 57 | # focus the node in the given direction 58 | super + {_,shift + }{h,j,k,l} 59 | bspc node -{f,s} {west,south,north,east} 60 | 61 | # focus the node for the given path jump 62 | super + {p,b,comma,period} 63 | bspc node -f @{parent,brother,first,second} 64 | 65 | # focus the next/previous node in the current desktop 66 | super + {_,shift + }c 67 | bspc node -f {next,prev}.local 68 | 69 | # focus the next/previous desktop in the current monitor 70 | super + bracket{left,right} 71 | bspc desktop -f {prev,next}.local 72 | 73 | # move to the next/previous desktop in the current monitor 74 | super + shift + bracket{left,right} 75 | bspc node -d {prev,next}.local 76 | 77 | # focus the last node/desktop 78 | super + {grave,Tab} 79 | bspc {node,desktop} -f last 80 | 81 | # focus the older or newer node in the focus history 82 | super + {o,i} 83 | bspc wm -h off; \ 84 | bspc node {older,newer} -f; \ 85 | bspc wm -h on 86 | 87 | # focus or send to the given desktop 88 | super + {_,shift + }{1-9,0} 89 | bspc {desktop -f,node -d} '^{1-9,10}' 90 | 91 | # 92 | # preselect 93 | # 94 | 95 | # preselect the direction 96 | super + ctrl + {h,j,k,l} 97 | bspc node -p {west,south,north,east} 98 | 99 | # preselect the ratio 100 | super + ctrl + {1-9} 101 | bspc node -o 0.{1-9} 102 | 103 | # cancel the preselection for the focused node 104 | super + ctrl + space 105 | bspc node -p cancel 106 | 107 | # cancel the preselection for the focused desktop 108 | super + ctrl + shift + space 109 | bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel 110 | 111 | # 112 | # move/resize 113 | # 114 | 115 | # expand a window by moving one of its side outward 116 | super + alt + {h,j,k,l} 117 | bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} 118 | 119 | # contract a window by moving one of its side inward 120 | super + alt + shift + {h,j,k,l} 121 | bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} 122 | 123 | # move a floating window 124 | super + alt + {Left,Down,Up,Right} 125 | bspc node -v {-20 0,0 20,0 -20,20 0} 126 | 127 | # 128 | # window gap 129 | # 130 | 131 | # decrease/increse window gap 132 | super + {minus,equal} 133 | bspc config -d focused window_gap $((`bspc config -d focused window_gap` {-,+} 4)) 134 | 135 | # reset window gap 136 | super + shift + {minus,equal} 137 | bspc config -d focused window_gap 8 138 | 139 | # 140 | # flip/rotate 141 | # 142 | 143 | # flips the desktop along a vertical line 144 | super + {Left,Right} 145 | bspc node @/ -F vertical 146 | 147 | # flips the desktop along a horizontal line 148 | super + {Up,Down} 149 | bspc node @/ -F horizontal 150 | 151 | # rotates counter-clockwise/clockwise 152 | super + shift + {Left, Right} 153 | bspc node @/ -R {-90, 90} 154 | 155 | # 156 | # media keys 157 | # 158 | 159 | XF86AudioMute 160 | sh ~/.config/polybar/scripts/pulseaudio.sh --mute 161 | 162 | XF86AudioLowerVolume 163 | sh ~/.config/polybar/scripts/pulseaudio.sh --down 164 | 165 | XF86AudioRaiseVolume 166 | sh ~/.config/polybar/scripts/pulseaudio.sh --up 167 | 168 | XF86MonBrightnessDown 169 | xbacklight -dec 10 170 | 171 | XF86MonBrightnessUp 172 | xbacklight -inc 10 173 | 174 | XF86Sleep 175 | pm-suspend 176 | 177 | # 178 | # misc 179 | # 180 | 181 | ctrl + alt + l 182 | sh ~/.dotfiles/i3lock/lock.sh 183 | -------------------------------------------------------------------------------- /polybar/scripts/pulseaudio.sh: -------------------------------------------------------------------------------- 1 | #!/bin/env sh 2 | # This scripts constantly prints pulseaudio status 3 | # to stdout with an adequate format for use with 4 | # the custom/script polybar module. 5 | 6 | # ---------------- 7 | # Functions for getting the status of pulseaudio sinks. 8 | # ---------------- 9 | 10 | # Prints the default sink name. 11 | print_default_sink_name() { 12 | pacmd stat | awk -F": " '/^Default sink name: /{print $2}' 13 | } 14 | 15 | # Prints the default sink id. 16 | print_default_sink_id() { 17 | pactl list short sinks | grep $(print_default_sink_name) | awk '{print $1}' 18 | } 19 | 20 | # Prints the running sink name that is also the default sink. 21 | print_default_running_sink_name() { 22 | pactl list short sinks | grep RUNNING | grep $(print_default_sink_name) | awk '{print $2}' 23 | } 24 | 25 | # Prints the running sink id that is also the default sink. 26 | print_default_running_sink_id() { 27 | pactl list short sinks | grep RUNNING | grep $(print_default_sink_name) | awk '{print $1}' 28 | } 29 | 30 | # Prints the first running sink name. 31 | print_running_sink_name() { 32 | pactl list short sinks | grep RUNNING | head -n 1 | awk '{print $2}' 33 | } 34 | 35 | # Prints the first running sink id. 36 | print_running_sink_id() { 37 | pactl list short sinks | grep RUNNING | head -n 1 | awk '{print $1}' 38 | } 39 | 40 | # ---------------- 41 | # Functions for getting and updating the best sink. 42 | # ---------------- 43 | 44 | # Prints the best sink from the list of sinks, ordering is; 45 | # default and running > running > default. 46 | print_best_sink() { 47 | local default_running_sink=$(print_default_running_sink_id) 48 | local running_sink=$(print_running_sink_id) 49 | 50 | if [ ! -z "$default_running_sink" ]; then 51 | echo $default_running_sink 52 | elif [ ! -z "$running_sink" ]; then 53 | echo $running_sink 54 | else 55 | print_default_sink_id 56 | fi 57 | } 58 | 59 | # Keeps track of and updates the sink in use. 60 | # The current sink id is also saved to SINK_FILE. 61 | SINK_FILE=/tmp/pulseaudio-sink 62 | update_sink() { 63 | local sink= 64 | local updated=false 65 | 66 | if [ $# -eq 0 ]; then 67 | sink=$(print_best_sink) 68 | updated=true 69 | elif [ ! -z "$1" ]; then 70 | if echo "$1" | grep -q "'\(new\|remove\)' on sink"; then 71 | sink=$(print_best_sink) 72 | updated=true 73 | elif echo "$event" | grep -q "on \(sink-input\|source-output\)"; then 74 | sink=$(print_best_sink) 75 | updated=true 76 | fi 77 | elif [ ! -z "$sink" -a "$sink" -ne $(cat "$SINK_FILE") ]; then 78 | updated=true 79 | fi 80 | 81 | if [ "$updated" = true ]; then 82 | echo "$sink" > "$SINK_FILE" 83 | echo "$sink" 84 | fi 85 | } 86 | 87 | # ---------------- 88 | # Script actions. 89 | # ---------------- 90 | 91 | volume_down() { 92 | if [ -f "$SINK_FILE" ]; then 93 | pamixer --sink $(cat "$SINK_FILE") -d 5 94 | else 95 | pamixer -d 5 96 | fi 97 | } 98 | 99 | volume_up() { 100 | if [ -f "$SINK_FILE" ]; then 101 | pamixer --sink $(cat "$SINK_FILE") -i 5 102 | else 103 | pamixer -i 5 104 | fi 105 | } 106 | 107 | volume_mute() { 108 | if [ -f "$SINK_FILE" ]; then 109 | pamixer --sink $(cat "$SINK_FILE") -t 110 | else 111 | pamixer -t 112 | fi 113 | } 114 | 115 | # print_format shows the status for the current sink. 116 | sink=$([ -f "$SINK_FILE" ] && cat "$SINK_FILE" || update_sink) 117 | print_format() { 118 | # Checks that the current sink exists. 119 | if pactl list short sinks | awk '{print $1}' | grep -q "^$sink$"; then 120 | local muted=$(pamixer --sink $sink --get-mute) 121 | local volume=$(pamixer --sink $sink --get-volume) 122 | # Sets icon. 123 | local icon= 124 | if [ "$muted" = "true" ]; then 125 | icon=%{F#666866}%{F-} 126 | elif [ "$volume" -lt 30 ]; then 127 | icon= 128 | elif [ "$volume" -lt 60 ]; then 129 | icon= 130 | else 131 | icon= 132 | fi 133 | # Prints output. 134 | echo "$icon $volume%" 135 | fi 136 | } 137 | 138 | listen() { 139 | print_format 140 | pactl subscribe | while read -r event; do 141 | new_sink=$(update_sink $event) 142 | if [ ! -z "$new_sink" ]; then 143 | sink=$new_sink 144 | print_format 145 | elif echo "$event" | grep -q "on sink #$sink$"; then 146 | print_format 147 | fi 148 | done 149 | } 150 | 151 | case "$1" in 152 | --down) 153 | volume_down 154 | ;; 155 | --up) 156 | volume_up 157 | ;; 158 | --mute) 159 | volume_mute 160 | ;; 161 | *) 162 | listen 163 | ;; 164 | esac 165 | -------------------------------------------------------------------------------- /distros/ubuntu/README.md: -------------------------------------------------------------------------------- 1 | ## Installation 2 | 3 | Run the install script: 4 | 5 | ./install 6 | 7 | ## Post-install 8 | 9 | * Install Graphics Driver 10 | * Configure Redshift so it autostarts (startup apps, etc). 11 | 12 | ### Uninstall and Disable Grub 13 | 14 | If you are using a different bootloader (such as rEFInd). You can uninstall grub: 15 | 16 | ``` 17 | sudo apt-get purge --auto-remove grub* 18 | ``` 19 | 20 | Aditionally, some updates are gonna try to install it again during some 21 | dist-upgrades, make sure to disable grub temporarily by using: 22 | 23 | ``` 24 | sudo apt-mark hold grub* grub*:i386 25 | ``` 26 | 27 | ### Development tools installation 28 | 29 | #### JDK 30 | 31 | Install the default one (OpenJDK): 32 | 33 | ``` 34 | sudo apt-get install default-jdk 35 | ``` 36 | 37 | Or Oracle JDK: 38 | https://launchpad.net/~webupd8team/+archive/ubuntu/java 39 | 40 | #### nvm 41 | 42 | https://github.com/creationix/nvm 43 | 44 | Manual install is as follows: 45 | 46 | ``` 47 | export NVM_DIR="$HOME/.nvm" && ( 48 | git clone https://github.com/creationix/nvm.git "$NVM_DIR" 49 | cd "$NVM_DIR" 50 | git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` 51 | ) && . "$NVM_DIR/nvm.sh" 52 | ``` 53 | 54 | Remember to add the source to one of your bash files for automatic sourcing at login: 55 | 56 | ``` 57 | export NVM_DIR="$HOME/.nvm" 58 | [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm 59 | ``` 60 | 61 | #### SDKMAN! 62 | 63 | http://sdkman.io/install.html 64 | 65 | Install to custom location: 66 | 67 | ``` 68 | export SDKMAN_DIR="$HOME/.sdkman" && ( 69 | curl -s "https://get.sdkman.io" | bash 70 | ) 71 | ``` 72 | 73 | #### Go 74 | 75 | https://golang.org/doc/install 76 | 77 | If it was installed to a custom location, add `GOROOT` to the environment 78 | variables along with the `bin` folder: 79 | 80 | ``` 81 | export GOROOT="$HOME/.golang" 82 | export PATH="$GOROOT/bin:$PATH" 83 | ``` 84 | 85 | #### Rust 86 | 87 | https://www.rustup.rs/ 88 | 89 | ``` 90 | curl https://sh.rustup.rs -sSf | sh 91 | ``` 92 | 93 | #### Haskell 94 | 95 | https://docs.haskellstack.org/en/stable/README/ 96 | 97 | ``` 98 | curl -sSL https://get.haskellstack.org/ | sh 99 | ``` 100 | 101 | #### Amazon Web Services tools 102 | 103 | Using Python 3 venv: 104 | 105 | ``` 106 | python3 -m venv ~/.awscli-venv 107 | source ~/.awscli-venv/bin/activate 108 | pip install --upgrade pip 109 | pip install --upgrade awscli awsebcli 110 | ``` 111 | 112 | #### Docker and Docker compose 113 | 114 | https://docs.docker.com/engine/installation/linux/ubuntu/ 115 | https://docs.docker.com/compose/install/ 116 | 117 | Change docker storage folder: 118 | 119 | http://stackoverflow.com/questions/24309526/how-to-change-the-docker-image-installation-directory 120 | 121 | Or for systemd: 122 | 123 | https://docs.docker.com/engine/admin/systemd/ 124 | 125 | #### KVM (Android SDK Avd) 126 | 127 | Detailed instructions [here](https://help.ubuntu.com/community/KVM/Installation). 128 | 129 | ``` 130 | sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils 131 | ``` 132 | 133 | And add user to the kvm and libvirtd groups: 134 | 135 | ``` 136 | sudo usermod -a -G kvm [USER_NAME] 137 | sudo usermod -a -G libvirtd [USER_NAME] 138 | ``` 139 | 140 | ### Restore public SSH keys from private keys 141 | 142 | Copy the private key to the `~/.ssh` repo and set the permissions to `400`. Then use 143 | the following command to generate a public key from a private one: 144 | 145 | ``` 146 | ssh-keygen -y -f [PRIVATE-KEY] > [PUBLIC-KEY] 147 | ``` 148 | 149 | ### Enable SSD Optimizations 150 | 151 | Set the swappiness and enable TRIM. Check the link for more information: 152 | 153 | https://www.leaseweb.com/labs/2013/07/5-crucial-optimizations-for-ssd-usage-in-ubuntu-linux/ 154 | 155 | ### VPN 156 | 157 | Use network manager to set OpenVPN profiles. It is compatible with the kernel killswitch provided by the ufw script in these dotfiles. 158 | 159 | Check here: 160 | https://www.privateinternetaccess.com/forum/discussion/18003/openvpn-step-by-step-setups-for-various-debian-based-linux-oss-with-videos-ubuntu-mint-debian 161 | 162 | ### Troubleshooting 163 | 164 | #### URxvt 165 | 166 | The default .desktop entry can be changed to get a better behaviour from urxvt. 167 | Edit the file `/usr/share/applications/rxvt-unicode.desktop` and make the 168 | following changes: 169 | 170 | * Change the `Icon` value to `utilities-terminal` for a better icon. 171 | * Create the new key-value pair `StartupWMClass=urxvt`. this will enable DEs 172 | to associate any urxvt instance with the desktop file. 173 | -------------------------------------------------------------------------------- /nvim/syntax/jflex.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: JFlex 3 | " Maintainer: Gerwin Klein 4 | 5 | " Thanks to Michael Brailsford for help and suggestions 6 | 7 | " Quit when a syntax file was already loaded {{{ 8 | if exists("b:current_syntax") 9 | finish 10 | endif 11 | "}}} 12 | 13 | " Include java syntax {{{ 14 | if version >= 600 15 | runtime! syntax/java.vim 16 | unlet b:current_syntax 17 | else 18 | so $VIMRUNTIME/syntax/java.vim 19 | endif 20 | "}}} 21 | 22 | syn cluster jflexOptions contains=jflexOption,jflexCodeInclude,jflexComment,jflexMacroIdent,jflexMacroRegExp,jflexOptionError 23 | syn cluster jflexRules contains=jflexRule,jflexComment,jflexActionCode,jflexRuleStates,jflexRegExp 24 | 25 | " java code section 26 | syn region jflexStart start="/\*\|//\|import\|package\|class"me=s end="^%%"me=e-2 contains=@javaTop nextgroup=jflexOptionReg 27 | 28 | " %% 29 | " options 30 | syn region jflexOptionReg matchgroup=jflexSectionSep start="^%%" end="^%%"me=e-2 contains=@jflexOptions nextgroup=jflexRulesReg 31 | 32 | syn match jflexOptionError "%\i*" contained 33 | 34 | syn match jflexOption "^\(%s\|%x\)" contained 35 | syn match jflexOption "^%state" contained 36 | syn match jflexOption "^%states" contained 37 | syn match jflexOption "^%xstate" contained 38 | syn match jflexOption "^%xstates" contained 39 | syn match jflexOption "^%char" contained 40 | syn match jflexOption "^%line" contained 41 | syn match jflexOption "^%column" contained 42 | syn match jflexOption "^%byaccj" contained 43 | syn match jflexOption "^%cup" contained 44 | syn match jflexOption "^%cupsym" contained 45 | syn match jflexOption "^%cupdebug" contained 46 | syn match jflexOption "^%eofclose" contained 47 | syn match jflexOption "^%class" contained 48 | syn match jflexOption "^%function" contained 49 | syn match jflexOption "^%type" contained 50 | syn match jflexOption "^%integer" contained 51 | syn match jflexOption "^%int" contained 52 | syn match jflexOption "^%intwrap" contained 53 | syn match jflexOption "^%yyeof" contained 54 | syn match jflexOption "^%notunix" contained 55 | syn match jflexOption "^%7bit" contained 56 | syn match jflexOption "^%8bit" contained 57 | syn match jflexOption "^%full" contained 58 | syn match jflexOption "^%16bit" contained 59 | syn match jflexOption "^%unicode" contained 60 | syn match jflexOption "^%caseless" contained 61 | syn match jflexOption "^%ignorecase" contained 62 | syn match jflexOption "^%implements" contained 63 | syn match jflexOption "^%extends" contained 64 | syn match jflexOption "^%public" contained 65 | syn match jflexOption "^%apiprivate" contained 66 | syn match jflexOption "^%final" contained 67 | syn match jflexOption "^%abstract" contained 68 | syn match jflexOption "^%debug" contained 69 | syn match jflexOption "^%standalone" contained 70 | syn match jflexOption "^%pack" contained 71 | syn match jflexOption "^%include" contained 72 | syn match jflexOption "^%buffer" contained 73 | syn match jflexOption "^%initthrow" contained 74 | syn match jflexOption "^%eofthrow" contained 75 | syn match jflexOption "^%yylexthrow" contained 76 | syn match jflexOption "^%throws" contained 77 | syn match jflexOption "^%scannerror" contained 78 | 79 | syn match jflexMacroIdent "\I\i*\s*="me=e-1 contained nextgroup=jflexMacroRegExp 80 | 81 | syn region jflexMacroRegExp matchgroup=jflexOperator start="=" end="^\(%\|\I\|\i\|/\)"me=e-1 contains=NONE contained 82 | 83 | syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%{" end="^%}" contains=@javaTop contained 84 | syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%init{" end="^%init}" contains=@javaTop contained 85 | syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%initthrow{" end="^%initthrow}" contains=@javaTop contained 86 | syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%eof{" end="^%eof}" contains=@javaTop contained 87 | syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%eofthrow{" end="^%eofthrow}" contains=@javaTop contained 88 | syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%yylexthrow{" end="^%yylexthrow}" contains=@javaTop contained 89 | syn region jflexCodeInclude matchgroup=jflexCodeIncludeMark start="^%eofval{" end="^%eofval}" contains=@javaTop contained 90 | 91 | " rules (end pattern shouldn't occur, if it does anyway we just stay in jflexRulesReg) 92 | syn region jflexRulesReg matchgroup=jflexSectionSep start="^%%" end="^%%"me=e-2 contains=@jflexRules 93 | 94 | " at first everything but strings is a regexp 95 | syn match jflexRegExp "\([^\" \t]\|\\\"\)\+" contained 96 | 97 | " take out comments 98 | syn match jflexComment "//.*" contained 99 | syn region jflexComment start="/\*" end="\*/" contained contains=jflexComment 100 | 101 | " lex states 102 | syn match jflexRuleStates "<\s*\I\i*\(\s*,\s*\I\i*\)*\s*>" contained skipnl skipwhite nextgroup=jflexStateGroup 103 | 104 | " action code (only after states braces and macro use) 105 | syn region jflexActionCode matchgroup=Delimiter start="{" end="}" contained contains=@javaTop,jflexJavaBraces 106 | 107 | " macro use 108 | syn match jflexRegExp "{\s*\I\i*\s*}" contained 109 | 110 | " state braces (only active after ) 111 | syn region jflexStateGroup matchgroup=jflexRuleStates start="{$" start="{\s" end="}" contained contains=@jflexRules 112 | 113 | " string 114 | syn region jflexRegExp matchgroup=String start=+"+ skip=+\\\\\|\\"+ end=+"+ contained 115 | 116 | " not to be confused with a state 117 | syn match jflexRegExp "<>" contained 118 | 119 | " escape sequence 120 | syn match jflexRegExp "\\." contained 121 | 122 | 123 | " keep braces in actions balanced 124 | syn region jflexJavaBraces start="{" end="}" contained contains=@javaTop,jflexJavaBraces 125 | 126 | 127 | " syncing 128 | syn sync clear 129 | syn sync minlines=10 130 | syn sync match jflexSync grouphere jflexOptionReg "^%[a-z]" 131 | syn sync match jflexSync grouphere jflexRulesReg "^<" 132 | 133 | 134 | " highlighting 135 | hi link jflexOption Special 136 | hi link jflexMacroIdent Ident 137 | hi link jflexMacroRegExp Macro 138 | hi link jflexOptionError Error 139 | hi link jflexComment Comment 140 | hi link jflexOperator Operator 141 | hi link jflexRuleStates Special 142 | hi link jflexRegExp Function 143 | hi jflexSectionSep guifg=yellow ctermfg=yellow guibg=blue ctermbg=blue gui=bold cterm=bold 144 | hi link jflexCodeIncludeMark jflexSectionSep 145 | 146 | let b:current_syntax="jflex" 147 | -------------------------------------------------------------------------------- /nvim/init.vim: -------------------------------------------------------------------------------- 1 | " ---------------- 2 | " Setting up vimdir 3 | " ---------------- 4 | 5 | let vimdir = '$HOME/.config/nvim' 6 | if !has("nvim") && !has("win32") 7 | let vimdir = '$HOME/.vim' 8 | elseif has("nvim") && has("win32") 9 | let vimdir = '$HOME/AppData/Local/nvim' 10 | elseif !has("nvim") && has("win32") 11 | let vimdir = '$HOME/vimfiles' 12 | endif 13 | 14 | " ---------------- 15 | " GVim configuration 16 | " ---------------- 17 | 18 | if !has('nvim') && has('gui_running') 19 | "set guifont=Consolas:h12 20 | set guifont=Source\ Code\ Pro\ 12 21 | set guioptions-=m "remove menu 22 | set guioptions-=T "remove toolbar 23 | set guioptions-=r "remove right scroll bar 24 | set guioptions-=L "remove left scroll bar 25 | endif 26 | 27 | " ---------------- 28 | " Vim configuration 29 | " ---------------- 30 | 31 | set encoding=utf8 32 | 33 | " syntax 34 | filetype plugin indent on 35 | syntax on 36 | syntax enable 37 | 38 | " editor UI 39 | set guicursor= 40 | set number 41 | set cursorline 42 | set showcmd 43 | set scrolloff=4 " Always n lines visible when scrolling 44 | 45 | " nvim/vim mismatch of esc keys 46 | if !has('nvim') 47 | set noesckeys " Disable Esc-key escape sequences 48 | endif 49 | 50 | " relative numbers 51 | nnoremap :set relativenumber! relativenumber? 52 | nnoremap n :set relativenumber! relativenumber? 53 | 54 | " copy and paste from system clipboard 55 | nnoremap y "+y 56 | nnoremap p "+p 57 | 58 | " indentation 59 | set tabstop=4 60 | set softtabstop=4 61 | set shiftwidth=4 62 | set expandtab 63 | set shiftround 64 | set autoindent 65 | 66 | " search 67 | set wildmenu 68 | set incsearch 69 | set hlsearch 70 | nnoremap :set hlsearch! hlsearch? 71 | set showmatch 72 | 73 | " undo 74 | if has('persistent_undo') 75 | let myundodir = expand(vimdir . '/undodir') 76 | " create undo dirs 77 | if empty(glob(myundodir)) 78 | call system('mkdir ' . vimdir) 79 | call system('mkdir ' . myundodir) 80 | endif 81 | let &undodir = myundodir 82 | set undofile 83 | set undolevels=1000 " max number of changes that can be undone 84 | set undoreload=10000 " mx number of changes to save on buffer reload 85 | endif 86 | 87 | " folding 88 | set foldenable 89 | set foldlevelstart=10 90 | set foldnestmax=10 91 | set foldmethod=indent 92 | 93 | " file settings 94 | set backspace=indent,eol,start 95 | set fileformat=unix 96 | set fileformats=unix,dos 97 | 98 | " no backups (most stuff is using version control anyways) 99 | set nobackup 100 | set nowb 101 | set noswapfile 102 | 103 | " window Switching 104 | nnoremap :wincmd k 105 | nnoremap :wincmd j 106 | nnoremap :wincmd h 107 | nnoremap :wincmd l 108 | 109 | nnoremap k :wincmd k 110 | nnoremap j :wincmd j 111 | nnoremap h :wincmd h 112 | nnoremap l :wincmd l 113 | 114 | " remove trailing whitespace before saving buffer 115 | autocmd BufWritePre * :%s/\s\+$//e 116 | 117 | " extra files 118 | augroup filetype 119 | autocmd! 120 | " GLSL 121 | autocmd BufNewFile,BufRead *.vert,*.frag,*.tesc,*.tese,*.geom,*.comp set filetype=c 122 | " jflex 123 | autocmd BufNewFile,BufRead *.flex,*.jflex set filetype=jflex 124 | " Haskell 125 | autocmd BufNewFile,BufRead *.hamlet set filetype=html 126 | autocmd BufNewFile,BufRead *.lucius,*.cassius set filetype=css 127 | autocmd BufNewFile,BufRead *.julius set filetype=javascript 128 | augroup END 129 | autocmd Syntax jflex so $VIM/vimfiles/syntax/jflex.vim 130 | 131 | " ---------------- 132 | " Plugins 133 | " ---------------- 134 | 135 | " to sort plugins use :sort/.*\// 136 | call plug#begin('~/.config/nvim/plugged') 137 | Plug 'rking/ag.vim' 138 | Plug 'chriskempson/base16-vim' 139 | Plug 'mattn/emmet-vim' 140 | Plug 'neovimhaskell/haskell-vim' 141 | Plug 'othree/html5.vim' 142 | Plug 'itchyny/lightline.vim' 143 | Plug 'scrooloose/nerdtree' 144 | Plug 'junegunn/rainbow_parentheses.vim' 145 | Plug 'rust-lang/rust.vim' 146 | Plug 'godlygeek/tabular' 147 | Plug 'majutsushi/tagbar' 148 | Plug 'tpope/vim-commentary' 149 | Plug 'octol/vim-cpp-enhanced-highlight' 150 | Plug 'elixir-lang/vim-elixir' 151 | Plug 'fatih/vim-go' 152 | Plug 'pangloss/vim-javascript' 153 | Plug 'groenewege/vim-less' 154 | Plug 'hynek/vim-python-pep8-indent' 155 | Plug 'tpope/vim-sleuth' 156 | Plug 'tpope/vim-surround' 157 | Plug 'lervag/vimtex' 158 | 159 | if has('nvim') 160 | Plug 'zchee/deoplete-go' 161 | Plug 'zchee/deoplete-jedi' 162 | Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } 163 | else 164 | Plug 'Shougo/neocomplete.vim' 165 | endif 166 | 167 | call plug#end() 168 | 169 | " Neovim and Vim plugins 170 | " ---------------- 171 | 172 | " ag.vim 173 | 174 | " base16-vim 175 | set background=dark 176 | set fillchars+=vert:│ 177 | if filereadable(expand("~/.vimrc_background")) 178 | let base16colorspace=256 179 | source ~/.vimrc_background 180 | endif 181 | " disables opaque background 182 | hi Normal ctermbg=none 183 | hi NonText ctermbg=none 184 | 185 | " emmet-vim 186 | let g:user_emmet_install_global = 0 187 | autocmd FileType html,css,eelixir EmmetInstall 188 | 189 | " haskell-vim 190 | " html5.vim 191 | 192 | " lightline.vim 193 | let g:lightline = { 194 | \ 'colorscheme': 'jellybeans', 195 | \ } 196 | set laststatus=2 197 | 198 | " nerdtree 199 | map :NERDTreeToggle 200 | autocmd StdinReadPre * let s:std_in=1 201 | autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif 202 | autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif 203 | 204 | " rainbow_parentheses.vim 205 | nnoremap :RainbowParentheses!! 206 | nnoremap p :RainbowParentheses!! 207 | augroup rainbow_lisp 208 | autocmd! 209 | autocmd FileType clojure,lisp,scheme RainbowParentheses 210 | augroup END 211 | 212 | " rust.vim 213 | let g:rustfmt_autosave = 1 214 | 215 | " tabular 216 | 217 | " tagbar 218 | map :TagbarToggle 219 | 220 | " vim-commentary 221 | " vim-cpp-enhanced-highlight 222 | " vim-elixir 223 | " vim-go 224 | " vim-javascript 225 | 226 | " vim-less 227 | " vim-python-pep8-indent' 228 | " vim-sleuth 229 | " vim-surround 230 | " vimtex 231 | 232 | " Neovim plugins 233 | " ---------------- 234 | 235 | "deoplete-go 236 | let g:deoplete#sources#go#gocode_binary = $GOPATH . '/bin/gocode' 237 | let g:deoplete#sources#go#sort_class = ['package', 'func', 'type', 'var', 'const'] 238 | 239 | "deoplete-jedi 240 | let g:deoplete#sources#jedi#extra_path = [getcwd()] "current dir venv 241 | 242 | "deoplete.nvim 243 | let g:deoplete#enable_at_startup = 1 244 | autocmd InsertLeave,CompleteDone * if pumvisible() == 0 | pclose | endif 245 | 246 | " Vim plugins 247 | " ---------------- 248 | 249 | "neocomplete.vim 250 | let g:neocomplete#enable_at_startup = 1 251 | -------------------------------------------------------------------------------- /polybar/config: -------------------------------------------------------------------------------- 1 | ;===================================================== 2 | ; 3 | ; To learn more about how to configure Polybar 4 | ; go to https://github.com/jaagr/polybar 5 | ; 6 | ; The README contains alot of information 7 | ; 8 | ;===================================================== 9 | 10 | ;---------------- 11 | ; General 12 | ;---------------- 13 | 14 | [settings] 15 | screenchange-reload = true 16 | ;compositing-background = xor 17 | ;compositing-background = screen 18 | ;compositing-foreground = source 19 | ;compositing-border = over 20 | 21 | [global/wm] 22 | margin-top = 0 23 | margin-bottom = 0 24 | 25 | [colors] 26 | ;loosely based on: https://github.com/chriskempson/tomorrow-theme 27 | background = #cc1d1f21 28 | background-alt = #373b41 29 | 30 | foreground = #c5c8c6 31 | foreground-alt = #666866 32 | 33 | primary = ${self.yellow} 34 | secondary = ${self.red} 35 | alert = ${self.red} 36 | 37 | red = #cc6666 38 | orange = #de935f 39 | yellow = #f0c674 40 | green = #b5bd68 41 | aqua = #8abeb7 42 | blue = #81a2be 43 | purple = #b294bb 44 | 45 | 46 | [bar/base] 47 | width = 100% 48 | height = 27 49 | fixed-center = true 50 | 51 | padding-left = 0 52 | padding-right = 2 53 | 54 | module-margin-left = 1 55 | module-margin-right = 2 56 | 57 | ;colors 58 | background = ${colors.background} 59 | foreground = ${colors.foreground} 60 | line-color = #f00 61 | 62 | ;font 63 | dpi = ${xrdb:Xft.dpi:-1} 64 | 65 | ;modules 66 | modules-left = brand bspwm i3 67 | modules-center = xwindow 68 | modules-right = xbacklight pulseaudio xkeyboard wlan vpn battery date powermenu 69 | 70 | ;tray 71 | tray-position = right 72 | tray-padding = 2 73 | 74 | ;cursor 75 | cursor-click = pointer 76 | cursor-scroll = ns-resize 77 | 78 | ;wm 79 | wm-restack = bspwm 80 | 81 | [bar/adaline] 82 | inherit = bar/base 83 | hostname = adaline 84 | height = 32 85 | line-size = 2 86 | font-0 = fixed:pixelsize=11;2 87 | font-1 = Ionicons:pixelsize=13;3 88 | font-2 = Material Icons:pixelsize=13;4 89 | 90 | [bar/ada] 91 | inherit = bar/base 92 | hostname = ada 93 | height = 36 94 | line-size = 3 95 | font-0 = fixed:pixelsize=10;3 96 | font-1 = Ionicons:pixelsize=13;4 97 | font-2 = Material Icons:pixelsize=13;5 98 | 99 | ;---------------- 100 | ; Modules 101 | ;---------------- 102 | 103 | [module/brand] 104 | type = custom/text 105 | content = ${root.hostname} 106 | content-prefix = " " 107 | content-background = #1ba542 108 | content-padding = 2 109 | 110 | [module/xwindow] 111 | type = internal/xwindow 112 | label = %title:0:30:...% 113 | 114 | [module/xkeyboard] 115 | type = internal/xkeyboard 116 | blacklist-0 = num lock 117 | 118 | format-prefix = " " 119 | 120 | label-layout = %layout% 121 | 122 | label-indicator =  123 | label-indicator-padding = 2 124 | label-indicator-margin = 1 125 | label-indicator-background = ${colors.secondary} 126 | label-indicator-underline = ${colors.secondary} 127 | 128 | [module/filesystem] 129 | type = internal/fs 130 | interval = 25 131 | 132 | mount-0 = / 133 | 134 | label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%% 135 | label-unmounted = %mountpoint% not mounted 136 | label-unmounted-foreground = ${colors.foreground-alt} 137 | 138 | [module/bspwm] 139 | type = internal/bspwm 140 | 141 | ws-icon-0 = One; 142 | ; ws-icon-1 = Two; 143 | ws-icon-1 = Two; 144 | ws-icon-2 = Three; 145 | ws-icon-3 = Four; 146 | ws-icon-4 = Five; 147 | ws-icon-5 = Six; 148 | 149 | label-focused = %icon% 150 | label-focused-background = ${colors.background-alt} 151 | label-focused-underline= ${colors.primary} 152 | label-focused-padding = 2 153 | 154 | label-occupied = %icon% 155 | label-occupied-padding = 2 156 | 157 | label-urgent = %icon%! 158 | label-urgent-background = ${colors.alert} 159 | label-urgent-padding = 2 160 | 161 | label-empty = %icon% 162 | label-empty-foreground = ${colors.foreground-alt} 163 | label-empty-padding = 2 164 | 165 | [module/i3] 166 | type = internal/i3 167 | format = 168 | index-sort = true 169 | wrapping-scroll = false 170 | 171 | ; Only show workspaces on the same output as the bar 172 | ;pin-workspaces = true 173 | 174 | label-mode-padding = 2 175 | label-mode-foreground = #000 176 | label-mode-background = ${colors.primary} 177 | 178 | ; focused = Active workspace on focused monitor 179 | label-focused = %index% 180 | label-focused-background = ${module/bspwm.label-focused-background} 181 | label-focused-underline = ${module/bspwm.label-focused-underline} 182 | label-focused-padding = ${module/bspwm.label-focused-padding} 183 | 184 | ; unfocused = Inactive workspace on any monitor 185 | label-unfocused = %index% 186 | label-unfocused-padding = ${module/bspwm.label-occupied-padding} 187 | 188 | ; visible = Active workspace on unfocused monitor 189 | label-visible = %index% 190 | label-visible-background = ${self.label-focused-background} 191 | label-visible-underline = ${self.label-focused-underline} 192 | label-visible-padding = ${self.label-focused-padding} 193 | 194 | ; urgent = Workspace with urgency hint set 195 | label-urgent = %index% 196 | label-urgent-background = ${module/bspwm.label-urgent-background} 197 | label-urgent-padding = ${module/bspwm.label-urgent-padding} 198 | 199 | [module/mpd] 200 | type = internal/mpd 201 | format-online = 202 | 203 | icon-prev =  204 | icon-stop =  205 | icon-play =  206 | icon-pause =  207 | icon-next =  208 | 209 | label-song-maxlen = 25 210 | label-song-ellipsis = true 211 | 212 | [module/xbacklight] 213 | type = internal/xbacklight 214 | 215 | format =  216 | label = BL 217 | 218 | bar-width = 10 219 | bar-indicator = | 220 | bar-indicator-foreground = #ff 221 | bar-indicator-font = 2 222 | bar-fill = ─ 223 | bar-fill-font = 2 224 | bar-fill-foreground = ${colors.purple} 225 | bar-empty = ─ 226 | bar-empty-font = 2 227 | bar-empty-foreground = ${colors.foreground-alt} 228 | 229 | [module/backlight-acpi] 230 | inherit = module/xbacklight 231 | type = internal/backlight 232 | card = intel_backlight 233 | 234 | [module/cpu] 235 | type = internal/cpu 236 | interval = 2 237 | format-prefix = " " 238 | format-prefix-foreground = ${colors.foreground-alt} 239 | format-underline = #f90000 240 | label = %percentage:2%% 241 | 242 | [module/memory] 243 | type = internal/memory 244 | interval = 2 245 | format-prefix = " " 246 | format-prefix-foreground = ${colors.foreground-alt} 247 | format-underline = #4bffdc 248 | label = %percentage_used%% 249 | 250 | [module/wlan] 251 | type = internal/network 252 | interface = ${env:WIFI_INTERFACE:wlp0s20u3u2} 253 | interval = 3.0 254 | 255 | format-connected = 256 | format-connected-underline = ${colors.purple} 257 | label-connected = %essid% 258 | 259 | format-disconnected = 260 | ;format-disconnected = 261 | ;format-disconnected-underline = ${self.format-connected-underline} 262 | ;label-disconnected = %ifname% disconnected 263 | ;label-disconnected-foreground = ${colors.foreground-alt} 264 | 265 | ramp-signal-0 =  266 | ramp-signal-1 =  267 | ramp-signal-2 =  268 | ramp-signal-3 =  269 | ramp-signal-4 =  270 | 271 | [module/eth] 272 | type = internal/network 273 | interface = eno1 274 | interval = 3.0 275 | 276 | format-connected-underline = ${colors.blue} 277 | format-connected-prefix = " " 278 | format-connected-prefix-foreground = ${colors.foreground-alt} 279 | label-connected = %local_ip% 280 | 281 | format-disconnected = 282 | ;format-disconnected = 283 | ;format-disconnected-underline = ${self.format-connected-underline} 284 | ;label-disconnected = %ifname% disconnected 285 | ;label-disconnected-foreground = ${colors.foreground-alt} 286 | 287 | [module/vpn] 288 | type = custom/script 289 | exec = echo VPN 290 | exec-if = pgrep -x openvpn 291 | interval = 5 292 | format-prefix = " " 293 | format-underline = ${colors.aqua} 294 | 295 | [module/date] 296 | type = internal/date 297 | interval = 5 298 | 299 | date = 300 | date-alt = " %B %d, " 301 | 302 | time = %a %H:%M 303 | time-alt = %H:%M 304 | 305 | format-prefix =  306 | 307 | label = %date% %time% 308 | 309 | [module/volume] 310 | type = internal/volume 311 | 312 | format-volume = 313 | label-volume = VOL 314 | label-volume-foreground = ${root.foreground} 315 | 316 | ramp-volume-0 =  317 | ramp-volume-1 =  318 | ramp-volume-2 =  319 | 320 | ramp-headphones-0 =  321 | ramp-headphones-1 =  322 | 323 | format-muted = 324 | format-muted-prefix = " " 325 | format-muted-foreground = ${colors.foreground-alt} 326 | 327 | bar-volume-width = 10 328 | bar-volume-foreground-0 = #55aa55 329 | bar-volume-foreground-1 = #55aa55 330 | bar-volume-foreground-2 = #55aa55 331 | bar-volume-foreground-3 = #55aa55 332 | bar-volume-foreground-4 = #55aa55 333 | bar-volume-foreground-5 = #f5a70a 334 | bar-volume-foreground-6 = #ff5555 335 | bar-volume-gradient = false 336 | bar-volume-indicator = | 337 | bar-volume-indicator-font = 2 338 | bar-volume-fill = ─ 339 | bar-volume-fill-font = 2 340 | bar-volume-empty = ─ 341 | bar-volume-empty-font = 2 342 | bar-volume-empty-foreground = ${colors.foreground-alt} 343 | 344 | bar-muted-foreground-0 = #ff0000 345 | 346 | [module/pulseaudio] 347 | type = internal/pulseaudio 348 | format-volume = 349 | 350 | label-muted =  muted 351 | label-muted-foreground = #666866 352 | 353 | ramp-volume-0 =  354 | ramp-volume-1 =  355 | ramp-volume-2 =  356 | 357 | [module/battery] 358 | type = internal/battery 359 | battery = BAT0 360 | adapter = ADP1 361 | full-at = 98 362 | 363 | format-charging = 364 | 365 | format-discharging = 366 | 367 | format-full-prefix = " " 368 | format-full-prefix-foreground = ${colors.blue} 369 | 370 | ramp-capacity-0 =  371 | ramp-capacity-1 =  372 | ramp-capacity-2 =  373 | ramp-capacity-3 =  374 | 375 | animation-charging-0 =  376 | animation-charging-1 =  377 | animation-charging-2 =  378 | animation-charging-foreground = ${colors.primary} 379 | animation-charging-framerate = 750 380 | 381 | [module/temperature] 382 | type = internal/temperature 383 | thermal-zone = 0 384 | warn-temperature = 60 385 | 386 | format =