summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortinfoil-hat <mail@tinfoil-hat.net>2023-10-14 20:30:17 +0200
committertinfoil-hat <mail@tinfoil-hat.net>2023-10-14 20:30:17 +0200
commit1b2205b505c4849748777611971cea513a074fc1 (patch)
treea0f7a09ee3cd418514e27b03d3028f2f8c665f6c
downloaddotfiles-desktop-1b2205b505c4849748777611971cea513a074fc1.tar.gz
dotfiles-desktop-1b2205b505c4849748777611971cea513a074fc1.tar.bz2
dotfiles-desktop-1b2205b505c4849748777611971cea513a074fc1.zip
Initial Commit
-rw-r--r--.Xresources111
-rw-r--r--.bashrc280
m---------.config/awesome/alttab0
-rwxr-xr-x.config/awesome/autorun.sh18
m---------.config/awesome/lain0
-rw-r--r--.config/awesome/rc.lua599
-rw-r--r--.config/awesome/theme.lua129
-rw-r--r--.config/htop/htoprc39
-rw-r--r--.config/mpd/mpd.conf22
-rw-r--r--.config/ncmpcpp/config76
-rw-r--r--.config/neofetch/config.conf125
m---------.config/neofetch/neofetch-themes0
-rw-r--r--.config/terminator/config20
-rw-r--r--.newsboat/config53
-rw-r--r--.profile29
-rw-r--r--.screenrc12
m---------.vim/pack/default/start/gruvbox0
-rw-r--r--.vimrc99
-rw-r--r--.weechat/irc.conf.blank332
-rw-r--r--.weechat/weechat.conf960
-rw-r--r--.xsession12
21 files changed, 2916 insertions, 0 deletions
diff --git a/.Xresources b/.Xresources
new file mode 100644
index 0000000..afc8b50
--- /dev/null
+++ b/.Xresources
@@ -0,0 +1,111 @@
+! special
+*.foreground: #c5c8c6
+*.background: #1e1e1e
+*.cursorColor: #c5c8c6
+
+! black
+*.color0: #282a2e
+*.color8: #373b41
+
+! red
+*.color1: #a54242
+*.color9: #cc6666
+
+! green
+*.color2: #8c9440
+*.color10: #b5bd68
+
+! yellow
+*.color3: #de935f
+*.color11: #f0c674
+
+! blue
+*.color4: #5f819d
+*.color12: #81a2be
+
+! magenta
+*.color5: #85678f
+*.color13: #b294bb
+
+! cyan
+*.color6: #5e8d87
+*.color14: #8abeb7
+
+! white
+*.color7: #707880
+*.color15: #c5c8c6
+
+
+! URxvt Appearance
+
+Rxvt*font: xft:JetBrainsMono-Regular:size=9
+Rxvt*boldFont: xft:JetBrainsMono-Regular:bold:size=9
+Rxvt*italicFont: xft:JetBrainsMono-Regular:italic:autohint=true:size=9
+Rxvt*boldItalicFont: xft:JetBrainsMono-Regular:bold:italic:autohint=true:size=9
+
+URxvt.keysym.Shift-C-Up: font-size:increase
+URxvt.keysym.Shift-C-Down: font-size:decrease
+URxvt.keysym.Shift-C-0: font-size:reset
+
+! DWM Colours
+dwm.normbordercolor: #eeeeee
+dwm.normbgcolor: #2b2b2b
+dwm.normfgcolor: #ffffff
+dwm.selbordercolor: #595959
+dwm.selbgcolor: #a58804
+dwm.selfgcolor: #ffffff
+
+! Setting transparency and background
+! URxvt.depth: 32
+! URxvt*background: rgba:0000/0000/0000/cccc
+
+
+URxvt.letterSpace: 0
+URxvt.lineSpace: -2
+URxvt.geometry: 80x25
+URxvt.internalBorder:10
+URxvt.cursorBlink: true
+URxvt.cursorUnderline: false
+URxvt.saveline: 2048
+URxvt.scrollBar: false
+URxvt.scrollBar_right: false
+URxvt.urgentOnBell: false
+! URxvt.depth: 24
+URxvt.iso14755: false
+
+!! Common Keybinds for Navigations
+URxvt.keysym.Shift-Up: command:\033]720;1\007
+URxvt.keysym.Shift-Down: command:\033]721;1\007
+URxvt.keysym.Control-Right: \033[1;5C
+URxvt.keysym.Control-Left: \033[1;5D
+
+!! Copy Paste & Other Ex
+URxvt.keysym.M-C-v: perl:clipboard:paste_escaped
+URxvt.keysym.M-Escape: perl:keyboard-select:activate
+URxvt.keysym.M-s: perl:keyboard-select:search
+URxvt.keysym.M-u: perl:url-select:select_next
+URxvt.underlineURLs: true
+URxvt.urlButton: 1
+
+! Link Handling
+URxvt.url-launcher: /usr/bin/brave-browser
+URxvt.colorUL: #36a832
+URxvt.perl-ext-common: default,matcher,font-size
+URxvt.matcher.button: 1
+
+! -- XIDLE -- !
+XIdle*position: sw
+XIdle*delay: 1
+XIdle*timeout: 300
+
+! -- XLOCK -- !
+xlock.description: off
+xlock.echokeys: off
+xlock.info:
+xlock.background: color0
+xlock.foreground: FG
+xlock.mode: blank
+xlock.username: username:
+xlock.password: password:
+xlock.font: XFONT
+xlock.planfont: XFONT
diff --git a/.bashrc b/.bashrc
new file mode 100644
index 0000000..4db1cc2
--- /dev/null
+++ b/.bashrc
@@ -0,0 +1,280 @@
+# ~/.bashrc: executed by bash(1) for non-login shells.
+# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
+# for examples
+
+# If not running interactively, don't do anything
+case $- in
+ *i*) ;;
+ *) return;;
+esac
+
+# don't put duplicate lines or lines starting with space in the history.
+# See bash(1) for more options
+HISTCONTROL=ignoreboth
+
+# append to the history file, don't overwrite it
+shopt -s histappend
+
+# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+HISTSIZE=1000
+HISTFILESIZE=2000
+
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+
+# If set, the pattern "**" used in a pathname expansion context will
+# match all files and zero or more directories and subdirectories.
+#shopt -s globstar
+
+# make less more friendly for non-text input files, see lesspipe(1)
+[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
+
+# set variable identifying the chroot you work in (used in the prompt below)
+if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
+ debian_chroot=$(cat /etc/debian_chroot)
+fi
+
+# set a fancy prompt (non-color, unless we know we "want" color)
+case "$TERM" in
+ xterm-color|*-256color) color_prompt=yes;;
+esac
+
+# uncomment for a colored prompt, if the terminal has the capability; turned
+# off by default to not distract the user: the focus in a terminal window
+# should be on the output of commands, not on the prompt
+#force_color_prompt=yes
+
+if [ -n "$force_color_prompt" ]; then
+ if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
+ # We have color support; assume it's compliant with Ecma-48
+ # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
+ # a case would tend to support setf rather than setaf.)
+ color_prompt=yes
+ else
+ color_prompt=
+ fi
+fi
+
+if [ "$color_prompt" = yes ]; then
+ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
+else
+ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+fi
+unset color_prompt force_color_prompt
+
+# If this is an xterm set the title to user@host:dir
+case "$TERM" in
+xterm*|rxvt*)
+ PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
+ ;;
+*)
+ ;;
+esac
+
+# enable color support of ls and also add handy aliases
+if [ -x /usr/bin/dircolors ]; then
+ test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
+ alias ls='ls --color=auto'
+ #alias dir='dir --color=auto'
+ #alias vdir='vdir --color=auto'
+
+ alias grep='grep --color=auto'
+ alias fgrep='fgrep --color=auto'
+ alias egrep='egrep --color=auto'
+fi
+
+# colored GCC warnings and errors
+#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
+
+# some more ls aliases
+alias ll='ls -alF'
+alias la='ls -A'
+alias l='ls -CF'
+
+# Add an "alert" alias for long running commands. Use like so:
+# sleep 10; alert
+alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
+
+# Alias definitions.
+# You may want to put all your additions into a separate file like
+# ~/.bash_aliases, instead of adding them here directly.
+# See /usr/share/doc/bash-doc/examples in the bash-doc package.
+
+if [ -f ~/.bash_aliases ]; then
+ . ~/.bash_aliases
+fi
+
+# enable programmable completion features (you don't need to enable
+# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
+# sources /etc/bash.bashrc).
+if ! shopt -oq posix; then
+ if [ -f /usr/share/bash-completion/bash_completion ]; then
+ . /usr/share/bash-completion/bash_completion
+ elif [ -f /etc/bash_completion ]; then
+ . /etc/bash_completion
+ fi
+fi
+
+
+# Check for an interactive session
+[ -z "$PS1" ] && return
+
+
+_PROMPT() {
+ _EXIT_STATUS=$?
+ [ $_EXIT_STATUS != 0 ] && _EXIT_STATUS_STR=" \[\033[38;5;7m\][\[$(tput sgr0)\]\[\033[38;5;9m\]$_EXIT_STATUS\[$(tput sgr0)\]\[\033[38;5;7m\]]\[$(tput sgr0)\]"
+
+ _BRANCH=`git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
+ if [ ! $_BRANCH == "" ]
+ then
+ _BRANCH_STR="[\[$(tput sgr0)\]\[\033[38;5;11m\]$_BRANCH\[$(tput sgr0)\]\[\033[38;5;7m\]]"
+ else
+ _BRANCH_STR=""
+ fi
+
+ PS1="\[\033[38;5;14m\]\u\[$(tput sgr0)\]\[\033[38;5;15m\]@\[$(tput sgr0)\]\[\033[38;5;6m\]\h\[$(tput sgr0)\] \[$(tput sgr0)\]\[\033[38;5;7m\]╺─╸\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;7m\][\[$(tput sgr0)\]\[\033[38;5;14m\]\W\[$(tput sgr0)\]\[\033[38;5;7m\]]\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;7m\]$_BRANCH_STR\[$(tput sgr0)\]\[\033[38;5;15m\] \n\[$(tput sgr0)\]\[\033[38;5;7m\][\[$(tput sgr0)\]\[\033[38;5;11m\]\A\[$(tput sgr0)\]\[\033[38;5;7m\]]\[$(tput sgr0)\]\[\033[38;5;15m\]$_EXIT_STATUS_STR \[$(tput sgr0)\]\[\033[38;5;7m\]>>\[$(tput sgr0)\] "
+ unset _EXIT_STATUS_STR
+ unset _EXIT_STATUS
+ unset _BRANCH_STR
+ unset _BRANCH
+}
+
+PROMPT_COMMAND=_PROMPT
+
+# ALIASES
+
+alias kali-tools='sudo python3 ~/Software/git/portkali/portkali.py'
+alias ll='ls -alF'
+alias la='ls -A'
+alias l='ls -CF'
+alias ll="ls -lAF"
+alias h="history 25"
+alias office="cd ~ && clear && offlineimap && mu index --maildir ~/Mail"
+alias rss="newsboat"
+alias audio-ext="sysctl hw.snd.default_unit=4"
+alias audio-int="sysctl hw.snd.default_unit=0"
+alias ll="ls -lah"
+alias corona="curl https://corona-stats.online"
+# alias nasm="sudo sshfs -o uid=1000 -o gid=1000 -o allow_other root@192.168.178.200:/hdds/ /media/anon/nas "
+alias corona-germany="curl https://corona-stats.online/germany"
+alias torrent="aria2c --follow-torrent=mem --seed-time=0 -j 10"
+alias fetch="neofetch --backend w3m --source ~/Bilder/tiger.png"
+alias calendar="khal interactive"
+alias bin=" | nc termbin.com 9999"
+alias joplin="~/.npm-global/bin/joplin"
+alias chrome="chrome --enable-features=WebUIDarkMode --force-dark-mode"
+alias technobase="mpv http://listen.technobase.fm/tunein-mp3"
+alias anonradio="torsocks mpv http://anonradio.net:8000/anonradio"
+alias temps="watch -n 2 sensors"
+alias backup="~/git/rsync-time-backup/rsync_tmbackup.sh ~/ /media/anon/8TB/backup/"
+alias backup-ext="Software/git/rsync-time-backup/rsync_tmbackup.sh ~/ hetzner:/home/desktop/"
+alias cal="ncal -w3C"
+alias nanochan="torsocks w3m -o auto_image=FALSE https://nanochanqzaytwlydykbg5nxkgyjxk3zsrctxuoxdmbx5jbh2ydyprid.onion/"
+alias didw="torsocks w3m -o auto_image=FALSE http://germanyruvvy2tcw.onion"
+alias download-world="curl -s http://artscene.textfiles\.com/vt100/globe.vt | pv -L9600 -q"
+alias darknet="torsocks w3m -o auto_image=FALSE .w3m/bookmark.html"
+alias reechat="ssh weechat@vps -t screen -rd weechat"
+alias cast-tay="sudo openvpn ~/Seafile/Crypt/tay.ovpn"
+alias cast-tinfoil-hat="openvpn ~/Seafile/Crypt/vps.ovpn"
+alias xfix="~/Software/scripts/xfix.sh"
+alias goaccess="ssh tay -t goaccess -c /var/log/nginx/access.log"
+alias config="git --git-dir=$HOME/.cfg/ --work-tree=$HOME"
+alias berliner-rundfunk-91-4="mpv http://stream.berliner-rundfunk.de/brf/mp3-128/internetradio"
+alias drop="~/Software/bin/plik"
+alias p0wn.sh="./git/rice/hack.exe"
+alias bg="feh -z ~/ssd/Seafile/dat/dont\ click/Wallpapers/"
+alias dotup="dotfiles-remote-autoupdate && dotfiles-autoupdate"
+alias poweroff="sudo poweroff"
+alias installation-age="stat -c %w /"
+alias db="distrobox"
+alias kali="distrobox enter kali"
+alias arch="distrobox enter arch"
+alias fedora="distrobox enter fedora"
+alias opensuse="distrobox enter opensuse"
+alias ubuntu="distrobox enter ubuntu"
+alias gentoo="distrobox enter gentoo"
+alias debiantesting="distrobox enter debiantesting"
+alias debian="distrobox enter debian"
+alias matrix="gomuks"
+alias nasm="sshfs -o uid=1000 -o gid=1000 -o reconnect u339896@u339896.your-storagebox.de:/ /media/anon/storagebox/"
+alias nasmu="sudo umount /media/anon/storagebox"
+alias mountnx="mount -t davfs https://nx.tinfoil-hat.net/remote.php/dav/files/Admin/Backups /media/anon/nextcloud"
+alias monero=" cd ~/Software/Archive/xmrig-6.19.2/ && sudo ./xmrig -o xmr-eu1.nanopool.org:14433 -u 43JXSU4beuCXTDyBPnXfgK6jtrSTAqAaMSqVDYTdQkf1CdJsiPALLmmASAdhHsXgA698vobsjejp7VBagTA32QVbJ9UCq2A --tls --coin monero && cd"
+alias stable-diffusion="bash ~/Software/scripts/stable-diffusion.sh"
+alias kali="sudo docker run --tty --interactive kalilinux/kali-rolling"
+alias youtube-dl="yt-dlp --cookies-from-browser chrome:~/.var/app/com.brave.Browser -o '%(title).100B [%(id)s].%(ext)s'"
+alias webserver="python3 -m http.server"
+
+# Functions
+
+record-small-screen() {
+ filename="cast-$(date +"%Y-%m-%d_%H_%M")-$(uname -s)-$(uname -m)"
+ ffmpeg -f alsa -ac 2 -f x11grab -r 25 -s 1366x768 -i :0.0 -vcodec libx264 -pix_fmt yuv420p -preset ultrafast -crf 0 -threads 0 -acodec pcm_s16le -y ~/$filename.mkv
+}
+record-big-screen(){
+ filename="cast-$(date +"%Y-%m-%d_%H_%M")-$(uname -s)-$(uname -m)"
+ ffmpeg -f alsa -ac 2 -f x11grab -r 25 -s 1920x1080 -i :0.0 -vcodec libx264 -pix_fmt yuv420p -preset ultrafast -crf 0 -threads 0 -acodec pcm_s16le -y ~/$filename.mkv
+}
+
+wetter() { curl wttr.in/$1; }
+
+ytdl() {
+torsocks mpv ytdl://$@
+}
+news() {
+NNTPSERVER='nntp.aioe.org' && export NNTPSERVER
+slrn -f ~/.jnewsrc --create
+}
+
+# Download Plemora emojis; requires curl and jq
+
+pleroma-emoji-dl() {
+server=$1
+
+ curl $server/api/v1/custom_emojis | jq -r 'map(.url)|join("\n")|@text' | xargs wget --random-wait --wait=1
+}
+
+# NOTES FILE(S)
+notes() {
+ VAR=$1
+ if [ -z $VAR ]; then
+ /usr/local/bin/vim sftp://chrissly@goliath.tinfoil-hat.net/notes/default.txt
+ elif [ "$VAR" == "-h" ]; then
+ printf "Usage: notes [-l] [file]\n";
+ printf " notes Open/Create \"default.txt\" file\n"
+ printf " notes <file> Open/Create \"<file>.txt\" file\n"
+ printf " notes -l Show available note files\n"
+ printf " notes -h Show this help\n"
+ elif [ "$VAR" == "-l" ]; then
+ printf "List of notes:\n"
+ ssh chrissly@sina.tinfoil-hat.net "ls -1 \$HOME/notes/*.txt | sed 's,.*/\(.*\)\.txt, - \1,g'"
+ else
+ vim sftp://chrissly@goliath.tinfoil-hat.net/notes/$1.txt
+ fi
+}
+
+
+# Dotfiles - Autocommit
+function dotfiles-autoupdate {
+ config add -u && \
+ config commit -m "Update $(date +"%Y-%m-%d %H:%M") $(uname -s)/$(uname -m)" && \
+ config push origin master
+}
+
+# Vars
+GPG_TTY=$(tty)
+NNTPSERVER='news.tilde.club'
+TERMINAL='/usr/local/bin/urxvt'
+
+# Exports
+export GPG_TTY
+export LC_ALL=de_DE.UTF-8
+export NNTPSERVER
+export PATH=$HOME/.bin:$PATH
+export EDITOR=vim
+
+bind -s 'set completion-ignore-case on'
+# source ~/Software/git/ble.sh/out/ble.sh
+
+[ -f ~/.fzf.bash ] && source ~/.fzf.bash
diff --git a/.config/awesome/alttab b/.config/awesome/alttab
new file mode 160000
+Subproject 40d70b7537e86697ec4918b8a3f84ecdc63feed
diff --git a/.config/awesome/autorun.sh b/.config/awesome/autorun.sh
new file mode 100755
index 0000000..d4d3abe
--- /dev/null
+++ b/.config/awesome/autorun.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+run() {
+ if ! pgrep -f "$1" ;
+ then
+ "$@"&
+ fi
+}
+
+run blueman-applet
+run nm-applet &
+run picom &
+run pnmixer &
+run xrdb -load ~/.Xresources &
+run feh --bg-scale Bilder/wall.jpg &
+run seafile-applet &
+run nextcloud &
+run redshift &
diff --git a/.config/awesome/lain b/.config/awesome/lain
new file mode 160000
+Subproject c489aa63acc1364851e0e51152be3db5c75e145
diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua
new file mode 100644
index 0000000..44c4971
--- /dev/null
+++ b/.config/awesome/rc.lua
@@ -0,0 +1,599 @@
+-- If LuaRocks is installed, make sure that packages installed through it are
+-- found (e.g. lgi). If LuaRocks is not installed, do nothing.
+pcall(require, "luarocks.loader")
+
+-- Standard awesome library
+local gears = require("gears")
+local awful = require("awful")
+require("awful.autofocus")
+-- Widget and layout library
+local wibox = require("wibox")
+-- Theme handling library
+local beautiful = require("beautiful")
+-- Notification library
+local naughty = require("naughty")
+local menubar = require("menubar")
+local hotkeys_popup = require("awful.hotkeys_popup")
+-- Enable hotkeys help widget for VIM and other apps
+-- when client with a matching name is opened:
+require("awful.hotkeys_popup.keys")
+
+-- Load Debian menu entries
+local debian = require("debian.menu")
+local has_fdo, freedesktop = pcall(require, "freedesktop")
+
+-- {{{ Error handling
+-- Check if awesome encountered an error during startup and fell back to
+-- another config (This code will only ever execute for the fallback config)
+if awesome.startup_errors then
+ naughty.notify({ preset = naughty.config.presets.critical,
+ title = "Oops, there were errors during startup!",
+ text = awesome.startup_errors })
+end
+
+-- Handle runtime errors after startup
+do
+ local in_error = false
+ awesome.connect_signal("debug::error", function (err)
+ -- Make sure we don't go into an endless error loop
+ if in_error then return end
+ in_error = true
+
+ naughty.notify({ preset = naughty.config.presets.critical,
+ title = "Oops, an error happened!",
+ text = tostring(err) })
+ in_error = false
+ end)
+end
+-- }}}
+
+-- {{{ Variable definitions
+-- Themes define colours, icons, font and wallpapers.
+beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")
+
+-- This is used later as the default terminal and editor to run.
+terminal = "urxvt"
+editor = os.getenv("vim") or "vim"
+editor_cmd = terminal .. " -e " .. editor
+
+-- Default modkey.
+-- Usually, Mod4 is the key with a logo between Control and Alt.
+-- If you do not like this or do not have such a key,
+-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
+-- However, you can use another modifier like Mod1, but it may interact with others.
+modkey = "Mod4"
+
+-- Table of layouts to cover with awful.layout.inc, order matters.
+awful.layout.layouts = {
+ awful.layout.suit.floating,
+-- awful.layout.suit.tile,
+-- awful.layout.suit.tile.left,
+-- awful.layout.suit.tile.bottom,
+-- awful.layout.suit.tile.top,
+-- awful.layout.suit.fair,
+-- awful.layout.suit.fair.horizontal,
+awful.layout.suit.spiral,
+-- awful.layout.suit.spiral.dwindle,
+-- awful.layout.suit.max,
+-- awful.layout.suit.max.fullscreen,
+-- awful.layout.suit.magnifier,
+-- awful.layout.suit.corner.nw,
+ -- awful.layout.suit.corner.ne,
+ -- awful.layout.suit.corner.sw,
+ -- awful.layout.suit.corner.se,
+ }
+-- }}}
+
+-- {{{ Menu
+-- Create a launcher widget and a main menu
+myawesomemenu = {
+ { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
+ { "manual", terminal .. " -e man awesome" },
+ { "edit config", editor_cmd .. " " .. awesome.conffile },
+ { "restart", awesome.restart },
+ { "quit", function() awesome.quit() end },
+}
+
+local menu_awesome = { "awesome", myawesomemenu, beautiful.awesome_icon }
+local menu_terminal = { "open terminal", terminal }
+
+if has_fdo then
+ mymainmenu = freedesktop.menu.build({
+ before = { menu_awesome },
+ after = { menu_terminal }
+ })
+else
+ mymainmenu = awful.menu({
+ items = {
+ menu_awesome,
+ { "Debian", debian.menu.Debian_menu.Debian },
+ menu_terminal,
+ }
+ })
+end
+
+
+mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
+ menu = mymainmenu })
+
+-- Menubar configuration
+menubar.utils.terminal = terminal -- Set the terminal for applications that require it
+-- }}}
+
+-- Keyboard map indicator and switcher
+mykeyboardlayout = awful.widget.keyboardlayout()
+
+-- {{{ Wibar
+-- Create a textclock widget
+mytextclock = wibox.widget.textclock()
+
+-- Create a wibox for each screen and add it
+local taglist_buttons = gears.table.join(
+ awful.button({ }, 1, function(t) t:view_only() end),
+ awful.button({ modkey }, 1, function(t)
+ if client.focus then
+ client.focus:move_to_tag(t)
+ end
+ end),
+ awful.button({ }, 3, awful.tag.viewtoggle),
+ awful.button({ modkey }, 3, function(t)
+ if client.focus then
+ client.focus:toggle_tag(t)
+ end
+ end),
+ awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end),
+ awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end)
+ )
+
+local tasklist_buttons = gears.table.join(
+ awful.button({ }, 1, function (c)
+ if c == client.focus then
+ c.minimized = true
+ else
+ c:emit_signal(
+ "request::activate",
+ "tasklist",
+ {raise = true}
+ )
+ end
+ end),
+ awful.button({ }, 3, function()
+ awful.menu.client_list({ theme = { width = 250 } })
+ end),
+ awful.button({ }, 4, function ()
+ awful.client.focus.byidx(1)
+ end),
+ awful.button({ }, 5, function ()
+ awful.client.focus.byidx(-1)
+ end))
+
+local function set_wallpaper(s)
+ -- Wallpaper
+ if beautiful.wallpaper then
+ local wallpaper = beautiful.wallpaper
+ -- If wallpaper is a function, call it with the screen
+ if type(wallpaper) == "function" then
+ wallpaper = wallpaper(s)
+ end
+ gears.wallpaper.maximized(wallpaper, s, true)
+ end
+end
+
+-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
+screen.connect_signal("property::geometry", set_wallpaper)
+
+awful.screen.connect_for_each_screen(function(s)
+ -- Wallpaper
+ set_wallpaper(s)
+
+ -- Each screen has its own tag table.
+ awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1])
+
+ -- Create a promptbox for each screen
+ s.mypromptbox = awful.widget.prompt()
+ -- Create an imagebox widget which will contain an icon indicating which layout we're using.
+ -- We need one layoutbox per screen.
+ s.mylayoutbox = awful.widget.layoutbox(s)
+ s.mylayoutbox:buttons(gears.table.join(
+ awful.button({ }, 1, function () awful.layout.inc( 1) end),
+ awful.button({ }, 3, function () awful.layout.inc(-1) end),
+ awful.button({ }, 4, function () awful.layout.inc( 1) end),
+ awful.button({ }, 5, function () awful.layout.inc(-1) end)))
+ -- Create a taglist widget
+ s.mytaglist = awful.widget.taglist {
+ screen = s,
+ filter = awful.widget.taglist.filter.all,
+ buttons = taglist_buttons
+ }
+
+ -- Create a tasklist widget
+ s.mytasklist = awful.widget.tasklist {
+ screen = s,
+ filter = awful.widget.tasklist.filter.currenttags,
+ buttons = tasklist_buttons
+ }
+
+ -- Create the wibox
+ s.mywibox = awful.wibar({ position = "top", screen = s })
+
+ -- Add widgets to the wibox
+ s.mywibox:setup {
+ layout = wibox.layout.align.horizontal,
+ { -- Left widgets
+ layout = wibox.layout.fixed.horizontal,
+ mylauncher,
+ s.mytaglist,
+ s.mypromptbox,
+ },
+ s.mytasklist, -- Middle widget
+ { -- Right widgets
+ layout = wibox.layout.fixed.horizontal,
+ mykeyboardlayout,
+ wibox.widget.systray(),
+ mytextclock,
+ s.mylayoutbox,
+ },
+ }
+end)
+-- }}}
+
+-- {{{ Mouse bindings
+root.buttons(gears.table.join(
+ awful.button({ }, 3, function () mymainmenu:toggle() end),
+ awful.button({ }, 4, awful.tag.viewnext),
+ awful.button({ }, 5, awful.tag.viewprev)
+))
+-- }}}
+
+-- {{{ Key bindings
+globalkeys = gears.table.join(
+ awful.key({ modkey, }, "s", hotkeys_popup.show_help,
+ {description="show help", group="awesome"}),
+ awful.key({ modkey, }, "Left", awful.tag.viewprev,
+ {description = "view previous", group = "tag"}),
+ awful.key({ modkey, }, "Right", awful.tag.viewnext,
+ {description = "view next", group = "tag"}),
+ awful.key({ modkey, }, "Escape", awful.tag.history.restore,
+ {description = "go back", group = "tag"}),
+
+ awful.key({ modkey, }, "j",
+ function ()
+ awful.client.focus.byidx( 1)
+ end,
+ {description = "focus next by index", group = "client"}
+ ),
+ awful.key({ modkey, }, "k",
+ function ()
+ awful.client.focus.byidx(-1)
+ end,
+ {description = "focus previous by index", group = "client"}
+ ),
+ awful.key({ modkey, }, "w", function () mymainmenu:show() end,
+ {description = "show main menu", group = "awesome"}),
+
+ -- F keys
+ -- My Bindings
+ awful.key({modkey }, "F1", function () awful.util.spawn_with_shell("brave-browser") end),
+ awful.key({modkey }, "F2", function () awful.util.spawn_with_shell("nemo") end),
+ awful.key({modkey }, "F3", function () awful.util.spawn_with_shell("thunderbird") end),
+ awful.key({modkey }, "F4", function () awful.util.spawn_with_shell("element-desktop") end),
+ awful.key({modkey }, "F5", function () awful.util.spawn_with_shell("gnome-screenshot -i") end),
+
+ -- Layout manipulation
+ awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end,
+ {description = "swap with next client by index", group = "client"}),
+ awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end,
+ {description = "swap with previous client by index", group = "client"}),
+ awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
+ {description = "focus the next screen", group = "screen"}),
+ awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
+ {description = "focus the previous screen", group = "screen"}),
+ awful.key({ modkey, }, "u", awful.client.urgent.jumpto,
+ {description = "jump to urgent client", group = "client"}),
+ awful.key({ modkey, }, "Tab",
+ function ()
+ awful.client.focus.history.previous()
+ if client.focus then
+ client.focus:raise()
+ end
+ end,
+ {description = "go back", group = "client"}),
+
+ -- Standard program
+ awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end,
+ {description = "open a terminal", group = "launcher"}),
+ awful.key({ modkey, "Shift" }, "r", awesome.restart,
+ {description = "reload awesome", group = "awesome"}),
+ awful.key({ modkey, "Shift" }, "q", awesome.quit,
+ {description = "quit awesome", group = "awesome"}),
+
+ awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end,
+ {description = "increase master width factor", group = "layout"}),
+ awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end,
+ {description = "decrease master width factor", group = "layout"}),
+ awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end,
+ {description = "increase the number of master clients", group = "layout"}),
+ awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end,
+ {description = "decrease the number of master clients", group = "layout"}),
+ awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end,
+ {description = "increase the number of columns", group = "layout"}),
+ awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end,
+ {description = "decrease the number of columns", group = "layout"}),
+ awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end,
+ {description = "select next", group = "layout"}),
+ awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end,
+ {description = "select previous", group = "layout"}),
+
+ awful.key({ modkey, "Control" }, "n",
+ function ()
+ local c = awful.client.restore()
+ -- Focus restored client
+ if c then
+ c:emit_signal(
+ "request::activate", "key.unminimize", {raise = true}
+ )
+ end
+ end,
+ {description = "restore minimized", group = "client"}),
+
+-- CUSTOM
+
+ awful.key({modkey}, "o", awful.client.movetoscreen),
+
+ awful.key({ modkey }, "l", function () awful.util.spawn("i3lock-fancy -f JetBrainsMono-Regular") end,
+ {description = "lockscreen", group = "lockscreen"}),
+ awful.key({ modkey }, "o", function () awful.spawn.with_shell("xdotool type $(grep -v '^#' ~/.bookmarks | dmenu -i -l 50 | cut -d' ' -f1)") end,
+ {description = "lockscreen", group = "lockscreen"}),
+
+
+ -- Prompt
+ awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end,
+ {description = "run prompt", group = "launcher"}),
+
+ awful.key({ modkey }, "x",
+ function ()
+ awful.prompt.run {
+ prompt = "Run Lua code: ",
+ textbox = awful.screen.focused().mypromptbox.widget,
+ exe_callback = awful.util.eval,
+ history_path = awful.util.get_cache_dir() .. "/history_eval"
+ }
+ end,
+ {description = "lua execute prompt", group = "awesome"}),
+ -- Menubar
+ awful.key({ modkey }, "d", function() menubar.show() end,
+ {description = "show the menubar", group = "launcher"})
+)
+
+clientkeys = gears.table.join(
+ awful.key({ modkey, }, "f",
+ function (c)
+ c.fullscreen = not c.fullscreen
+ c:raise()
+ end,
+ {description = "toggle fullscreen", group = "client"}),
+ awful.key({ modkey, "Shift" }, "w", function (c) c:kill() end,
+ {description = "close", group = "client"}),
+ awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ,
+ {description = "toggle floating", group = "client"}),
+ awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end,
+ {description = "move to master", group = "client"}),
+ awful.key({ modkey, }, "o", function (c) c:move_to_screen() end,
+ {description = "move to screen", group = "client"}),
+ awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end,
+ {description = "toggle keep on top", group = "client"}),
+ awful.key({ modkey, }, "n",
+ function (c)
+ -- The client currently has the input focus, so it cannot be
+ -- minimized, since minimized clients can't have the focus.
+ c.minimized = true
+ end ,
+ {description = "minimize", group = "client"}),
+ awful.key({ modkey, }, "m",
+ function (c)
+ c.maximized = not c.maximized
+ c:raise()
+ end ,
+ {description = "(un)maximize", group = "client"}),
+ awful.key({ modkey, "Control" }, "m",
+ function (c)
+ c.maximized_vertical = not c.maximized_vertical
+ c:raise()
+ end ,
+ {description = "(un)maximize vertically", group = "client"}),
+ awful.key({ modkey, "Shift" }, "m",
+ function (c)
+ c.maximized_horizontal = not c.maximized_horizontal
+ c:raise()
+ end ,
+ {description = "(un)maximize horizontally", group = "client"})
+)
+
+-- Bind all key numbers to tags.
+-- Be careful: we use keycodes to make it work on any keyboard layout.
+-- This should map on the top row of your keyboard, usually 1 to 9.
+for i = 1, 9 do
+ globalkeys = gears.table.join(globalkeys,
+ -- View tag only.
+ awful.key({ modkey }, "#" .. i + 9,
+ function ()
+ local screen = awful.screen.focused()
+ local tag = screen.tags[i]
+ if tag then
+ tag:view_only()
+ end
+ end,
+ {description = "view tag #"..i, group = "tag"}),
+ -- Toggle tag display.
+ awful.key({ modkey, "Control" }, "#" .. i + 9,
+ function ()
+ local screen = awful.screen.focused()
+ local tag = screen.tags[i]
+ if tag then
+ awful.tag.viewtoggle(tag)
+ end
+ end,
+ {description = "toggle tag #" .. i, group = "tag"}),
+ -- Move client to tag.
+ awful.key({ modkey, "Shift" }, "#" .. i + 9,
+ function ()
+ if client.focus then
+ local tag = client.focus.screen.tags[i]
+ if tag then
+ client.focus:move_to_tag(tag)
+ end
+ end
+ end,
+ {description = "move focused client to tag #"..i, group = "tag"}),
+ -- Toggle tag on focused client.
+ awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
+ function ()
+ if client.focus then
+ local tag = client.focus.screen.tags[i]
+ if tag then
+ client.focus:toggle_tag(tag)
+ end
+ end
+ end,
+ {description = "toggle focused client on tag #" .. i, group = "tag"})
+ )
+end
+
+clientbuttons = gears.table.join(
+ awful.button({ }, 1, function (c)
+ c:emit_signal("request::activate", "mouse_click", {raise = true})
+ end),
+ awful.button({ modkey }, 1, function (c)
+ c:emit_signal("request::activate", "mouse_click", {raise = true})
+ awful.mouse.client.move(c)
+ end),
+ awful.button({ modkey }, 3, function (c)
+ c:emit_signal("request::activate", "mouse_click", {raise = true})
+ awful.mouse.client.resize(c)
+ end)
+)
+
+-- Set keys
+root.keys(globalkeys)
+-- }}}
+
+-- {{{ Rules
+-- Rules to apply to new clients (through the "manage" signal).
+awful.rules.rules = {
+ -- All clients will match this rule.
+ { rule = { },
+ properties = { border_width = beautiful.border_width,
+ border_color = beautiful.border_normal,
+ focus = awful.client.focus.filter,
+ raise = true,
+ keys = clientkeys,
+ buttons = clientbuttons,
+ screen = awful.screen.preferred,
+ placement = awful.placement.no_overlap+awful.placement.no_offscreen
+ }
+ },
+
+ -- Floating clients.
+ { rule_any = {
+ instance = {
+ "DTA", -- Firefox addon DownThemAll.
+ "copyq", -- Includes session name in class.
+ "pinentry",
+ },
+
+ -- Note that the name property shown in xprop might be set slightly after creation of the client
+ -- and the name shown there might not match defined rules here.
+ name = {
+ "Event Tester", -- xev.
+ },
+ role = {
+ "AlarmWindow", -- Thunderbird's calendar.
+ "ConfigManager", -- Thunderbird's about:config.
+ "pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
+ }
+ }, properties = { floating = true }},
+
+ -- Add titlebars to normal clients and dialogs
+ { rule_any = {type = { "normal", "dialog" }},
+ except = {class ="rxvt"},
+ properties = { titlebars_enabled = true }
+ },
+
+ -- Set Firefox to always map on the tag named "2" on screen 1.
+ { rule = { class = "rxvt" },
+ properties = { screen = 1, tag = "1", tile=true } },
+ { rule = { class = "Brave", switchtotag=true },
+ properties = { screen = 1, tag = "2" } },
+ { rule = { class = "Thunderbird", switchtotag=true },
+ properties = { screen = 1, tag = "3" } },
+
+
+}
+-- }}}
+
+-- {{{ Signals
+-- Signal function to execute when a new client appears.
+client.connect_signal("manage", function (c)
+ -- Set the windows at the slave,
+ -- i.e. put it at the end of others instead of setting it master.
+ -- if not awesome.startup then awful.client.setslave(c) end
+
+ if awesome.startup
+ and not c.size_hints.user_position
+ and not c.size_hints.program_position then
+ -- Prevent clients from being unreachable after screen count changes.
+ awful.placement.no_offscreen(c)
+ end
+end)
+
+-- Add a titlebar if titlebars_enabled is set to true in the rules.
+client.connect_signal("request::titlebars", function(c)
+ -- buttons for the titlebar
+ local buttons = gears.table.join(
+ awful.button({ }, 1, function()
+ c:emit_signal("request::activate", "titlebar", {raise = true})
+ awful.mouse.client.move(c)
+ end),
+ awful.button({ }, 3, function()
+ c:emit_signal("request::activate", "titlebar", {raise = true})
+ awful.mouse.client.resize(c)
+ end)
+ )
+
+ awful.titlebar(c) : setup {
+ { -- Left
+ awful.titlebar.widget.iconwidget(c),
+ buttons = buttons,
+ layout = wibox.layout.fixed.horizontal
+ },
+ { -- Middle
+ { -- Title
+ align = "center",
+ widget = awful.titlebar.widget.titlewidget(c)
+ },
+ buttons = buttons,
+ layout = wibox.layout.flex.horizontal
+ },
+ { -- Right
+ awful.titlebar.widget.floatingbutton (c),
+ awful.titlebar.widget.maximizedbutton(c),
+ awful.titlebar.widget.stickybutton (c),
+ awful.titlebar.widget.ontopbutton (c),
+ awful.titlebar.widget.closebutton (c),
+ layout = wibox.layout.fixed.horizontal()
+ },
+ layout = wibox.layout.align.horizontal
+ }
+end)
+
+-- Enable sloppy focus, so that focus follows mouse.
+client.connect_signal("mouse::enter", function(c)
+ c:emit_signal("request::activate", "mouse_enter", {raise = false})
+end)
+
+client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
+client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
+-- }}}
+-- Autostart
+awful.spawn.with_shell("~/.config/awesome/autorun.sh")
+
diff --git a/.config/awesome/theme.lua b/.config/awesome/theme.lua
new file mode 100644
index 0000000..6f6d876
--- /dev/null
+++ b/.config/awesome/theme.lua
@@ -0,0 +1,129 @@
+---------------------------
+-- Default awesome theme --
+---------------------------
+
+local theme_assets = require("beautiful.theme_assets")
+local xresources = ~/.Xresources -- require("beautiful.xresources")
+local dpi = xresources.apply_dpi
+
+local gfs = require("gears.filesystem")
+local themes_path = gfs.get_themes_dir()
+
+local theme = {}
+
+theme.font = "JetBrainsMono-Regular 10"
+
+theme.bg_normal = "#222222"
+theme.bg_focus = "#535d6c"
+theme.bg_urgent = "#ff0000"
+theme.bg_minimize = "#444444"
+theme.bg_systray = "#535d6c"
+
+theme.fg_normal = "#aaaaaa"
+theme.fg_focus = "#ffffff"
+theme.fg_urgent = "#ffffff"
+theme.fg_minimize = "#ffffff"
+
+theme.useless_gap = dpi(10)
+theme.border_width = dpi(1)
+theme.border_normal = "#000000"
+theme.border_focus = "#535d6c"
+theme.border_marked = "#91231c"
+
+-- There are other variable sets
+-- overriding the default one when
+-- defined, the sets are:
+-- taglist_[bg|fg]_[focus|urgent|occupied|empty|volatile]
+-- tasklist_[bg|fg]_[focus|urgent]
+-- titlebar_[bg|fg]_[normal|focus]
+-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
+-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
+-- prompt_[fg|bg|fg_cursor|bg_cursor|font]
+-- hotkeys_[bg|fg|border_width|border_color|shape|opacity|modifiers_fg|label_bg|label_fg|group_margin|font|description_font]
+-- Example:
+--theme.taglist_bg_focus = "#ff0000"
+
+-- Generate taglist squares:
+local taglist_square_size = dpi(4)
+theme.taglist_squares_sel = theme_assets.taglist_squares_sel(
+ taglist_square_size, theme.fg_normal
+)
+theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(
+ taglist_square_size, theme.fg_normal
+)
+
+-- Variables set for theming notifications:
+-- notification_font
+-- notification_[bg|fg]
+-- notification_[width|height|margin]
+-- notification_[border_color|border_width|shape|opacity]
+
+-- Variables set for theming the menu:
+-- menu_[bg|fg]_[normal|focus]
+-- menu_[border_color|border_width]
+theme.menu_submenu_icon = themes_path.."default/submenu.png"
+theme.menu_height = dpi(15)
+theme.menu_width = dpi(100)
+
+-- You can add as many variables as
+-- you wish and access them by using
+-- beautiful.variable in your rc.lua
+--theme.bg_widget = "#cc0000"
+
+-- Define the image to load
+theme.titlebar_close_button_normal = themes_path.."default/titlebar/close_normal.png"
+theme.titlebar_close_button_focus = themes_path.."default/titlebar/close_focus.png"
+
+theme.titlebar_minimize_button_normal = themes_path.."default/titlebar/minimize_normal.png"
+theme.titlebar_minimize_button_focus = themes_path.."default/titlebar/minimize_focus.png"
+
+theme.titlebar_ontop_button_normal_inactive = themes_path.."default/titlebar/ontop_normal_inactive.png"
+theme.titlebar_ontop_button_focus_inactive = themes_path.."default/titlebar/ontop_focus_inactive.png"
+theme.titlebar_ontop_button_normal_active = themes_path.."default/titlebar/ontop_normal_active.png"
+theme.titlebar_ontop_button_focus_active = themes_path.."default/titlebar/ontop_focus_active.png"
+
+theme.titlebar_sticky_button_normal_inactive = themes_path.."default/titlebar/sticky_normal_inactive.png"
+theme.titlebar_sticky_button_focus_inactive = themes_path.."default/titlebar/sticky_focus_inactive.png"
+theme.titlebar_sticky_button_normal_active = themes_path.."default/titlebar/sticky_normal_active.png"
+theme.titlebar_sticky_button_focus_active = themes_path.."default/titlebar/sticky_focus_active.png"
+
+theme.titlebar_floating_button_normal_inactive = themes_path.."default/titlebar/floating_normal_inactive.png"
+theme.titlebar_floating_button_focus_inactive = themes_path.."default/titlebar/floating_focus_inactive.png"
+theme.titlebar_floating_button_normal_active = themes_path.."default/titlebar/floating_normal_active.png"
+theme.titlebar_floating_button_focus_active = themes_path.."default/titlebar/floating_focus_active.png"
+
+theme.titlebar_maximized_button_normal_inactive = themes_path.."default/titlebar/maximized_normal_inactive.png"
+theme.titlebar_maximized_button_focus_inactive = themes_path.."default/titlebar/maximized_focus_inactive.png"
+theme.titlebar_maximized_button_normal_active = themes_path.."default/titlebar/maximized_normal_active.png"
+theme.titlebar_maximized_button_focus_active = themes_path.."default/titlebar/maximized_focus_active.png"
+
+-- You can use your own layout icons like this:
+theme.layout_fairh = themes_path.."default/layouts/fairhw.png"
+theme.layout_fairv = themes_path.."default/layouts/fairvw.png"
+theme.layout_floating = themes_path.."default/layouts/floatingw.png"
+theme.layout_magnifier = themes_path.."default/layouts/magnifierw.png"
+theme.layout_max = themes_path.."default/layouts/maxw.png"
+theme.layout_fullscreen = themes_path.."default/layouts/fullscreenw.png"
+theme.layout_tilebottom = themes_path.."default/layouts/tilebottomw.png"
+theme.layout_tileleft = themes_path.."default/layouts/tileleftw.png"
+theme.layout_tile = themes_path.."default/layouts/tilew.png"
+theme.layout_tiletop = themes_path.."default/layouts/tiletopw.png"
+theme.layout_spiral = themes_path.."default/layouts/spiralw.png"
+theme.layout_dwindle = themes_path.."default/layouts/dwindlew.png"
+theme.layout_cornernw = themes_path.."default/layouts/cornernww.png"
+theme.layout_cornerne = themes_path.."default/layouts/cornernew.png"
+theme.layout_cornersw = themes_path.."default/layouts/cornersww.png"
+theme.layout_cornerse = themes_path.."default/layouts/cornersew.png"
+
+-- Generate Awesome icon:
+theme.awesome_icon = theme_assets.awesome_icon(
+ theme.menu_height, theme.bg_focus, theme.fg_focus
+)
+
+-- Define the icon theme for application icons. If not set then the icons
+-- from /usr/share/icons and /usr/share/icons/hicolor will be used.
+theme.icon_theme = "Mate Black"
+
+return theme
+
+-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
diff --git a/.config/htop/htoprc b/.config/htop/htoprc
new file mode 100644
index 0000000..bd9d1bc
--- /dev/null
+++ b/.config/htop/htoprc
@@ -0,0 +1,39 @@
+# Beware! This file is rewritten by htop when settings are changed in the interface.
+# The parser is also very primitive, and not human-friendly.
+fields=0 48 17 18 38 39 40 2 46 47 49 1
+sort_key=46
+sort_direction=-1
+tree_sort_key=46
+tree_sort_direction=-1
+hide_kernel_threads=1
+hide_userland_threads=0
+shadow_other_users=0
+show_thread_names=0
+show_program_path=0
+highlight_base_name=0
+highlight_megabytes=1
+highlight_threads=1
+highlight_changes=0
+highlight_changes_delay_secs=5
+find_comm_in_cmdline=1
+strip_exe_from_cmdline=1
+show_merged_command=0
+tree_view=1
+tree_view_always_by_pid=0
+header_margin=1
+detailed_cpu_time=0
+cpu_count_from_one=0
+show_cpu_usage=1
+show_cpu_frequency=0
+show_cpu_temperature=0
+degree_fahrenheit=0
+update_process_names=0
+account_guest_in_cpu_meter=0
+color_scheme=0
+enable_mouse=1
+delay=15
+left_meters=LeftCPUs2 Memory Swap
+left_meter_modes=1 1 1
+right_meters=RightCPUs2 Tasks LoadAverage Uptime
+right_meter_modes=1 2 2 2
+hide_function_bar=0
diff --git a/.config/mpd/mpd.conf b/.config/mpd/mpd.conf
new file mode 100644
index 0000000..51b5cd4
--- /dev/null
+++ b/.config/mpd/mpd.conf
@@ -0,0 +1,22 @@
+# Recommended location for database
+db_file "~/.config/mpd/database"
+
+# If running mpd using systemd, delete this line to log directly to systemd.
+log_file "syslog"
+
+# The music directory is by default the XDG directory, uncomment to amend and choose a different directory
+music_directory "~/Musik/"
+
+# Uncomment to refresh the database whenever files in the music_directory are changed
+auto_update "yes"
+
+# Uncomment to enable the functionalities
+playlist_directory "~/.config/mpd/playlists"
+pid_file "~/.config/mpd/pid"
+state_file "~/.local/state/mpd/state"
+sticker_file "~/.config/mpd/sticker.sql"
+
+audio_output {
+ type "pulse"
+ name "pulse audio"
+}
diff --git a/.config/ncmpcpp/config b/.config/ncmpcpp/config
new file mode 100644
index 0000000..1e8e9fd
--- /dev/null
+++ b/.config/ncmpcpp/config
@@ -0,0 +1,76 @@
+# Playlist
+playlist_disable_highlight_delay = "0"
+playlist_display_mode = "columns"
+playlist_show_remaining_time = "yes"
+
+browser_display_mode = "columns"
+autocenter_mode = "yes"
+follow_now_playing_lyrics = "yes"
+song_columns_list_format = "(10)[blue]{l} (30)[green]{a} (30)[magenta]{b} (50)[yellow]{t}"
+colors_enabled = "yes"
+main_window_color = "white"
+header_window_color = "cyan"
+volume_color = "red"
+progressbar_color = "cyan"
+statusbar_color = "white"
+active_window_border = "blue"
+
+alternative_header_first_line_format = "$0$aqqu$/a {$7%a - $9}{$5%t$9}|{$8%f$9} $0$atqq$/a$9"
+alternative_header_second_line_format = "{{$6%b$9}{ [$6%y$9]}}|{%D}"
+song_list_format = "{$3%n ââ€Ââ€š $9}{$7%a - $9}{$5%t$9}|{$8%f$9}$R{$6 ââ€Ââ€š %b$9}{$3 ââ€Ââ€š %l$9}"
+user_interface = "alternative"
+#user_interface = "classic"
+default_place_to_search_in = "database"
+
+
+# # visualizer
+# visualizer_fifo_path = "/tmp/mpd.fifo"
+# visualizer_output_name = "my_fifo"
+# visualizer_sync_interval = "12"
+# #visualizer_type = "wave" (spectrum/wave)
+# #visualizer_type = "spectrum" (spectrum/wave)
+# visualizer_in_stereo = "yes"
+# visualizer_look = "+|"
+
+
+## Navigation ##
+cyclic_scrolling = "yes"
+header_text_scrolling = "yes"
+jump_to_now_playing_song_at_start = "yes"
+lines_scrolled = "2"
+
+## Disable Mouse ##
+mouse_support = no
+
+## Other ##
+system_encoding = "utf-8"
+regular_expressions = "extended"
+
+
+
+## Selected tracks ##
+selected_item_prefix = "* "
+discard_colors_if_item_is_selected = "no"
+
+## Seeking ##
+incremental_seeking = "yes"
+seek_time = "1"
+
+## Visivility ##
+header_visibility = "yes"
+statusbar_visibility = "yes"
+titles_visibility = "yes"
+
+
+progressbar_look = "=>-"
+progressbar_elapsed_color = "white"
+
+now_playing_prefix = "> "
+song_status_format = " $2%a $4⟫$3⟫ $8%t $4⟫$3⟫ $5%b "
+centered_cursor = "yes"
+
+# Misc
+display_bitrate = "yes"
+# enable_window_title = "no"
+ignore_leading_the = "yes"
+empty_tag_marker = ""
diff --git a/.config/neofetch/config.conf b/.config/neofetch/config.conf
new file mode 100644
index 0000000..703e987
--- /dev/null
+++ b/.config/neofetch/config.conf
@@ -0,0 +1,125 @@
+# Source: https://github.com/Chick2D/neofetch-themes/
+# Made by https://github.com/tralph3
+# Customization Wiki https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
+
+# Colour config is here and in .zshrc
+
+print_info() {
+ info title
+ info underline
+
+ prin "$(color 12)╭──────────── $(color 10)Software$(color 12) ────────────"
+ info "$(color 12)│ $(color 14)OS" distro
+ info "$(color 12)│ $(color 14)Kernel" kernel
+ info "$(color 12)│ $(color 14)Packages" packages
+ info "$(color 12)│ $(color 14)Shell" shell
+ info "$(color 12)│ $(color 14)DE" de
+ info "$(color 12)│ $(color 14)Terminal" term
+ prin "$(color 12)├──────────── $(color 10)Hardware$(color 12) ────────────"
+ info "$(color 12)│ $(color 14)Host" model
+ info "$(color 12)│ $(color 14)CPU" cpu
+ info "$(color 12)│ $(color 14)GPU" gpu
+ info "$(color 12)│ $(color 14)Memory" memory
+ info "$(color 12)│ $(color 14)Disk" disk
+ prin "$(color 12)├───────────── $(color 10)Uptime$(color 12) ─────────────"
+ info "$(color 12)│" uptime
+ prin "$(color 12)╰──────────────────────────────────"
+
+ info cols
+
+ # Defaults
+
+ # info "OS" distro
+ # info "Host" model
+ # info "Kernel" kernel
+ # info "Uptime" uptime
+ # info "Packages" packages
+ # info "Shell" shell
+ # info "Resolution" resolution
+ # info "DE" de
+ # info "WM" wm
+ # info "WM Theme" wm_theme
+ # info "Theme" theme
+ # info "Icons" icons
+ # info "Terminal" term
+ # info "Terminal Font" term_font
+ # info "CPU" cpu
+ # info "GPU" gpu
+ # info "Memory" memory
+
+ # info "GPU Driver" gpu_driver # Linux/macOS only
+ # info "CPU Usage" cpu_usage
+ # info "Disk" disk
+ # info "Battery" battery
+ # info "Font" font
+ # info "Song" song
+ # [[ "$player" ]] && prin "Music Player" "$player"
+ # info "Local IP" local_ip
+ # info "Public IP" public_ip
+ # info "Users" users
+ # info "Locale" locale # This only works on glibc systems.
+
+ # info cols
+
+}
+
+# To know what these functions mean, go to the Customization Wiki on top
+
+title_fqdn="off"
+kernel_shorthand="on"
+distro_shorthand="on"
+os_arch="off"
+uptime_shorthand="off"
+memory_percent="off"
+memory_unit="mib"
+package_managers="on"
+shell_path="off"
+shell_version="on"
+cpu_brand="on"
+cpu_speed="on"
+cpu_cores="logical"
+cpu_temp="off"
+gpu_type="all"
+refresh_rate="on"
+gtk_shorthand="on"
+gtk2="on"
+gtk3="on"
+public_ip_host="http://ident.me"
+public_ip_timeout=2
+de_version="on"
+disk_subtitle="dir"
+disk_percent="on"
+music_player="auto"
+song_format="%artist% - %title%"
+mpc_args=()
+colors=(distro)
+underline_enabled="on"
+underline_char="¨"
+separator="›"
+color_blocks="on"
+block_width=3
+block_height=1
+col_offset="auto"
+bar_char_elapsed="-"
+bar_char_total="="
+bar_border="on"
+bar_length=15
+bar_color_elapsed="distro"
+bar_color_total="distro"
+cpu_display="off"
+memory_display="off"
+battery_display="off"
+disk_display="off"
+image_source="auto"
+ascii_distro="auto"
+ascii_bold="on"
+image_loop="off"
+thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
+crop_mode="normal"
+crop_offset="center"
+image_size="auto"
+gap=3
+yoffset=0
+xoffset=0
+background_color=
+stdout="off"
diff --git a/.config/neofetch/neofetch-themes b/.config/neofetch/neofetch-themes
new file mode 160000
+Subproject c7392136bed264258c9b8788b14410e1ff06d60
diff --git a/.config/terminator/config b/.config/terminator/config
new file mode 100644
index 0000000..13106da
--- /dev/null
+++ b/.config/terminator/config
@@ -0,0 +1,20 @@
+[global_config]
+ suppress_multiple_term_dialog = True
+[keybindings]
+[profiles]
+ [[default]]
+ background_color = "#1d1f21"
+ font = JetBrains Mono Light 10
+ foreground_color = "#c5c8c6"
+ palette = "#282a2e:#a54242:#8c9440:#de935f:#5f819d:#85678f:#5e8d87:#707880:#373b41:#cc6666:#b5bd68:#f0c674:#81a2be:#b294bb:#8abeb7:#c5c8c6"
+ use_system_font = False
+[layouts]
+ [[default]]
+ [[[child1]]]
+ type = Terminal
+ parent = window0
+ profile = default
+ [[[window0]]]
+ type = Window
+ parent = ""
+[plugins]
diff --git a/.newsboat/config b/.newsboat/config
new file mode 100644
index 0000000..8da8ff2
--- /dev/null
+++ b/.newsboat/config
@@ -0,0 +1,53 @@
+external-url-viewer "urlscan -dc -r 'linkhandler {$1}'"
+
+download-retries 2
+download-timeout 20
+use-proxy no
+proxy-type socks5h
+proxy 127.0.0.1:9050
+user-agent "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0"
+history-limit 0
+reload-threads 4
+auto-reload yes
+suppress-first-reload yes
+reload-time 20
+notify-beep no
+confirm-exit yes
+save-path "~/Documents/rss/"
+browser "/usr/bin/brave-browser %u"
+
+
+bind-key U show-urls
+bind-key s save
+
+feedlist-format "%?T?║%4i %n %8u (%T) %t &╠═══════ - %t?
+
+macro , open-in-browser
+
+# macro a set browser "tsp youtube-dl --add-metadata -xic -f bestaudio/best" ; open-in-browser ; set browser linkhandler
+macro m set browser "setsid -f mpv" ; open-in-browser ; set browser linkhandler
+macro v set browser "setsid -f mpv" ; open-in-browser ; set browser linkhandler
+macro l set browser "/usr/local/bin/lynx" ; open-in-browser ; set browser linkhandler
+macro f set browser "/usr/loacl/bin/feh" ; open-in-browser ; set browser linkhandler
+
+color listnormal cyan default
+color listfocus default default standout bold
+color listnormal_unread green default
+color listfocus_unread green default bold
+color info default black bold
+color article white default bold
+
+highlight all "---.*---" white
+highlight feedlist ".*(0/0))" white
+highlight article "(^Feed:.*|^Title:.*|^Author:.*)" white default bold
+highlight article "(^Link:.*|^Date:.*)" default default
+highlight article "https?://[^ ]+" green default
+highlight article "^(Title):.*$" yellow default
+highlight article "\\[[0-9][0-9]*\\]" cyan default bold
+highlight article "\\[image/\\ [0-9]+\\]" white default bold
+highlight article "\\[embedded flash: [0-9][0-9]*\\]" white default bold
+highlight article ":.*\\(link\\)$" green default
+highlight article ":.*\\(image\\)$" yellow default
+highlight article ":.*\\(embedded flash\\)$" magenta default
+
+
diff --git a/.profile b/.profile
new file mode 100644
index 0000000..e7398c5
--- /dev/null
+++ b/.profile
@@ -0,0 +1,29 @@
+# ~/.profile: executed by the command interpreter for login shells.
+# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
+# exists.
+# see /usr/share/doc/bash/examples/startup-files for examples.
+# the files are located in the bash-doc package.
+
+# the default umask is set in /etc/profile; for setting the umask
+# for ssh logins, install and configure the libpam-umask package.
+#umask 022
+
+# if running bash
+if [ -n "$BASH_VERSION" ]; then
+ # include .bashrc if it exists
+ if [ -f "$HOME/.bashrc" ]; then
+ . "$HOME/.bashrc"
+ fi
+fi
+
+# set PATH so it includes user's private bin if it exists
+if [ -d "$HOME/bin" ] ; then
+ PATH="$HOME/bin:$PATH"
+fi
+
+# set PATH so it includes user's private bin if it exists
+if [ -d "$HOME/.local/bin" ] ; then
+ PATH="$HOME/.local/bin:$PATH"
+fi
+[ ! -s ~/.config/mpd/pid ] && mpd
+
diff --git a/.screenrc b/.screenrc
new file mode 100644
index 0000000..59bcb7d
--- /dev/null
+++ b/.screenrc
@@ -0,0 +1,12 @@
+screen -t /bin/bash
+
+altscreen on
+term screen-256color
+bind ',' prev
+bind '.' next
+
+#change the hardstatus settings to give an window list at the bottom of the
+##screen, with the time and date and with the current window highlighted
+hardstatus alwayslastline
+# hardstatus string '%{= kG}%-Lw%{= kW}%50> %n%f* %t%{= kG}%+Lw%< %{= kG}%-=%c:%s%{-}'
+hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
diff --git a/.vim/pack/default/start/gruvbox b/.vim/pack/default/start/gruvbox
new file mode 160000
+Subproject f1ecde848f0cdba877acb0c740320568252cc48
diff --git a/.vimrc b/.vimrc
new file mode 100644
index 0000000..225afe8
--- /dev/null
+++ b/.vimrc
@@ -0,0 +1,99 @@
+" Colour
+colorscheme gruvbox
+set background=dark
+
+" With a map leader it's possible to do extra key combinations
+" like <leader>w saves the current file
+let mapleader = ","
+
+" Enable type file detection. Vim will be able to try to detect the type of file in use.
+filetype on
+
+" Enable plugins and load plugin for the detected file type.
+filetype plugin on
+
+" Load an indent file for the detected file type.
+filetype indent on
+
+" Turn syntax highlighting on.
+syntax on
+
+" Add numbers to each line on the left-hand side.
+set number
+
+" Highlight cursor line underneath the cursor horizontally.
+set cursorline
+
+" Highlight cursor line underneath the cursor vertically.
+" set cursorcolumn
+
+" Set shift width to 4 spaces.
+set shiftwidth=4
+
+" Set tab width to 4 columns.
+set tabstop=4
+
+" Use space characters instead of tabs.
+set expandtab
+
+" Do not save backup files.
+set nobackup
+
+" Do not wrap lines. Allow long lines to extend as far as the line goes.
+set nowrap
+
+" While searching though a file incrementally highlight matching characters as you type.
+set incsearch
+
+" Ignore capital letters during search.
+set ignorecase
+
+" Override the ignorecase option if searching for capital letters.
+" This will allow you to search specifically for capital letters.
+set smartcase
+
+" Show matching words during a search.
+set showmatch
+
+" Use highlighting when doing a search.
+set hlsearch
+
+" Set the commands to save in history default number is 20.
+set history=1000
+
+" Enable auto completion menu after pressing TAB.
+set wildmenu
+
+" Make wildmenu behave like similar to Bash completion.
+set wildmode=list:longest
+
+" There are certain files that we would never want to edit with Vim.
+" Wildmenu will ignore files with these extensions.
+set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx
+
+" Enable 256 colors palette in Gnome Terminal
+if $COLORTERM == 'gnome-terminal'
+ set t_Co=256
+endif
+
+" Returns true if the color hex value is light
+function! IsHexColorLight(color) abort
+ let l:raw_color = trim(a:color, '#')
+
+ let l:red = str2nr(substitute(l:raw_color, '(.{2}).{4}', '1', 'g'), 16)
+ let l:green = str2nr(substitute(l:raw_color, '.{2}(.{2}).{2}', '1', 'g'), 16)
+ let l:blue = str2nr(substitute(l:raw_color, '.{4}(.{2})', '1', 'g'), 16)
+
+ let l:brightness = ((l:red * 299) + (l:green * 587) + (l:blue * 114)) / 1000
+
+ return l:brightness > 155
+endfunction
+
+func! WordProcessorMode()
+ setlocal textwidth=80
+ setlocal smartindent
+ setlocal spell spelllang=en_us
+ setlocal noexpandtab
+endfu
+
+
diff --git a/.weechat/irc.conf.blank b/.weechat/irc.conf.blank
new file mode 100644
index 0000000..9cac1ab
--- /dev/null
+++ b/.weechat/irc.conf.blank
@@ -0,0 +1,332 @@
+#
+# weechat -- irc.conf
+#
+# WARNING: It is NOT recommended to edit this file by hand,
+# especially if WeeChat is running.
+#
+# Use /set or similar command to change settings in WeeChat.
+#
+# For more info, see: https://weechat.org/doc/quickstart
+#
+
+[look]
+buffer_open_before_autojoin = on
+buffer_open_before_join = off
+buffer_switch_autojoin = on
+buffer_switch_join = on
+color_nicks_in_names = off
+color_nicks_in_nicklist = off
+color_nicks_in_server_messages = on
+color_pv_nick_like_channel = on
+ctcp_time_format = "%a, %d %b %Y %T %z"
+display_away = local
+display_ctcp_blocked = on
+display_ctcp_reply = on
+display_ctcp_unknown = on
+display_host_join = on
+display_host_join_local = on
+display_host_quit = on
+display_join_message = "329,332,333,366"
+display_old_topic = on
+display_pv_away_once = on
+display_pv_back = on
+display_pv_warning_address = off
+highlight_channel = "$nick"
+highlight_pv = "$nick"
+highlight_server = "$nick"
+highlight_tags_restrict = "irc_privmsg,irc_notice"
+item_channel_modes_hide_args = "k"
+item_display_server = buffer_plugin
+item_nick_modes = on
+item_nick_prefix = on
+join_auto_add_chantype = off
+msgbuffer_fallback = current
+new_channel_position = none
+new_pv_position = none
+nick_completion_smart = speakers
+nick_mode = prefix
+nick_mode_empty = off
+nicks_hide_password = "nickserv"
+notice_as_pv = auto
+notice_welcome_redirect = on
+notice_welcome_tags = ""
+notify_tags_ison = "notify_message"
+notify_tags_whois = "notify_message"
+part_closes_buffer = off
+pv_buffer = independent
+pv_tags = "notify_private"
+raw_messages = 256
+server_buffer = merge_with_core
+smart_filter = on
+smart_filter_account = on
+smart_filter_chghost = on
+smart_filter_delay = 5
+smart_filter_join = on
+smart_filter_join_unmask = 30
+smart_filter_mode = "+"
+smart_filter_nick = on
+smart_filter_quit = on
+temporary_servers = off
+topic_strip_colors = off
+
+[color]
+input_nick = lightcyan
+item_channel_modes = default
+item_lag_counting = default
+item_lag_finished = yellow
+item_nick_modes = default
+message_account = cyan
+message_chghost = brown
+message_join = green
+message_kick = red
+message_quit = red
+mirc_remap = "1,-1:darkgray"
+nick_prefixes = "y:lightred;q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"
+notice = green
+reason_kick = default
+reason_quit = default
+topic_current = default
+topic_new = white
+topic_old = default
+
+[network]
+autoreconnect_delay_growing = 2
+autoreconnect_delay_max = 600
+ban_mask_default = "*!$ident@$host"
+colors_receive = on
+colors_send = on
+lag_check = 60
+lag_max = 1800
+lag_min_show = 500
+lag_reconnect = 300
+lag_refresh_interval = 1
+notify_check_ison = 1
+notify_check_whois = 5
+sasl_fail_unavailable = on
+send_unknown_commands = off
+whois_double_nick = off
+
+[msgbuffer]
+
+[ctcp]
+
+[ignore]
+
+[server_default]
+addresses = ""
+anti_flood_prio_high = 2
+anti_flood_prio_low = 2
+autoconnect = off
+autojoin = ""
+autoreconnect = on
+autoreconnect_delay = 10
+autorejoin = off
+autorejoin_delay = 30
+away_check = 0
+away_check_max_nicks = 25
+capabilities = ""
+charset_message = message
+command = ""
+command_delay = 0
+connection_timeout = 60
+ipv6 = on
+local_hostname = ""
+msg_kick = ""
+msg_part = "WeeChat ${info:version}"
+msg_quit = "WeeChat ${info:version}"
+nicks = "tinfoil-hat,tinfoil-hat1,tinfoil-hat2,tinfoil-hat3,tinfoil-hat4"
+nicks_alternate = on
+notify = ""
+password = ""
+proxy = ""
+realname = ""
+sasl_fail = continue
+sasl_key = ""
+sasl_mechanism = plain
+sasl_password = ""
+sasl_timeout = 15
+sasl_username = ""
+split_msg_max_length = 512
+ssl = off
+ssl_cert = ""
+ssl_dhkey_size = 2048
+ssl_fingerprint = ""
+ssl_password = ""
+ssl_priorities = "NORMAL:-VERS-SSL3.0"
+ssl_verify = on
+usermode = ""
+username = "tinfoil-hat"
+
+[server]
+uugrn.addresses = "irc.uugrn.org/6669"
+uugrn.proxy
+uugrn.ipv6
+uugrn.ssl
+uugrn.ssl_cert
+uugrn.ssl_password
+uugrn.ssl_priorities
+uugrn.ssl_dhkey_size
+uugrn.ssl_fingerprint
+uugrn.ssl_verify
+uugrn.password
+uugrn.capabilities
+uugrn.sasl_mechanism
+uugrn.sasl_username
+uugrn.sasl_password
+uugrn.sasl_key
+uugrn.sasl_timeout
+uugrn.sasl_fail
+uugrn.autoconnect = on
+uugrn.autoreconnect
+uugrn.autoreconnect_delay
+uugrn.nicks
+uugrn.nicks_alternate
+uugrn.username
+uugrn.realname
+uugrn.local_hostname
+uugrn.usermode
+uugrn.command
+uugrn.command_delay
+uugrn.autojoin = "#uugrn"
+uugrn.autorejoin
+uugrn.autorejoin_delay
+uugrn.connection_timeout
+uugrn.anti_flood_prio_high
+uugrn.anti_flood_prio_low
+uugrn.away_check
+uugrn.away_check_max_nicks
+uugrn.msg_kick
+uugrn.msg_part
+uugrn.msg_quit
+uugrn.notify
+uugrn.split_msg_max_length
+uugrn.charset_message
+libera.addresses = "irc.libera.chat/6697"
+libera.proxy
+libera.ipv6
+libera.ssl = on
+libera.ssl_cert
+libera.ssl_password
+libera.ssl_priorities
+libera.ssl_dhkey_size
+libera.ssl_fingerprint
+libera.ssl_verify
+libera.password
+libera.capabilities
+libera.sasl_mechanism
+libera.sasl_username
+libera.sasl_password
+libera.sasl_key
+libera.sasl_timeout
+libera.sasl_fail
+libera.autoconnect = on
+libera.autoreconnect
+libera.autoreconnect_delay
+libera.nicks
+libera.nicks_alternate
+libera.username
+libera.realname
+libera.local_hostname
+libera.usermode
+libera.command
+libera.command_delay
+libera.autojoin = "#debian.de"
+libera.autorejoin
+libera.autorejoin_delay
+libera.connection_timeout
+libera.anti_flood_prio_high
+libera.anti_flood_prio_low
+libera.away_check
+libera.away_check_max_nicks
+libera.msg_kick
+libera.msg_part
+libera.msg_quit
+libera.notify
+libera.split_msg_max_length
+libera.charset_message
+oftc.addresses = "irc.oftc.net/6697"
+oftc.proxy
+oftc.ipv6
+oftc.ssl = on
+oftc.ssl_cert
+oftc.ssl_password
+oftc.ssl_priorities
+oftc.ssl_dhkey_size
+oftc.ssl_fingerprint
+oftc.ssl_verify
+oftc.password
+oftc.capabilities
+oftc.sasl_mechanism
+oftc.sasl_username
+oftc.sasl_password
+oftc.sasl_key
+oftc.sasl_timeout
+oftc.sasl_fail
+oftc.autoconnect = on
+oftc.autoreconnect
+oftc.autoreconnect_delay
+oftc.nicks
+oftc.nicks_alternate
+oftc.username
+oftc.realname
+oftc.local_hostname
+oftc.usermode
+oftc.command
+oftc.command_delay
+oftc.autojoin = "#debian.de"
+oftc.autorejoin
+oftc.autorejoin_delay
+oftc.connection_timeout
+oftc.anti_flood_prio_high
+oftc.anti_flood_prio_low
+oftc.away_check
+oftc.away_check_max_nicks
+oftc.msg_kick
+oftc.msg_part
+oftc.msg_quit
+oftc.notify
+oftc.split_msg_max_length
+oftc.charset_message
+rizon.addresses = "irc.rizon.net/6697"
+rizon.proxy
+rizon.ipv6
+rizon.ssl = on
+rizon.ssl_cert
+rizon.ssl_password
+rizon.ssl_priorities
+rizon.ssl_dhkey_size
+rizon.ssl_fingerprint
+rizon.ssl_verify
+rizon.password
+rizon.capabilities
+rizon.sasl_mechanism
+rizon.sasl_username
+rizon.sasl_password
+rizon.sasl_key
+rizon.sasl_timeout
+rizon.sasl_fail
+rizon.autoconnect = on
+rizon.autoreconnect
+rizon.autoreconnect_delay
+rizon.nicks
+rizon.nicks_alternate
+rizon.username
+rizon.realname
+rizon.local_hostname
+rizon.usermode
+rizon.command
+rizon.command_delay
+rizon.autojoin
+rizon.autorejoin
+rizon.autorejoin_delay
+rizon.connection_timeout
+rizon.anti_flood_prio_high
+rizon.anti_flood_prio_low
+rizon.away_check
+rizon.away_check_max_nicks
+rizon.msg_kick
+rizon.msg_part
+rizon.msg_quit
+rizon.notify
+rizon.split_msg_max_length
+rizon.charset_message
diff --git a/.weechat/weechat.conf b/.weechat/weechat.conf
new file mode 100644
index 0000000..894fcde
--- /dev/null
+++ b/.weechat/weechat.conf
@@ -0,0 +1,960 @@
+#
+# weechat -- weechat.conf
+#
+# WARNING: It is NOT recommended to edit this file by hand,
+# especially if WeeChat is running.
+#
+# Use commands like /set or /fset to change settings in WeeChat.
+#
+# For more info, see: https://weechat.org/doc/quickstart/
+#
+
+[debug]
+
+[startup]
+command_after_plugins = ""
+command_before_plugins = ""
+display_logo = on
+display_version = on
+sys_rlimit = ""
+
+[look]
+align_end_of_lines = message
+align_multiline_words = on
+bar_more_down = "?"
+bar_more_left = "?"
+bar_more_right = "?"
+bar_more_up = "?"
+bare_display_exit_on_input = on
+bare_display_time_format = "%H:%M"
+buffer_auto_renumber = on
+buffer_notify_default = all
+buffer_position = end
+buffer_search_case_sensitive = off
+buffer_search_force_default = off
+buffer_search_regex = off
+buffer_search_where = prefix_message
+buffer_time_format = "%H:%M:%S"
+buffer_time_same = ""
+chat_space_right = off
+color_basic_force_bold = off
+color_inactive_buffer = off
+color_inactive_message = off
+color_inactive_prefix = on
+color_inactive_prefix_buffer = on
+color_inactive_time = off
+color_inactive_window = off
+color_nick_offline = off
+color_pairs_auto_reset = 5
+color_real_white = off
+command_chars = ""
+command_incomplete = off
+confirm_quit = off
+confirm_upgrade = off
+day_change = on
+day_change_message_1date = "-- %a, %d %b %Y --"
+day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"
+eat_newline_glitch = off
+emphasized_attributes = ""
+highlight = "@mitt"
+highlight_disable_regex = ""
+highlight_regex = ""
+highlight_tags = ""
+hotlist_add_conditions = "${away} || ${buffer.num_displayed} == 0"
+hotlist_buffer_separator = ", "
+hotlist_count_max = 2
+hotlist_count_min_msg = 2
+hotlist_names_count = 3
+hotlist_names_length = 0
+hotlist_names_level = 12
+hotlist_names_merged_buffers = off
+hotlist_prefix = "H: "
+hotlist_remove = merged
+hotlist_short_names = on
+hotlist_sort = group_time_asc
+hotlist_suffix = ""
+hotlist_unique_numbers = on
+hotlist_update_on_buffer_switch = on
+input_cursor_scroll = 20
+input_share = none
+input_share_overwrite = off
+input_undo_max = 32
+item_away_message = on
+item_buffer_filter = "?"
+item_buffer_zoom = "!"
+item_mouse_status = "M"
+item_time_format = "%H:%M"
+jump_current_to_previous_buffer = on
+jump_previous_buffer_when_closing = on
+jump_smart_back_to_buffer = on
+key_bind_safe = on
+key_grab_delay = 800
+mouse = off
+mouse_timer_delay = 100
+nick_color_force = ""
+nick_color_hash = djb2
+nick_color_hash_salt = ""
+nick_color_stop_chars = "_|["
+nick_prefix = ""
+nick_suffix = ""
+paste_auto_add_newline = on
+paste_bracketed = off
+paste_bracketed_timer_delay = 10
+paste_max_lines = 1
+prefix_action = "?"
+prefix_align = right
+prefix_align_max = 11
+prefix_align_min = 10
+prefix_align_more = " "
+prefix_align_more_after = on
+prefix_buffer_align = right
+prefix_buffer_align_max = 0
+prefix_buffer_align_more = "+"
+prefix_buffer_align_more_after = on
+prefix_error = "? "
+prefix_join = "?"
+prefix_network = "? "
+prefix_quit = "?"
+prefix_same_nick = ""
+prefix_same_nick_middle = ""
+prefix_suffix = "::"
+quote_nick_prefix = "<"
+quote_nick_suffix = ">"
+quote_time_format = "%H:%M:%S"
+read_marker = line
+read_marker_always_show = off
+read_marker_string = ""
+read_marker_update_on_buffer_switch = on
+save_config_on_exit = on
+save_config_with_fsync = off
+save_layout_on_exit = none
+scroll_amount = 3
+scroll_bottom_after_switch = off
+scroll_page_percent = 100
+search_text_not_found_alert = on
+separator_horizontal = ""
+separator_vertical = ""
+tab_width = 1
+time_format = "%a, %d %b %Y %T"
+window_auto_zoom = off
+window_separator_horizontal = on
+window_separator_vertical = on
+window_title = "WeeChat ${info:version}"
+word_chars_highlight = "!\u00A0,-,_,|,alnum"
+word_chars_input = "!\u00A0,-,_,|,alnum"
+
+[palette]
+100 = "100"
+101 = "101"
+102 = "102"
+103 = "103"
+104 = "104"
+105 = "105"
+106 = "106"
+107 = "107"
+108 = "108"
+109 = "109"
+110 = "110"
+111 = "111"
+112 = "112"
+113 = "113"
+114 = "114"
+115 = "115"
+116 = "116"
+117 = "117"
+118 = "118"
+119 = "119"
+120 = "120"
+121 = "121"
+122 = "122"
+123 = "123"
+124 = "124"
+125 = "125"
+126 = "126"
+127 = "127"
+128 = "128"
+129 = "129"
+130 = "130"
+131 = "131"
+132 = "132"
+133 = "133"
+134 = "134"
+135 = "135"
+136 = "136"
+137 = "137"
+138 = "138"
+139 = "139"
+140 = "140"
+141 = "141"
+142 = "142"
+143 = "143"
+144 = "144"
+145 = "145"
+146 = "146"
+147 = "147"
+148 = "148"
+149 = "149"
+150 = "150"
+151 = "151"
+152 = "152"
+153 = "153"
+154 = "154"
+155 = "155"
+156 = "156"
+157 = "157"
+158 = "158"
+159 = "159"
+160 = "160"
+161 = "161"
+162 = "162"
+163 = "163"
+164 = "164"
+165 = "165"
+166 = "166"
+167 = "167"
+168 = "168"
+169 = "169"
+17 = "17"
+170 = "170"
+171 = "171"
+172 = "172"
+173 = "173"
+174 = "174"
+175 = "175"
+176 = "176"
+177 = "177"
+178 = "178"
+179 = "179"
+18 = "18"
+180 = "180"
+181 = "181"
+182 = "182"
+183 = "183"
+184 = "184"
+185 = "185"
+186 = "186"
+187 = "187"
+188 = "188"
+189 = "189"
+19 = "19"
+190 = "190"
+191 = "191"
+192 = "192"
+193 = "193"
+194 = "194"
+195 = "195"
+196 = "196"
+197 = "197"
+198 = "198"
+199 = "199"
+20 = "20"
+200 = "200"
+201 = "201"
+202 = "202"
+203 = "203"
+204 = "204"
+205 = "205"
+206 = "206"
+207 = "207"
+208 = "208"
+209 = "209"
+21 = "21"
+210 = "210"
+211 = "211"
+212 = "212"
+213 = "213"
+214 = "214"
+215 = "215"
+216 = "216"
+217 = "217"
+218 = "218"
+219 = "219"
+22 = "22"
+220 = "220"
+221 = "221"
+222 = "222"
+223 = "223"
+224 = "224"
+225 = "225"
+226 = "226"
+227 = "227"
+228 = "228"
+229 = "229"
+23 = "23"
+230 = "230"
+231 = "231"
+232 = "232"
+233 = "233"
+234 = "234"
+235 = "235"
+236 = "236"
+237 = "237"
+238 = "238"
+239 = "239"
+24 = "24"
+240 = "240"
+241 = "241"
+242 = "242"
+243 = "243"
+244 = "244"
+245 = "245"
+246 = "246"
+247 = "247"
+248 = "248"
+249 = "249"
+25 = "25"
+250 = "250"
+251 = "251"
+252 = "252"
+253 = "253"
+254 = "254"
+255 = "255"
+256 = "256"
+26 = "26"
+27 = "27"
+28 = "28"
+29 = "29"
+30 = "30"
+31 = "31"
+32 = "32"
+33 = "33"
+34 = "34"
+35 = "35"
+36 = "36"
+37 = "37"
+38 = "38"
+39 = "39"
+40 = "40"
+41 = "41"
+42 = "42"
+43 = "43"
+44 = "44"
+45 = "45"
+46 = "46"
+47 = "47"
+48 = "48"
+49 = "49"
+50 = "50"
+51 = "51"
+52 = "52"
+53 = "53"
+54 = "54"
+55 = "55"
+56 = "56"
+57 = "57"
+58 = "58"
+59 = "59"
+60 = "60"
+61 = "61"
+62 = "62"
+63 = "63"
+64 = "64"
+65 = "65"
+66 = "66"
+67 = "67"
+68 = "68"
+69 = "69"
+70 = "70"
+71 = "71"
+72 = "72"
+73 = "73"
+74 = "74"
+75 = "75"
+76 = "76"
+77 = "77"
+78 = "78"
+79 = "79"
+80 = "80"
+81 = "81"
+82 = "82"
+83 = "83"
+84 = "84"
+85 = "85"
+86 = "86"
+87 = "87"
+88 = "88"
+89 = "89"
+90 = "90"
+91 = "91"
+92 = "92"
+93 = "93"
+94 = "94"
+95 = "95"
+96 = "96"
+97 = "97"
+98 = "98"
+99 = "99"
+
+[color]
+bar_more = magenta
+chat = default
+chat_bg = default
+chat_buffer = white
+chat_channel = lightred
+chat_day_change = cyan
+chat_delimiters = default
+chat_highlight = yellow
+chat_highlight_bg = default
+chat_host = cyan
+chat_inactive_buffer = darkgray
+chat_inactive_window = darkgray
+chat_nick = lightcyan
+chat_nick_colors = "darkgray,red,lightred,green,lightgreen,blue,lightblue,brown,cyan,lightcyan,magenta"
+chat_nick_offline = darkgray
+chat_nick_offline_highlight = default
+chat_nick_offline_highlight_bg = blue
+chat_nick_other = cyan
+chat_nick_prefix = darkgray
+chat_nick_self = red
+chat_nick_suffix = green
+chat_prefix_action = white
+chat_prefix_buffer = red
+chat_prefix_buffer_inactive_buffer = default
+chat_prefix_error = yellow
+chat_prefix_join = darkgray
+chat_prefix_more = lightmagenta
+chat_prefix_network = magenta
+chat_prefix_quit = lightred
+chat_prefix_suffix = lightmagenta
+chat_read_marker = magenta
+chat_read_marker_bg = default
+chat_server = brown
+chat_tags = red
+chat_text_found = yellow
+chat_text_found_bg = lightmagenta
+chat_time = default
+chat_time_delimiters = brown
+chat_value = cyan
+chat_value_null = blue
+emphasized = yellow
+emphasized_bg = magenta
+input_actions = lightgreen
+input_text_not_found = red
+item_away = yellow
+nicklist_away = cyan
+nicklist_group = green
+separator = brown
+status_count_highlight = magenta
+status_count_msg = brown
+status_count_other = default
+status_count_private = green
+status_data_highlight = lightmagenta
+status_data_msg = yellow
+status_data_other = default
+status_data_private = lightgreen
+status_filter = green
+status_more = yellow
+status_mouse = green
+status_name = white
+status_name_ssl = lightgreen
+status_nicklist_count = default
+status_number = yellow
+status_time = default
+
+[completion]
+base_word_until_cursor = on
+command_inline = on
+default_template = "%(nicks)|%(irc_channels)"
+nick_add_space = on
+nick_case_sensitive = off
+nick_completer = ": "
+nick_first_only = off
+nick_ignore_chars = "[]`_-^"
+partial_completion_alert = on
+partial_completion_command = off
+partial_completion_command_arg = off
+partial_completion_count = on
+partial_completion_other = off
+partial_completion_templates = "config_options"
+
+[history]
+display_default = 5
+max_buffer_lines_minutes = 0
+max_buffer_lines_number = 4096
+max_commands = 100
+max_visited_buffers = 50
+
+[proxy]
+
+[network]
+connection_timeout = 60
+gnutls_ca_system = on
+gnutls_ca_user = ""
+gnutls_handshake_timeout = 30
+proxy_curl = ""
+
+[plugin]
+autoload = "*"
+extension = ".so,.dll"
+path = "%h/plugins"
+save_config_on_unload = on
+
+[signal]
+sighup = "${if:${info:weechat_headless}?/reload:/quit -yes}"
+sigquit = "/quit -yes"
+sigterm = "/quit -yes"
+sigusr1 = ""
+sigusr2 = ""
+
+[bar]
+buffers.color_bg = default
+buffers.color_bg_inactive = default
+buffers.color_delim = default
+buffers.color_fg = default
+buffers.conditions = ""
+buffers.filling_left_right = vertical
+buffers.filling_top_bottom = horizontal
+buffers.hidden = off
+buffers.items = "buffers"
+buffers.position = top
+buffers.priority = 0
+buffers.separator = on
+buffers.size = 1
+buffers.size_max = 0
+buffers.type = root
+buflist.color_bg = default
+buflist.color_bg_inactive = default
+buflist.color_delim = default
+buflist.color_fg = default
+buflist.conditions = ""
+buflist.filling_left_right = vertical
+buflist.filling_top_bottom = columns_vertical
+buflist.hidden = off
+buflist.items = "buflist"
+buflist.position = left
+buflist.priority = 0
+buflist.separator = on
+buflist.size = 0
+buflist.size_max = 0
+buflist.type = root
+fset.color_bg = default
+fset.color_bg_inactive = default
+fset.color_delim = cyan
+fset.color_fg = default
+fset.conditions = "${buffer.full_name} == fset.fset"
+fset.filling_left_right = vertical
+fset.filling_top_bottom = horizontal
+fset.hidden = off
+fset.items = "fset"
+fset.position = top
+fset.priority = 0
+fset.separator = on
+fset.size = 3
+fset.size_max = 3
+fset.type = window
+input.color_bg = default
+input.color_bg_inactive = default
+input.color_delim = *yellow
+input.color_fg = default
+input.conditions = "active"
+input.filling_left_right = vertical
+input.filling_top_bottom = horizontal
+input.hidden = off
+input.items = " input_prompt,>>,input_text"
+input.position = bottom
+input.priority = 1000
+input.separator = on
+input.size = 1
+input.size_max = 0
+input.type = window
+isetbar.color_bg = default
+isetbar.color_bg_inactive = default
+isetbar.color_delim = cyan
+isetbar.color_fg = default
+isetbar.conditions = ""
+isetbar.filling_left_right = vertical
+isetbar.filling_top_bottom = horizontal
+isetbar.hidden = on
+isetbar.items = "isetbar_help"
+isetbar.position = top
+isetbar.priority = 0
+isetbar.separator = on
+isetbar.size = 3
+isetbar.size_max = 3
+isetbar.type = window
+nicklist.color_bg = default
+nicklist.color_bg_inactive = default
+nicklist.color_delim = cyan
+nicklist.color_fg = cyan
+nicklist.conditions = "nicklist"
+nicklist.filling_left_right = vertical
+nicklist.filling_top_bottom = columns_vertical
+nicklist.hidden = off
+nicklist.items = "buffer_nicklist"
+nicklist.position = right
+nicklist.priority = 200
+nicklist.separator = off
+nicklist.size = 0
+nicklist.size_max = 0
+nicklist.type = window
+status.color_bg = default
+status.color_bg_inactive = default
+status.color_delim = blue
+status.color_fg = magenta
+status.conditions = ""
+status.filling_left_right = vertical
+status.filling_top_bottom = horizontal
+status.hidden = off
+status.items = "[buffer_plugin],buffer_number+:+buffer_name,[lag],[hotlist],completion,scroll"
+status.position = bottom
+status.priority = 500
+status.separator = on
+status.size = 1
+status.size_max = 0
+status.type = root
+title.color_bg = default
+title.color_bg_inactive = default
+title.color_delim = white
+title.color_fg = yellow
+title.conditions = ""
+title.filling_left_right = vertical
+title.filling_top_bottom = horizontal
+title.hidden = off
+title.items = "buffer_title"
+title.position = top
+title.priority = 500
+title.separator = on
+title.size = 1
+title.size_max = 0
+title.type = window
+
+[custom_bar_item]
+
+[layout]
+
+[notify]
+
+[filter]
+
+[key]
+ctrl-? = "/input delete_previous_char"
+ctrl-A = "/input move_beginning_of_line"
+ctrl-B = "/input move_previous_char"
+ctrl-C_ = "/input insert \x1F"
+ctrl-Cb = "/input insert \x02"
+ctrl-Cc = "/input insert \x03"
+ctrl-Ci = "/input insert \x1D"
+ctrl-Co = "/input insert \x0F"
+ctrl-Cv = "/input insert \x16"
+ctrl-D = "/input delete_next_char"
+ctrl-E = "/input move_end_of_line"
+ctrl-F = "/input move_next_char"
+ctrl-H = "/input delete_previous_char"
+ctrl-I = "/input complete_next"
+ctrl-J = "/input return"
+ctrl-K = "/input delete_end_of_line"
+ctrl-L = "/window refresh"
+ctrl-M = "/input return"
+ctrl-N = "/buffer +1"
+ctrl-P = "/buffer -1"
+ctrl-R = "/input search_text_here"
+ctrl-Sctrl-U = "/input set_unread"
+ctrl-T = "/input transpose_chars"
+ctrl-U = "/input delete_beginning_of_line"
+ctrl-W = "/input delete_previous_word"
+ctrl-X = "/input switch_active_buffer"
+ctrl-Y = "/input clipboard_paste"
+meta-ctrl-M = "/input insert \n"
+meta-meta-OP = "/bar scroll buflist * b"
+meta-meta-OQ = "/bar scroll buflist * e"
+meta-meta2-11~ = "/bar scroll buflist * b"
+meta-meta2-12~ = "/bar scroll buflist * e"
+meta-meta2-1~ = "/window scroll_top"
+meta-meta2-23~ = "/bar scroll nicklist * b"
+meta-meta2-24~ = "/bar scroll nicklist * e"
+meta-meta2-4~ = "/window scroll_bottom"
+meta-meta2-5~ = "/window scroll_up"
+meta-meta2-6~ = "/window scroll_down"
+meta-meta2-7~ = "/window scroll_top"
+meta-meta2-8~ = "/window scroll_bottom"
+meta-meta2-A = "/buffer -1"
+meta-meta2-B = "/buffer +1"
+meta-meta2-C = "/buffer +1"
+meta-meta2-D = "/buffer -1"
+meta-- = "/filter toggle @"
+meta-/ = "/input jump_last_buffer_displayed"
+meta-0 = "/buffer *10"
+meta-1 = "/buffer *1"
+meta-2 = "/buffer *2"
+meta-3 = "/buffer *3"
+meta-4 = "/buffer *4"
+meta-5 = "/buffer *5"
+meta-6 = "/buffer *6"
+meta-7 = "/buffer *7"
+meta-8 = "/buffer *8"
+meta-9 = "/buffer *9"
+meta-< = "/input jump_previously_visited_buffer"
+meta-= = "/filter toggle"
+meta-> = "/input jump_next_visited_buffer"
+meta-B = "/buflist toggle"
+meta-N = "/bar toggle nicklist"
+meta-OA = "/input history_global_previous"
+meta-OB = "/input history_global_next"
+meta-OC = "/input move_next_word"
+meta-OD = "/input move_previous_word"
+meta-OF = "/input move_end_of_line"
+meta-OH = "/input move_beginning_of_line"
+meta-OP = "/bar scroll buflist * -100%"
+meta-OQ = "/bar scroll buflist * +100%"
+meta-Oa = "/input history_global_previous"
+meta-Ob = "/input history_global_next"
+meta-Oc = "/input move_next_word"
+meta-Od = "/input move_previous_word"
+meta2-11^ = "/bar scroll buflist * -100%"
+meta2-11~ = "/bar scroll buflist * -100%"
+meta2-12^ = "/bar scroll buflist * +100%"
+meta2-12~ = "/bar scroll buflist * +100%"
+meta2-15~ = "/buffer -1"
+meta2-17~ = "/buffer +1"
+meta2-18~ = "/window -1"
+meta2-19~ = "/window +1"
+meta2-1;3A = "/buffer -1"
+meta2-1;3B = "/buffer +1"
+meta2-1;3C = "/buffer +1"
+meta2-1;3D = "/buffer -1"
+meta2-1;3F = "/window scroll_bottom"
+meta2-1;3H = "/window scroll_top"
+meta2-1;3P = "/bar scroll buflist * b"
+meta2-1;3Q = "/bar scroll buflist * e"
+meta2-1;5A = "/input history_global_previous"
+meta2-1;5B = "/input history_global_next"
+meta2-1;5C = "/input move_next_word"
+meta2-1;5D = "/input move_previous_word"
+meta2-1;5P = "/bar scroll buflist * -100%"
+meta2-1;5Q = "/bar scroll buflist * +100%"
+meta2-1~ = "/input move_beginning_of_line"
+meta2-200~ = "/input paste_start"
+meta2-201~ = "/input paste_stop"
+meta2-20~ = "/bar scroll title * -30%"
+meta2-21~ = "/bar scroll title * +30%"
+meta2-23;3~ = "/bar scroll nicklist * b"
+meta2-23;5~ = "/bar scroll nicklist * -100%"
+meta2-23^ = "/bar scroll nicklist * -100%"
+meta2-23~ = "/bar scroll nicklist * -100%"
+meta2-24;3~ = "/bar scroll nicklist * e"
+meta2-24;5~ = "/bar scroll nicklist * +100%"
+meta2-24^ = "/bar scroll nicklist * +100%"
+meta2-24~ = "/bar scroll nicklist * +100%"
+meta2-3~ = "/input delete_next_char"
+meta2-4~ = "/input move_end_of_line"
+meta2-5;3~ = "/window scroll_up"
+meta2-5~ = "/window page_up"
+meta2-6;3~ = "/window scroll_down"
+meta2-6~ = "/window page_down"
+meta2-7~ = "/input move_beginning_of_line"
+meta2-8~ = "/input move_end_of_line"
+meta2-A = "/input history_previous"
+meta2-B = "/input history_next"
+meta2-C = "/input move_next_char"
+meta2-D = "/input move_previous_char"
+meta2-F = "/input move_end_of_line"
+meta2-G = "/window page_down"
+meta2-H = "/input move_beginning_of_line"
+meta2-I = "/window page_up"
+meta2-Z = "/input complete_previous"
+meta2-[E = "/buffer -1"
+meta-_ = "/input redo"
+meta-a = "/input jump_smart"
+meta-b = "/input move_previous_word"
+meta-d = "/input delete_next_word"
+meta-f = "/input move_next_word"
+meta-h = "/input hotlist_clear"
+meta-jmeta-f = "/buffer -"
+meta-jmeta-l = "/buffer +"
+meta-jmeta-r = "/server raw"
+meta-jmeta-s = "/server jump"
+meta-j01 = "/buffer *1"
+meta-j02 = "/buffer *2"
+meta-j03 = "/buffer *3"
+meta-j04 = "/buffer *4"
+meta-j05 = "/buffer *5"
+meta-j06 = "/buffer *6"
+meta-j07 = "/buffer *7"
+meta-j08 = "/buffer *8"
+meta-j09 = "/buffer *9"
+meta-j10 = "/buffer *10"
+meta-j11 = "/buffer *11"
+meta-j12 = "/buffer *12"
+meta-j13 = "/buffer *13"
+meta-j14 = "/buffer *14"
+meta-j15 = "/buffer *15"
+meta-j16 = "/buffer *16"
+meta-j17 = "/buffer *17"
+meta-j18 = "/buffer *18"
+meta-j19 = "/buffer *19"
+meta-j20 = "/buffer *20"
+meta-j21 = "/buffer *21"
+meta-j22 = "/buffer *22"
+meta-j23 = "/buffer *23"
+meta-j24 = "/buffer *24"
+meta-j25 = "/buffer *25"
+meta-j26 = "/buffer *26"
+meta-j27 = "/buffer *27"
+meta-j28 = "/buffer *28"
+meta-j29 = "/buffer *29"
+meta-j30 = "/buffer *30"
+meta-j31 = "/buffer *31"
+meta-j32 = "/buffer *32"
+meta-j33 = "/buffer *33"
+meta-j34 = "/buffer *34"
+meta-j35 = "/buffer *35"
+meta-j36 = "/buffer *36"
+meta-j37 = "/buffer *37"
+meta-j38 = "/buffer *38"
+meta-j39 = "/buffer *39"
+meta-j40 = "/buffer *40"
+meta-j41 = "/buffer *41"
+meta-j42 = "/buffer *42"
+meta-j43 = "/buffer *43"
+meta-j44 = "/buffer *44"
+meta-j45 = "/buffer *45"
+meta-j46 = "/buffer *46"
+meta-j47 = "/buffer *47"
+meta-j48 = "/buffer *48"
+meta-j49 = "/buffer *49"
+meta-j50 = "/buffer *50"
+meta-j51 = "/buffer *51"
+meta-j52 = "/buffer *52"
+meta-j53 = "/buffer *53"
+meta-j54 = "/buffer *54"
+meta-j55 = "/buffer *55"
+meta-j56 = "/buffer *56"
+meta-j57 = "/buffer *57"
+meta-j58 = "/buffer *58"
+meta-j59 = "/buffer *59"
+meta-j60 = "/buffer *60"
+meta-j61 = "/buffer *61"
+meta-j62 = "/buffer *62"
+meta-j63 = "/buffer *63"
+meta-j64 = "/buffer *64"
+meta-j65 = "/buffer *65"
+meta-j66 = "/buffer *66"
+meta-j67 = "/buffer *67"
+meta-j68 = "/buffer *68"
+meta-j69 = "/buffer *69"
+meta-j70 = "/buffer *70"
+meta-j71 = "/buffer *71"
+meta-j72 = "/buffer *72"
+meta-j73 = "/buffer *73"
+meta-j74 = "/buffer *74"
+meta-j75 = "/buffer *75"
+meta-j76 = "/buffer *76"
+meta-j77 = "/buffer *77"
+meta-j78 = "/buffer *78"
+meta-j79 = "/buffer *79"
+meta-j80 = "/buffer *80"
+meta-j81 = "/buffer *81"
+meta-j82 = "/buffer *82"
+meta-j83 = "/buffer *83"
+meta-j84 = "/buffer *84"
+meta-j85 = "/buffer *85"
+meta-j86 = "/buffer *86"
+meta-j87 = "/buffer *87"
+meta-j88 = "/buffer *88"
+meta-j89 = "/buffer *89"
+meta-j90 = "/buffer *90"
+meta-j91 = "/buffer *91"
+meta-j92 = "/buffer *92"
+meta-j93 = "/buffer *93"
+meta-j94 = "/buffer *94"
+meta-j95 = "/buffer *95"
+meta-j96 = "/buffer *96"
+meta-j97 = "/buffer *97"
+meta-j98 = "/buffer *98"
+meta-j99 = "/buffer *99"
+meta-k = "/input grab_key_command"
+meta-l = "/window bare"
+meta-m = "/mute mouse toggle"
+meta-n = "/window scroll_next_highlight"
+meta-p = "/window scroll_previous_highlight"
+meta-r = "/input delete_line"
+meta-s = "/mute spell toggle"
+meta-u = "/window scroll_unread"
+meta-wmeta-meta2-A = "/window up"
+meta-wmeta-meta2-B = "/window down"
+meta-wmeta-meta2-C = "/window right"
+meta-wmeta-meta2-D = "/window left"
+meta-wmeta2-1;3A = "/window up"
+meta-wmeta2-1;3B = "/window down"
+meta-wmeta2-1;3C = "/window right"
+meta-wmeta2-1;3D = "/window left"
+meta-wmeta-b = "/window balance"
+meta-wmeta-s = "/window swap"
+meta-x = "/input zoom_merged_buffer"
+meta-z = "/window zoom"
+ctrl-_ = "/input undo"
+
+[key_search]
+ctrl-I = "/input search_switch_where"
+ctrl-J = "/input search_stop_here"
+ctrl-M = "/input search_stop_here"
+ctrl-Q = "/input search_stop"
+ctrl-R = "/input search_switch_regex"
+meta2-A = "/input search_previous"
+meta2-B = "/input search_next"
+meta-c = "/input search_switch_case"
+
+[key_cursor]
+ctrl-J = "/cursor stop"
+ctrl-M = "/cursor stop"
+meta-meta2-A = "/cursor move area_up"
+meta-meta2-B = "/cursor move area_down"
+meta-meta2-C = "/cursor move area_right"
+meta-meta2-D = "/cursor move area_left"
+meta2-1;3A = "/cursor move area_up"
+meta2-1;3B = "/cursor move area_down"
+meta2-1;3C = "/cursor move area_right"
+meta2-1;3D = "/cursor move area_left"
+meta2-A = "/cursor move up"
+meta2-B = "/cursor move down"
+meta2-C = "/cursor move right"
+meta2-D = "/cursor move left"
+@chat(python.matrix.*):r = "hsignal:matrix_cursor_reply"
+@item(buffer_nicklist):K = "/window ${_window_number};/kickban ${nick}"
+@item(buffer_nicklist):b = "/window ${_window_number};/ban ${nick}"
+@item(buffer_nicklist):k = "/window ${_window_number};/kick ${nick}"
+@item(buffer_nicklist):q = "/window ${_window_number};/query ${nick};/cursor stop"
+@item(buffer_nicklist):w = "/window ${_window_number};/whois ${nick}"
+@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop"
+@chat:m = "hsignal:chat_quote_message;/cursor stop"
+@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop"
+
+[key_mouse]
+@bar(buflist):ctrl-wheeldown = "hsignal:buflist_mouse"
+@bar(buflist):ctrl-wheelup = "hsignal:buflist_mouse"
+@bar(input):button2 = "/input grab_mouse_area"
+@bar(nicklist):button1-gesture-down = "/bar scroll nicklist ${_window_number} +100%"
+@bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e"
+@bar(nicklist):button1-gesture-up = "/bar scroll nicklist ${_window_number} -100%"
+@bar(nicklist):button1-gesture-up-long = "/bar scroll nicklist ${_window_number} b"
+@chat(fset.fset):button1 = "/window ${_window_number};/fset -go ${_chat_line_y}"
+@chat(fset.fset):button2* = "hsignal:fset_mouse"
+@chat(fset.fset):wheeldown = "/fset -down 5"
+@chat(fset.fset):wheelup = "/fset -up 5"
+@chat(script.scripts):button1 = "/window ${_window_number};/script go ${_chat_line_y}"
+@chat(script.scripts):button2 = "/window ${_window_number};/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}"
+@chat(script.scripts):wheeldown = "/script down 5"
+@chat(script.scripts):wheelup = "/script up 5"
+@item(buffer_nicklist):button1 = "/window ${_window_number};/query ${nick}"
+@item(buffer_nicklist):button1-gesture-left = "/window ${_window_number};/kick ${nick}"
+@item(buffer_nicklist):button1-gesture-left-long = "/window ${_window_number};/kickban ${nick}"
+@item(buffer_nicklist):button2 = "/window ${_window_number};/whois ${nick}"
+@item(buffer_nicklist):button2-gesture-left = "/window ${_window_number};/ban ${nick}"
+@item(buflist):button1* = "hsignal:buflist_mouse"
+@item(buflist):button2* = "hsignal:buflist_mouse"
+@item(buflist2):button1* = "hsignal:buflist_mouse"
+@item(buflist2):button2* = "hsignal:buflist_mouse"
+@item(buflist3):button1* = "hsignal:buflist_mouse"
+@item(buflist3):button2* = "hsignal:buflist_mouse"
+@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%"
+@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%"
+@chat:button1 = "/window ${_window_number}"
+@chat:button1-gesture-left = "/window ${_window_number};/buffer -1"
+@chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1"
+@chat:button1-gesture-right = "/window ${_window_number};/buffer +1"
+@chat:button1-gesture-right-long = "/window ${_window_number};/input jump_last_buffer"
+@chat:ctrl-wheeldown = "/window scroll_horiz -window ${_window_number} +10%"
+@chat:ctrl-wheelup = "/window scroll_horiz -window ${_window_number} -10%"
+@chat:wheeldown = "/window scroll_down -window ${_window_number}"
+@chat:wheelup = "/window scroll_up -window ${_window_number}"
+@*:button3 = "/cursor go ${_x},${_y}"
diff --git a/.xsession b/.xsession
new file mode 100644
index 0000000..40b3c3b
--- /dev/null
+++ b/.xsession
@@ -0,0 +1,12 @@
+setxkbmap de
+setx b off
+feh --bg-scale ~/Bilder/wall.jpg
+nm-applet &
+picom &
+xrdb -load ~/.Xresources &
+pnmixer &
+feh --bg-scale Bilder/wall.jpg &
+seafile-applet &
+
+exec /usr/bin/awesome
+