diff --git a/.gitignore b/.gitignore
index bd46cef..f6a456c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,20 +1,2 @@
-.pyc
-*cache*
-roles/*/molecule/default/.molecule
-roles/docker
-roles/emacs
-roles/emacs-dotfiles
-roles/fonts
-roles/i3blocks-gaps
-roles/i3-gaps
-roles/qutebrowser
-roles/slim
-roles/syncthing
-roles/syncthing-inotify
-roles/termite
-roles/virtualbox
-roles/virtualenvwrapper
-roles/vte-ng
-install-all.retry
-molecule/default/.molecule/
-roles/qutebrowser-dotfiles/files/hosts
\ No newline at end of file
+dotfiles/git/.compartido/Proyectos/*/.gitconfig
+dotfiles/git/.compartido/Trabajo/.gitconfig
diff --git a/.yamllint b/.yamllint
deleted file mode 100644
index 5872a31..0000000
--- a/.yamllint
+++ /dev/null
@@ -1,4 +0,0 @@
-extends: relaxed
-truthy: disable
-rules: {line-length: {max: 130}}
-
diff --git a/README.md b/README.md
index e2c5c4b..0a8b161 100644
--- a/README.md
+++ b/README.md
@@ -1,51 +1,20 @@
-# Proveedor de entorno
+# Dotfiles
-Este playbook instala lo siguiente:
+## TL;DR
-- Docker
+Script automatizado:
-- Emacs
+``` sh
+# Hacer dump de los paquetes actuales
+bash manage.sh packages-bundle
+# Actualizar el SO
+bash manage.sh packages-update
+# Sincronizar los dotfiles
+bash manage.sh dotfiles
+```
-- Fuentes
+## Resumen
-- Paquetes de Debian que uso
+Mediante aconfmgr, se hace un dump de los paquetes instalados de arch (tanto pacman como yay) para poder gestionar los paquetes de forma declarativa
-- i3blocks-gaps
-
-- i3-gaps
-
-- Paquetes de Pip que uso
-
-- Qutebrowser
-
-- SLim
-
-- Syncthing
-
-- Termite
-
-- Virtualbox
-
-- Virtualenvwrapper
-
-Además, también instala mis ficheros de configuración de emacs, i3-wm, qutebrowser y zsh. Básicamente instala todo lo que necesito en un ordenador.
-
-Para poder usarlo, antes hay que instalar algunas dependencias:
-
- sudo apt install sudo python-pip git
- sudo pip install ansible
-
-Luego copiamos el repositorio:
-
- git clone https://git.daemons.it/drymer/dotfiles
-
-Instalamos los roles que tiene como dependencias:
-
- cd dotfiles
- ansible-galaxy install -r requirements.yml -p roles
-
-Y solo queda ejecutar el playbook:
-
- ansible-playbook install-all.yml -K
-
-Se pueden usar los tags `configuration` o `packages` para instalar solo configuración o paquetes, respectivamente.
+Además, se gestionan los dotfiles con stow.
diff --git a/dotfiles/alacritty/.alacritty.yml b/dotfiles/alacritty/.alacritty.yml
new file mode 100644
index 0000000..096ab22
--- /dev/null
+++ b/dotfiles/alacritty/.alacritty.yml
@@ -0,0 +1,37 @@
+---
+font:
+ normal:
+ family: DejaVu Sans Mono for Powerline
+ style: Regular
+ size: 12
+
+key_bindings:
+ - { key: Return, mods: Control|Shift, action: SpawnNewInstance }
+
+# Colors (Molokai Dark)
+colors:
+ # Default colors
+ primary:
+ background: '#1B1D1E'
+ foreground: '#F8F8F2'
+ bright:
+ black: '#666666'
+ red: '#F92672'
+ green: '#A6E22E'
+ yellow: '#E2E22E'
+ blue: '#819AFF'
+ magenta: '#AE81FF'
+ cyan: '#66D9EF'
+ white: '#F8F8F2'
+
+scrolling:
+ history: 10000
+
+cursor:
+ style:
+ blinking: Always
+ blink_interval: 100
+ shape: Underline
+ unfocused_hollow: false
+
+background_opacity: 0.9
diff --git a/dotfiles/git/.gitconfig b/dotfiles/git/.gitconfig
new file mode 100644
index 0000000..f379335
--- /dev/null
+++ b/dotfiles/git/.gitconfig
@@ -0,0 +1,36 @@
+[core]
+ pager = diff-so-fancy | less --tabs=4 -RFX
+[color]
+ ui = auto
+[color "diff-highlight"]
+ oldNormal = red bold
+ oldHighlight = red bold 52
+ newNormal = green bold
+ newHighlight = green bold 22
+[color "diff"]
+ meta = yellow
+ frag = magenta bold
+ commit = yellow bold
+ old = red bold
+ new = green bold
+ whitespace = red reverse
+[diff-so-fancy]
+ markEmptyLines = false
+ changeHunkIndicators = false
+ stripLeadingSymbols = false
+ useUnicodeRuler = true
+[rerere]
+ enabled = true
+[pull]
+ rebase = false
+
+# Esto permite tener un usuario y correo diferente para el trabajo,
+# proyectos con mi nombre real y proyectos bajo mi alias
+[includeIf "gitdir:~/Trabajo/"]
+ path = ~/Trabajo/.gitconfig
+[includeIf "gitdir:~/.compartido/Trabajo/"]
+ path = ~/Trabajo/.gitconfig
+[includeIf "gitdir:~/.Proyectos/real/"]
+ path = ~/Proyectos/real/.gitconfig
+[includeIf "gitdir:~/.Proyectos/alias/"]
+ path = ~/Personal/alias/.gitconfig
diff --git a/dotfiles/i3/.compton.conf b/dotfiles/i3/.compton.conf
new file mode 100644
index 0000000..5ee8223
--- /dev/null
+++ b/dotfiles/i3/.compton.conf
@@ -0,0 +1,3 @@
+opacity-rule = [
+ "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
+];
diff --git a/dotfiles/i3/.config/dunst/dunstrc b/dotfiles/i3/.config/dunst/dunstrc
new file mode 100644
index 0000000..37c4577
--- /dev/null
+++ b/dotfiles/i3/.config/dunst/dunstrc
@@ -0,0 +1,49 @@
+[global]
+ font = Hack 10
+ markup = yes
+ format = "%s\n%b"
+ sort = yes
+ indicate_hidden = yes
+ alignment = left
+ bounce_freq = 0
+ show_age_threshold = 60
+ word_wrap = yes
+ ignore_newline = no
+ geometry = "300x5-30+20"
+ shrink = no
+ transparency = 0
+ idle_threshold = 120
+ monitor = 0
+ follow = mouse
+ sticky_history = yes
+ history_length = 20
+ show_indicators = yes
+ line_height = 0
+ separator_height = 2
+ padding = 8
+ horizontal_padding = 8
+ separator_color = frame
+ startup_notification = false
+ dmenu = /usr/bin/dmenu -p dunst:
+ browser = /usr/bin/firefox -new-tab
+ icon_position = off
+ icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
+ frame_width = 4
+ frame_color = "#98C379"
+[shortcuts]
+ close = ctrl+space
+ close_all = ctrl+shift+space
+ history = ctrl+period
+ context = ctrl+shift+period
+[urgency_low]
+ background = "#282c34"
+ foreground = "#bbc2cf"
+ timeout = 10
+[urgency_normal]
+ background = "#282c34"
+ foreground = "#bbc2cf"
+ timeout = 20
+[urgency_critical]
+ background = "#2B0000"
+ foreground = "#bbc2cf"
+ timeout = 0
diff --git a/dotfiles/i3/.config/i3status.conf b/dotfiles/i3/.config/i3status.conf
new file mode 100644
index 0000000..c1fb2f2
--- /dev/null
+++ b/dotfiles/i3/.config/i3status.conf
@@ -0,0 +1,13 @@
+general {
+ interval = 5
+ output_format = none
+}
+
+order += "battery all"
+
+battery all {
+ format = "%status %percentage %remaining"
+ integer_battery_capacity = true
+ last_full_capacity = true
+}
+
diff --git a/dotfiles/i3/.config/rofi/config b/dotfiles/i3/.config/rofi/config
new file mode 100644
index 0000000..dfdbb23
--- /dev/null
+++ b/dotfiles/i3/.config/rofi/config
@@ -0,0 +1,2 @@
+
+rofi.theme: /usr/share/rofi/themes/Monokai.rasi
diff --git a/dotfiles/i3/.i3/config b/dotfiles/i3/.i3/config
new file mode 100644
index 0000000..b5f6199
--- /dev/null
+++ b/dotfiles/i3/.i3/config
@@ -0,0 +1,247 @@
+# -*- mode: i3wm-config -*-
+
+set $color_bad = #CC0000
+set $color_degraded = #EDD400
+set $color_good = #73D216
+set $mod Mod4
+
+# Fuente para títulos de ventanas
+font pango:DejaVu Sans Mono 10
+
+# Usar Ratón+$mod para mover las ventanas flotantes
+floating_modifier $mod
+
+# Display
+set $display1 eDP-1
+set $display2 DP-1
+
+# volver a la misma ventana que estaba apretando el mismo worskpace
+workspace_auto_back_and_forth yes
+
+# abrir una terminal
+bindsym $mod+Return exec alacritty
+
+# cerrar ventana
+bindsym $mod+Shift+Q kill
+
+# Reinicia i3
+bindsym $mod+Shift+r restart
+
+# Cambiar foco
+bindsym $mod+h focus left
+bindsym $mod+j focus down
+bindsym $mod+k focus up
+bindsym $mod+l focus right
+
+# Cambiar foco con las flechas
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# Mover de workspace
+bindsym $mod+Shift+h move left
+bindsym $mod+Shift+j move down
+bindsym $mod+Shift+k move up
+bindsym $mod+Shift+l move right
+
+# Mover de workspace usando las flechas
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# Cambiar la orientación en horizontal
+bindsym $mod+b split h
+
+# Cambiar la orientación en vertical
+bindsym $mod+v split v
+
+# Fullscreen
+bindsym $mod+f fullscreen
+
+# Cambiar layout
+bindsym $mod+y layout stacking
+bindsym $mod+a layout default
+bindsym $mod+s layout tabbed
+
+# Cambiar entre tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# Cambiar foco entre tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# Definir workspaces
+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
+
+# Cambiar a workspace
+bindsym $mod+1 workspace $ws1
+bindsym $mod+2 workspace $ws2
+bindsym $mod+3 workspace $ws3
+bindsym $mod+4 workspace $ws4
+bindsym $mod+5 workspace $ws5
+bindsym $mod+6 workspace $ws6
+bindsym $mod+7 workspace $ws7
+bindsym $mod+8 workspace $ws8
+bindsym $mod+9 workspace $ws9
+bindsym $mod+0 workspace $ws10
+
+# Mover a workspace
+bindsym $mod+Shift+1 move container to workspace $ws1
+bindsym $mod+Shift+2 move container to workspace $ws2
+bindsym $mod+Shift+3 move container to workspace $ws3
+bindsym $mod+Shift+4 move container to workspace $ws4
+bindsym $mod+Shift+5 move container to workspace $ws5
+bindsym $mod+Shift+6 move container to workspace $ws6
+bindsym $mod+Shift+7 move container to workspace $ws7
+bindsym $mod+Shift+8 move container to workspace $ws8
+bindsym $mod+Shift+9 move container to workspace $ws9
+bindsym $mod+Shift+0 move container to workspace $ws10
+
+# Workspace a monitores
+workspace $ws1 output $display2
+workspace $ws2 output $display2
+workspace $ws3 output $display1
+workspace $ws4 output $display2
+workspace $ws5 output $display2
+workspace $ws6 output $display2
+workspace $ws7 output $display1
+workspace $ws8 output $display1
+workspace $ws9 output $display1
+workspace $ws10 output $display1
+
+# Cambiar tamaño de ventana
+mode "Resize" {
+ # These bindings trigger as soon as you enter the resize mode
+ bindsym h resize shrink width 2 px or 2 ppt
+ bindsym j resize grow height 2 px or 2 ppt
+ bindsym k resize shrink height 2 px or 2 ppt
+ bindsym l resize grow width 2 px or 2 ppt
+
+ # same bindings, but for the arrow keys
+ bindsym Left resize shrink width 10 px or 10 ppt
+ bindsym Down resize grow height 10 px or 10 ppt
+ bindsym Up resize shrink height 10 px or 10 ppt
+ bindsym Right resize grow width 10 px or 10 ppt
+
+
+ # back to normal: Enter or Escape
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+bindsym $mod+r mode "Resize"
+
+# Barra principal
+bar {
+ font pango:Dyuthi3, Awesome, Icons 10, DejaVu Sans Mono for Powerline 10
+ status_command /usr/bin/i3blocks
+ position top
+ strip_workspace_numbers yes
+ i3bar_command i3bar -t
+
+ colors {
+ background #000000
+ separator #000000
+
+ ###XXX: Details border backgr. text
+ focused_workspace #990099 #222222 #729FCF
+ inactive_workspace #222222 #222222 #729FCF
+ active_workspace #222222 #222222 #729FCF
+ urgent_workspace #FF0000 #222222 #FF0000
+ }
+}
+
+# Bloquear pantalla
+bindsym $mod+Control+l exec --no-startup-id ~/.i3/scripts/lock, mode "default"
+
+# Seleccionar padre
+bindsym $mod+i focus parent
+
+# Seleccionar hijo
+bindsym $mod+o focus child
+
+# evitar titulos feos
+new_window pixel
+
+# Colors de las ventanas
+# class border backgr text indicator
+client.focused #990099 #222222 #ffffff #729FCF
+client.focused_inactive #222222 #222222 #ffffff #729FCF
+client.unfocused #222222 #222222 #ffffff #729FCF
+client.urgent #FF0000 #8C5665 #ffffff #FF0000
+
+# Wallpaper
+exec --no-startup-id feh --bg-scale ~/.compartido/Imagenes/arch.jpg
+
+# Autostart
+exec --no-startup-id bash ~/.xinitrc
+exec --no-startup-id bash ~/.i3/scripts/autolock.sh
+exec --no-startup-id parcellite
+exec --no-startup-id compton
+exec --no-startup-id dunst
+exec --no-startup-id xcape
+exec --no-startup-id redshift -l 40.25:03.45 -t 5700:3600 -g 0.8 -m randr
+exec --no-startup-id pactl set-sink-volume 0 50%
+exec --no-startup-id setxkbmap us -variant altgr-intl
+exec --no-startup-id firefox
+exec --no-startup-id emacs
+
+# Mover programas automáticamente a workspace
+assign [class="(?i)firefox"] $ws2
+assign [class="(?i)tor"] $ws2
+assign [class="(?i)chromium"] $ws2
+assign [class="(?i)qutebrowser"] $ws2
+assign [title="Steam"] $ws7
+assign [title="spotify"] $ws7
+assign [class="(?i)mumble"] $ws8
+assign [class="(?i)transmission"] $ws8
+assign [class="(?i)thunderbird"] $ws9
+assign [title="mutt"] $ws9
+
+# Hacer ventanas flotantes automáticamente
+for_window [window_role="Preferences"] floating enable
+for_window [window_role="help-browser"] floating enable
+for_window [class="(?i)xcalc"] floating enable
+for_window [window_role="pop-up"] floating enable
+for_window [window_role="About"] floating enable
+for_window [class="(?i)wicd"] floating enable
+for_window [class="(?i)feh"] floating enable
+for_window [class="Progreso de operación de archivo"] floating enable
+for_window [title="textarea"] floating enable
+for_window [title="qutebrowser-editor"] floating enable
+for_window [title="Dispositivos Bluetooth"] floating enable
+for_window [title="SM-J710F"] floating enable
+
+# i3-gaps
+smart_borders on
+
+# Popups en pantalla completa
+popup_during_fullscreen smart
+
+# El foco no lo decide el ratón
+focus_follows_mouse no
+
+# Scratchpad
+bindsym $mod+Shift+p move scratchpad
+bindsym $mod+p scratchpad show
+
+# keybinds varios
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5%
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5%
+bindsym XF86AudioMute exec --no-startup-id ~/.i3/scripts/audio-mute
+bindsym XF86AudioMicMute exec --no-startup-id ~/.i3/scripts/microphone-mute
+
+# arrancar launcher
+bindsym $mod+d exec --no-startup-id zsh -c "PATH=$PATH:$HOME/bin rofi -show run"
+# emacs anywhere
+bindsym $mod+e exec --no-startup-id zsh -c "$HOME/.emacs_anywhere/bin/run"
diff --git a/dotfiles/i3/.i3/scripts/autolock.sh b/dotfiles/i3/.i3/scripts/autolock.sh
new file mode 100755
index 0000000..d51b992
--- /dev/null
+++ b/dotfiles/i3/.i3/scripts/autolock.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+xautolock -time 10 -locker "~/.i3/scripts/lock" &
diff --git a/dotfiles/i3/.i3/scripts/battery b/dotfiles/i3/.i3/scripts/battery
new file mode 100755
index 0000000..150c193
--- /dev/null
+++ b/dotfiles/i3/.i3/scripts/battery
@@ -0,0 +1,102 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2016 James Murphy
+# Licensed under the GPL version 2 only
+#
+# A battery indicator blocklet script for i3blocks
+
+import re
+from subprocess import check_output
+
+status = check_output(['acpi'], universal_newlines=True)
+
+if not status:
+ # stands for no battery found
+ fulltext = "\uf00d \uf240"
+ percentleft = 100
+else:
+ # if there is more than one battery in one laptop, the percentage left is
+ # available for each battery separately, although state and remaining
+ # time for overall block is shown in the status of the first battery
+ batteries = status.split("\n")
+ state_batteries=[]
+ commasplitstatus_batteries=[]
+ percentleft_batteries=[]
+ time = ""
+ for battery in batteries:
+ if battery!='':
+ state_batteries.append(battery.split(": ")[1].split(", ")[0])
+ commasplitstatus = battery.split(", ")
+ if not time:
+ time = commasplitstatus[-1].strip()
+ # check if it matches a time
+ time = re.match(r"(\d+):(\d+)", time)
+ if time:
+ time = ":".join(time.groups())
+ timeleft = " ({})".format(time)
+ else:
+ timeleft = ""
+
+ p = int(commasplitstatus[1].rstrip("%\n"))
+ if p>0:
+ percentleft_batteries.append(p)
+ commasplitstatus_batteries.append(commasplitstatus)
+ state = state_batteries[0]
+ commasplitstatus = commasplitstatus_batteries[0]
+ if percentleft_batteries:
+ percentleft = int(sum(percentleft_batteries)/len(percentleft_batteries))
+ else:
+ percentleft = 0
+
+ # stands for charging
+ FA_LIGHTNING = "\uf0e7"
+
+ # stands for plugged in
+ FA_PLUG = "\uf1e6"
+
+ # stands for using battery
+ FA_BATTERY = "\uf240"
+
+ # stands for unknown status of battery
+ FA_QUESTION = "\uf128"
+
+
+ if state == "Discharging":
+ fulltext = FA_BATTERY + " "
+ elif state == "Full":
+ fulltext = FA_PLUG + " "
+ timeleft = ""
+ elif state == "Unknown":
+ fulltext = FA_BATTERY + " "
+ timeleft = ""
+ else:
+ fulltext = FA_LIGHTNING + " " + FA_PLUG + " "
+
+ def color(percent):
+ if percent < 10:
+ # exit code 33 will turn background red
+ return "#FFFFFF"
+ if percent < 20:
+ return "#FF3300"
+ if percent < 30:
+ return "#FF6600"
+ if percent < 40:
+ return "#FF9900"
+ if percent < 50:
+ return "#FFCC00"
+ if percent < 60:
+ return "#FFFF00"
+ if percent < 70:
+ return "#FFFF33"
+ if percent < 80:
+ return "#FFFF66"
+ return "#FFFFFF"
+
+ form = '{}%'
+ fulltext += form.format(color(percentleft), percentleft)
+ fulltext += timeleft
+
+print(fulltext)
+print(fulltext)
+if percentleft < 10:
+ exit(33)
diff --git a/dotfiles/i3/.i3/scripts/date b/dotfiles/i3/.i3/scripts/date
new file mode 100755
index 0000000..c5565cd
--- /dev/null
+++ b/dotfiles/i3/.i3/scripts/date
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+time=' '"$(date '+%H:%M:%S') "
+date=' '"$(date '+%d/%m/%Y')"
+
+case $BLOCK_BUTTON in
+ 1) notify-send -u low "$date" ;;
+ 3) notify-send -u low "$date" ;;
+esac
+
+echo -n "$time"
+
+exit 0
diff --git a/dotfiles/i3/.i3/scripts/lock b/dotfiles/i3/.i3/scripts/lock
new file mode 100755
index 0000000..31cbdb1
--- /dev/null
+++ b/dotfiles/i3/.i3/scripts/lock
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+sleep 0.01
+# i3lock blurred screen inspired by /u/patopop007 and the blog post
+# http://plankenau.com/blog/post-10/gaussianlock
+
+# Timings are on an Intel i7-2630QM @ 2.00GHz
+
+# Dependencies:
+# imagemagick
+# i3lock
+# scrot (optional but default)
+
+IMAGE=/tmp/i3lock.png
+SCREENSHOT="scrot $IMAGE" # 0.46s
+
+# Alternate screenshot method with imagemagick. NOTE: it is much slower
+# SCREENSHOT="import -window root $IMAGE" # 1.35s
+
+# Here are some imagemagick blur types
+# Uncomment one to use, if you have multiple, the last one will be used
+
+# All options are here: http://www.imagemagick.org/Usage/blur/#blur_args
+BLURTYPE="0x5" # 7.52s
+#BLURTYPE="0x2" # 4.39s
+#BLURTYPE="5x2" # 3.80s
+#BLURTYPE="2x8" # 2.90s
+#BLURTYPE="2x3" # 2.92s
+
+# Get the screenshot, add the blur and lock the screen with it
+$SCREENSHOT
+convert $IMAGE -blur $BLURTYPE $IMAGE
+i3lock -i $IMAGE
+rm $IMAGE
diff --git a/dotfiles/i3/.i3/scripts/sensors b/dotfiles/i3/.i3/scripts/sensors
new file mode 100755
index 0000000..9c659d4
--- /dev/null
+++ b/dotfiles/i3/.i3/scripts/sensors
@@ -0,0 +1,69 @@
+#!/usr/bin/env perl
+# Copyright 2014 Pierre Mavro
+# Copyright 2014 Vivien Didelot
+# Copyright 2014 Andreas Guldstrand
+# Copyright 2014 Benjamin Chretien
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+use strict;
+use warnings;
+use utf8;
+use Getopt::Long;
+
+binmode(STDOUT, ":utf8");
+
+# default values
+my $t_warn = $ENV{T_WARN} || 70;
+my $t_crit = $ENV{T_CRIT} || 90;
+my $chip = $ENV{SENSOR_CHIP} || "";
+my $temperature = -9999;
+
+sub help {
+ print "Usage: temperature [-w ] [-c ] [--chip ]\n";
+ print "-w : warning threshold to become yellow\n";
+ print "-c : critical threshold to become red\n";
+ print "--chip : sensor chip\n";
+ exit 0;
+}
+
+GetOptions("help|h" => \&help,
+ "w=i" => \$t_warn,
+ "c=i" => \$t_crit,
+ "chip=s" => \$chip);
+
+# Get chip temperature
+open (SENSORS, "sensors -u $chip |") or die;
+while () {
+ if (/^\s+temp1_input:\s+[\+]*([\-]*\d+\.\d)/) {
+ $temperature = $1;
+ last;
+ }
+}
+close(SENSORS);
+
+$temperature eq -9999 and die 'Cannot find temperature';
+
+# Print short_text, full_text
+print "$temperature°C\n";
+
+# Print color, if needed
+if ($temperature >= $t_crit) {
+ print "#FF0000\n";
+ exit 33;
+} elsif ($temperature >= $t_warn) {
+ print "#FFFC00\n";
+}
+
+exit 0;
diff --git a/dotfiles/i3/.i3/scripts/volume-pulseaudio b/dotfiles/i3/.i3/scripts/volume-pulseaudio
new file mode 100755
index 0000000..ad1b2d1
--- /dev/null
+++ b/dotfiles/i3/.i3/scripts/volume-pulseaudio
@@ -0,0 +1,175 @@
+#!/bin/bash
+# Displays the default device, volume, and mute status for i3blocks
+
+set -a
+
+AUDIO_HIGH_SYMBOL=${AUDIO_HIGH_SYMBOL:-' '}
+
+AUDIO_MED_THRESH=${AUDIO_MED_THRESH:-50}
+AUDIO_MED_SYMBOL=${AUDIO_MED_SYMBOL:-' '}
+
+AUDIO_LOW_THRESH=${AUDIO_LOW_THRESH:-0}
+AUDIO_LOW_SYMBOL=${AUDIO_LOW_SYMBOL:-' '}
+
+AUDIO_MUTED_SYMBOL=${AUDIO_MUTED_SYMBOL:-' '}
+
+AUDIO_DELTA=${AUDIO_DELTA:-5}
+
+DEFAULT_COLOR=${DEFAULT_COLOR:-"#ffffff"}
+MUTED_COLOR=${MUTED_COLOR:-"#a0a0a0"}
+
+LONG_FORMAT=${LONG_FORMAT:-'${SYMB} ${VOL}% [${INDEX}:${NAME}]'}
+SHORT_FORMAT=${SHORT_FORMAT:-'${SYMB} ${VOL}% [${INDEX}]'}
+USE_ALSA_NAME=${USE_ALSA_NAME:-0}
+USE_DESCRIPTION=${USE_DESCRIPTION:-0}
+
+SUBSCRIBE=${SUBSCRIBE:-0}
+
+MIXER=${MIXER:-""}
+SCONTROL=${SCONTROL:-""}
+
+while getopts F:Sf:adH:M:L:X:T:t:C:c:i:m:s:h opt; do
+ case "$opt" in
+ S) SUBSCRIBE=1 ;;
+ F) LONG_FORMAT="$OPTARG" ;;
+ f) SHORT_FORMAT="$OPTARG" ;;
+ a) USE_ALSA_NAME=1 ;;
+ d) USE_DESCRIPTION=1 ;;
+ H) AUDIO_HIGH_SYMBOL="$OPTARG" ;;
+ M) AUDIO_MED_SYMBOL="$OPTARG" ;;
+ L) AUDIO_LOW_SYMBOL="$OPTARG" ;;
+ X) AUDIO_MUTED_SYMBOL="$OPTARG" ;;
+ T) AUDIO_MED_THRESH="$OPTARG" ;;
+ t) AUDIO_LOW_THRESH="$OPTARG" ;;
+ C) DEFAULT_COLOR="$OPTARG" ;;
+ c) MUTED_COLOR="$OPTARG" ;;
+ i) AUDIO_INTERVAL="$OPTARG" ;;
+ m) MIXER="$OPTARG" ;;
+ s) SCONTROL="$OPTARG" ;;
+ h) printf \
+"Usage: volume-pulseaudio [-S] [-F format] [-f format] [-p] [-a|-d] [-H symb] [-M symb]
+ [-L symb] [-X symb] [-T thresh] [-t thresh] [-C color] [-c color] [-i inter]
+ [-m mixer] [-s scontrol] [-h]
+Options:
+-F, -f\tOutput format (-F long format, -f short format) to use, with exposed variables:
+\${SYMB}, \${VOL}, \${INDEX}, \${NAME}
+-S\tSubscribe to volume events (requires persistent block, always uses long format)
+-a\tUse ALSA name if possible
+-d\tUse device description instead of name if possible
+-H\tSymbol to use when audio level is high. Default: '$AUDIO_HIGH_SYMBOL'
+-M\tSymbol to use when audio level is medium. Default: '$AUDIO_MED_SYMBOL'
+-L\tSymbol to use when audio level is low. Default: '$AUDIO_LOW_SYMBOL'
+-X\tSymbol to use when audio is muted. Default: '$AUDIO_MUTED_SYMBOL'
+-T\tThreshold for medium audio level. Default: $AUDIO_MED_THRESH
+-t\tThreshold for low audio level. Default: $AUDIO_LOW_THRESH
+-C\tColor for non-muted audio. Default: $DEFAULT_COLOR
+-c\tColor for muted audio. Default: $MUTED_COLOR
+-i\tInterval size of volume increase/decrease. Default: $AUDIO_DELTA
+-m\tUse the given mixer.
+-s\tUse the given scontrol.
+-h\tShow this help text
+" && exit 0;;
+ esac
+done
+
+if [[ -z "$MIXER" ]] ; then
+ MIXER="default"
+ if amixer -D pulse info >/dev/null 2>&1 ; then
+ MIXER="pulse"
+ fi
+fi
+
+if [[ -z "$SCONTROL" ]] ; then
+ SCONTROL=$(amixer -D "$MIXER" scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
+fi
+
+CAPABILITY=$(amixer -D $MIXER get $SCONTROL | sed -n "s/ Capabilities:.*cvolume.*/Capture/p")
+
+
+function move_sinks_to_new_default {
+ DEFAULT_SINK=$1
+ pacmd list-sink-inputs | grep index: | grep -o '[0-9]\+' | while read SINK
+ do
+ pacmd move-sink-input $SINK $DEFAULT_SINK
+ done
+}
+
+function set_default_playback_device_next {
+ inc=${1:-1}
+ num_devices=$(pacmd list-sinks | grep -c index:)
+ sink_arr=($(pacmd list-sinks | grep index: | grep -o '[0-9]\+'))
+ default_sink_index=$(( $(pacmd list-sinks | grep index: | grep -no '*' | grep -o '^[0-9]\+') - 1 ))
+ default_sink_index=$(( ($default_sink_index + $num_devices + $inc) % $num_devices ))
+ default_sink=${sink_arr[$default_sink_index]}
+ pacmd set-default-sink $default_sink
+ move_sinks_to_new_default $default_sink
+}
+
+case "$BLOCK_BUTTON" in
+ 1) set_default_playback_device_next ;;
+ 2) amixer -q -D $MIXER sset $SCONTROL $CAPABILITY toggle ;;
+ 3) set_default_playback_device_next -1 ;;
+ 4) amixer -q -D $MIXER sset $SCONTROL $CAPABILITY $AUDIO_DELTA%+ ;;
+ 5) amixer -q -D $MIXER sset $SCONTROL $CAPABILITY $AUDIO_DELTA%- ;;
+esac
+
+function print_format {
+ echo "$1" | envsubst '${SYMB}${VOL}${INDEX}${NAME}'
+}
+
+function print_block {
+ ACTIVE=$(pacmd list-sinks | grep "state\: RUNNING" -B4 -A7 | grep "index:\|name:\|volume: front\|muted:")
+ [ -z "$ACTIVE" ] && ACTIVE=$(pacmd list-sinks | grep "index:\|name:\|volume: front\|muted:" | grep -A3 '*')
+ for name in INDEX NAME VOL MUTED; do
+ read $name
+ done < <(echo "$ACTIVE")
+ INDEX=$(echo "$INDEX" | grep -o '[0-9]\+')
+ VOL=$(echo "$VOL" | grep -o "[0-9]*%" | head -1 )
+ VOL="${VOL%?}"
+
+ NAME=$(echo "$NAME" | sed \
+'s/.*<.*\.\(.*\)>.*/\1/; t;'\
+'s/.*<\(.*\)>.*/\1/; t;'\
+'s/.*/unknown/')
+
+ if [[ $USE_ALSA_NAME == 1 ]] ; then
+ ALSA_NAME=$(pacmd list-sinks |\
+awk '/^\s*\*/{f=1}/^\s*index:/{f=0}f' |\
+grep "alsa.name\|alsa.mixer_name" |\
+head -n1 |\
+sed 's/.*= "\(.*\)".*/\1/')
+ NAME=${ALSA_NAME:-$NAME}
+ elif [[ $USE_DESCRIPTION == 1 ]] ; then
+ DESCRIPTION=$(pacmd list-sinks |\
+awk '/^\s*\*/{f=1}/^\s*index:/{f=0}f' |\
+grep "device.description" |\
+head -n1 |\
+sed 's/.*= "\(.*\)".*/\1/')
+ NAME=${DESCRIPTION:-$NAME}
+ fi
+
+ if [[ $MUTED =~ "no" ]] ; then
+ SYMB=$AUDIO_HIGH_SYMBOL
+ [[ $VOL -le $AUDIO_MED_THRESH ]] && SYMB=$AUDIO_MED_SYMBOL
+ [[ $VOL -le $AUDIO_LOW_THRESH ]] && SYMB=$AUDIO_LOW_SYMBOL
+ COLOR=$DEFAULT_COLOR
+ else
+ SYMB=$AUDIO_MUTED_SYMBOL
+ COLOR=$MUTED_COLOR
+ fi
+
+ if [[ $SUBSCRIBE == 1 ]] ; then
+ print_format "$LONG_FORMAT"
+ else
+ print_format "$LONG_FORMAT"
+ print_format "$SHORT_FORMAT"
+ echo "$COLOR"
+ fi
+}
+
+print_block
+if [[ $SUBSCRIBE == 1 ]] ; then
+ while read -r EVENT; do
+ print_block
+ done < <(pactl subscribe | stdbuf -oL grep change)
+fi
diff --git a/dotfiles/i3/.i3blocks.conf b/dotfiles/i3/.i3blocks.conf
new file mode 100644
index 0000000..c5334e0
--- /dev/null
+++ b/dotfiles/i3/.i3blocks.conf
@@ -0,0 +1,45 @@
+separator=false
+separator_block_width=5
+border_top=0
+border_left=0
+border_right=0
+border_bottom=2
+
+[volume]
+command=$HOME/.i3/scripts/volume-pulseaudio | cut -d '[' -f1
+interval=5
+signal=1
+markup=pango
+border=#cc241d
+
+[temperature]
+label=
+command=$HOME/.i3/scripts/sensors
+interval=5
+border=#b16286
+
+# [weather]
+# command=$HOME/.i3/scripts/weather
+# interval=60
+# border=#198981
+
+[wireless]
+label=
+command=[[ -z "$(iwgetid -r)" ]] || echo "$(iwgetid -r) "
+interval=2
+border=#98971a
+
+[battery]
+command=$HOME/.i3/scripts/battery
+interval=30
+markup=pango
+LABEL=⚡
+BAT_NUMBER=0
+border=#458588
+
+[time]
+command=echo "`date +'%a %d %b'` `date +'%T'` "
+interval=1
+markup=pango
+border=#928374
+separator_block_width=0
diff --git a/dotfiles/shells/.Xmodmap b/dotfiles/shells/.Xmodmap
new file mode 100644
index 0000000..3096ce5
--- /dev/null
+++ b/dotfiles/shells/.Xmodmap
@@ -0,0 +1,260 @@
+keycode 8 =
+keycode 9 = Escape NoSymbol Escape
+keycode 10 = 1 exclam 1 exclam bar exclamdown bar
+keycode 11 = 2 quotedbl 2 quotedbl at oneeighth at
+keycode 12 = 3 periodcentered 3 periodcentered numbersign sterling numbersign
+keycode 13 = 4 dollar 4 dollar asciitilde dollar asciitilde
+keycode 14 = 5 percent 5 percent onehalf threeeighths onehalf
+keycode 15 = 6 ampersand 6 ampersand notsign fiveeighths notsign
+keycode 16 = 7 slash 7 slash braceleft seveneighths braceleft
+keycode 17 = 8 parenleft 8 parenleft bracketleft trademark bracketleft
+keycode 18 = 9 parenright 9 parenright bracketright plusminus bracketright
+keycode 19 = 0 equal 0 equal braceright degree braceright
+keycode 20 = apostrophe question apostrophe question backslash questiondown backslash
+keycode 21 = exclamdown questiondown exclamdown questiondown dead_tilde asciitilde dead_tilde
+keycode 22 = BackSpace BackSpace BackSpace BackSpace NoSymbol NoSymbol Terminate_Server
+keycode 23 = Tab ISO_Left_Tab Tab ISO_Left_Tab
+keycode 24 = q Q q Q at Greek_OMEGA at
+keycode 25 = w W w W lstroke Lstroke lstroke
+keycode 26 = e E e E EuroSign cent EuroSign
+keycode 27 = r R r R paragraph registered paragraph
+keycode 28 = t T t T tslash Tslash tslash
+keycode 29 = y Y y Y leftarrow yen leftarrow
+keycode 30 = u U u U downarrow uparrow downarrow
+keycode 31 = i I i I rightarrow idotless rightarrow
+keycode 32 = o O o O oslash Oslash oslash
+keycode 33 = p P p P thorn THORN thorn
+keycode 34 = dead_grave dead_circumflex dead_grave dead_circumflex bracketleft dead_abovering bracketleft
+keycode 35 = plus asterisk plus asterisk bracketright dead_macron bracketright
+keycode 36 = Return NoSymbol Return
+keycode 37 = Control_L NoSymbol Control_L
+keycode 38 = a A a A ae AE ae
+keycode 39 = s S s S ssharp section ssharp
+keycode 40 = d D d D eth ETH eth
+keycode 41 = f F f F dstroke ordfeminine dstroke
+keycode 42 = g G g G eng ENG eng
+keycode 43 = h H h H hstroke Hstroke hstroke
+keycode 44 = j J j J dead_hook dead_horn dead_hook
+keycode 45 = k K k K kra ampersand kra
+keycode 46 = l L l L lstroke Lstroke lstroke
+keycode 47 = ntilde Ntilde ntilde Ntilde asciitilde dead_doubleacute asciitilde
+keycode 48 = dead_acute dead_diaeresis dead_acute dead_diaeresis braceleft braceleft braceleft
+keycode 49 = masculine ordfeminine masculine ordfeminine backslash backslash backslash
+keycode 50 = Shift_L NoSymbol Shift_L
+keycode 51 = ccedilla Ccedilla ccedilla Ccedilla braceright dead_breve braceright
+keycode 52 = z Z z Z guillemotleft less guillemotleft
+keycode 53 = x X x X guillemotright greater guillemotright
+keycode 54 = c C c C cent copyright cent
+keycode 55 = v V v V leftdoublequotemark leftsinglequotemark leftdoublequotemark
+keycode 56 = b B b B rightdoublequotemark rightsinglequotemark rightdoublequotemark
+keycode 57 = n N n N n N n
+keycode 58 = m M m M mu masculine mu
+keycode 59 = comma semicolon comma semicolon horizconnector multiply horizconnector
+keycode 60 = period colon period colon periodcentered division periodcentered
+keycode 61 = minus underscore minus underscore dead_belowdot dead_abovedot dead_belowdot
+keycode 62 = Shift_R NoSymbol Shift_R
+keycode 63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab
+keycode 64 = Alt_L Meta_L Alt_L Meta_L
+keycode 65 = space NoSymbol space
+keycode 66 = Caps_Lock NoSymbol Caps_Lock
+keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1
+keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2
+keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3
+keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4
+keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5
+keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6
+keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7
+keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8
+keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9
+keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10
+keycode 77 = Num_Lock NoSymbol Num_Lock
+keycode 78 = Scroll_Lock NoSymbol Scroll_Lock
+keycode 79 = KP_Home 7 KP_Home 7
+keycode 80 = KP_Up 8 KP_Up 8
+keycode 81 = KP_Prior 9 KP_Prior 9
+keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode
+keycode 83 = KP_Left 4 KP_Left 4
+keycode 84 = KP_Begin 5 KP_Begin 5
+keycode 85 = KP_Right 6 KP_Right 6
+keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode
+keycode 87 = KP_End 1 KP_End 1
+keycode 88 = KP_Down 2 KP_Down 2
+keycode 89 = KP_Next 3 KP_Next 3
+keycode 90 = KP_Insert 0 KP_Insert 0
+keycode 91 = KP_Delete KP_Decimal KP_Delete KP_Decimal
+keycode 92 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
+keycode 93 =
+keycode 94 = less greater less greater bar brokenbar bar
+keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11
+keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12
+keycode 97 =
+keycode 98 = Katakana NoSymbol Katakana
+keycode 99 = Hiragana NoSymbol Hiragana
+keycode 100 = Henkan_Mode NoSymbol Henkan_Mode
+keycode 101 = Hiragana_Katakana NoSymbol Hiragana_Katakana
+keycode 102 = Muhenkan NoSymbol Muhenkan
+keycode 103 =
+keycode 104 = KP_Enter NoSymbol KP_Enter
+keycode 105 = Control_R NoSymbol Control_R
+keycode 106 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab
+keycode 107 = Print Sys_Req Print Sys_Req
+keycode 108 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
+keycode 109 = Linefeed NoSymbol Linefeed
+keycode 110 = Home NoSymbol Home
+keycode 111 = Up NoSymbol Up
+keycode 112 = Prior NoSymbol Prior
+keycode 113 = Left NoSymbol Left
+keycode 114 = Right NoSymbol Right
+keycode 115 = End NoSymbol End
+keycode 116 = Down NoSymbol Down
+keycode 117 = Next NoSymbol Next
+keycode 118 = Insert NoSymbol Insert
+keycode 119 = Delete NoSymbol Delete
+keycode 120 =
+keycode 121 = XF86AudioMute NoSymbol XF86AudioMute
+keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume
+keycode 123 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume
+keycode 124 = XF86PowerOff NoSymbol XF86PowerOff
+keycode 125 = KP_Equal NoSymbol KP_Equal
+keycode 126 = plusminus NoSymbol plusminus
+keycode 127 = Pause Break Pause Break
+keycode 128 = XF86LaunchA NoSymbol XF86LaunchA
+keycode 129 = KP_Decimal KP_Decimal KP_Decimal KP_Decimal
+keycode 130 = Hangul NoSymbol Hangul
+keycode 131 = Hangul_Hanja NoSymbol Hangul_Hanja
+keycode 132 =
+keycode 133 = Super_L NoSymbol Super_L
+keycode 134 = Super_R NoSymbol Super_R
+keycode 135 = Super_L NoSymbol Super_L
+keycode 136 = Cancel NoSymbol Cancel
+keycode 137 = Redo NoSymbol Redo
+keycode 138 = SunProps NoSymbol SunProps
+keycode 139 = Undo NoSymbol Undo
+keycode 140 = SunFront NoSymbol SunFront
+keycode 141 = XF86Copy NoSymbol XF86Copy
+keycode 142 = SunOpen NoSymbol SunOpen
+keycode 143 = XF86Paste NoSymbol XF86Paste
+keycode 144 = Find NoSymbol Find
+keycode 145 = XF86Cut NoSymbol XF86Cut
+keycode 146 = Help NoSymbol Help
+keycode 147 = XF86MenuKB NoSymbol XF86MenuKB
+keycode 148 = XF86Calculator NoSymbol XF86Calculator
+keycode 149 =
+keycode 150 = XF86Sleep NoSymbol XF86Sleep
+keycode 151 = XF86WakeUp NoSymbol XF86WakeUp
+keycode 152 = XF86Explorer NoSymbol XF86Explorer
+keycode 153 = XF86Send NoSymbol XF86Send
+keycode 154 =
+keycode 155 = XF86Xfer NoSymbol XF86Xfer
+keycode 156 = XF86Launch1 NoSymbol XF86Launch1
+keycode 157 = XF86Launch2 NoSymbol XF86Launch2
+keycode 158 = XF86WWW NoSymbol XF86WWW
+keycode 159 = XF86DOS NoSymbol XF86DOS
+keycode 160 = XF86ScreenSaver NoSymbol XF86ScreenSaver
+keycode 161 =
+keycode 162 = XF86RotateWindows NoSymbol XF86RotateWindows
+keycode 163 = XF86Mail NoSymbol XF86Mail
+keycode 164 = XF86Favorites NoSymbol XF86Favorites
+keycode 165 = XF86MyComputer NoSymbol XF86MyComputer
+keycode 166 = XF86Back NoSymbol XF86Back
+keycode 167 = XF86Forward NoSymbol XF86Forward
+keycode 168 =
+keycode 169 = XF86Eject NoSymbol XF86Eject
+keycode 170 = XF86Eject XF86Eject XF86Eject XF86Eject
+keycode 171 = XF86AudioNext NoSymbol XF86AudioNext
+keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause
+keycode 173 = XF86AudioPrev NoSymbol XF86AudioPrev
+keycode 174 = XF86AudioStop XF86Eject XF86AudioStop XF86Eject
+keycode 175 = XF86AudioRecord NoSymbol XF86AudioRecord
+keycode 176 = XF86AudioRewind NoSymbol XF86AudioRewind
+keycode 177 = XF86Phone NoSymbol XF86Phone
+keycode 178 =
+keycode 179 = XF86Tools NoSymbol XF86Tools
+keycode 180 = XF86HomePage NoSymbol XF86HomePage
+keycode 181 = XF86Reload NoSymbol XF86Reload
+keycode 182 = XF86Close NoSymbol XF86Close
+keycode 183 =
+keycode 184 =
+keycode 185 = XF86ScrollUp NoSymbol XF86ScrollUp
+keycode 186 = XF86ScrollDown NoSymbol XF86ScrollDown
+keycode 187 = parenleft NoSymbol parenleft
+keycode 188 = parenright NoSymbol parenright
+keycode 189 = XF86New NoSymbol XF86New
+keycode 190 = Redo NoSymbol Redo
+keycode 191 = XF86Tools NoSymbol XF86Tools
+keycode 192 = XF86Launch5 NoSymbol XF86Launch5
+keycode 193 = XF86Launch6 NoSymbol XF86Launch6
+keycode 194 = XF86Launch7 NoSymbol XF86Launch7
+keycode 195 = XF86Launch8 NoSymbol XF86Launch8
+keycode 196 = XF86Launch9 NoSymbol XF86Launch9
+keycode 197 =
+keycode 198 =
+keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle
+keycode 200 = XF86TouchpadOn NoSymbol XF86TouchpadOn
+keycode 201 = XF86TouchpadOff NoSymbol XF86TouchpadOff
+keycode 202 =
+keycode 203 = Mode_switch NoSymbol Mode_switch
+keycode 204 = NoSymbol Alt_L NoSymbol Alt_L
+keycode 205 = NoSymbol Meta_L NoSymbol Meta_L
+keycode 206 = NoSymbol Super_L NoSymbol Super_L
+keycode 207 = NoSymbol Hyper_L NoSymbol Hyper_L
+keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay
+keycode 209 = XF86AudioPause NoSymbol XF86AudioPause
+keycode 210 = XF86Launch3 NoSymbol XF86Launch3
+keycode 211 = XF86Launch4 NoSymbol XF86Launch4
+keycode 212 = XF86LaunchB NoSymbol XF86LaunchB
+keycode 213 = XF86Suspend NoSymbol XF86Suspend
+keycode 214 = XF86Close NoSymbol XF86Close
+keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay
+keycode 216 = XF86AudioForward NoSymbol XF86AudioForward
+keycode 217 =
+keycode 218 = Print NoSymbol Print
+keycode 219 =
+keycode 220 = XF86WebCam NoSymbol XF86WebCam
+keycode 221 =
+keycode 222 =
+keycode 223 = XF86Mail NoSymbol XF86Mail
+keycode 224 = XF86Messenger NoSymbol XF86Messenger
+keycode 225 = XF86Search NoSymbol XF86Search
+keycode 226 = XF86Go NoSymbol XF86Go
+keycode 227 = XF86Finance NoSymbol XF86Finance
+keycode 228 = XF86Game NoSymbol XF86Game
+keycode 229 = XF86Shop NoSymbol XF86Shop
+keycode 230 =
+keycode 231 = Cancel NoSymbol Cancel
+keycode 232 = XF86MonBrightnessDown NoSymbol XF86MonBrightnessDown
+keycode 233 = XF86MonBrightnessUp NoSymbol XF86MonBrightnessUp
+keycode 234 = XF86AudioMedia NoSymbol XF86AudioMedia
+keycode 235 = XF86Display NoSymbol XF86Display
+keycode 236 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff
+keycode 237 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown
+keycode 238 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp
+keycode 239 = XF86Send NoSymbol XF86Send
+keycode 240 = XF86Reply NoSymbol XF86Reply
+keycode 241 = XF86MailForward NoSymbol XF86MailForward
+keycode 242 = XF86Save NoSymbol XF86Save
+keycode 243 = XF86Documents NoSymbol XF86Documents
+keycode 244 = XF86Battery NoSymbol XF86Battery
+keycode 245 = XF86Bluetooth NoSymbol XF86Bluetooth
+keycode 246 = XF86WLAN NoSymbol XF86WLAN
+keycode 247 =
+keycode 248 =
+keycode 249 =
+keycode 250 =
+keycode 251 =
+keycode 252 =
+keycode 253 =
+keycode 254 =
+keycode 255 =
+!
+! Swap Caps_Lock and Control_L
+!
+remove Lock = Caps_Lock
+remove Control = Control_L
+keysym Control_L = Caps_Lock
+keysym Caps_Lock = Control_L
+add Lock = Caps_Lock
+add Control = Control_L
+!
+! Arreglar las putas ctrl + flechas
+!
diff --git a/dotfiles/shells/.aliases b/dotfiles/shells/.aliases
new file mode 100644
index 0000000..e69b88a
--- /dev/null
+++ b/dotfiles/shells/.aliases
@@ -0,0 +1,53 @@
+# Generic
+alias rm="$HOME/bin/safer.sh"
+alias ipcurl='curl icanhazip.com && curl --silent https://geoiptool.com/|grep maker_country | cut -d" " -f5 | cut -d"<" -f1 | head -n1'
+alias toripcurl='torify curl icanhazip.com && torify curl --silent http://geoiptool.com/|grep maker_country | cut -d" " -f5 | cut -d"<" -f1 | head -n1'
+alias grep="grep --color"
+alias notify-send='notify-send -i terminal'
+alias ec="emacsclient -t"
+alias rmr="/bin/rm"
+alias watch='watch -n1'
+alias cwd='pwd | tr -d "\r\n" | xclip -selection clipboard'
+alias alarm="notify-send -u critical \"Ya ha terminado el proceso\""
+alias finished="echo \"Ya ha terminado el proceso\" | espeak -ves 2> /dev/null"
+alias cat="ccat"
+alias ls="exa"
+alias how="howdoi"
+
+# Apps
+alias alpine='docker run -ti -v `pwd`:/data alpine sh'
+alias linkcheck='docker run -ti registry.daemons.it/linkcheck'
+alias cjira='docker run -ti -v $HOME/.jira-cl.json:/root/.jira-cl.json registry.daemons.it/jira'
+
+# Kubernetes, copied from oh my zsh plugin
+alias kaf='kubectl apply -f'
+alias keti='kubectl exec -ti'
+alias kgp='kubectl get pods'
+alias kgs='kubectl get svc'
+alias kgi='kubectl get ingress'
+alias kgsec='kubectl get secret'
+alias kgd='kubectl get deployment'
+alias kgrs='kubectl get rs'
+alias kl='kubectl logs'
+alias klf='kubectl logs -f'
+
+# History
+alias hist='history -E -20'
+
+# Terraform
+alias tf="terraform"
+alias tfa="terraform apply"
+alias tfi="terraform init; alarm"
+alias tfaa="terraform apply --auto-approve; alarm"
+alias tfp="terraform plan; alarm"
+alias tfd="terraform destroy; alarm"
+
+# Alertmanager
+# Config https://github.com/prometheus/alertmanager#configuration
+alertmanager_version="v0.15.1"
+alias amtool="docker run --name amtool --rm -ti --entrypoint amtool -v $HOME/.config/amtool/config.yml:/root/.config/amtool/config.yml quay.io/prometheus/alertmanager:$alertmanager_version"
+alias amta="amtool alert"
+alias amts="amtool silence"
+alias amtsa="amtool silence add"
+alias amtse="amtool silence expire"
+alias amtsall="amtool silence add --duration=2h --start=$(date --utc --rfc-3339=seconds | sed 's/ /T/') --comment 'Estamos en ello.' severity=~'info|warning|critical'"
diff --git a/dotfiles/shells/.bashrc b/dotfiles/shells/.bashrc
new file mode 100644
index 0000000..0f6cfa5
--- /dev/null
+++ b/dotfiles/shells/.bashrc
@@ -0,0 +1,96 @@
+# Path
+PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/sbin:/sbin:/usr/local/bin"
+
+# Prompt verde
+#PS1='\[\e[0;92m\]\u\[\e[0;93m\] % \[\e[0;92m\]\h \[\e[1;93m\]\w\[\e[0;92m\]\$ '
+# Prompt azul
+PS1='\[\e[1;94m\]\u\[\e[0m\] % \[\e[1;91m\]\h \[\e[1;93m\]\w\[\e[1;34m\] $\[\033[0m\] '
+
+# Terms típicas de emacs
+[[ $TERM == "dumb" ]] && TERM=xterm; PS1='$ '
+[[ $TERM == "emacs" ]] && PS1='$ '
+[[ $TERM == "xterm" ]] && PS1='$ '
+
+# Term
+if [ "$TERM" = "" -o "$TERM" = "unknown" ]; then
+ TERM=linux
+fi
+
+# Notificar correo nuevo
+if [ -x /usr/bin/biff ]; then
+ biff y 2> /dev/null
+fi
+
+# Usar scripts en /etc/profile.d/
+for profile_script in /etc/profile.d/*.sh ; do
+ if [ -x $profile_script ]; then
+ . $profile_script
+ fi
+done
+unset profile_script
+
+# Alias
+source ~/.aliases
+
+# Python
+export WORKON_HOME=~/.virtualenvs
+source /usr/local/bin/virtualenvwrapper_lazy.sh
+
+export EDITOR="emacsclient -t -c"
+export ALTERNATE_EDITOR="nano"
+
+ESC="\033"
+NORMAL="\[$ESC[m\]"
+RESET="\[$ESC[${DULL};${FG_WHITE};${BG_NULL}m\]"
+
+if [ -f /etc/bash_completion ]; then
+ . /etc/bash_completion
+fi
+PATH=$PATH:~/Scripts/bin:$HOME/.npm-bin/bin/
+PATH=$PATH:~/Scripts/bin:$HOME/bin
+
+[ -f ~/.fzf.bash ] && source ~/.fzf.bash
+sleep 0.5
+
+# --httptoolkit--
+# This section will be reset each time a HTTP Toolkit terminal is opened
+if [ -n "$HTTP_TOOLKIT_ACTIVE" ]; then
+ # When HTTP Toolkit is active, we inject various overrides into PATH
+ export PATH="/opt/http-toolkit/resources/app/httptoolkit-server/overrides/path:$PATH"
+
+ if command -v winpty >/dev/null 2>&1; then
+ # Work around for winpty's hijacking of certain commands
+ alias php=php
+ alias node=node
+ fi
+fi
+# --httptoolkit-end--
+# --httptoolkit--
+# This section will be reset each time a HTTP Toolkit terminal is opened
+if [ -n "$HTTP_TOOLKIT_ACTIVE" ]; then
+ # When HTTP Toolkit is active, we inject various overrides into PATH
+ export PATH="/opt/http-toolkit/resources/app/httptoolkit-server/overrides/path:$PATH"
+
+ if command -v winpty >/dev/null 2>&1; then
+ # Work around for winpty's hijacking of certain commands
+ alias php=php
+ alias node=node
+ fi
+fi
+# --httptoolkit-end--
+# --httptoolkit--
+# This section will be reset each time a HTTP Toolkit terminal is opened
+if [ -n "$HTTP_TOOLKIT_ACTIVE" ]; then
+ # When HTTP Toolkit is active, we inject various overrides into PATH
+ export PATH="/home/ap/.local/share/httptoolkit-server/client/0.1.27/overrides/path:$PATH"
+
+ if command -v winpty >/dev/null 2>&1; then
+ # Work around for winpty's hijacking of certain commands
+ alias php=php
+ alias node=node
+ fi
+fi
+# --httptoolkit-end--
+[[ -s "/home/ap/.gvm/scripts/gvm" ]] && source "/home/ap/.gvm/scripts/gvm"
+export ELB_NAME='DEV-PORTAL-ELB-12-27-507'
+export ASG_NAME='DEV-PORTAL-ASG-12.27.507-2021-06-25T12-13-36Z'
diff --git a/dotfiles/shells/.functions b/dotfiles/shells/.functions
new file mode 100644
index 0000000..9bfdcfd
--- /dev/null
+++ b/dotfiles/shells/.functions
@@ -0,0 +1,211 @@
+# Busca en la basura
+function busca() {
+ find "*$@*" ~/Trash/
+}
+
+function cdtemp() {
+ cd `mktemp -d`
+}
+
+# Un bucle infinito facilitado
+function always(){
+ while true;
+ do
+ eval $1
+ eval $2
+ done
+}
+
+# Check that the directories of the main directory are updated git repos
+function git_updated() {
+ local ROOT=`pwd`
+ local gitstatus
+
+ for dir in `ls --color=none | grep -v Archive`
+ do
+ if [[ -d $dir ]]
+ then
+ cd $dir
+ if [[ -d .git ]]
+ then
+ gitstatus="`git status -s | awk '{print $2}'`"
+ cd $ROOT
+ if [[ -n $gitstatus ]]
+ then
+ echo "- \033[0;31m$dir\033[0m:\n$gitstatus"
+ fi
+ else
+ # Recursion at it's finest
+ git_updated
+ cd $ROOT
+ fi
+ fi
+ done
+}
+
+# fzf functions
+## insert located file
+fzf-locate-widget() {
+ local selected
+ if selected=$(locate / | fzf -q "$LBUFFER"); then
+ LBUFFER=$selected
+ fi
+ zle redisplay
+}
+zle -N fzf-locate-widget
+bindkey '\ei' fzf-locate-widget
+
+## Git stuff
+# fco - checkout git branch/tag
+unalias gco
+gco() {
+ local tags branches target
+ tags=$(
+ git tag | awk '{print "\x1b[31;1mtag\x1b[m\t" $1}') || return
+ branches=$(
+ git branch --all | grep -v HEAD |
+ sed "s/.* //" | sed "s#remotes/[^/]*/##" |
+ sort -u | awk '{print "\x1b[34;1mbranch\x1b[m\t" $1}') || return
+ target=$(
+ (echo "$tags"; echo "$branches") |
+ fzf-tmux -l30 -- --no-hscroll --ansi +m -d "\t" -n 2) || return
+ git checkout $(echo "$target" | awk '{print $2}')
+}
+
+# warn_me about stuff at any time
+function warn_me (){
+ echo "notify-send --urgency=critical \"$1\"" | at $2
+}
+
+
+# Kubectl functions
+function kube_dump_logs(){
+ local deploy="$1"
+ local namespace="$2"
+ local time="$3"
+
+ if [[ -z "$deploy" ]]
+ then
+ echo "You must pass a kubernetes deployment as an argument."
+ return 1
+ fi
+ if [[ -z "$time" ]]
+ then
+ time=1h
+ fi
+
+ if [[ -z "$namespace" ]]
+ then
+ namespace_param="-n default"
+ else
+ namespace_param="-n $namespace"
+ fi
+
+ mkdir -p "$deploy"
+
+ for pod in $(kube_get_deploy_pods $deploy $namespace)
+ do
+ echo Dumping "$pod" ...
+ eval kubectl logs "$pod" --since="$time" "$namespace_param" > "$deploy"/"$pod"
+ done
+ echo "Dumped $deploy logs."
+}
+
+function kube_get_deploy_pods(){
+ local deploy="$1"
+ local namespace="$2"
+
+ if [[ -z "$deploy" ]]
+ then
+ echo "You must pass a kubernetes deployment as an argument."
+ return 1
+ fi
+ if [[ -z "$namespace" ]]
+ then
+ namespace="-n default"
+ else
+ namespace="-n $namespace"
+ fi
+
+ eval kubectl get pods $namespace | grep "$deploy" | cut -d ' ' -f1
+}
+
+# Crea un pod de debian si no existe y lo borra al terminar
+function kdebian(){
+ echo "apt update; apt install -y curl" | xclip
+ kubectl run --generator=run-pod/v1 -ti --rm debian --image=debian
+}
+
+function kbash(){
+ kubectl exec -ti $1 bash
+}
+
+function ksh(){
+ kubectl exec -ti $1 sh
+}
+
+# Docker
+## Reveal
+function reveal () {
+ function async ()
+ {
+ sleep 3 && xdg-open http:localhost:8000
+ }
+ async &!
+ docker run -ti --name registry.daemons.it/reveal --rm -v `pwd`:/revealjs/files/ -p 127.0.0.1:8000:8000 revealjs
+}
+
+## reveal-md
+function revealmd () {
+ async () {
+ sleep 3 && xdg-open http:localhost:1948/main.md
+ }
+ async &!
+ docker run -ti --rm -v `pwd`:/revealjs/files/ -p 127.0.0.1:1948:1948 registry.daemons.it/reveal-md
+}
+
+function nginx_this(){
+ docker stop nginx_this &> /dev/null
+ docker run -d --rm -v `pwd`:/usr/share/nginx/html --name nginx_this -p \
+ 127.0.0.1:2000:80 nginx:alpine
+ # open browser
+ firefox "http://127.0.0.1:2000"
+}
+
+function promtool(){
+ docker run -ti -v `pwd`:/data --entrypoint promtool --workdir /data prom/prometheus:v2.17.1 "$@"
+}
+
+function kterm (){
+ image=$1
+ tag=$2
+ if [[ -z $tag ]]
+ then
+ tag=latest
+ fi
+ kubectl run --generator=run-pod/v1 -ti --rm kterm --image=$image:$tag sh
+}
+
+function dterm (){
+ image=$1
+ tag=$2
+ if [[ -z $tag ]]
+ then
+ tag=latest
+ fi
+ bash_exists=$(docker run -ti $image:$tag sh -c "command -v bash")
+ if [[ -n $bash_exists ]]
+ then
+ docker run -ti --network host $image:$tag bash
+ else
+ docker run -ti --network host $image:$tag sh
+ fi
+}
+
+function helmfile (){
+ docker run -ti -v `pwd`:/data -w /data -v \
+ $HOME/bin/helmify-kustomize:/usr/local/bin/helmify-kustomize:ro -v \
+ $HOME/.kube:/root/.kube:ro -e \
+ KUBECONFIG=/root/.kube/$(basename `echo $KUBECONFIG`) \
+ quay.io/roboll/helmfile:helm3-v0.140.0 helmfile "$@"
+}
diff --git a/dotfiles/shells/.zshrc b/dotfiles/shells/.zshrc
new file mode 100644
index 0000000..d83c301
--- /dev/null
+++ b/dotfiles/shells/.zshrc
@@ -0,0 +1,94 @@
+# Debug
+# set -x
+# zmodload zsh/zprof
+
+# Ruta de oh-my-zsh
+export ZSH=$HOME/.oh-my-zsh
+
+# Instala cosas
+if [[ ! -a ~/Instalados/zsh-interactive-cd ]]; then
+ git clone https://github.com/changyuheng/zsh-interactive-cd ~/Instalados/zsh-interactive-cd
+fi
+
+
+# Modify path
+PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/sbin:/sbin:/usr/local/bin"
+export PATH="$PATH:$HOME/bin/"
+export PATH="$PATH:$HOME/.bin/"
+export PATH="$PATH:$HOME/.local/bin"
+export PATH="$PATH:/$HOME/.emacs.d/bin/"
+export PATH="$PATH:/opt/go/bin"
+export PATH="$PATH:/opt/brew/bin/"
+export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
+export GOPATH=/opt/go
+
+# Cargar los programas instalados
+source $HOME/Instalados/zsh-interactive-cd/zsh-interactive-cd.plugin.zsh
+source /usr/share/z/z.sh
+# fzf: automatically selects the item if there's only one
+export FZF_CTRL_T_OPTS="--select-1 --exit-0"
+
+# fzf The following example uses tree command to show the entries of the directory
+export FZF_ALT_C_OPTS="--preview 'tree -C {} | head -200'"
+
+# Full command on preview window
+export FZF_CTRL_R_OPTS="--preview 'echo {}' --preview-window down:3:hidden:wrap --bind '?:toggle-preview'"
+
+# Term
+export TERM="xterm-256color"
+
+# Prompt ZSH
+eval "$(starship init zsh)"
+
+# No comprobar si hay actualizaciones
+DISABLE_AUTO_UPDATE="true"
+
+# No corregir errores
+ENABLE_CORRECTION="false"
+
+# Mostrar puntos rojos mientras se espera el completado
+COMPLETION_WAITING_DOTS="true"
+
+# Formato de tiempo
+HIST_STAMPS="dd/mm/yyyy"
+
+# Plugins
+plugins=(git colored-man-pages ssh-agent daemons-aws gitfast ksp)
+
+export MANPATH="/usr/local/man:$MANPATH"
+
+# Usar oh-my-zsh
+source $ZSH/oh-my-zsh.sh
+
+# Por algún motivo...
+# https://github.com/ohmyzsh/ohmyzsh/issues/4607#issuecomment-510494971
+export FPATH="/usr/local/share/zsh/functions:$FPATH"
+
+# Lenguaje
+export LANG=es_ES.UTF-8
+export LANGUAGE=es_ES.UTF-8
+export LC_ALL=es_ES.UTF-8
+
+# Editor preferido
+export EDITOR="emacsclient -t -c"
+export ALTERNATE_EDITOR="vim"
+
+# Python virtualenv
+export WORKON_HOME=$HOME/.virtualenvs
+
+# Cosas de Systemd
+export XDG_RUNTIME_DIR="/run/user/$UID"
+export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
+
+# Arduino IDE path
+export ARDUINO_DIR=/opt/arduino-1.8.7
+
+source $HOME/.functions
+source $HOME/.aliases
+source $HOME/.fzf.zsh
+
+# No comprobar mails
+MAILCHECK=0
+
+# Krew
+#
diff --git a/dotfiles/starship/.config/starship.toml b/dotfiles/starship/.config/starship.toml
new file mode 100644
index 0000000..2db6b9e
--- /dev/null
+++ b/dotfiles/starship/.config/starship.toml
@@ -0,0 +1,38 @@
+[battery]
+full_symbol = "🔋"
+charging_symbol = "⚡️"
+discharging_symbol = "💀"
+
+[[battery.display]]
+threshold = 10
+style = "bold red"
+
+[kubernetes]
+disabled = false
+
+[terraform]
+disabled = true
+
+[aws]
+symbol = " "
+
+[docker_context]
+symbol = " "
+
+[golang]
+symbol = " "
+
+[java]
+symbol = " "
+
+[nodejs]
+symbol = " "
+
+[php]
+symbol = " "
+
+[python]
+symbol = " "
+
+[directory]
+truncation_length = 5
diff --git a/dotfiles/system-configuration/etc/backup.d/90.rdiff b/dotfiles/system-configuration/etc/backup.d/90.rdiff
new file mode 100644
index 0000000..eeac956
--- /dev/null
+++ b/dotfiles/system-configuration/etc/backup.d/90.rdiff
@@ -0,0 +1,33 @@
+options = --force
+when = everyday at 02
+output_as_info = no
+[source]
+type = local
+keep = 60D
+
+# files to include in the backup
+include = /etc
+include = /root
+include = /home
+exclude = /home/*/Trash
+exclude = /home/*/.local/share/Trash
+exclude = /home/*/.Trash
+exclude = /home/*/.cache/
+exclude = /home/*/.local/share/virtualenvs
+exclude = /home/*/.local/share/virtualenv
+exclude = /home/*/.basura/
+exclude = /home/*/.virtualenvs/
+exclude = /home/*/.electricsheep
+exclude = /home/*/.mozilla
+exclude = /home/*/go
+exclude = /home/*/.gradle
+exclude = /home/*/.cargo
+exclude = /home/*/.npm
+exclude = /home/*/.minikube
+exclude = /home/*/.vagrant.d
+
+[dest]
+type = remote
+directory = /opt/external/baks/angry-turing/
+host = 192.168.0.161
+user = drymer
diff --git a/dotfiles/system-configuration/etc/backupninja.conf b/dotfiles/system-configuration/etc/backupninja.conf
new file mode 100644
index 0000000..85d9fc4
--- /dev/null
+++ b/dotfiles/system-configuration/etc/backupninja.conf
@@ -0,0 +1,91 @@
+#
+# |\_
+# B A C K U P N I N J A /()/
+# `\|
+# main configuration file
+#
+
+# how verbose to make the logs
+# 5 -- Debugging messages (and below)
+# 4 -- Informational messages (and below)
+# 3 -- Warnings (and below)
+# 2 -- Errors (and below)
+# 1 -- Fatal errors (only)
+loglevel = 4
+
+# send a summary of the backup status to
+# this email address:
+reportemail = root
+
+# if set to 'yes', a report email will be generated
+# even if all modules reported success. (default = yes)
+reportsuccess = no
+
+# if set to 'yes', info messages from handlers will be
+# sent into the email (default = no)
+reportinfo = no
+
+# if set to 'yes', a report email will be generated
+# even if there was no error. (default = yes)
+reportwarning = no
+
+# if set to 'yes', disk space usage will be included in
+# the backup email report
+reportspace = no
+
+# where to rsync the backupninja.log to be aggregated in
+# a ninjareport
+reporthost =
+
+# what user to connect to reporthost to sync the
+# backupninja.log
+reportuser = ninja
+
+# where on the reporthost should the report go
+# NOTE: the name of the log will be used in the report,
+# use a globally unique name, preferably the hostname
+reportdirectory = /var/lib/backupninja/reports
+
+# number of columns the report email body should wrap to
+#reportwrap = 80
+
+# set to the administration group that is allowed to
+# read/write configuration files in /etc/backup.d
+admingroup = root
+
+#######################################################
+# for most installations, the defaults below are good #
+#######################################################
+
+# where to log:
+logfile = /var/log/backupninja.log
+
+# directory where all the backup configuration files live
+configdirectory = /etc/backup.d
+
+# where backupninja helper scripts are found
+scriptdirectory = /usr/share/backupninja
+
+# where backupninja libs are found
+libdirectory = /usr/lib/backupninja
+
+# whether to use colors in the log file
+usecolors = yes
+
+# default value for 'when'
+when = everyday at 09:00
+
+# programs paths
+# SLAPCAT=/usr/sbin/slapcat
+# LDAPSEARCH=/usr/bin/ldapsearch
+# RDIFFBACKUP=/usr/bin/rdiff-backup
+# CSTREAM=/usr/bin/cstream
+# MYSQL=/usr/bin/mysql
+# MYSQLHOTCOPY=/usr/bin/mysqlhotcopy
+# MYSQLDUMP=/usr/bin/mysqldump
+# PSQL=/usr/bin/psql
+# PGSQLDUMP=/usr/bin/pg_dump
+# PGSQLDUMPALL=/usr/bin/pg_dumpall
+# GZIP=/bin/gzip
+# GZIP_OPTS='--rsyncable'
+# RSYNC=/usr/bin/rsync
diff --git a/dotfiles/system-configuration/etc/pacman.conf b/dotfiles/system-configuration/etc/pacman.conf
new file mode 100644
index 0000000..6f1a3b4
--- /dev/null
+++ b/dotfiles/system-configuration/etc/pacman.conf
@@ -0,0 +1,98 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# GENERAL OPTIONS
+#
+[options]
+# The following paths are commented out with their default values listed.
+# If you wish to use different paths, uncomment and update the paths.
+#RootDir = /
+#DBPath = /var/lib/pacman/
+#CacheDir = /var/cache/pacman/pkg/
+#LogFile = /var/log/pacman.log
+#GPGDir = /etc/pacman.d/gnupg/
+#HookDir = /etc/pacman.d/hooks/
+HoldPkg = pacman glibc
+#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#CleanMethod = KeepInstalled
+#UseDelta = 0.7
+Architecture = auto
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+#IgnorePkg =
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options
+#UseSyslog
+#Color
+#TotalDownload
+CheckSpace
+#VerbosePkgLists
+
+# By default, pacman accepts packages signed by keys that its local keyring
+# trusts (see pacman-key and its man page), as well as unsigned packages.
+SigLevel = Required DatabaseOptional
+LocalFileSigLevel = Optional
+#RemoteFileSigLevel = Required
+
+# NOTE: You must run `pacman-key --init` before first using pacman; the local
+# keyring can then be populated with the keys of all official Arch Linux
+# packagers with `pacman-key --populate archlinux`.
+
+#
+# REPOSITORIES
+# - can be defined here or included from another file
+# - pacman will search repositories in the order defined here
+# - local/custom mirrors can be added here or in separate files
+# - repositories listed first will take precedence when packages
+# have identical names, regardless of version number
+# - URLs will have $repo replaced by the name of the current repo
+# - URLs will have $arch replaced by the name of the architecture
+#
+# Repository entries are of the format:
+# [repo-name]
+# Server = ServerName
+# Include = IncludePath
+#
+# The header [repo-name] is crucial - it must be present and
+# uncommented to enable the repo.
+#
+
+# The testing repositories are disabled by default. To enable, uncomment the
+# repo name header and Include lines. You can add preferred servers immediately
+# after the header, and they will be used before the default mirrors.
+
+#[testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[core]
+Include = /etc/pacman.d/mirrorlist
+
+[extra]
+Include = /etc/pacman.d/mirrorlist
+
+#[community-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[community]
+Include = /etc/pacman.d/mirrorlist
+
+# If you want to run 32 bit applications on your x86_64 system,
+# enable the multilib repositories as required here.
+
+[multilib]
+Include = /etc/pacman.d/mirrorlist
+
+# An example of a custom package repository. See the pacman manpage for
+# tips on creating your own repositories.
+#[custom]
+#SigLevel = Optional TrustAll
+#Server = file:///home/custompkgs
+
diff --git a/manage.sh b/manage.sh
new file mode 100755
index 0000000..e1d967a
--- /dev/null
+++ b/manage.sh
@@ -0,0 +1,72 @@
+#!/usr/bin/env bash
+set -eo pipefail
+
+arg=$1
+
+if [[ $arg == "packages-bundle" ]]
+then
+ # Actualizar repositorios
+ sudo pacman -Sy
+
+ # Instalar yay
+ if ! command -v yay &> /dev/null
+ then
+ sudo pacman -S --needed git base-devel
+ dotfiles_path=$(pwd)
+ mkdir -p $HOME/Instalados
+ cd $HOME/Instalados
+ git clone https://aur.archlinux.org/yay.git
+ cd yay
+ makepkg -si
+ cd $dotfiles_path
+ fi
+
+ # Instalar aconfmgr
+ if ! command -v aconfmgr &> /dev/null
+ then
+ yay -S aconfmgr-git
+ fi
+
+ # Instalar homebrew
+ if [[ -f brew ]]
+ then
+ yay -S brew-git
+ sudo chown -R $(whoami).users /opt/brew/
+ fi
+
+ # Instalar paquetes del sistema
+ aconfmgr -c packages/arch apply
+
+ # Instalar paquetes de brew
+ brew bundle --file packages/brew/Brewfile
+
+ # Instalar oh-my-zsh
+ if [[ -a $HOME/.oh-my-zsh ]]; then
+ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
+ fi
+elif [[ $arg == "packages-update" ]]
+then
+ # Actualiza oh my zsh
+ sh "$HOME/.oh-my-zsh/tools/upgrade.sh"
+ rm -rf "$HOME/.oh-my-zsh/log/update.lock"
+
+ # Actualiza arch
+ sudo pacman -Syu
+ # Sincroniza los repositorios de brew
+ brew update
+ # Actualiza los paquetes instalados
+ brew upgrade
+
+elif [[ $arg == "dotfiles" ]]
+then
+ cd dotfiles
+ stow -t ~ alacritty
+ stow -t ~ git
+ stow -t ~ i3
+ stow -t ~ shells
+ stow -t ~ starship
+ sudo stow -t / system-configurations
+ cd ..
+else
+ echo "use 'packages-bundle', 'packages-update' or 'dotfiles'"
+fi
diff --git a/packages/arch/1-ignore.sh b/packages/arch/1-ignore.sh
new file mode 100644
index 0000000..f158522
--- /dev/null
+++ b/packages/arch/1-ignore.sh
@@ -0,0 +1,18 @@
+IgnorePath "/bin/*"
+IgnorePath "/boot/*"
+IgnorePath "/dev/*"
+IgnorePath "/home/*"
+IgnorePath "/lib/*"
+IgnorePath "/lib64/*"
+IgnorePath "/mnt/*"
+IgnorePath "/opt/*"
+IgnorePath "/proc/*"
+IgnorePath "/root/*"
+IgnorePath "/run/*"
+IgnorePath "/sbin/*"
+IgnorePath "/srv/*"
+IgnorePath "/sys/*"
+IgnorePath "/tmp/*"
+IgnorePath "/usr/*"
+IgnorePath "/var/*"
+IgnorePath "/etc/*"
diff --git a/packages/arch/10-base.sh b/packages/arch/10-base.sh
new file mode 100644
index 0000000..0de6fea
--- /dev/null
+++ b/packages/arch/10-base.sh
@@ -0,0 +1,255 @@
+AddPackage base # Minimal package set to define a basic Arch Linux installation
+AddPackage acpi # Client for battery, power, and thermal readings
+AddPackage alacritty # A cross-platform, GPU-accelerated terminal emulator
+AddPackage alsa-utils # Advanced Linux Sound Architecture - Utilities
+IgnorePackage amd-ucode # Microcode update image for AMD CPUs
+AddPackage arandr # Provide a simple visual front end for XRandR 1.2.
+AddPackage archlinux-themes-slim # Arch Linux branded themes for the SLiM login manager
+AddPackage aspell-en # English dictionary for aspell
+AddPackage aspell-es # Spanish dictionary for aspell
+AddPackage at # AT and batch delayed command scheduling utility and daemon
+AddPackage bash # The GNU Bourne Again shell
+AddPackage bc # An arbitrary precision calculator language
+AddPackage bind # A complete, highly portable implementation of the DNS protocol
+AddPackage binutils # A set of programs to assemble and manipulate binary and object files
+AddPackage bison # The GNU general-purpose parser generator
+AddPackage blueman # GTK+ Bluetooth Manager
+AddPackage bluez-hid2hci # Put HID proxying bluetooth HCI's into HCI mode
+AddPackage bluez-utils # Development and debugging utilities for the bluetooth protocol stack
+AddPackage bzip2 # A high-quality data compression program
+AddPackage ccache # Compiler cache that speeds up recompilation by caching previous compilations
+AddPackage conntrack-tools # Userspace tools to interact with the Netfilter connection tracking system
+AddPackage cryptsetup # Userspace setup tool for transparent encryption of block devices using dm-crypt
+AddPackage coreutils # The basic file, shell and text manipulation utilities of the GNU operating system
+AddPackage cpio # A tool to copy files into or out of a cpio or tar archive
+AddPackage cronie # Daemon that runs specified programs at scheduled times and related tools
+AddPackage dash # POSIX compliant shell that aims to be as small as possible
+AddPackage dbus # Freedesktop.org message bus system
+AddPackage delve # A debugger for the Go programming language.
+AddPackage device-mapper # Device mapper userspace library and tools
+AddPackage dfc # Display file system space usage using graphs and colors
+AddPackage dhcp # A DHCP server, client, and relay agent
+AddPackage dhcpcd # RFC2131 compliant DHCP client daemon
+AddPackage dmenu # Generic menu for X
+AddPackage dos2unix # Text file format converter
+AddPackage dunst # Customizable and lightweight notification-daemon
+AddPackage e2fsprogs # Ext2/3/4 filesystem utilities
+AddPackage efibootmgr # Linux user-space application to modify the EFI Boot Manager
+AddPackage encfs # Encrypted filesystem in user-space
+AddPackage espeak # Text to Speech engine for English, with support for other languages
+AddPackage fakeroot # Tool for simulating superuser privileges
+AddPackage file # File type identification utility
+AddPackage filesystem # Base Arch Linux files
+AddPackage findutils # GNU utilities to locate files
+AddPackage gettext # GNU internationalization library
+AddPackage glibc # GNU C Library
+AddPackage grep # A string search utility
+AddPackage grub # GNU GRand Unified Bootloader (2)
+AddPackage grub-customizer # A graphical grub2 settings manager
+AddPackage gst-libav # Multimedia graph framework - libav plugin
+AddPackage gst-plugins-bad # Multimedia graph framework - bad plugins
+AddPackage gst-plugins-ugly # Multimedia graph framework - ugly plugins
+AddPackage gvfs # Virtual filesystem implementation for GIO
+AddPackage gzip # GNU compression utility
+AddPackage haveged # Entropy harvesting daemon using CPU timings
+AddPackage htop # Interactive process viewer
+AddPackage hwinfo # Hardware detection tool from openSUSE
+AddPackage i3blocks # Define blocks for your i3bar status line
+AddPackage i3-gaps # A fork of i3wm tiling window manager with more features, including gaps
+AddPackage i3lock # Improved screenlocker based upon XCB and PAM
+AddPackage i3status # Generates status bar to use with i3bar, dzen2 or xmobar
+AddPackage inetutils # A collection of common network programs
+AddPackage ipcalc # Calculates IP broadcast, network, Cisco wildcard mask, and host ranges
+AddPackage iproute2 # IP Routing Utilities
+AddPackage iputils # Network monitoring tools, including ping
+AddPackage jfsutils # JFS filesystem utilities
+AddPackage keychain # A front-end to ssh-agent, allowing one long-running ssh-agent process per system, rather than per login
+AddPackage languagetool # An open source language checker
+AddPackage less # A terminal based program for viewing text files
+AddPackage lib32-gst-plugins-base-libs # GStreamer Multimedia Framework Base Plugin libraries (32-bit)
+AddPackage lib32-gtk3 # GObject-based multi-platform GUI toolkit
+AddPackage lib32-libxslt # XML stylesheet transformation library (32-bit)
+AddPackage lib32-ocl-icd # OpenCL ICD Bindings (32-bit)
+AddPackage lib32-v4l-utils # Userspace tools and conversion library for Video 4 Linux (32-bit)
+AddPackage libvterm # Abstract library implementation of a VT220/xterm/ECMA-48 terminal emulator
+AddPackage licenses # Standard licenses distribution package
+AddPackage linux # The Linux kernel and modules
+AddPackage linux-firmware # Firmware files for Linux
+AddPackage linux-headers # Headers and scripts for building modules for the Linux kernel
+AddPackage linux-lts # The LTS Linux kernel and modules
+AddPackage logrotate # Rotates system logs automatically
+AddPackage lsof # Lists open files for running Unix processes
+AddPackage luit # Filter that can be run between an arbitrary application and a UTF-8 terminal emulator
+AddPackage lvm2 # Logical Volume Manager 2 utilities
+AddPackage lxappearance # Feature-rich GTK+ theme switcher of the LXDE Desktop
+AddPackage lxrandr # Monitor configuration tool (part of LXDE)
+AddPackage lynx # A text browser for the World Wide Web
+AddPackage macchanger # A small utility to change your NIC's MAC address
+AddPackage man-db # A utility for reading man pages
+AddPackage man-pages # Linux man pages
+AddPackage mariadb-clients # MariaDB client tools
+AddPackage mdadm # A tool for managing/monitoring Linux md device arrays, also known as Software RAID
+AddPackage mediainfo # Supplies technical and tag information about a video or audio file (CLI interface)
+AddPackage mediainfo-gui # Supplies technical and tag information about a video or audio file (GUI interface)
+AddPackage mlocate # Merging locate/updatedb implementation
+AddPackage mousepad # Simple text editor for Xfce
+AddPackage netctl # Profile based systemd network management
+AddPackage net-tools # Configuration tools for Linux networking
+AddPackage networkmanager # Network connection manager and user applications
+AddPackage network-manager-applet # Applet for managing network connections
+AddPackage nftables # Netfilter tables userspace tools
+AddPackage noto-fonts-emoji # Google Noto emoji fonts
+AddPackage ntp # Network Time Protocol reference implementation
+AddPackage ocl-icd # OpenCL ICD Bindings
+AddPackage openssh # Premier connectivity tool for remote login with the SSH protocol
+AddPackage openvpn # An easy-to-use, robust and highly configurable VPN (Virtual Private Network)
+AddPackage pacman # A library-based package manager with dependency support
+AddPackage pacman-contrib # Contributed scripts and tools for pacman systems
+AddPackage pandoc # Conversion between markup formats
+AddPackage parallel # A shell tool for executing jobs in parallel
+AddPackage parcellite # Lightweight GTK+ clipboard manager
+AddPackage powerline # Statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, tmux, IPython, Awesome, i3 and Qtile
+AddPackage nano # Pico editor clone with enhancements
+AddPackage ncdu # Disk usage analyzer with an ncurses interface
+AddPackage patch # A utility to apply patch files to original sources
+AddPackage pavucontrol # PulseAudio Volume Control
+AddPackage pciutils # PCI bus configuration space access library and tools
+AddPackage perl # A highly capable, feature-rich programming language
+AddPackage perlbrew # Manage perl installations in your $HOME
+AddPackage picom # X compositor that may fix tearing issues
+AddPackage pkgconf # Package compiler and linker metadata toolkit
+AddPackage powertop # A tool to diagnose issues with power consumption and power management
+AddPackage procps-ng # Utilities for monitoring your system and its processes
+AddPackage psmisc # Miscellaneous procfs tools
+AddPackage pulseaudio # A featureful, general-purpose sound server
+AddPackage pulseaudio-alsa # ALSA Configuration for PulseAudio
+AddPackage pv # A terminal-based tool for monitoring the progress of data through a pipeline.
+AddPackage read-edid # Program that can get information from a PNP monitor
+AddPackage redshift # Adjusts the color temperature of your screen according to your surroundings.
+AddPackage reiserfsprogs # Reiserfs utilities
+AddPackage reptyr # Utility for taking an existing running program and attaching it to a new terminal
+AddPackage rsync # A fast and versatile file copying tool for remote and local files
+AddPackage screen # Full-screen window manager that multiplexes a physical terminal
+AddPackage scrot # Simple command-line screenshot utility for X
+AddPackage sed # GNU stream editor
+AddPackage shadow # Password and account management tool suite with support for shadow files and PAM
+AddPackage sl # Steam Locomotive runs across your terminal when you type "sl" as you meant to type "ls".
+AddPackage slim # Desktop-independent graphical login manager for X11
+AddPackage slim-themes # Themes Pack for Simple Login Manager
+AddPackage smartmontools # Control and monitor S.M.A.R.T. enabled ATA and SCSI Hard Drives
+AddPackage sshfs # FUSE client based on the SSH File Transfer Protocol
+AddPackage strace # A diagnostic, debugging and instructional userspace tracer
+AddPackage sudo # Give certain users the ability to run some commands as root
+AddPackage sxiv # Simple X Image Viewer
+AddPackage sysbench # Scriptable multi-threaded benchmark tool for databases and systems
+AddPackage sysfsutils # System Utilities Based on Sysfs
+AddPackage sysstat # a collection of performance monitoring tools (iostat,isag,mpstat,pidstat,sadf,sar)
+AddPackage systemd-sysvcompat # sysvinit compat for systemd
+AddPackage tar # Utility used to store, backup, and transport files
+AddPackage testdisk # Checks and undeletes partitions + PhotoRec, signature based recovery tool
+AddPackage texi2html # Converts texinfo documents to HTML
+AddPackage texinfo # GNU documentation system for on-line information and printed output
+AddPackage texlive-bibtexextra # TeX Live - Additional BibTeX styles and bibliography databases
+AddPackage texlive-core # TeX Live core distribution
+AddPackage texlive-fontsextra # TeX Live - all sorts of extra fonts
+AddPackage texlive-formatsextra # TeX Live - collection of extra TeX 'formats'
+AddPackage texlive-games # TeX Live - Setups for typesetting various board games, including chess
+AddPackage texlive-humanities # TeX Live - LaTeX packages for law, linguistics, social sciences, and humanities
+AddPackage texlive-latexextra # TeX Live - Large collection of add-on packages for LaTeX
+AddPackage texlive-music # TeX Live - Music typesetting packages
+AddPackage texlive-pictures # TeX Live - Packages for drawings graphics
+AddPackage texlive-pstricks # TeX Live - Additional PSTricks packages
+AddPackage texlive-publishers # TeX Live - LaTeX classes and packages for specific publishers
+AddPackage texlive-science # TeX Live - Typesetting for mathematics, natural and computer sciences
+AddPackage thunar # Modern file manager for Xfce
+AddPackage thunar-archive-plugin # Create and extract archives in Thunar
+AddPackage thunar-media-tags-plugin # Adds special features for media files to the Thunar File Manager
+AddPackage thunar-volman # Automatic management of removeable devices in Thunar
+AddPackage thunderbird # Standalone mail and news reader from mozilla.org
+AddPackage tk # A windowing toolkit for use with tcl
+AddPackage tlp # Linux Advanced Power Management
+AddPackage traceroute # Tracks the route taken by packets over an IP network
+AddPackage ttf-dejavu # Font family based on the Bitstream Vera Fonts with a wider range of characters
+AddPackage ttf-font-awesome # Iconic font designed for Bootstrap
+AddPackage tumbler # D-Bus service for applications to request thumbnails
+AddPackage unoconv # Libreoffice-based document converter
+AddPackage unrar # The RAR uncompression program
+AddPackage unzip # For extracting and viewing files in .zip archives
+AddPackage usbutils # A collection of USB tools to query connected USB devices
+AddPackage util-linux # Miscellaneous system utilities for Linux
+AddPackage wget # Network utility to retrieve files from the Web
+AddPackage which # A utility to show the full path of commands
+AddPackage wireless_tools # Tools allowing to manipulate the Wireless Extensions
+AddPackage xautolock # An automatic X screen-locker/screen-saver
+AddPackage xcape # Configure modifier keys to act as other keys when pressed and released on their own
+AddPackage xf86-input-evdev # X.org evdev input driver
+AddPackage xf86-input-synaptics # Synaptics driver for notebook touchpads
+AddPackage xf86-video-amdgpu # X.org amdgpu video driver
+AddPackage xfburn # A simple CD/DVD burning tool based on libburnia libraries
+AddPackage xfconf # Flexible, easy-to-use configuration management system
+AddPackage xfdesktop # A desktop manager for Xfce
+AddPackage xfsprogs # XFS filesystem utilities
+AddPackage xorg-bdftopcf # Convert X font from Bitmap Distribution Format to Portable Compiled Format
+AddPackage xorg-iceauth # ICE authority file utility
+AddPackage xorg-server # Xorg X server
+AddPackage xorg-sessreg # Register X sessions in system utmp/utmpx databases
+AddPackage xorg-smproxy # Allows X applications that do not support X11R6 session management to participate in an X11R6 session
+AddPackage xorg-x11perf # Simple X server performance benchmarker
+AddPackage xorg-xbacklight # RandR-based backlight control application
+AddPackage xorg-xcmsdb # Device Color Characterization utility for X Color Management System
+AddPackage xorg-xcursorgen # Create an X cursor file from PNG images
+AddPackage xorg-xdpyinfo # Display information utility for X
+AddPackage xorg-xdriinfo # Query configuration information of DRI drivers
+AddPackage xorg-xev # Print contents of X events
+AddPackage xorg-xgamma # Alter a monitor's gamma correction
+AddPackage xorg-xhost # Server access control program for X
+AddPackage xorg-xinput # Small commandline tool to configure devices
+AddPackage xorg-xkbevd # XKB event daemon
+AddPackage xorg-xkbutils # XKB utility demos
+AddPackage xorg-xkill # Kill a client by its X resource
+AddPackage xorg-xlsatoms # List interned atoms defined on server
+AddPackage xorg-xlsclients # List client applications running on a display
+AddPackage xorg-xmodmap # Utility for modifying keymaps and button mappings
+AddPackage xorg-xpr # Print an X window dump from xwd
+AddPackage xorg-xprop # Property displayer for X
+AddPackage xorg-xrdb # X server resource database utility
+AddPackage xorg-xrefresh # Refresh all or part of an X screen
+AddPackage xorg-xsetroot # Classic X utility to set your root window background to a given pattern or color
+AddPackage xorg-xvinfo # Prints out the capabilities of any video adaptors associated with the display that are accessible through the X-Video extension
+AddPackage xorg-xwd # X Window System image dumping utility
+AddPackage xorg-xwininfo # Command-line utility to print information about windows on an X server
+AddPackage xorg-xwud # X Window System image undumping utility
+AddPackage xterm # X Terminal Emulator
+AddPackage zathura # Minimalistic document viewer
+AddPackage zathura-pdf-mupdf # PDF support for Zathura (MuPDF backend) (Supports PDF, ePub, and OpenXPS)
+AddPackage zip # Compressor/archiver for creating and modifying zipfiles
+AddPackage --foreign backupninja-git # A centralized way to configure and schedule many different backup utilities
+AddPackage --foreign electricsheep # Screensaver that realize the collective dream of sleeping computers from all over the internet
+AddPackage --foreign bcm20702a1-firmware # Broadcom bluetooth firmware for BCM20702A1 based devices.
+AddPackage --foreign openvpn-update-systemd-resolved # OpenVPN systemd-resolved Updater
+AddPackage --foreign pacman-fix-permissions # small Python script to fix broken Arch Linux filesystem permissions
+AddPackage --foreign pulseaudio-modules-bt-git # PulseAudio Bluetooth modules with SBC, AAC, APTX, APTX-HD, Sony LDAC (A2DP codec) support
+AddPackage --foreign ttf-dejavu-sans-mono-powerline-git # DejaVu Sans Mono for Powerline
+AddPackage --foreign ttf-font-awesome-4 # 100% free version of font awesome.
+AddPackage --foreign unrar-free # Free utility to extract files from RAR archives.
+AddPackage --foreign wordnet-cli # A CLI fontend for the WordNet Database
+AddPackage --foreign yay # Yet another yogurt. Pacman wrapper and AUR helper written in go.
+AddPackage stow # Manage installation of multiple softwares in the same directory tree
+AddPackage xclip # Command line interface to the X11 clipboard
+AddPackage xfce4-appfinder # An application finder for Xfce
+AddPackage xfce4-panel # Panel for the Xfce desktop environment
+AddPackage xfce4-power-manager # Power manager for the Xfce desktop
+AddPackage xfce4-session # Session manager for Xfce
+AddPackage xfce4-settings # Settings manager of the Xfce desktop
+AddPackage xfce4-terminal # A modern terminal emulator primarily for the Xfce desktop environment
+AddPackage xfwm4 # Xfce's window manager
+AddPackage xfwm4-themes # A set of additional themes for the Xfce window manager
+AddPackage lib32-gst-plugins-base-libs # GStreamer Multimedia Framework Base Plugin libraries (32-bit)
+AddPackage lib32-gtk3 # GObject-based multi-platform GUI toolkit
+AddPackage lib32-libxslt # XML stylesheet transformation library (32-bit)
+AddPackage lib32-ocl-icd # OpenCL ICD Bindings (32-bit)
+AddPackage lib32-v4l-utils # Userspace tools and conversion library for Video 4 Linux (32-bit)
+AddPackage rdiff-backup # A utility for local/remote mirroring and incremental backups.
+AddPackage --foreign otf-font-awesome-4 # 100% free version of font awesome.
+AddPackage --foreign wordnet-common # An Electronic Lexical Database from Princeton University
+AddPackage --foreign wordnet-tk # A TK frontend for the WordNet Database
diff --git a/packages/arch/15-utils.sh b/packages/arch/15-utils.sh
new file mode 100644
index 0000000..25c6118
--- /dev/null
+++ b/packages/arch/15-utils.sh
@@ -0,0 +1,60 @@
+AddPackage asciidoctor # An implementation of AsciiDoc in Ruby
+AddPackage asciinema # Record and share terminal sessions
+AddPackage aws-cli # Universal Command Line Interface for Amazon Web Services
+AddPackage ethtool # Utility for controlling network drivers and hardware
+AddPackage exo # Application library for Xfce
+AddPackage fbreader # An e-book reader for Linux
+AddPackage fd # Simple, fast and user-friendly alternative to find
+AddPackage feh # Fast and light imlib2-based image viewer
+AddPackage fzf # Command-line fuzzy finder
+AddPackage gnu-netcat # GNU rewrite of netcat, the network piping application
+AddPackage gnuplot # Plotting package which outputs to X11, PostScript, PNG, GIF, and others
+AddPackage gparted # A Partition Magic clone, frontend to GNU Parted
+AddPackage gpick # Advanced color picker written in C++ using GTK+ toolkit
+AddPackage iftop # Display bandwidth usage on an interface
+AddPackage imagemagick # An image viewing/manipulation program
+AddPackage jq # Command-line JSON processor
+AddPackage multitail # Lets you view one or multiple files like the original tail program
+AddPackage nmap # Utility for network discovery and security auditing
+AddPackage pass # Stores, retrieves, generates, and synchronizes passwords securely
+AddPackage prettier # An opinionated code formatter for JS, JSON, CSS, YAML and much more
+AddPackage proxychains-ng # A hook preloader that allows to redirect TCP traffic of existing dynamically linked programs through one or more SOCKS or HTTP proxies
+AddPackage ripgrep # A search tool that combines the usability of ag with the raw speed of grep
+AddPackage rofi # A window switcher, application launcher and dmenu replacement
+AddPackage rpmextract # Script to convert or extract RPM archives (contains rpm2cpio)
+AddPackage socat # Multipurpose relay
+AddPackage stress # A tool that stress tests your system (CPU, memory, I/O, disks)
+AddPackage tcpdump # Powerful command-line packet analyzer
+AddPackage tmux # A terminal multiplexer
+AddPackage tor # Anonymizing overlay network.
+AddPackage torsocks # Wrapper to safely torify applications
+AddPackage unclutter # A small program for hiding the mouse cursor
+AddPackage unp # A script for unpacking a wide variety of archive formats
+AddPackage wipe # Secure file wiping utility
+AddPackage wireshark-qt # Network traffic and protocol analyzer/sniffer - Qt GUI
+AddPackage youtube-dl # A command-line program to download videos from YouTube.com and a few more sites
+AddPackage z # Tracks your most used directories, based on 'frecency'
+AddPackage zsh # A very advanced and programmable command interpreter (shell) for UNIX
+IgnorePackage --foreign aconfmgr-git # A configuration manager for Arch Linux
+AddPackage --foreign autojump # A faster way to navigate your filesystem from the command line
+AddPackage --foreign aws-iam-authenticator-bin # A tool to use AWS IAM credentials to authenticate to a Kubernetes cluster
+AddPackage exa # rich ls
+AddPackage --foreign mkpasswd # Tool for creating password hashes suitable for /etc/shadow
+AddPackage --foreign mongodb-bin # A high-performance, open source, schema-free document-oriented database
+AddPackage --foreign mongodb-tools-bin # The MongoDB tools provide import, export, and diagnostic capabilities.
+AddPackage --foreign nerd-fonts-fira-code # Patched font Fira (Fura) Code from the nerd-fonts library
+AddPackage --foreign pcapfix # A tool of repairing your broken pcap and pcapng files
+AddPackage --foreign toilet # free replacement for the FIGlet utility.
+AddPackage zsh-completions # Additional completion definitions for Zsh
+AddPackage zsh-syntax-highlighting # Fish shell like syntax highlighting for Zsh
+AddPackage --foreign howdoi # Instant coding answers via the command line
+AddPackage --foreign inframap # Read your tfstate or HCL to generate a graph specific for each provider, showing only the resources that are most important/relevant
+AddPackage --foreign mdl # MarkDown Less is a Markdown displayer
+AddPackage --foreign proselint # A linter for prose
+AddPackage --foreign scrcpy # Display and control your Android device
+AddPackage --foreign wordnet-cli
+AddPackage --foreign mkpasswd
+AddPackage --foreign mongodb-bin
+AddPackage --foreign mongodb-tools-bin
+AddPackage --foreign pcapfix
+AddPackage --foreign toilet
diff --git a/packages/arch/30-gui.sh b/packages/arch/30-gui.sh
new file mode 100644
index 0000000..e69de29
diff --git a/packages/arch/50-media.sh b/packages/arch/50-media.sh
new file mode 100644
index 0000000..e69de29
diff --git a/packages/arch/70-development.sh b/packages/arch/70-development.sh
new file mode 100644
index 0000000..3775972
--- /dev/null
+++ b/packages/arch/70-development.sh
@@ -0,0 +1,61 @@
+AddPackage android-tools # Android platform tools
+AddPackage arduino # Arduino prototyping platform SDK
+AddPackage atom # A hackable text editor for the 21st Century
+AddPackage autoconf # A GNU tool for automatically configuring source code
+AddPackage automake # A GNU tool for automatically creating Makefiles
+AddPackage clang # C language family frontend for LLVM
+AddPackage clojure # Lisp dialect for the JVM
+AddPackage cmake # A cross-platform open-source make system
+AddPackage dia # A GTK+ based diagram creation program
+AddPackage diff-so-fancy # Good-looking diffs with diff-highlight and more
+AddPackage diffutils # Utility programs used for creating patch files
+AddPackage docker # Pack, ship and run any application as a lightweight container
+AddPackage docker-compose # Fast, isolated development environments using Docker
+AddPackage emacs # The extensible, customizable, self-documenting real-time display editor
+AddPackage gcc # The GNU Compiler Collection - C and C++ frontends
+AddPackage gcc-libs # Runtime libraries shipped by GCC
+AddPackage git # the fast distributed version control system
+AddPackage gawk # GNU version of awk
+AddPackage go # Core compiler tools for the Go programming language
+AddPackage graphviz # Graph visualization software
+AddPackage jdk11-openjdk # OpenJDK Java 11 development kit
+AddPackage jdk8-openjdk # OpenJDK Java 8 development kit
+AddPackage jre11-openjdk-headless # OpenJDK Java 11 headless runtime environment
+AddPackage make # GNU make utility to maintain groups of programs
+AddPackage minikube # A tool that makes it easy to run Kubernetes locally
+AddPackage nodejs # Evented I/O for V8 javascript
+AddPackage podman # Tool and library for running OCI-based containers in pods
+AddPackage python # Next generation of the python high-level scripting language
+AddPackage python2-pip # The PyPA recommended tool for installing Python packages
+AddPackage python-pdftotext # Simple PDF text extraction
+AddPackage python-pip # The PyPA recommended tool for installing Python packages
+AddPackage ruby # An object-oriented language for quick and easy programming
+AddPackage rust # Systems programming language focused on safety, speed and concurrency
+AddPackage shellcheck # Shell script analysis tool
+AddPackage shfmt # Format shell programs
+AddPackage stylelint # Mighty, modern CSS linter
+AddPackage vagrant # Build and distribute virtualized development environments
+AddPackage vi # The original ex/vi text editor
+AddPackage vim # Vi Improved, a highly configurable, improved version of the vi text editor
+AddPackage virt-manager # Desktop user interface for managing virtual machines
+AddPackage virtualbox # Powerful x86 virtualization for enterprise as well as home use
+AddPackage virtualbox-host-modules-arch # Virtualbox host kernel modules for Arch Kernel
+AddPackage --foreign arduino-mk # A Makefile for Arduino Sketches
+AddPackage --foreign drawio-desktop-bin # Diagram drawing application built on web technology
+AddPackage --foreign gvm # Go Version Manager
+AddPackage --foreign js-beautify # Beautify JavaScript/JSON (jsbeautifier.org)
+AddPackage --foreign lens-bin # The Kubernetes IDE
+AddPackage --foreign python36 # Major release 3.6 of the Python high-level programming language
+AddPackage --foreign python37 # Major release 3.7 of the Python high-level programming language
+AddPackage --foreign redis-desktop-manager # Open source cross-platform Redis Desktop Manager based on Qt 5
+AddPackage --foreign postman-bin # Build, test, and document your APIs faster
+AddPackage eslint # An AST-based pattern checker for JavaScript
+AddPackage gopls # Language server for Go programming language
+AddPackage python-black # Uncompromising Python code formatter
+AddPackage python-language-server # An implementation of the Language Server Protocol for Python
+AddPackage tidy # A tool to tidy down your HTML code to a clean style
+AddPackage typescript # TypeScript is a language for application scale JavaScript development
+AddPackage zshdb # A debugger for zsh scripts.
+AddPackage --foreign goreleaser-bin # Deliver Go binaries as fast and easily as possible
+AddPackage --foreign vue-cli # Standard tooling for Vue.js development
+AddPackage --foreign yaml-language-server-bin # Language server implementation for YAML files and optional schema support
diff --git a/packages/arch/90-misc.sh b/packages/arch/90-misc.sh
new file mode 100644
index 0000000..60b84b9
--- /dev/null
+++ b/packages/arch/90-misc.sh
@@ -0,0 +1,32 @@
+AddPackage armagetronad # A Tron Clone in 3D.
+AddPackage calibre # Ebook management application
+AddPackage chromium # A web browser built for speed, simplicity, and security
+AddPackage discord # All-in-one voice and text chat for gamers that's free and secure.
+AddPackage firefox # Standalone web browser from mozilla.org
+AddPackage gimp # GNU Image Manipulation Program
+AddPackage gnucash # Personal and small-business financial-accounting application
+AddPackage gajim # Full featured and easy to use XMPP (Jabber) client
+AddPackage mpc # Minimalist command line interface to MPD
+AddPackage mpd # Flexible, powerful, server-side application for playing music
+AddPackage mpv # a free, open source, and cross-platform media player
+AddPackage mumble # An Open Source, low-latency, high quality voice chat software (client)
+AddPackage recordmydesktop # Produces a OGG encapsulated Theora/Vorbis recording of your desktop
+AddPackage syncthing # Open Source Continuous Replication / Cluster Synchronization Thing
+AddPackage teeworlds # Fast-paced multiplayer 2D shooter game
+AddPackage telegram-desktop # Official Telegram Desktop client
+AddPackage vlc # Multi-platform MPEG, VCD/DVD, and DivX player
+AddPackage --foreign google-chrome # The popular and trusted web browser by Google (Stable Channel)
+AddPackage --foreign rambox-bin # Free and Open Source messaging and emailing app that combines common web applications into one.
+AddPackage --foreign spotify # A proprietary music streaming service
+AddPackage --foreign teamviewer # All-In-One Software for Remote Support and Online Meetings
+AddPackage --foreign zoom # Video Conferencing and Web Conferencing Service
+AddPackage qutebrowser # A keyboard-driven, vim-like browser based on PyQt5
+AddPackage --foreign brew-git # The missing package manager for macOS (or Linux)
+AddPackage lib32-gst-plugins-base-libs # GStreamer Multimedia Framework Base Plugin libraries (32-bit)
+AddPackage lib32-gtk3 # GObject-based multi-platform GUI toolkit
+AddPackage lib32-libxslt # XML stylesheet transformation library (32-bit)
+AddPackage lib32-ocl-icd # OpenCL ICD Bindings (32-bit)
+AddPackage lib32-v4l-utils # Userspace tools and conversion library for Video 4 Linux (32-bit)
+AddPackage steam # Valve's digital software delivery system
+AddPackage steam-native-runtime # Native replacement for the Steam runtime using system libraries
+AddPackage wine-staging # A compatibility layer for running Windows programs - Staging branch
diff --git a/packages/brew/Brewfile b/packages/brew/Brewfile
new file mode 100644
index 0000000..7046670
--- /dev/null
+++ b/packages/brew/Brewfile
@@ -0,0 +1,43 @@
+tap "datawire/blackbird"
+tap "goreleaser/tap"
+tap "homebrew/bundle"
+tap "homebrew/core"
+tap "instrumenta/instrumenta"
+tap "johanhaleby/kubetail"
+tap "kaos/shell"
+tap "little-angry-clouds/my-brews", "git@github.com:little-angry-clouds/homebrew-my-brews.git"
+tap "norwoodj/tap"
+tap "sl1pm4t/k2tf", "https://github.com/sl1pm4t/k2tf.git"
+tap "vektra/tap"
+brew "act"
+brew "aws-iam-authenticator"
+brew "bats-core"
+brew "ccat"
+brew "drone-cli"
+brew "exa"
+brew "fzf"
+brew "glow"
+brew "go"
+brew "golangci-lint"
+brew "hugo"
+brew "jsonnet"
+brew "kind"
+brew "kubespy"
+brew "kustomize"
+brew "operator-sdk"
+brew "sampler"
+brew "starship"
+brew "terraform-docs"
+brew "tfenv"
+brew "tflint"
+brew "vegeta"
+brew "yamllint"
+brew "instrumenta/instrumenta/kubeval"
+brew "johanhaleby/kubetail/kubetail"
+brew "little-angry-clouds/my-brews/helmenv"
+brew "little-angry-clouds/my-brews/kbenv"
+brew "little-angry-clouds/my-brews/ocenv"
+brew "little-angry-clouds/my-brews/particle"
+brew "norwoodj/tap/helm-docs"
+brew "sl1pm4t/k2tf/k2tf"
+brew "vektra/tap/mockery"
diff --git a/packages/brew/Brewfile.lock.json b/packages/brew/Brewfile.lock.json
new file mode 100644
index 0000000..bd47b29
--- /dev/null
+++ b/packages/brew/Brewfile.lock.json
@@ -0,0 +1,786 @@
+{
+ "entries": {
+ "tap": {
+ "datawire/blackbird": {
+ "revision": "7b15613dc2d97fa71f7823295062c7973d394f21"
+ },
+ "goreleaser/tap": {
+ "revision": "2e7080a603bb0d12a9c0c45295d0ca7da90c4bbe"
+ },
+ "homebrew/bundle": {
+ "revision": "5b6fa2f5fe5df3ff2cc5436045e1934b9be4ac13"
+ },
+ "homebrew/core": {
+ "revision": "58f513fff83355b7e54a394952198a648f49cdfd"
+ },
+ "johanhaleby/kubetail": {
+ "revision": "76674415e2eabb0588ba3052c74ae29aa637bcd9"
+ },
+ "kaos/shell": {
+ "revision": "812249461e033305e63f983917503a4b82891fde"
+ },
+ "little-angry-clouds/my-brews": {
+ "revision": "6cf76c8ff68b99d0c7acbfdec7d7679300554d98",
+ "options": {
+ "clone_target": "https://github.com/little-angry-clouds/homebrew-my-brews.git"
+ }
+ },
+ "norwoodj/tap": {
+ "revision": "7950e649ae887a69a2ce98a52c3460d4408379dc"
+ },
+ "sl1pm4t/k2tf": {
+ "revision": "b02132ef30421dfc13ea2c0617fae2f371c800dd",
+ "options": {
+ "clone_target": "https://github.com/sl1pm4t/k2tf.git"
+ }
+ },
+ "vektra/tap": {
+ "revision": "0223b9f00b6a4637c511600e326afc40e59e833d"
+ }
+ },
+ "brew": {
+ "aws-iam-authenticator": {
+ "version": "0.5.3",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/aws-iam-authenticator/blobs/sha256:30639bda3ecb72388aeabc0f3e6587f58bc9867dc6b3a9f3046e9d0ef659f122",
+ "sha256": "30639bda3ecb72388aeabc0f3e6587f58bc9867dc6b3a9f3046e9d0ef659f122"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/aws-iam-authenticator/blobs/sha256:a161d4ea3ef00ab85c8f0cea198e0dafde39cd3a76359b75ea22521c35eac7d6",
+ "sha256": "a161d4ea3ef00ab85c8f0cea198e0dafde39cd3a76359b75ea22521c35eac7d6"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/aws-iam-authenticator/blobs/sha256:192ace97a0c76ed0aceda060290db6abcde5af8ad7dfc30faaf5f4ed4ae92b6a",
+ "sha256": "192ace97a0c76ed0aceda060290db6abcde5af8ad7dfc30faaf5f4ed4ae92b6a"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/aws-iam-authenticator/blobs/sha256:c7f23ccd6bdd852a7c1928df437381204aa9da22a2f41eb3a5776864838f39db",
+ "sha256": "c7f23ccd6bdd852a7c1928df437381204aa9da22a2f41eb3a5776864838f39db"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/aws-iam-authenticator/blobs/sha256:8b4f5af9a91eda6c629d9fd98e098bdd27e3683a8ca9c2fff19a500edc721fb9",
+ "sha256": "8b4f5af9a91eda6c629d9fd98e098bdd27e3683a8ca9c2fff19a500edc721fb9"
+ }
+ }
+ }
+ },
+ "bats-core": {
+ "version": "1.3.0",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/bats-core/blobs/sha256:fae69721e6ec6a1b07e1d10699187640ef4e5e939460a496bd304d03beb08364",
+ "sha256": "fae69721e6ec6a1b07e1d10699187640ef4e5e939460a496bd304d03beb08364"
+ }
+ }
+ }
+ },
+ "ccat": {
+ "version": "1.1.0",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/ccat/blobs/sha256:2203ed8600403a7ebedf60ff3b1f7eac6bdd0793521d759c43f5a4c6ee0d0f42",
+ "sha256": "2203ed8600403a7ebedf60ff3b1f7eac6bdd0793521d759c43f5a4c6ee0d0f42"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/ccat/blobs/sha256:56555b8a3744a0af29b6bddcab2587457bb8622f78484b38fbbaceab88ea3f5b",
+ "sha256": "56555b8a3744a0af29b6bddcab2587457bb8622f78484b38fbbaceab88ea3f5b"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/ccat/blobs/sha256:aec38270a3b41a57fe6d05df08eea67042f2b65a2a5de30b2452afefd81a6d9d",
+ "sha256": "aec38270a3b41a57fe6d05df08eea67042f2b65a2a5de30b2452afefd81a6d9d"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/ccat/blobs/sha256:0170dc610f0561cd562a2614f5bb0139cad5d37133a4181318a0edc08b3182c9",
+ "sha256": "0170dc610f0561cd562a2614f5bb0139cad5d37133a4181318a0edc08b3182c9"
+ },
+ "high_sierra": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/ccat/blobs/sha256:895c26dc74369ef72990fd79447e654f5266dda9c662d3bed2926caab7180678",
+ "sha256": "895c26dc74369ef72990fd79447e654f5266dda9c662d3bed2926caab7180678"
+ },
+ "sierra": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/ccat/blobs/sha256:aab86cfae41d1f4f9c93ad3a1680f21a5a0e9fad61190101582235174e4e214c",
+ "sha256": "aab86cfae41d1f4f9c93ad3a1680f21a5a0e9fad61190101582235174e4e214c"
+ },
+ "el_capitan": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/ccat/blobs/sha256:10eb7df98a05c968f006bbda2c6f690bd7d5053e4bb6d2c9c4a043616648a23b",
+ "sha256": "10eb7df98a05c968f006bbda2c6f690bd7d5053e4bb6d2c9c4a043616648a23b"
+ },
+ "yosemite": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/ccat/blobs/sha256:063b4cab434b5d16e8884aad6eb7d18068c33f9ec884fabf5ada3ad821428897",
+ "sha256": "063b4cab434b5d16e8884aad6eb7d18068c33f9ec884fabf5ada3ad821428897"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/ccat/blobs/sha256:367d83eed7e3770942329b8a196b93ecbcc66f12e4ccd207ba306bcb96be1d61",
+ "sha256": "367d83eed7e3770942329b8a196b93ecbcc66f12e4ccd207ba306bcb96be1d61"
+ }
+ }
+ }
+ },
+ "drone-cli": {
+ "version": "1.2.4",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/drone-cli/blobs/sha256:5eb1960f5073fe2dbe0cebb658c9b31b905d9b77f9dea41a1e65cb01331875e9",
+ "sha256": "5eb1960f5073fe2dbe0cebb658c9b31b905d9b77f9dea41a1e65cb01331875e9"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/drone-cli/blobs/sha256:b0f855c942279e6f28de3fd52611f6e88f5d9a7feb008f49d1f66a00752f2b25",
+ "sha256": "b0f855c942279e6f28de3fd52611f6e88f5d9a7feb008f49d1f66a00752f2b25"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/drone-cli/blobs/sha256:1d6f199fd82f2da5bef17f40640011b69c3c1ba67816c2db6f5bbcbb1da52ba0",
+ "sha256": "1d6f199fd82f2da5bef17f40640011b69c3c1ba67816c2db6f5bbcbb1da52ba0"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/drone-cli/blobs/sha256:af2957381fb2fe8dae4ed3d0b2f42d0d012321c58648d701f4592ed5821ddd4d",
+ "sha256": "af2957381fb2fe8dae4ed3d0b2f42d0d012321c58648d701f4592ed5821ddd4d"
+ }
+ }
+ }
+ },
+ "exa": {
+ "version": "0.10.1",
+ "bottle": {
+ "rebuild": 1,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/exa/blobs/sha256:2b9cc70621644245ce1ab1b682e28efae4b8acdbf3bf4da9cf91ddbd786b8787",
+ "sha256": "2b9cc70621644245ce1ab1b682e28efae4b8acdbf3bf4da9cf91ddbd786b8787"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/exa/blobs/sha256:d0c809ae7a8d3a43e0c907854b46725f5ad6bb14fa40a9857ff4e74f15c0b961",
+ "sha256": "d0c809ae7a8d3a43e0c907854b46725f5ad6bb14fa40a9857ff4e74f15c0b961"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/exa/blobs/sha256:dc183942b94bac912f4e0a6ca5c8859fa755a95de2808bd978dde3911690f0ae",
+ "sha256": "dc183942b94bac912f4e0a6ca5c8859fa755a95de2808bd978dde3911690f0ae"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/exa/blobs/sha256:62fac977958ef8a9856e7a28fceac53d4f6e327e11764d1a077fb34ac83aced0",
+ "sha256": "62fac977958ef8a9856e7a28fceac53d4f6e327e11764d1a077fb34ac83aced0"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/exa/blobs/sha256:ed493374b9ae2257a43ac0ed5d3a69e91eed17924d1bb9e6b2822a73343f09a0",
+ "sha256": "ed493374b9ae2257a43ac0ed5d3a69e91eed17924d1bb9e6b2822a73343f09a0"
+ }
+ }
+ }
+ },
+ "fzf": {
+ "version": "0.27.2",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/fzf/blobs/sha256:ae9fddf6be0736d872e48199d3f59517b48e4d5fa9fe609e61c6ca9f4dc2e582",
+ "sha256": "ae9fddf6be0736d872e48199d3f59517b48e4d5fa9fe609e61c6ca9f4dc2e582"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/fzf/blobs/sha256:47ca85feb2e71a465580b5dd0912ed365c1015de175c81570309045abb847c96",
+ "sha256": "47ca85feb2e71a465580b5dd0912ed365c1015de175c81570309045abb847c96"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/fzf/blobs/sha256:47ca85feb2e71a465580b5dd0912ed365c1015de175c81570309045abb847c96",
+ "sha256": "47ca85feb2e71a465580b5dd0912ed365c1015de175c81570309045abb847c96"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/fzf/blobs/sha256:47ca85feb2e71a465580b5dd0912ed365c1015de175c81570309045abb847c96",
+ "sha256": "47ca85feb2e71a465580b5dd0912ed365c1015de175c81570309045abb847c96"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/fzf/blobs/sha256:9ba0e0df8e7b002f8a8085d2571470ff5916bfeb049f48129ac6416a1f026892",
+ "sha256": "9ba0e0df8e7b002f8a8085d2571470ff5916bfeb049f48129ac6416a1f026892"
+ }
+ }
+ }
+ },
+ "glow": {
+ "version": "1.4.1",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/glow/blobs/sha256:c7e15ba449c8f2720d93f8bde3f80fa3e27c82cf5bacc2944114ec4650a25d45",
+ "sha256": "c7e15ba449c8f2720d93f8bde3f80fa3e27c82cf5bacc2944114ec4650a25d45"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/glow/blobs/sha256:c76069ff642658ed8b51fd903b1a5a5892247de72f7f62f29e10d46cae3e6caf",
+ "sha256": "c76069ff642658ed8b51fd903b1a5a5892247de72f7f62f29e10d46cae3e6caf"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/glow/blobs/sha256:4e713fa69e7d61139e8e7f904c675d2bfbabba9977316c22b4868f3bf5e0c77e",
+ "sha256": "4e713fa69e7d61139e8e7f904c675d2bfbabba9977316c22b4868f3bf5e0c77e"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/glow/blobs/sha256:22926fb845a37fd3dd9bee91e5af5575204480c5dfa2a6826cdb70fed07a80d1",
+ "sha256": "22926fb845a37fd3dd9bee91e5af5575204480c5dfa2a6826cdb70fed07a80d1"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/glow/blobs/sha256:f737dcded65ba0209e7a4512bd4cad9dc78e236bafc479e4e17531c742a81680",
+ "sha256": "f737dcded65ba0209e7a4512bd4cad9dc78e236bafc479e4e17531c742a81680"
+ }
+ }
+ }
+ },
+ "go": {
+ "version": "1.16.5",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": "/opt/homebrew/Cellar",
+ "url": "https://ghcr.io/v2/linuxbrew/core/go/blobs/sha256:dde21eedfa67da23db70cf977ae82c0cadd5acf2a326cb91853ff54d0cf5886f",
+ "sha256": "dde21eedfa67da23db70cf977ae82c0cadd5acf2a326cb91853ff54d0cf5886f"
+ },
+ "big_sur": {
+ "cellar": "/usr/local/Cellar",
+ "url": "https://ghcr.io/v2/linuxbrew/core/go/blobs/sha256:416c5e2b7247c78482a5465f79d83c0240ee0c9098c8c7429f9c7af073402cc9",
+ "sha256": "416c5e2b7247c78482a5465f79d83c0240ee0c9098c8c7429f9c7af073402cc9"
+ },
+ "catalina": {
+ "cellar": "/usr/local/Cellar",
+ "url": "https://ghcr.io/v2/linuxbrew/core/go/blobs/sha256:8a7564fab7f715feed7506e3cc30f20295fd62914418fb636a5a4c4ca1fc7398",
+ "sha256": "8a7564fab7f715feed7506e3cc30f20295fd62914418fb636a5a4c4ca1fc7398"
+ },
+ "mojave": {
+ "cellar": "/usr/local/Cellar",
+ "url": "https://ghcr.io/v2/linuxbrew/core/go/blobs/sha256:a232e1f840525ab1e9411ba4edaa74c2bb73705e8e6feb7506649a7d608f9292",
+ "sha256": "a232e1f840525ab1e9411ba4edaa74c2bb73705e8e6feb7506649a7d608f9292"
+ },
+ "x86_64_linux": {
+ "cellar": "/home/linuxbrew/.linuxbrew/Cellar",
+ "url": "https://ghcr.io/v2/linuxbrew/core/go/blobs/sha256:efe39d8db1c054fa8d6169ee2a024b4267313215a5d03ab34bebdb6a87e8554d",
+ "sha256": "efe39d8db1c054fa8d6169ee2a024b4267313215a5d03ab34bebdb6a87e8554d"
+ }
+ }
+ }
+ },
+ "helmfile": {
+ "version": "0.139.9",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/helmfile/blobs/sha256:62b3054b94851833708156427d140d6912f5839866abef6cb6f5478768fd0af9",
+ "sha256": "62b3054b94851833708156427d140d6912f5839866abef6cb6f5478768fd0af9"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/helmfile/blobs/sha256:6740b599a258886d8c9f1cd552e0d443bf2cd48ade47620ed2e4393c0ed0f876",
+ "sha256": "6740b599a258886d8c9f1cd552e0d443bf2cd48ade47620ed2e4393c0ed0f876"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/helmfile/blobs/sha256:d4a4be4d6092d45df93e82b8be6db4956279c762883b8ce0e7e46d9ccad8be98",
+ "sha256": "d4a4be4d6092d45df93e82b8be6db4956279c762883b8ce0e7e46d9ccad8be98"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/helmfile/blobs/sha256:56ecbed36bf995e8a1e9f4babfbff03b2de3114f3e3e333230b278b83a3dc1ae",
+ "sha256": "56ecbed36bf995e8a1e9f4babfbff03b2de3114f3e3e333230b278b83a3dc1ae"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/helmfile/blobs/sha256:2de9e091a4209269971534c8a6942712507c1b440bb9185cf606aebb63a444ec",
+ "sha256": "2de9e091a4209269971534c8a6942712507c1b440bb9185cf606aebb63a444ec"
+ }
+ }
+ }
+ },
+ "hugo": {
+ "version": "0.83.1",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/hugo/blobs/sha256:f5997a1858e300787cd6e2e01ff8f87f0d3233f42af4becc040448ce06524d53",
+ "sha256": "f5997a1858e300787cd6e2e01ff8f87f0d3233f42af4becc040448ce06524d53"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/hugo/blobs/sha256:32ad322954e9c2962849495c88c88e461d21a0a7d3bfa3aa4892ee34f569bf81",
+ "sha256": "32ad322954e9c2962849495c88c88e461d21a0a7d3bfa3aa4892ee34f569bf81"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/hugo/blobs/sha256:99078c665152420113fac08aaea7bdf2f8fe230696b724448bb9f2244cfdec55",
+ "sha256": "99078c665152420113fac08aaea7bdf2f8fe230696b724448bb9f2244cfdec55"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/hugo/blobs/sha256:a45ae895351a549639b40bdbb2a630e8a11ffb68d78a0aa7577faedce4c011d4",
+ "sha256": "a45ae895351a549639b40bdbb2a630e8a11ffb68d78a0aa7577faedce4c011d4"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/hugo/blobs/sha256:ab99dbb9bb2ac1df5d581666ab26ad66166810e7e9580feccee50d31383ace97",
+ "sha256": "ab99dbb9bb2ac1df5d581666ab26ad66166810e7e9580feccee50d31383ace97"
+ }
+ }
+ }
+ },
+ "jsonnet": {
+ "version": "0.17.0",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/jsonnet/blobs/sha256:96cbd225f3a8d64bda895c4052b2af3a3e1d5bbe137ba017aa3d4c8127cf9d68",
+ "sha256": "96cbd225f3a8d64bda895c4052b2af3a3e1d5bbe137ba017aa3d4c8127cf9d68"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/jsonnet/blobs/sha256:dd84e7d6175e98b4839c009120569ece03b5b98db3f152f97ca05b5ae7169843",
+ "sha256": "dd84e7d6175e98b4839c009120569ece03b5b98db3f152f97ca05b5ae7169843"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/jsonnet/blobs/sha256:4e06530634324040a69a9f22018e154febc71467cadf2498806d9ba07b06a1b3",
+ "sha256": "4e06530634324040a69a9f22018e154febc71467cadf2498806d9ba07b06a1b3"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/jsonnet/blobs/sha256:1e4faf2a09e9a233275d78ede532a0e757d3f8cc9b0ab152326ff9ea9d244dba",
+ "sha256": "1e4faf2a09e9a233275d78ede532a0e757d3f8cc9b0ab152326ff9ea9d244dba"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/jsonnet/blobs/sha256:a693d72ef0db06f63ec19566cb9eaf3344e0a47ed2cba9557c05a48d412d0515",
+ "sha256": "a693d72ef0db06f63ec19566cb9eaf3344e0a47ed2cba9557c05a48d412d0515"
+ }
+ }
+ }
+ },
+ "kind": {
+ "version": "0.11.1",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kind/blobs/sha256:29920822e416eea3f363200b64666756a2979aa186e067b3794bb5466aeaaf35",
+ "sha256": "29920822e416eea3f363200b64666756a2979aa186e067b3794bb5466aeaaf35"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kind/blobs/sha256:116a1749c6aee8ad7282caf3a3d2616d11e6193c839c8797cde045cddd0e1138",
+ "sha256": "116a1749c6aee8ad7282caf3a3d2616d11e6193c839c8797cde045cddd0e1138"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kind/blobs/sha256:15aa1527c8886da5ce345ae84f255fd33ee9726acef8c6ba1f33c2f5af8d6a96",
+ "sha256": "15aa1527c8886da5ce345ae84f255fd33ee9726acef8c6ba1f33c2f5af8d6a96"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kind/blobs/sha256:f506e71e34e0e43f48425a733b77d4f7f574861d52041d6c3a8a7220ae49943f",
+ "sha256": "f506e71e34e0e43f48425a733b77d4f7f574861d52041d6c3a8a7220ae49943f"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kind/blobs/sha256:bc95e3a9414bcb9ace9eba0f46a1796080f7bd50f4eedabaea016cae05611398",
+ "sha256": "bc95e3a9414bcb9ace9eba0f46a1796080f7bd50f4eedabaea016cae05611398"
+ }
+ }
+ }
+ },
+ "kubespy": {
+ "version": "0.6.0",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kubespy/blobs/sha256:f01f8a5ff0489b2f60c6e05c3e2703e8ed304cad34b4f5b7be5a386d8c291657",
+ "sha256": "f01f8a5ff0489b2f60c6e05c3e2703e8ed304cad34b4f5b7be5a386d8c291657"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kubespy/blobs/sha256:0cd06ee898d017e009d6825ced4f01859987f9bfa0d41db8d4094268b880553e",
+ "sha256": "0cd06ee898d017e009d6825ced4f01859987f9bfa0d41db8d4094268b880553e"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kubespy/blobs/sha256:c803662722beea17aa638cfab61ca1b47326ca4e9c6fc8522d3e8776c43cb7bb",
+ "sha256": "c803662722beea17aa638cfab61ca1b47326ca4e9c6fc8522d3e8776c43cb7bb"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kubespy/blobs/sha256:02dd7561ce07c576d9ab3de63dbcdf0c43ccc75a00260f44b56d036076059662",
+ "sha256": "02dd7561ce07c576d9ab3de63dbcdf0c43ccc75a00260f44b56d036076059662"
+ },
+ "high_sierra": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kubespy/blobs/sha256:c573da0ba80217ac5ce529fa070b5ecfb398e1554c93f1d824b1df9bcc16c406",
+ "sha256": "c573da0ba80217ac5ce529fa070b5ecfb398e1554c93f1d824b1df9bcc16c406"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kubespy/blobs/sha256:7b408874289813f151e3f384f27789768436bd32c781db325a5ac715e0df1861",
+ "sha256": "7b408874289813f151e3f384f27789768436bd32c781db325a5ac715e0df1861"
+ }
+ }
+ }
+ },
+ "kustomize": {
+ "version": "4.1.3",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kustomize/blobs/sha256:c2bc5bcc4b395ba3b3e512a2a9815ae81a5411416380c0520d726db2b8668407",
+ "sha256": "c2bc5bcc4b395ba3b3e512a2a9815ae81a5411416380c0520d726db2b8668407"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kustomize/blobs/sha256:a5876e31685b13273f268264860af816b4348e8a178d99aea8cf3de01a8d5558",
+ "sha256": "a5876e31685b13273f268264860af816b4348e8a178d99aea8cf3de01a8d5558"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kustomize/blobs/sha256:529377a3a884549413e67ff95c159e71d7f62b516009e5c0e8320b3d8a3723ad",
+ "sha256": "529377a3a884549413e67ff95c159e71d7f62b516009e5c0e8320b3d8a3723ad"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kustomize/blobs/sha256:1ff7509083a9fefb1d931592318ca1649eb8ed17b28eeec5287a259302a024ec",
+ "sha256": "1ff7509083a9fefb1d931592318ca1649eb8ed17b28eeec5287a259302a024ec"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/kustomize/blobs/sha256:3b8025d04b3d0a7b9059906b6b024b01e546598bc2fd83c9303856f269cde78d",
+ "sha256": "3b8025d04b3d0a7b9059906b6b024b01e546598bc2fd83c9303856f269cde78d"
+ }
+ }
+ }
+ },
+ "logcli": {
+ "version": "2.2.1",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/logcli/blobs/sha256:575dca679106ab8ce08f4424a1b56222cec4f95ac593beb058846c6333363ce4",
+ "sha256": "575dca679106ab8ce08f4424a1b56222cec4f95ac593beb058846c6333363ce4"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/logcli/blobs/sha256:7fb693fd292ab4918059c8c24d638ec9739273a75489e211a79fbbeaa06d19f9",
+ "sha256": "7fb693fd292ab4918059c8c24d638ec9739273a75489e211a79fbbeaa06d19f9"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/logcli/blobs/sha256:112e29ca1fcc7d1814c720711c9d065bd861065bf47c613d2b5be2bc8e6c0e39",
+ "sha256": "112e29ca1fcc7d1814c720711c9d065bd861065bf47c613d2b5be2bc8e6c0e39"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/logcli/blobs/sha256:bd651c8a96c2fc1f3b56a4519b3880e54929962e1e49fb9122ace4ff0fde0ad9",
+ "sha256": "bd651c8a96c2fc1f3b56a4519b3880e54929962e1e49fb9122ace4ff0fde0ad9"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/logcli/blobs/sha256:7babc002268e53cdd7d3539b77ad6ad29ae2e1010d5d847da24ac4d3dcfb8bf6",
+ "sha256": "7babc002268e53cdd7d3539b77ad6ad29ae2e1010d5d847da24ac4d3dcfb8bf6"
+ }
+ }
+ }
+ },
+ "operator-sdk": {
+ "version": "1.8.0",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/operator-sdk/blobs/sha256:864267e4c586a03de14a612f604ad0c46d27b96b333f048721ec7cc5af8dc836",
+ "sha256": "864267e4c586a03de14a612f604ad0c46d27b96b333f048721ec7cc5af8dc836"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/operator-sdk/blobs/sha256:c097f8d768bd4ef739d6ef71eabfa5139ea2c6ca114143e182cf2268ddf9a55d",
+ "sha256": "c097f8d768bd4ef739d6ef71eabfa5139ea2c6ca114143e182cf2268ddf9a55d"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/operator-sdk/blobs/sha256:4f83d038d343bc16f5ab9b5814247a4a396968f66513215c2ce5e6a9e5090a67",
+ "sha256": "4f83d038d343bc16f5ab9b5814247a4a396968f66513215c2ce5e6a9e5090a67"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/operator-sdk/blobs/sha256:2a2eaa53558d93460be9da719bddc034eefd1de14733cd604252725d269256a2",
+ "sha256": "2a2eaa53558d93460be9da719bddc034eefd1de14733cd604252725d269256a2"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/operator-sdk/blobs/sha256:4f97fec7c34a33559cd4a88244b521251495e69b4e8d1514d4951cbf47d09d03",
+ "sha256": "4f97fec7c34a33559cd4a88244b521251495e69b4e8d1514d4951cbf47d09d03"
+ }
+ }
+ }
+ },
+ "sampler": {
+ "version": "1.1.0",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/sampler/blobs/sha256:330a2e3de5d8352c9d11fa8d7f850b8fe41f869b2ec6f953944a500d0ba2143b",
+ "sha256": "330a2e3de5d8352c9d11fa8d7f850b8fe41f869b2ec6f953944a500d0ba2143b"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/sampler/blobs/sha256:3dd48615b2dd049e17d2635df81cd8f312e004d2e9c50a0d68d7f4f40516e61c",
+ "sha256": "3dd48615b2dd049e17d2635df81cd8f312e004d2e9c50a0d68d7f4f40516e61c"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/sampler/blobs/sha256:1b4a4c841691d8a6ca9ea4649092684511bff1f60d7d80e364db13115f2e6399",
+ "sha256": "1b4a4c841691d8a6ca9ea4649092684511bff1f60d7d80e364db13115f2e6399"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/sampler/blobs/sha256:b50240b4f199da6d55d4645dfd3d2b0fc3406d20a504ba9af4d3b545196438b1",
+ "sha256": "b50240b4f199da6d55d4645dfd3d2b0fc3406d20a504ba9af4d3b545196438b1"
+ },
+ "high_sierra": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/sampler/blobs/sha256:163b575ff369f264605bdc69c0fc838e44e706f8b6c527bb343cbfb18a9b1fdc",
+ "sha256": "163b575ff369f264605bdc69c0fc838e44e706f8b6c527bb343cbfb18a9b1fdc"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/sampler/blobs/sha256:f3a60c290fb91e2a621778e53865d71808db100e5590c114792c5c20687645ff",
+ "sha256": "f3a60c290fb91e2a621778e53865d71808db100e5590c114792c5c20687645ff"
+ }
+ }
+ }
+ },
+ "starship": {
+ "version": "0.54.0",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/starship/blobs/sha256:31903635888839b61e44b2188f62537d3518f6a843eba736099c6893e1e218e7",
+ "sha256": "31903635888839b61e44b2188f62537d3518f6a843eba736099c6893e1e218e7"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/starship/blobs/sha256:067e82cacc903f629080dfba420ce399746687462ace76b2ff6647b817214b43",
+ "sha256": "067e82cacc903f629080dfba420ce399746687462ace76b2ff6647b817214b43"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/starship/blobs/sha256:925141ca99c499ac594ca573107137dfab155829993bb59e12baddcd95892508",
+ "sha256": "925141ca99c499ac594ca573107137dfab155829993bb59e12baddcd95892508"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/starship/blobs/sha256:e1a2acdeaafb837ededbeed7aaee2e242fd2433985d6b3fb261858db4a64ad6f",
+ "sha256": "e1a2acdeaafb837ededbeed7aaee2e242fd2433985d6b3fb261858db4a64ad6f"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/starship/blobs/sha256:a19adcc7d8db338b7cdea19387277437fe8cf214be28688e34c69a7bbb618872",
+ "sha256": "a19adcc7d8db338b7cdea19387277437fe8cf214be28688e34c69a7bbb618872"
+ }
+ }
+ }
+ },
+ "tfenv": {
+ "version": "2.2.2",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/tfenv/blobs/sha256:89881336b91728f3fc49c497d3be4ca37cfa7b3f3357c9c0ca06719252fb0620",
+ "sha256": "89881336b91728f3fc49c497d3be4ca37cfa7b3f3357c9c0ca06719252fb0620"
+ }
+ }
+ }
+ },
+ "tflint": {
+ "version": "0.29.1",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/tflint/blobs/sha256:1e060e0b20235adcee9ab0b4b6abde7a192eabdd77b3738a30674934183108d9",
+ "sha256": "1e060e0b20235adcee9ab0b4b6abde7a192eabdd77b3738a30674934183108d9"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/tflint/blobs/sha256:e01ac3515617dd70d63b7ec71581adfe52f2a9f6eff3ec531c1e7e6bd08db1a3",
+ "sha256": "e01ac3515617dd70d63b7ec71581adfe52f2a9f6eff3ec531c1e7e6bd08db1a3"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/tflint/blobs/sha256:47f1cf2ae35d3e92408c4ac05681c3dee333f8ea5e76c683454e44be3316f1d2",
+ "sha256": "47f1cf2ae35d3e92408c4ac05681c3dee333f8ea5e76c683454e44be3316f1d2"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/tflint/blobs/sha256:bf07e18a2aded917879823ac1a1e240caeaa2995a587a1b61dc52570387b7331",
+ "sha256": "bf07e18a2aded917879823ac1a1e240caeaa2995a587a1b61dc52570387b7331"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/tflint/blobs/sha256:27a06cc5490f878cd619523183812bc6219291dd1afbb9c2f485896bcec0e7d6",
+ "sha256": "27a06cc5490f878cd619523183812bc6219291dd1afbb9c2f485896bcec0e7d6"
+ }
+ }
+ }
+ },
+ "vegeta": {
+ "version": "12.8.4",
+ "bottle": {
+ "rebuild": 0,
+ "root_url": "https://ghcr.io/v2/linuxbrew/core",
+ "files": {
+ "arm64_big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/vegeta/blobs/sha256:7d95ea4ba41b01adc23e73959805a728a4d279cac33448685cced10e268e2965",
+ "sha256": "7d95ea4ba41b01adc23e73959805a728a4d279cac33448685cced10e268e2965"
+ },
+ "big_sur": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/vegeta/blobs/sha256:1f2ea9a3a871ff2f93ee65f1a5977aece4479835d954026342ac0c5eb523db27",
+ "sha256": "1f2ea9a3a871ff2f93ee65f1a5977aece4479835d954026342ac0c5eb523db27"
+ },
+ "catalina": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/vegeta/blobs/sha256:63b383f4cdff26cc0bf4ba3e24a84ea6d7485a9a61fe49ac62b09f39c5f01e13",
+ "sha256": "63b383f4cdff26cc0bf4ba3e24a84ea6d7485a9a61fe49ac62b09f39c5f01e13"
+ },
+ "mojave": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/vegeta/blobs/sha256:76e2d89891ecee0bfa07e939619683cae2d954bca2c5524a6e87b84c105c6c25",
+ "sha256": "76e2d89891ecee0bfa07e939619683cae2d954bca2c5524a6e87b84c105c6c25"
+ },
+ "high_sierra": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/vegeta/blobs/sha256:df3853752133b68c20a9d054c12d36d531779fe595bc6011bb1e2d3245e9df2d",
+ "sha256": "df3853752133b68c20a9d054c12d36d531779fe595bc6011bb1e2d3245e9df2d"
+ },
+ "x86_64_linux": {
+ "cellar": ":any_skip_relocation",
+ "url": "https://ghcr.io/v2/linuxbrew/core/vegeta/blobs/sha256:fc6ae4daca501e6c037d90b2a9d896fca2053ae8dc3851c335c38f373b59077f",
+ "sha256": "fc6ae4daca501e6c037d90b2a9d896fca2053ae8dc3851c335c38f373b59077f"
+ }
+ }
+ }
+ },
+ "goreleaser/tap/goreleaser": {
+ "version": "0.169.0",
+ "bottle": false
+ },
+ "johanhaleby/kubetail/kubetail": {
+ "version": "1.6.13",
+ "bottle": false
+ },
+ "little-angry-clouds/my-brews/helmenv": {
+ "version": "0.2.6",
+ "bottle": false
+ },
+ "little-angry-clouds/my-brews/kbenv": {
+ "version": "0.2.6",
+ "bottle": false
+ },
+ "norwoodj/tap/helm-docs": {
+ "version": "1.5.0",
+ "bottle": false
+ },
+ "sl1pm4t/k2tf/k2tf": {
+ "version": "0.5.0",
+ "bottle": false
+ },
+ "vektra/tap/mockery": {
+ "version": "2.8.0",
+ "bottle": false
+ }
+ }
+ },
+ "system": {
+ "linux": {
+ "Arch Linux": {
+ "HOMEBREW_VERSION": "3.1.12-25-gd391331-dirty",
+ "HOMEBREW_PREFIX": "/opt/brew",
+ "Homebrew/linuxbrew-core": "58f513fff83355b7e54a394952198a648f49cdfd",
+ "GCC": "11.1.0"
+ }
+ }
+ }
+}