diff --git a/.Xresources b/.Xresources
deleted file mode 100644
index e999f00..0000000
--- a/.Xresources
+++ /dev/null
@@ -1,184 +0,0 @@
-!! Test
-!! * xrdb -merge < ~/.Xresources
-!! * xrdb -load ~/.Xresources & xrdb -query
-!!
-!! References
-!! * https://linux.die.net/man/1/urxvt
-!! * https://www.askapache.com/linux/rxvt-xresources
-!! * https://addy-dclxvi.github.io/post/configuring-urxvt/
-!! * https://github.com/hillyu/hill/blob/master/.Xresources
-!! * https://unixporn.reddit.com/comments/6b5ch8/how_to_achieve_macos_font_rendering_in_linux_in/
-!! * https://github.com/hillyu/hill/blob/master/.Xresources
-!! * http://www.netswarm.net/misc/urxvt-xtermcompat.txt
-!! * https://jscape.kayako.com/knowledgebase/article/View/5/7/sending-ctrla-ctrlh-f1-f12-and-other-function-keys-to-telnet-server
-
-!! OSX Font Rendering
-Xft.dpi: 96
-Xft.antialias: true
-Xft.hinting: false
-Xft.rgba: rgb
-Xft.autohint: false
-Xft.hintstyle: hintslight
-Xft.lcdfilter: lcddefault
-
-!! General
-URxvt*termName: rxvt-unicode
-URxvt*geometry: 125x45
-URxvt*loginShell: true
-URxvt.iso14755: false
-URxvt.iso14755_52: false
-URxvt*depth: 32
-URxvt*internalBorder: 20
-URxvt*borderless: true
-URxvt*visualBell: false
-URxvt*fading: 15
-URxvt*saveLines: 4096
-URxvt*underlineColor: #FFD740
-
-!! Scrolling
-URxvt*scrollBar: false
-URxvt.scrollBar_right: false
-URxvt*scrollTtyKeypress: true
-URxvt*scrollTtyOutput: false
-URxvt*scrollWithBuffer: true
-URxvt*skipScroll: true
-
-!! Cursor
-URxvt.cursorBlink: true
-URxvt.cursorUnderline: true
-
-!! Fonts
-URxvt*font: xft:Hack:size=9:antialias=true:hinting=false
-xterm*faceName: xft:Hack:size=9:antialias=true:hinting=false
-URxvt*boldFont: xft:Hack:size=9:antialias=true:hinting=false:weight=bold
-URxvt*italicFont: xft:Hack:size=9:antialias=true:hinting=false:slant=italic
-URxvt*letterSpace: 0
-URxvt*lineSpace: 0
-
-!! Color Schema: iTerm2 Material Design
-!! https://github.com/MartinSeeler/iterm2-material-design/blob/master/colors.md
-!! special
-! *.foreground: #ECEFF1
-! *.background: #263238
-! *.cursorColor: #B3B8C3
-! *.underlineColor: #FFD740
-!! black
-! *color0: #546E7A
-! *color8: #B0BEC5
-!! red
-! *color1: #FF5252
-! *color9: #FF8A80
-!! green
-! *color2: #5CF19E
-! *color10: #B9F6CA
-!! yellow
-! *color3: #FFD740
-! *color11: #FFE57F
-!! blue
-! *color4: #40C4FF
-! *color12: #80D8FF
-!! magenta
-! *color5: #FF4081
-! *color13: #FF80AB
-!! cyan
-! *color6: #64FCDA
-! *color14: #A7FDEB
-!! white
-! *color7: #A7FDEB
-! *color15: #FFFFFF
-!! Bold, Italic, Underline
-! *.colorBD: #ffffff
-! *.colorIT:
-! *.colorUL: #FFD740
-
-!! Color Schema: Material Palenight
-!! https://terminal.sexy
-!! https://github.com/JonathanSpeek/palenight-iterm2
-! special
-*.foreground: #959dcb
-*.background: #292d3e
-*.cursorColor: #959dcb
-! black
-*.color0: #292d3e
-*.color8: #434758
-! red
-*.color1: #f07178
-*.color9: #ff8b92
-! green
-*.color2: #c3e88d
-*.color10: #ddffa7
-! yellow
-*.color3: #ffcb6b
-*.color11: #ffe585
-! blue
-*.color4: #82aaff
-*.color12: #9cc4ff
-! magenta
-*.color5: #c792ea
-*.color13: #e1acff
-! cyan
-*.color6: #89ddff
-*.color14: #a3f7ff
-! white
-*.color7: #d0d0d0
-*.color15: #ffffff
-
-!! Swap CTRL and SUPER for OSX Experience
-URxvt*keysym.Mod4-question: \177
-URxvt*keysym.Mod4-underscore: \037
-URxvt*keysym.Mod4-asciicircum: \036
-URxvt*keysym.Mod4-6: \036
-URxvt*keysym.Mod4-bracketright: \035
-URxvt*keysym.Mod4-backslash: \034
-URxvt*keysym.Mod4-bracketleft: \033
-URxvt*keysym.Mod4-z: \032
-URxvt*keysym.Mod4-y: \031
-URxvt*keysym.Mod4-x: \030
-URxvt*keysym.Mod1-W: \027
-URxvt*keysym.Mod4-w: \027
-URxvt*keysym.Mod4-v: \026
-URxvt*keysym.Mod4-u: \025
-URxvt*keysym.Mod4-t: \024
-URxvt*keysym.Mod4-s: \023
-URxvt*keysym.Mod4-r: \022
-URxvt*keysym.Mod4-q: \021
-URxvt*keysym.Mod4-p: \020
-URxvt*keysym.Mod4-o: \017
-URxvt*keysym.Mod4-n: \016
-URxvt*keysym.Mod4-m: \015
-URxvt*keysym.Mod4-l: \014
-URxvt*keysym.Mod4-k: \013
-URxvt*keysym.Mod4-j: \012
-URxvt*keysym.Mod4-i: \011
-URxvt*keysym.Mod4-h: \010
-URxvt*keysym.Mod4-g: \007
-URxvt*keysym.Mod4-f: \006
-URxvt*keysym.Mod4-e: \005
-URxvt*keysym.Mod4-d: \004
-URxvt*keysym.Mod4-c: \003
-URxvt*keysym.Mod4-b: \002
-URxvt*keysym.Mod4-a: \001
-URxvt*keysym.Mod4-at: \000
-! Ctrl+left => backward word
-! Ctrl+right => forward word
-! https://superuser.com/a/1203715/334598
-URxvt.keysym.Control-Up: \033[1;5A
-URxvt.keysym.Control-Down: \033[1;5B
-URxvt.keysym.Control-Left: \033[1;5D
-URxvt.keysym.Control-Right: \033[1;5C
-
-!! Extensions
-URxvt.perl-ext-common: default,matcher,clipboard,keyboard-select,url-select,-searchable-scrollback
-URxvt.matcher.button: 2
-URxvt.clipboard.autocopy: true
-URxvt.copyCommand: xclip -i -selection clipboard
-URxvt.pasteCommand: xclip -o -selection clipboard
-URxvt.keysym.C-c: perl:clipboard:copy
-URxvt.keysym.C-v: perl:clipboard:paste
-URxvt.keysym.C-M-v: perl:clipboard:paste_escaped
-URxvt.keysym.C-f: perl:keyboard-select:search
-URxvt.keysym.Mod5-Escape: perl:keyboard-select:activate
-URxvt.url-launcher: xdg-open
-URxvt.url-select.launcher: xdg-open
-URxvt.url-select.underline: true
-URxvt.underlineURLs: true
diff --git a/.config/Thunar/actions/secure-delete.sh b/.config/Thunar/actions/secure-delete.sh
new file mode 100755
index 0000000..0c663c0
--- /dev/null
+++ b/.config/Thunar/actions/secure-delete.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+if zenity --question --default-cancel --title="$1" --icon-name="edit-delete-symbolic" --window-icon="/usr/share/icons/Faba/16x16/actions/edit-delete.svg"; then
+ (for path in "$@"
+ do
+ bleachbit --shred "$path";
+ done) | zenity --progress --pulsate --auto-close
+else
+ exit 0;
+fi
diff --git a/.config/Thunar/uca.xml b/.config/Thunar/uca.xml
new file mode 100644
index 0000000..6feca1d
--- /dev/null
+++ b/.config/Thunar/uca.xml
@@ -0,0 +1,45 @@
+
+
+
+ utilities-terminal
+ Open Terminal Here
+ 1542136124266467-1
+ exec alacritty --working-directory %f
+ Open terminal in current folder path
+ *
+
+
+
+
+ bleachbit
+ Secure delete
+ 1542136649892626-1
+ /home/scwerner/.config/Thunar/actions/secure-delete.sh %F
+ Securely shred files and folders using Bleachbit.
+ *
+
+
+
+
+
+
+
+
+ object-rotate-right
+ Rotate image CW
+ 1649531461242999-1
+ /home/scwerner/.config/Thunar/actions/image_rotate_cw.sh %F
+
+ *
+
+
+
+ object-rotate-left
+ Rotate image CCW
+ 1649531547138916-2
+ /home/scwerner/.config/Thunar/actions/image_rotate_ccw.sh %F
+
+ *
+
+
+
diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml
new file mode 100644
index 0000000..95fd4a1
--- /dev/null
+++ b/.config/alacritty/alacritty.yml
@@ -0,0 +1,992 @@
+# Configuration for Alacritty, the GPU enhanced terminal emulator.
+
+# Import additional configuration files
+#
+# Imports are loaded in order, skipping all missing files, with the importing
+# file being loaded last. If a field is already present in a previous import, it
+# will be replaced.
+#
+# All imports must either be absolute paths starting with `/`, or paths relative
+# to the user's home directory starting with `~/`.
+#import:
+# - /path/to/alacritty.yml
+
+# Any items in the `env` entry below will be added as
+# environment variables. Some entries may override variables
+# set by alacritty itself.
+# env:
+ # TERM variable
+ #
+ # This value is used to set the `$TERM` environment variable for
+ # each instance of Alacritty. If it is not present, alacritty will
+ # check the local terminfo database and use `alacritty` if it is
+ # available, otherwise `xterm-256color` is used.
+ #TERM: alacritty
+ # WINIT_X11_SCALE_FACTOR: "2.0"
+
+window:
+ # Window dimensions (changes require restart)
+ #
+ # Number of lines/columns (not pixels) in the terminal. The number of columns
+ # must be at least `2`, while using a value of `0` for columns and lines will
+ # fall back to the window manager's recommended size.
+ #dimensions:
+ # columns: 0
+ # lines: 0
+
+ # Window position (changes require restart)
+ #
+ # Specified in number of pixels.
+ # If the position is not set, the window manager will handle the placement.
+ #position:
+ # x: 0
+ # y: 0
+
+ # Window padding (changes require restart)
+ #
+ # Blank space added around the window in pixels. This padding is scaled
+ # by DPI and the specified value is always added at both opposing sides.
+ padding:
+ x: 15
+ y: 5
+
+ # Spread additional padding evenly around the terminal content.
+ #dynamic_padding: false
+
+ # Window decorations
+ #
+ # Values for `decorations`:
+ # - full: Borders and title bar
+ # - none: Neither borders nor title bar
+ #
+ # Values for `decorations` (macOS only):
+ # - transparent: Title bar, transparent background and title bar buttons
+ # - buttonless: Title bar, transparent background and no title bar buttons
+ #decorations: full
+
+ # Startup Mode (changes require restart)
+ #
+ # Values for `startup_mode`:
+ # - Windowed
+ # - Maximized
+ # - Fullscreen
+ #
+ # Values for `startup_mode` (macOS only):
+ # - SimpleFullscreen
+ #startup_mode: Windowed
+
+ # Window title
+ #title: Alacritty
+
+ # Allow terminal applications to change Alacritty's window title.
+ dynamic_title: true
+
+ # Window class (Linux/BSD only):
+ #class:
+ # Application instance name
+ #instance: Alacritty
+ # General application class
+ #general: Alacritty
+
+ # GTK theme variant (Linux/BSD only)
+ #
+ # Override the variant of the GTK theme. Commonly supported values are `dark`
+ # and `light`. Set this to `None` to use the default theme variant.
+ #gtk_theme_variant: None
+
+#scrolling:
+ # Maximum number of lines in the scrollback buffer.
+ # Specifying '0' will disable scrolling.
+ history: 10000
+
+ # Scrolling distance multiplier.
+ #multiplier: 3
+
+# Font configuration
+font:
+ # Normal (roman) font face
+ #normal:
+ # Font family
+ #
+ # Default:
+ # - (macOS) Menlo
+ # - (Linux/BSD) monospace
+ # - (Windows) Consolas
+ #family: monospace
+
+ # The `style` can be specified to pick a specific face.
+ #style: Regular
+
+ # Bold font face
+ #bold:
+ # Font family
+ #
+ # If the bold family is not specified, it will fall back to the
+ # value specified for the normal font.
+ #family: monospace
+
+ # The `style` can be specified to pick a specific face.
+ #style: Bold
+
+ # Italic font face
+ #italic:
+ # Font family
+ #
+ # If the italic family is not specified, it will fall back to the
+ # value specified for the normal font.
+ #family: monospace
+
+ # The `style` can be specified to pick a specific face.
+ #style: Italic
+
+ # Bold italic font face
+ #bold_italic:
+ # Font family
+ #
+ # If the bold italic family is not specified, it will fall back to the
+ # value specified for the normal font.
+ #family: monospace
+
+ # The `style` can be specified to pick a specific face.
+ #style: Bold Italic
+
+ # Point size
+ size: 14.0
+
+ # Offset is the extra space around each character. `offset.y` can be thought
+ # of as modifying the line spacing, and `offset.x` as modifying the letter
+ # spacing.
+ #offset:
+ # x: 0
+ # y: 0
+
+ # Glyph offset determines the locations of the glyphs within their cells with
+ # the default being at the bottom. Increasing `x` moves the glyph to the
+ # right, increasing `y` moves the glyph upward.
+ #glyph_offset:
+ # x: 0
+ # y: 0
+
+ # Thin stroke font rendering (macOS only)
+ #
+ # Thin strokes are suitable for retina displays, but for non-retina screens
+ # it is recommended to set `use_thin_strokes` to `false`.
+ #use_thin_strokes: true
+
+# If `true`, bold text is drawn using the bright color variants.
+#draw_bold_text_with_bright_colors: false
+
+# # Colors (Dracula PRO - Van Helsing)
+# colors:
+# # Default colors
+# primary:
+# background: '0x0b0d0f'
+# foreground: '0xf8f8f2'
+
+# # Bright and dim foreground colors
+# #
+# # The dimmed foreground color is calculated automatically if it is not present.
+# # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
+# # is `false`, the normal foreground color will be used.
+# #dim_foreground: '0x9a9a9a'
+# #bright_foreground: '0xffffff'
+
+# # Cursor colors
+# #
+# # Colors which should be used to draw the terminal cursor. If these are unset,
+# # the cursor color will be the inverse of the cell color.
+# cursor:
+# text: '0x414d58'
+# cursor: '0xf8f8f2'
+
+# # Selection colors
+# #
+# # Colors which should be used to draw the selection area. If selection
+# # background is unset, selection color will be the inverse of the cell colors.
+# # If only text is unset the cell text color will remain the same.
+# selection:
+# text: '0xf8f8f2'
+# background: '0x414d58'
+
+# # Normal colors
+# normal:
+# black: '0x0b0d0f'
+# red: '0xff9580'
+# green: '0x8aff80'
+# yellow: '0xffff80'
+# blue: '0x9580ff'
+# magenta: '0xff80bf'
+# cyan: '0x80ffea'
+# white: '0xf8f8f2'
+
+# # Bright colors
+# bright:
+# black: '0x0b0d0f'
+# red: '0xffaa99'
+# green: '0xa2ff99'
+# yellow: '0xffff99'
+# blue: '0xaa99ff'
+# magenta: '0xff99cc'
+# cyan: '0x99ffee'
+# white: '0xffffff'
+
+# Colors (Dracula PRO)
+colors:
+ # Default colors
+ primary:
+ background: '0x22212c'
+ foreground: '0xf8f8f2'
+
+ # Bright and dim foreground colors
+ #
+ # The dimmed foreground color is calculated automatically if it is not present.
+ # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
+ # is `false`, the normal foreground color will be used.
+ #dim_foreground: '0x9a9a9a'
+ #bright_foreground: '0xffffff'
+
+ # Cursor colors
+ #
+ # Colors which should be used to draw the terminal cursor. If these are unset,
+ # the cursor color will be the inverse of the cell color.
+ cursor:
+ text: '0x454158'
+ cursor: '0xf8f8f2'
+
+ # Selection colors
+ #
+ # Colors which should be used to draw the selection area. If selection
+ # background is unset, selection color will be the inverse of the cell colors.
+ # If only text is unset the cell text color will remain the same.
+ selection:
+ text: '0xf8f8f2'
+ background: '0x454158'
+
+ # Normal colors
+ normal:
+ black: '0x22212c'
+ red: '0xff9580'
+ green: '0x8aff80'
+ yellow: '0xffff80'
+ blue: '0x9580ff'
+ magenta: '0xff80bf'
+ cyan: '0x80ffea'
+ white: '0xf8f8f2'
+
+ # Bright colors
+ bright:
+ black: '0x22212c'
+ red: '0xffaa99'
+ green: '0xa2ff99'
+ yellow: '0xffff99'
+ blue: '0xaa99ff'
+ magenta: '0xff99cc'
+ cyan: '0x99ffee'
+ white: '0xffffff'
+
+# Colors (Material Theme)
+# colors:
+# # Default colors
+# primary:
+# background: '#263238'
+# foreground: '#eeffff'
+
+# # Normal colors
+# normal:
+# black: '#000000' # Arbitrary
+# red: '#e53935'
+# green: '#91b859'
+# yellow: '#ffb62c'
+# blue: '#6182b8'
+# magenta: '#ff5370' # Dark pink of the original material theme
+# cyan: '#39adb5'
+# white: '#a0a0a0' # Arbitrary
+
+# # Bright colors
+# bright:
+# black: '#4e4e4e' # Arbitrary
+# red: '#ff5370'
+# green: '#c3e88d'
+# yellow: '#ffcb6b'
+# blue: '#82aaff'
+# magenta: '#f07178' # Pink of the original material theme
+# cyan: '#89ddff'
+# white: '#ffffff' # Arbitrary
+
+# Colors (Tomorrow Night)
+#colors:
+ # Default colors
+ #primary:
+ # background: '#1d1f21'
+ # foreground: '#c5c8c6'
+
+ # Bright and dim foreground colors
+ #
+ # The dimmed foreground color is calculated automatically if it is not
+ # present. If the bright foreground color is not set, or
+ # `draw_bold_text_with_bright_colors` is `false`, the normal foreground
+ # color will be used.
+ #dim_foreground: '#828482'
+ #bright_foreground: '#eaeaea'
+
+ # Cursor colors
+ #
+ # Colors which should be used to draw the terminal cursor.
+ #
+ # Allowed values are CellForeground/CellBackground, which reference the
+ # affected cell, or hexadecimal colors like #ff00ff.
+ #cursor:
+ # text: CellBackground
+ # cursor: CellForeground
+
+ # Vi mode cursor colors
+ #
+ # Colors for the cursor when the vi mode is active.
+ #
+ # Allowed values are CellForeground/CellBackground, which reference the
+ # affected cell, or hexadecimal colors like #ff00ff.
+ #vi_mode_cursor:
+ # text: CellBackground
+ # cursor: CellForeground
+
+ # Search colors
+ #
+ # Colors used for the search bar and match highlighting.
+ #search:
+ # Allowed values are CellForeground/CellBackground, which reference the
+ # affected cell, or hexadecimal colors like #ff00ff.
+ #matches:
+ # foreground: '#000000'
+ # background: '#ffffff'
+ #focused_match:
+ # foreground: '#ffffff'
+ # background: '#000000'
+
+ #bar:
+ # background: '#c5c8c6'
+ # foreground: '#1d1f21'
+
+ # Keyboard regex hints
+ #hints:
+ # First character in the hint label
+ #
+ # Allowed values are CellForeground/CellBackground, which reference the
+ # affected cell, or hexadecimal colors like #ff00ff.
+ #start:
+ # foreground: '#1d1f21'
+ # background: '#e9ff5e'
+
+ # All characters after the first one in the hint label
+ #
+ # Allowed values are CellForeground/CellBackground, which reference the
+ # affected cell, or hexadecimal colors like #ff00ff.
+ #end:
+ # foreground: '#e9ff5e'
+ # background: '#1d1f21'
+
+ # Line indicator
+ #
+ # Color used for the indicator displaying the position in history during
+ # search and vi mode.
+ #
+ # By default, these will use the opposing primary color.
+ #line_indicator:
+ # foreground: None
+ # background: None
+
+ # Selection colors
+ #
+ # Colors which should be used to draw the selection area.
+ #
+ # Allowed values are CellForeground/CellBackground, which reference the
+ # affected cell, or hexadecimal colors like #ff00ff.
+ #selection:
+ # text: CellBackground
+ # background: CellForeground
+
+ # Normal colors
+ #normal:
+ # black: '#1d1f21'
+ # red: '#cc6666'
+ # green: '#b5bd68'
+ # yellow: '#f0c674'
+ # blue: '#81a2be'
+ # magenta: '#b294bb'
+ # cyan: '#8abeb7'
+ # white: '#c5c8c6'
+
+ # Bright colors
+ #bright:
+ # black: '#666666'
+ # red: '#d54e53'
+ # green: '#b9ca4a'
+ # yellow: '#e7c547'
+ # blue: '#7aa6da'
+ # magenta: '#c397d8'
+ # cyan: '#70c0b1'
+ # white: '#eaeaea'
+
+ # Dim colors
+ #
+ # If the dim colors are not set, they will be calculated automatically based
+ # on the `normal` colors.
+ #dim:
+ # black: '#131415'
+ # red: '#864343'
+ # green: '#777c44'
+ # yellow: '#9e824c'
+ # blue: '#556a7d'
+ # magenta: '#75617b'
+ # cyan: '#5b7d78'
+ # white: '#828482'
+
+ # Indexed Colors
+ #
+ # The indexed colors include all colors from 16 to 256.
+ # When these are not set, they're filled with sensible defaults.
+ #
+ # Example:
+ # `- { index: 16, color: '#ff00ff' }`
+ #
+ #indexed_colors: []
+
+# Bell
+#
+# The bell is rung every time the BEL control character is received.
+#bell:
+ # Visual Bell Animation
+ #
+ # Animation effect for flashing the screen when the visual bell is rung.
+ #
+ # Values for `animation`:
+ # - Ease
+ # - EaseOut
+ # - EaseOutSine
+ # - EaseOutQuad
+ # - EaseOutCubic
+ # - EaseOutQuart
+ # - EaseOutQuint
+ # - EaseOutExpo
+ # - EaseOutCirc
+ # - Linear
+ #animation: EaseOutExpo
+
+ # Duration of the visual bell flash in milliseconds. A `duration` of `0` will
+ # disable the visual bell animation.
+ #duration: 0
+
+ # Visual bell animation color.
+ #color: '#ffffff'
+
+ # Bell Command
+ #
+ # This program is executed whenever the bell is rung.
+ #
+ # When set to `command: None`, no command will be executed.
+ #
+ # Example:
+ # command:
+ # program: notify-send
+ # args: ["Hello, World!"]
+ #
+ #command: None
+
+# Background opacity
+#
+# Window opacity as a floating point number from `0.0` to `1.0`.
+# The value `0.0` is completely transparent and `1.0` is opaque.
+#background_opacity: 1.0
+
+selection:
+ # This string contains all characters that are used as separators for
+ # "semantic words" in Alacritty.
+ #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
+
+ # When set to `true`, selected text will be copied to the primary clipboard.
+ save_to_clipboard: true
+
+#cursor:
+ # Cursor style
+ #style:
+ # Cursor shape
+ #
+ # Values for `shape`:
+ # - ▇ Block
+ # - _ Underline
+ # - | Beam
+ #shape: Block
+
+ # Cursor blinking state
+ #
+ # Values for `blinking`:
+ # - Never: Prevent the cursor from ever blinking
+ # - Off: Disable blinking by default
+ # - On: Enable blinking by default
+ # - Always: Force the cursor to always blink
+ #blinking: Off
+
+ # Vi mode cursor style
+ #
+ # If the vi mode cursor style is `None` or not specified, it will fall back to
+ # the style of the active value of the normal cursor.
+ #
+ # See `cursor.style` for available options.
+ #vi_mode_style: None
+
+ # Cursor blinking interval in milliseconds.
+ #blink_interval: 750
+
+ # If this is `true`, the cursor will be rendered as a hollow box when the
+ # window is not focused.
+ #unfocused_hollow: true
+
+ # Thickness of the cursor relative to the cell width as floating point number
+ # from `0.0` to `1.0`.
+ #thickness: 0.15
+
+# Live config reload (changes require restart)
+#live_config_reload: true
+
+# Shell
+#
+# You can set `shell.program` to the path of your favorite shell, e.g.
+# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the
+# shell.
+#
+# Default:
+# - (macOS) /bin/bash --login
+# - (Linux/BSD) user login shell
+# - (Windows) powershell
+shell:
+ program: /usr/bin/zsh
+# args:
+# - --login
+
+# Startup directory
+#
+# Directory the shell is started in. If this is unset, or `None`, the working
+# directory of the parent process will be used.
+#working_directory: None
+
+# Send ESC (\x1b) before characters when alt is pressed.
+#alt_send_esc: true
+
+#mouse:
+ # Click settings
+ #
+ # The `double_click` and `triple_click` settings control the time
+ # alacritty should wait for accepting multiple clicks as one double
+ # or triple click.
+ #double_click: { threshold: 300 }
+ #triple_click: { threshold: 300 }
+
+ # If this is `true`, the cursor is temporarily hidden when typing.
+ #hide_when_typing: false
+
+# Regex hints
+#
+# Terminal hints can be used to find text in the visible part of the terminal
+# and pipe it to other applications.
+#hints:
+ # Keys used for the hint labels.
+ #alphabet: "jfkdls;ahgurieowpq"
+
+ # List with all available hints
+ #
+ # Each hint must have a `regex` and either an `action` or a `command` field.
+ # The fields `mouse`, `binding` and `post_processing` are optional.
+ #
+ # The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and
+ # `mouse.mods` accept the same values as they do in the `key_bindings` section.
+ #
+ # The `mouse.enabled` field controls if the hint should be underlined while
+ # the mouse with all `mouse.mods` keys held or the vi mode cursor is above it.
+ #
+ # If the `post_processing` field is set to `true`, heuristics will be used to
+ # shorten the match if there are characters likely not to be part of the hint
+ # (e.g. a trailing `.`). This is most useful for URIs.
+ #
+ # Values for `action`:
+ # - Copy
+ # Copy the hint's text to the clipboard.
+ # - Paste
+ # Paste the hint's text to the terminal or search.
+ # - Select
+ # Select the hint's text.
+ # - MoveViModeCursor
+ # Move the vi mode cursor to the beginning of the hint.
+ #enabled:
+ # - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
+ # [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
+ # command: xdg-open
+ # post_processing: true
+ # mouse:
+ # enabled: true
+ # mods: None
+ # binding:
+ # key: U
+ # mods: Control|Shift
+
+# Mouse bindings
+#
+# Mouse bindings are specified as a list of objects, much like the key
+# bindings further below.
+#
+# To trigger mouse bindings when an application running within Alacritty
+# captures the mouse, the `Shift` modifier is automatically added as a
+# requirement.
+#
+# Each mouse binding will specify a:
+#
+# - `mouse`:
+#
+# - Middle
+# - Left
+# - Right
+# - Numeric identifier such as `5`
+#
+# - `action` (see key bindings)
+#
+# And optionally:
+#
+# - `mods` (see key bindings)
+#mouse_bindings:
+# - { mouse: Middle, action: PasteSelection }
+
+# Key bindings
+#
+# Key bindings are specified as a list of objects. For example, this is the
+# default paste binding:
+#
+# `- { key: V, mods: Control|Shift, action: Paste }`
+#
+# Each key binding will specify a:
+#
+# - `key`: Identifier of the key pressed
+#
+# - A-Z
+# - F1-F24
+# - Key0-Key9
+#
+# A full list with available key codes can be found here:
+# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
+#
+# Instead of using the name of the keys, the `key` field also supports using
+# the scancode of the desired key. Scancodes have to be specified as a
+# decimal number. This command will allow you to display the hex scancodes
+# for certain keys:
+#
+# `showkey --scancodes`.
+#
+# Then exactly one of:
+#
+# - `chars`: Send a byte sequence to the running application
+#
+# The `chars` field writes the specified string to the terminal. This makes
+# it possible to pass escape sequences. To find escape codes for bindings
+# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
+# of tmux. Note that applications use terminfo to map escape sequences back
+# to keys. It is therefore required to update the terminfo when changing an
+# escape sequence.
+#
+# - `action`: Execute a predefined action
+#
+# - ToggleViMode
+# - SearchForward
+# Start searching toward the right of the search origin.
+# - SearchBackward
+# Start searching toward the left of the search origin.
+# - Copy
+# - Paste
+# - IncreaseFontSize
+# - DecreaseFontSize
+# - ResetFontSize
+# - ScrollPageUp
+# - ScrollPageDown
+# - ScrollHalfPageUp
+# - ScrollHalfPageDown
+# - ScrollLineUp
+# - ScrollLineDown
+# - ScrollToTop
+# - ScrollToBottom
+# - ClearHistory
+# Remove the terminal's scrollback history.
+# - Hide
+# Hide the Alacritty window.
+# - Minimize
+# Minimize the Alacritty window.
+# - Quit
+# Quit Alacritty.
+# - ToggleFullscreen
+# - SpawnNewInstance
+# Spawn a new instance of Alacritty.
+# - ClearLogNotice
+# Clear Alacritty's UI warning and error notice.
+# - ClearSelection
+# Remove the active selection.
+# - ReceiveChar
+# - None
+#
+# - Vi mode exclusive actions:
+#
+# - Open
+# Perform the action of the first matching hint under the vi mode cursor
+# with `mouse.enabled` set to `true`.
+# - ToggleNormalSelection
+# - ToggleLineSelection
+# - ToggleBlockSelection
+# - ToggleSemanticSelection
+# Toggle semantic selection based on `selection.semantic_escape_chars`.
+#
+# - Vi mode exclusive cursor motion actions:
+#
+# - Up
+# One line up.
+# - Down
+# One line down.
+# - Left
+# One character left.
+# - Right
+# One character right.
+# - First
+# First column, or beginning of the line when already at the first column.
+# - Last
+# Last column, or beginning of the line when already at the last column.
+# - FirstOccupied
+# First non-empty cell in this terminal row, or first non-empty cell of
+# the line when already at the first cell of the row.
+# - High
+# Top of the screen.
+# - Middle
+# Center of the screen.
+# - Low
+# Bottom of the screen.
+# - SemanticLeft
+# Start of the previous semantically separated word.
+# - SemanticRight
+# Start of the next semantically separated word.
+# - SemanticLeftEnd
+# End of the previous semantically separated word.
+# - SemanticRightEnd
+# End of the next semantically separated word.
+# - WordLeft
+# Start of the previous whitespace separated word.
+# - WordRight
+# Start of the next whitespace separated word.
+# - WordLeftEnd
+# End of the previous whitespace separated word.
+# - WordRightEnd
+# End of the next whitespace separated word.
+# - Bracket
+# Character matching the bracket at the cursor's location.
+# - SearchNext
+# Beginning of the next match.
+# - SearchPrevious
+# Beginning of the previous match.
+# - SearchStart
+# Start of the match to the left of the vi mode cursor.
+# - SearchEnd
+# End of the match to the right of the vi mode cursor.
+#
+# - Search mode exclusive actions:
+# - SearchFocusNext
+# Move the focus to the next search match.
+# - SearchFocusPrevious
+# Move the focus to the previous search match.
+# - SearchConfirm
+# - SearchCancel
+# - SearchClear
+# Reset the search regex.
+# - SearchDeleteWord
+# Delete the last word in the search regex.
+# - SearchHistoryPrevious
+# Go to the previous regex in the search history.
+# - SearchHistoryNext
+# Go to the next regex in the search history.
+#
+# - macOS exclusive actions:
+# - ToggleSimpleFullscreen
+# Enter fullscreen without occupying another space.
+#
+# - Linux/BSD exclusive actions:
+#
+# - CopySelection
+# Copy from the selection buffer.
+# - PasteSelection
+# Paste from the selection buffer.
+#
+# - `command`: Fork and execute a specified command plus arguments
+#
+# The `command` field must be a map containing a `program` string and an
+# `args` array of command line parameter strings. For example:
+# `{ program: "alacritty", args: ["-e", "vttest"] }`
+#
+# And optionally:
+#
+# - `mods`: Key modifiers to filter binding actions
+#
+# - Command
+# - Control
+# - Option
+# - Super
+# - Shift
+# - Alt
+#
+# Multiple `mods` can be combined using `|` like this:
+# `mods: Control|Shift`.
+# Whitespace and capitalization are relevant and must match the example.
+#
+# - `mode`: Indicate a binding for only specific terminal reported modes
+#
+# This is mainly used to send applications the correct escape sequences
+# when in different modes.
+#
+# - AppCursor
+# - AppKeypad
+# - Search
+# - Alt
+# - Vi
+#
+# A `~` operator can be used before a mode to apply the binding whenever
+# the mode is *not* active, e.g. `~Alt`.
+#
+# Bindings are always filled by default, but will be replaced when a new
+# binding with the same triggers is defined. To unset a default binding, it can
+# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
+# a no-op if you do not wish to receive input characters for that binding.
+#
+# If the same trigger is assigned to multiple actions, all of them are executed
+# in the order they were defined in.
+key_bindings:
+ # Spawn new terminal in current path
+ - { key: Return, mods: Super|Shift, action: SpawnNewInstance }
+ #- { key: Paste, action: Paste }
+ #- { key: Copy, action: Copy }
+ #- { key: L, mods: Control, action: ClearLogNotice }
+ #- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
+ #- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, }
+ #- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
+ #- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, }
+ #- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
+
+ # Vi Mode
+ #- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
+ #- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
+ #- { key: Escape, mode: Vi|~Search, action: ClearSelection }
+ #- { key: I, mode: Vi|~Search, action: ToggleViMode }
+ #- { key: I, mode: Vi|~Search, action: ScrollToBottom }
+ #- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode }
+ #- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp }
+ #- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown }
+ #- { key: G, mode: Vi|~Search, action: ScrollToTop }
+ #- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom }
+ #- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp }
+ #- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown }
+ #- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp }
+ #- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown }
+ #- { key: Y, mode: Vi|~Search, action: Copy }
+ #- { key: Y, mode: Vi|~Search, action: ClearSelection }
+ #- { key: Copy, mode: Vi|~Search, action: ClearSelection }
+ #- { key: V, mode: Vi|~Search, action: ToggleNormalSelection }
+ #- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection }
+ #- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection }
+ #- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection }
+ #- { key: Return, mode: Vi|~Search, action: Open }
+ #- { key: K, mode: Vi|~Search, action: Up }
+ #- { key: J, mode: Vi|~Search, action: Down }
+ #- { key: H, mode: Vi|~Search, action: Left }
+ #- { key: L, mode: Vi|~Search, action: Right }
+ #- { key: Up, mode: Vi|~Search, action: Up }
+ #- { key: Down, mode: Vi|~Search, action: Down }
+ #- { key: Left, mode: Vi|~Search, action: Left }
+ #- { key: Right, mode: Vi|~Search, action: Right }
+ #- { key: Key0, mode: Vi|~Search, action: First }
+ #- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last }
+ #- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied }
+ #- { key: H, mods: Shift, mode: Vi|~Search, action: High }
+ #- { key: M, mods: Shift, mode: Vi|~Search, action: Middle }
+ #- { key: L, mods: Shift, mode: Vi|~Search, action: Low }
+ #- { key: B, mode: Vi|~Search, action: SemanticLeft }
+ #- { key: W, mode: Vi|~Search, action: SemanticRight }
+ #- { key: E, mode: Vi|~Search, action: SemanticRightEnd }
+ #- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft }
+ #- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight }
+ #- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd }
+ #- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket }
+ #- { key: Slash, mode: Vi|~Search, action: SearchForward }
+ #- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward }
+ #- { key: N, mode: Vi|~Search, action: SearchNext }
+ #- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious }
+
+ # Search Mode
+ #- { key: Return, mode: Search|Vi, action: SearchConfirm }
+ #- { key: Escape, mode: Search, action: SearchCancel }
+ #- { key: C, mods: Control, mode: Search, action: SearchCancel }
+ #- { key: U, mods: Control, mode: Search, action: SearchClear }
+ #- { key: W, mods: Control, mode: Search, action: SearchDeleteWord }
+ #- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious }
+ #- { key: N, mods: Control, mode: Search, action: SearchHistoryNext }
+ #- { key: Up, mode: Search, action: SearchHistoryPrevious }
+ #- { key: Down, mode: Search, action: SearchHistoryNext }
+ #- { key: Return, mode: Search|~Vi, action: SearchFocusNext }
+ #- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
+
+ # (Windows, Linux, and BSD only)
+ #- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste }
+ #- { key: C, mods: Control|Shift, action: Copy }
+ #- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward }
+ #- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward }
+ #- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection }
+ #- { key: Insert, mods: Shift, action: PasteSelection }
+ #- { key: Key0, mods: Control, action: ResetFontSize }
+ #- { key: Equals, mods: Control, action: IncreaseFontSize }
+ #- { key: Plus, mods: Control, action: IncreaseFontSize }
+ #- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
+ #- { key: Minus, mods: Control, action: DecreaseFontSize }
+ #- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
+
+ # (Windows only)
+ #- { key: Return, mods: Alt, action: ToggleFullscreen }
+
+ # (macOS only)
+ #- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
+ #- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory }
+ #- { key: Key0, mods: Command, action: ResetFontSize }
+ #- { key: Equals, mods: Command, action: IncreaseFontSize }
+ #- { key: Plus, mods: Command, action: IncreaseFontSize }
+ #- { key: NumpadAdd, mods: Command, action: IncreaseFontSize }
+ #- { key: Minus, mods: Command, action: DecreaseFontSize }
+ #- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize }
+ #- { key: V, mods: Command, action: Paste }
+ #- { key: C, mods: Command, action: Copy }
+ #- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection }
+ #- { key: H, mods: Command, action: Hide }
+ #- { key: H, mods: Command|Alt, action: HideOtherApplications }
+ #- { key: M, mods: Command, action: Minimize }
+ #- { key: Q, mods: Command, action: Quit }
+ #- { key: W, mods: Command, action: Quit }
+ #- { key: N, mods: Command, action: SpawnNewInstance }
+ #- { key: F, mods: Command|Control, action: ToggleFullscreen }
+ #- { key: F, mods: Command, mode: ~Search, action: SearchForward }
+ #- { key: B, mods: Command, mode: ~Search, action: SearchBackward }
+
+#debug:
+ # Display the time it takes to redraw each frame.
+ #render_timer: false
+
+ # Keep the log file after quitting Alacritty.
+ #persistent_logging: false
+
+ # Log level
+ #
+ # Values for `log_level`:
+ # - Off
+ # - Error
+ # - Warn
+ # - Info
+ # - Debug
+ # - Trace
+ #log_level: Warn
+
+ # Print all received window events.
+ #print_events: false
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
deleted file mode 100644
index 345829d..0000000
--- a/.config/dunst/dunstrc
+++ /dev/null
@@ -1,320 +0,0 @@
-[global]
- ### Display ###
-
- # Which monitor should the notifications be displayed on.
- monitor = 0
-
- # Display notification on focused monitor. Possible modes are:
- # mouse: follow mouse pointer
- # keyboard: follow window with keyboard focus
- # none: don't follow anything
- #
- # "keyboard" needs a window manager that exports the
- # _NET_ACTIVE_WINDOW property.
- # This should be the case for almost all modern window managers.
- #
- # If this option is set to mouse or keyboard, the monitor option
- # will be ignored.
- follow = mouse
-
- # The geometry of the window:
- # [{width}]x{height}[+/-{x}+/-{y}]
- # The geometry of the message window.
- # The height is measured in number of notifications everything else
- # in pixels. If the width is omitted but the height is given
- # ("-geometry x2"), the message window expands over the whole screen
- # (dmenu-like). If width is 0, the window expands to the longest
- # message displayed. A positive x is measured from the left, a
- # negative from the right side of the screen. Y is measured from
- # the top and down respectively.
- # The width can be negative. In this case the actual width is the
- # screen width minus the width defined in within the geometry option.
- geometry = "300x5-30+20"
-
- # Show how many messages are currently hidden (because of geometry).
- indicate_hidden = yes
-
- # Shrink window if it's smaller than the width. Will be ignored if
- # width is 0.
- shrink = no
-
- # The transparency of the window. Range: [0; 100].
- # This option will only work if a compositing window manager is
- # present (e.g. xcompmgr, compiz, etc.).
- transparency = 0
-
- # The height of the entire notification. If the height is smaller
- # than the font height and padding combined, it will be raised
- # to the font height and padding.
- notification_height = 0
-
- # Draw a line of "separator_height" pixel height between two
- # notifications.
- # Set to 0 to disable.
- separator_height = 2
-
- # Padding between text and separator.
- padding = 8
-
- # Horizontal padding.
- horizontal_padding = 8
-
- # Defines width in pixels of frame around the notification window.
- # Set to 0 to disable.
- frame_width = 3
-
- # Defines color of the frame around the notification window.
- frame_color = "#aaaaaa"
-
- # Define a color for the separator.
- # possible values are:
- # * auto: dunst tries to find a color fitting to the background;
- # * foreground: use the same color as the foreground;
- # * frame: use the same color as the frame;
- # * anything else will be interpreted as a X color.
- separator_color = frame
-
- # Sort messages by urgency.
- sort = yes
-
- # Don't remove messages, if the user is idle (no mouse or keyboard input)
- # for longer than idle_threshold seconds.
- # Set to 0 to disable.
- idle_threshold = 120
-
- ### Text ###
-
- font = Inconsolata 10
-
- # The spacing between lines. If the height is smaller than the
- # font height, it will get raised to the font height.
- line_height = 0
-
- # Possible values are:
- # full: Allow a small subset of html markup in notifications:
- # bold
- # italic
- # strikethrough
- # underline
- #
- # For a complete reference see
- # .
- #
- # strip: This setting is provided for compatibility with some broken
- # clients that send markup even though it's not enabled on the
- # server. Dunst will try to strip the markup but the parsing is
- # simplistic so using this option outside of matching rules for
- # specific applications *IS GREATLY DISCOURAGED*.
- #
- # no: Disable markup parsing, incoming notifications will be treated as
- # plain text. Dunst will not advertise that it has the body-markup
- # capability if this is set as a global setting.
- #
- # It's important to note that markup inside the format option will be parsed
- # regardless of what this is set to.
- markup = full
-
- # The format of the message. Possible variables are:
- # %a appname
- # %s summary
- # %b body
- # %i iconname (including its path)
- # %I iconname (without its path)
- # %p progress value if set ([ 0%] to [100%]) or nothing
- # %n progress value if set without any extra characters
- # Markup is allowed
- format = "%s\n%b"
-
- # Alignment of message text.
- # Possible values are "left", "center" and "right".
- alignment = left
-
- # Show age of message if message is older than show_age_threshold
- # seconds.
- # Set to -1 to disable.
- show_age_threshold = 60
-
- # Split notifications into multiple lines if they don't fit into
- # geometry.
- word_wrap = yes
-
- # Ignore newlines '\n' in notifications.
- ignore_newline = no
-
- # Merge multiple notifications with the same content
- stack_duplicates = true
-
- # Hide the count of merged notifications with the same content
- hide_duplicate_count = false
-
- # Display indicators for URLs (U) and actions (A).
- show_indicators = yes
-
- ### Icons ###
-
- # Align icons left/right/off
- icon_position = off
-
- # Scale larger icons down to this size, set to 0 to disable
- max_icon_size = 32
-
- # Paths to default icons.
- icon_folders = /usr/share/icons/Vertex-Icons/status/16:/usr/share/icons/Vertex-Icons/devices/16:/usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
-
- ### History ###
-
- # Should a notification popped up from history be sticky or timeout
- # as if it would normally do.
- sticky_history = yes
-
- # Maximum amount of notifications kept in history
- history_length = 20
-
- ### Misc/Advanced ###
-
- # dmenu path.
- dmenu = /usr/bin/dmenu -p dunst:
-
- # Browser for opening urls in context menu.
- browser = /usr/bin/chromium
-
- # Always run rule-defined scripts, even if the notification is suppressed
- always_run_script = true
-
- # Define the title of the windows spawned by dunst
- title = Dunst
-
- # Define the class of the windows spawned by dunst
- class = Dunst
-
- # Print a notification on startup.
- # This is mainly for error detection, since dbus (re-)starts dunst
- # automatically after a crash.
- startup_notification = false
-
- ### Legacy
-
- # Use the Xinerama extension instead of RandR for multi-monitor support.
- # This setting is provided for compatibility with older nVidia drivers that
- # do not support RandR and using it on systems that support RandR is highly
- # discouraged.
- #
- # By enabling this setting dunst will not be able to detect when a monitor
- # is connected or disconnected which might break follow mode if the screen
- # layout changes.
- force_xinerama = false
-
-# Experimental features that may or may not work correctly. Do not expect them
-# to have a consistent behaviour across releases.
-[experimental]
- # Calculate the dpi to use on a per-monitor basis.
- # If this setting is enabled the Xft.dpi value will be ignored and instead
- # dunst will attempt to calculate an appropriate dpi value for each monitor
- # using the resolution and physical size. This might be useful in setups
- # where there are multiple screens with very different dpi values.
- per_monitor_dpi = false
-
-[shortcuts]
-
- # Shortcuts are specified as [modifier+][modifier+]...key
- # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
- # "mod3" and "mod4" (windows-key).
- # Xev might be helpful to find names for keys.
-
- # Close notification.
- close = ctrl+space
-
- # Close all notifications.
- close_all = ctrl+shift+space
-
- # Redisplay last message(s).
- # On the US keyboard layout "grave" is normally above TAB and left
- # of "1". Make sure this key actually exists on your keyboard layout,
- # e.g. check output of 'xmodmap -pke'
- history = ctrl+grave
-
- # Context menu.
- context = ctrl+shift+period
-
-[urgency_low]
- # IMPORTANT: colors have to be defined in quotation marks.
- # Otherwise the "#" and following would be interpreted as a comment.
- background = "#222222"
- foreground = "#888888"
- timeout = 10
- # Icon for notifications with low urgency, uncomment to enable
- #icon = /path/to/icon
-
-[urgency_normal]
- background = "#285577"
- foreground = "#ffffff"
- timeout = 10
- # Icon for notifications with normal urgency, uncomment to enable
- #icon = /path/to/icon
-
-[urgency_critical]
- background = "#900000"
- foreground = "#ffffff"
- frame_color = "#ff0000"
- timeout = 0
- # Icon for notifications with critical urgency, uncomment to enable
- #icon = /path/to/icon
-
-# Every section that isn't one of the above is interpreted as a rules to
-# override settings for certain messages.
-# Messages can be matched by "appname", "summary", "body", "icon", "category",
-# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
-# "background", "new_icon" and "format".
-# Shell-like globbing will get expanded.
-#
-# SCRIPTING
-# You can specify a script that gets run when the rule matches by
-# setting the "script" option.
-# The script will be called as follows:
-# script appname summary body icon urgency
-# where urgency can be "LOW", "NORMAL" or "CRITICAL".
-#
-# NOTE: if you don't want a notification to be displayed, set the format
-# to "".
-# NOTE: It might be helpful to run dunst -print in a terminal in order
-# to find fitting options for rules.
-
-#[espeak]
-# summary = "*"
-# script = dunst_espeak.sh
-
-#[script-test]
-# summary = "*script*"
-# script = dunst_test.sh
-
-#[ignore]
-# # This notification will not be displayed
-# summary = "foobar"
-# format = ""
-
-#[history-ignore]
-# # This notification will not be saved in history
-# summary = "foobar"
-# history_ignore = yes
-
-#[signed_on]
-# appname = Pidgin
-# summary = "*signed on*"
-# urgency = low
-#
-#[signed_off]
-# appname = Pidgin
-# summary = *signed off*
-# urgency = low
-#
-#[says]
-# appname = Pidgin
-# summary = *says*
-# urgency = critical
-#
-#[twitter]
-# appname = Pidgin
-# summary = *twitter.com*
-# urgency = normal
-#
-# vim: ft=cfg
diff --git a/.config/electron-flags.conf b/.config/electron-flags.conf
new file mode 100644
index 0000000..c988bbe
--- /dev/null
+++ b/.config/electron-flags.conf
@@ -0,0 +1,3 @@
+# https://wiki.archlinux.org/title/Wayland#Per_user
+--enable-features=UseOzonePlatform
+--ozone-platform-wayland
diff --git a/.config/environment.d/envvars.conf b/.config/environment.d/envvars.conf
new file mode 100644
index 0000000..cf78c97
--- /dev/null
+++ b/.config/environment.d/envvars.conf
@@ -0,0 +1,3 @@
+XDG_SESSION_TYPE=wayland
+XDG_CURRENT_DESKTOP=sway
+
diff --git a/.config/gammastep/config.ini b/.config/gammastep/config.ini
new file mode 100644
index 0000000..b7dca7d
--- /dev/null
+++ b/.config/gammastep/config.ini
@@ -0,0 +1,68 @@
+; Global settings
+[general]
+; Set the day and night screen temperatures
+temp-day=5700
+temp-night=3500
+
+; Disable the smooth fade between temperatures when Redshift starts and stops.
+; 0 will cause an immediate change between screen temperatures.
+; 1 will gradually apply the new screen temperature over a couple of seconds.
+fade=1
+
+; Solar elevation thresholds.
+; By default, Redshift will use the current elevation of the sun to determine
+; whether it is daytime, night or in transition (dawn/dusk). When the sun is
+; above the degrees specified with elevation-high it is considered daytime and
+; below elevation-low it is considered night.
+;elevation-high=3
+;elevation-low=-6
+
+; Custom dawn/dusk intervals.
+; Instead of using the solar elevation, the time intervals of dawn and dusk
+; can be specified manually. The times must be specified as HH:MM in 24-hour
+; format.
+;dawn-time=6:00-7:45
+;dusk-time=18:35-20:15
+
+; Set the screen brightness. Default is 1.0.
+;brightness=0.9
+; It is also possible to use different settings for day and night
+; since version 1.8.
+;brightness-day=0.7
+;brightness-night=0.4
+; Set the screen gamma (for all colors, or each color channel
+; individually)
+gamma=0.8
+;gamma=0.8:0.7:0.8
+; This can also be set individually for day and night since
+; version 1.10.
+;gamma-day=0.8:0.7:0.8
+;gamma-night=0.6
+
+; Set the location-provider: 'geoclue2', 'manual'.
+; The location provider settings are in a different section.
+location-provider=manual
+
+; Set the adjustment-method: 'randr', 'vidmode', 'drm', 'wayland'.
+; 'randr' is the preferred X11 method, 'vidmode' is an older API
+; that works in some cases when 'randr' does not.
+; The adjustment method settings are in a different section.
+adjustment-method=wayland
+
+; Configuration of the location-provider:
+; type 'gammastep -l PROVIDER:help' to see the settings.
+; ex: 'gammastep -l manual:help'
+; Keep in mind that longitudes west of Greenwich (e.g. the Americas)
+; are negative numbers.
+[manual]
+lat=35.97
+lon=-78.51
+
+; Configuration of the adjustment-method
+; type 'gammastep -m METHOD:help' to see the settings.
+; ex: 'gammastep -m randr:help'
+; In this example, randr is configured to adjust only screen 0.
+; Note that the numbering starts from 0, so this is actually the first screen.
+; If this option is not specified, Redshift will try to adjust _all_ screens.
+[randr]
+;screen=0
diff --git a/.config/gtk-3.0/bookmarks b/.config/gtk-3.0/bookmarks
new file mode 100644
index 0000000..0507bf6
--- /dev/null
+++ b/.config/gtk-3.0/bookmarks
@@ -0,0 +1,7 @@
+file:///home/scwerner/builds
+file:///home/scwerner/code
+file:///home/scwerner/documents
+file:///home/scwerner/downloads
+file:///home/scwerner/photos
+file:///home/scwerner/storage
+file:///home/scwerner/themes
diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini
new file mode 100644
index 0000000..d973c05
--- /dev/null
+++ b/.config/gtk-3.0/settings.ini
@@ -0,0 +1,19 @@
+[Settings]
+gtk-application-prefer-dark-theme=1
+gtk-toolbar-style=GTK_TOOLBAR_BOTH
+gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
+gtk-button-images=1
+gtk-menu-images=1
+gtk-enable-event-sounds=1
+gtk-enable-input-feedback-sounds=1
+gtk-decoration-layout=menu:
+# https://wiki.archlinux.org/title/GTK#Keyboard_shortcuts
+gtk-can-change-accels=1
+gtk-theme-name=Dracula
+gtk-icon-theme-name=Dracula
+gtk-font-name=SF Pro Display 10
+gtk-cursor-theme-name=Adwaita
+gtk-cursor-theme-size=0
+gtk-xft-antialias=1
+gtk-xft-hinting=1
+gtk-xft-hintstyle=hintfull
diff --git a/.config/keyd/app.conf b/.config/keyd/app.conf
new file mode 100644
index 0000000..8fb7577
--- /dev/null
+++ b/.config/keyd/app.conf
@@ -0,0 +1,5 @@
+[thunar]
+
+[zoom]
+# Cmd+q quits
+meta_mac.q = G-f4
diff --git a/.config/mpv/input.conf b/.config/mpv/input.conf
new file mode 100644
index 0000000..dbddf6f
--- /dev/null
+++ b/.config/mpv/input.conf
@@ -0,0 +1,2 @@
+r cycle_values video-rotate 90 180 270 0
+#l vf toggle hflip
diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf
new file mode 100644
index 0000000..d350205
--- /dev/null
+++ b/.config/mpv/mpv.conf
@@ -0,0 +1,21 @@
+vo=gpu
+hwdec=vaapi
+gpu-context=wayland
+autofit=100%x100%
+autofit-larger=100%x100%
+
+#panscan=1.0
+#geometry=100%:100%
+#ontop=yes
+#fullscreen=no
+#window-maximized=yes
+#window-minimized=no
+#keep-open=yes
+#autofit=100%
+#autofit-larger=100%x100%
+#force-window=immediate
+#force-window-position
+#keepaspect
+#no-keepaspect-window
+#window-scale=1
+#hidpi-window-scale
diff --git a/.config/sway/bin/clamshell_mode b/.config/sway/bin/clamshell_mode
new file mode 100755
index 0000000..18c6c5b
--- /dev/null
+++ b/.config/sway/bin/clamshell_mode
@@ -0,0 +1,8 @@
+#!/usr/bin/bash
+# https://github.com/swaywm/sway/wiki#clamshell-mode
+
+if grep -q open /proc/acpi/button/lid/LID0/state; then
+ swaymsg output eDP-1 enable
+else
+ swaymsg output eDP-1 disable
+fi
diff --git a/.config/sway/bin/sway_move b/.config/sway/bin/sway_move
new file mode 100755
index 0000000..99099ea
--- /dev/null
+++ b/.config/sway/bin/sway_move
@@ -0,0 +1,97 @@
+#!/usr/bin/env bash
+
+# Copyright (C) 2020-2021 Bob Hepple
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or (at
+# your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+# http://bhepple.freeshell.org
+
+initialise() {
+ PROG=$(basename $0)
+ VERSION="1.0"
+ ARGUMENTS="top-right|bottom-right|bottom-left"
+ USAGE="move a floating window to the edges because sway lacks a way to do it!"
+
+ case $1 in
+ -h|--help)
+ echo "$USAGE"
+ exit 0
+ ;;
+ top-left|top-center|top-right|center-left|center-center|center-right|bottom-left|bottom-center|bottom-right)
+ command="$1"
+ ;;
+ *)
+ echo "$PROG: bad argument" >&2
+ exit 1
+ ;;
+ esac
+
+ return 0
+}
+
+initialise "$@"
+dimensions=$( swaymsg -t get_outputs |
+ jq -r '.. | select(.focused?) | .current_mode | "\(.width)x\(.height)"' )
+
+monitor_width=${dimensions%x*}
+monitor_height=${dimensions#*x}
+
+win_dim=( $( swaymsg -t get_tree |
+ jq '.. | select(.type?) | select(.type=="floating_con") | select(.focused?)|.rect.width, .rect.height, .deco_rect.height' ) )
+
+win_width=${win_dim[0]}
+win_height=${win_dim[1]}
+deco_height=${win_dim[2]}
+
+#echo "$win_height $win_width $deco_height"
+
+spacing_x=5
+spacing_y=35
+new_x=$spacing_x
+new_y=0
+case $command in
+ ## top
+ top-center)
+ new_x=$(( (monitor_width - win_width)/2 ))
+ ;;
+ top-right)
+ new_x=$(( monitor_width - win_width - 2*spacing_x ))
+ ;;
+ ## center
+ center-left)
+ new_y=$(( (monitor_height - win_height - deco_height - spacing_y)/2 ))
+ ;;
+ center-center)
+ new_x=$(( (monitor_width - win_width)/2 ))
+ new_y=$(( (monitor_height - win_height - deco_height - spacing_y)/2 ))
+ ;;
+ center-right)
+ new_x=$(( monitor_width - win_width -2*spacing_x ))
+ new_y=$(( (monitor_height - win_height - deco_height - spacing_y)/2 ))
+ ;;
+ ## bottom
+ bottom-left)
+ new_y=$(( monitor_height - win_height - deco_height - spacing_y ))
+ ;;
+ bottom-center)
+ new_x=$(( (monitor_width - win_width)/2 ))
+ new_y=$(( monitor_height - win_height - deco_height - spacing_y ))
+ ;;
+ bottom-right)
+ new_x=$(( monitor_width - win_width -2*spacing_x ))
+ new_y=$(( monitor_height - win_height - deco_height - spacing_y ))
+ ;;
+esac
+
+swaymsg "move position $new_x $new_y"
diff --git a/.config/sway/config b/.config/sway/config
new file mode 100644
index 0000000..5c6fdba
--- /dev/null
+++ b/.config/sway/config
@@ -0,0 +1,8 @@
+# Default config for sway
+# Read `man 5 sway` for a complete reference.
+
+## Custom commands
+set $move_cmd $HOME/.config/sway/bin/sway_move
+
+include $HOME/.config/sway/sway.d/*.conf
+include /etc/sway/config.d/*
diff --git a/.config/sway/sway.d/01_general.conf b/.config/sway/sway.d/01_general.conf
new file mode 100644
index 0000000..f5c8b30
--- /dev/null
+++ b/.config/sway/sway.d/01_general.conf
@@ -0,0 +1,22 @@
+# General
+
+# Titlebar
+font pango:SF Pro Display 12, FontAwesome 14
+
+## Variables
+set $mod Mod4
+set $left h
+set $down j
+set $up k
+set $right l
+
+set $term alacritty
+
+# Application launcher
+# https://hg.sr.ht/~scoopta/wofi
+set $menu wofi --term=$term --conf="$HOME/.config/wofi/wofi.config" | xargs swaymsg exec --
+
+# Lock screen
+# https://github.com/swaywm/swaylock
+# https://wiki.archlinux.org/title/Sway#Idle
+set $locker 'swaylock -C $HOME/.config/swaylock/config'
diff --git a/.config/sway/sway.d/02_output.conf b/.config/sway/sway.d/02_output.conf
new file mode 100644
index 0000000..be70933
--- /dev/null
+++ b/.config/sway/sway.d/02_output.conf
@@ -0,0 +1,24 @@
+## Output Configuration
+#
+# > swaymsg -t get_outputs
+
+output * bg ~/wallpaper.jpg fill
+output $laptop mode 2256x1504 position 0,0 scale 1
+
+# Scales the all outputs by the specified scale factor.
+output * scale 1.0
+
+# Clamshell Mode
+# TODO: Fix
+# https://github.com/swaywm/sway/wiki#clamshell-mode
+set $laptop eDP-1
+bindswitch --reload --locked lid:on output $laptop disable
+bindswitch --reload --locked lid:off output $laptop enable
+exec_always $HOME/.config/sway/bin/clamshell_mode
+
+# Idle Lockscreen
+exec swayidle -w \
+ timeout 120 $locker \
+ timeout 240 'swaymsg "output * dpms off"' \
+ resume 'swaymsg "output * dpms on"' \
+ before-sleep $locker
diff --git a/.config/sway/sway.d/03_workspace.conf b/.config/sway/sway.d/03_workspace.conf
new file mode 100644
index 0000000..3231828
--- /dev/null
+++ b/.config/sway/sway.d/03_workspace.conf
@@ -0,0 +1,25 @@
+# Define names for workspaces
+set $ws1 "1: Mail "
+set $ws2 "2: Terminal "
+set $ws3 "3: Firefox "
+set $ws4 "4: Code "
+set $ws5 "5: Files "
+set $ws6 "6: Media "
+set $ws7 "7: Design "
+set $ws8 "8: Chat "
+set $ws9 "9: General "
+set $ws10 "10: Settings "
+
+# assign program to workspace
+#assign [app_id="Alacritty"] → $ws2
+#assign [class="Firefox"] → $ws3
+#assign [class="firefox"] → $ws3
+#assign [app_id="firefox"] → $ws3
+#assign [class="Thunderbird"] → $ws1
+#assign [app_id="thunderbird"] → $ws1
+#assign [class="libreoffice"] → $ws5
+#assign [app_id="neomutt"] → $ws1
+#assign [class="Code"] → $ws4
+#assign [app_id="code"] → $ws4
+#assign [app_id="org.gajim.Gajim"] $ws8
+#assign [class="Mumble"] $ws6
diff --git a/.config/sway/sway.d/04_input.conf b/.config/sway/sway.d/04_input.conf
new file mode 100644
index 0000000..037a1b6
--- /dev/null
+++ b/.config/sway/sway.d/04_input.conf
@@ -0,0 +1,21 @@
+# Input configuration
+# https://github.com/swaywm/sway/wiki#libinput-config-options
+# https://man.archlinux.org/man/sway-input.5
+#input "1452:591:Keychron_K8" {
+# xkb_options "altwin:swap_lalt_lwin"
+#}
+
+# Framework Laptop Touchpad
+input "type:touchpad" {
+ accel_profile adaptive
+ click_method clickfinger
+ scroll_method two_finger
+ scroll_factor 0.5
+ natural_scroll disabled
+ tap enabled
+ drag enabled
+ dwt enabled
+}
+
+# Keytron
+# https://mikeshade.com/posts/keychron-linux-function-keys/
diff --git a/.config/sway/sway.d/05_ui.conf b/.config/sway/sway.d/05_ui.conf
new file mode 100644
index 0000000..17892fc
--- /dev/null
+++ b/.config/sway/sway.d/05_ui.conf
@@ -0,0 +1,64 @@
+# Appearance
+default_border pixel 6
+default_floating_border pixel 8
+hide_edge_borders smart
+focus_follows_mouse no
+
+# class border backgr. text indicator child_border
+client.focused #6272a4 #285577 #ffffff #2e9ef4 #6272a4
+client.focused_inactive #282a36 #5f676a #ffffff #484e50 #282a36
+client.unfocused #282a36 #222222 #888888 #292d2e #282a36
+client.urgent #282a36 #900000 #ffffff #900000 #282a36
+client.placeholder #282a36 #0c0c0c #ffffff #000000 #282a36
+
+# GTK
+#
+# Available options:
+# > gsettings list-keys org.gnome.desktop.interface | sort -u
+#
+set $gnome-schema org.gnome.desktop.interface
+set $cursor_size 32
+exec_always {
+ # HiDPI
+ # https://wiki.archlinux.org/title/HiDPI#GNOME
+ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "[{'Gdk/WindowScalingFactor', <2>}]"
+ gsettings set $gnome-schema scaling-factor 2
+ gsettings set $gnome-schema text-scaling-factor 1.5
+
+ # Theme
+ # https://github.com/EliverLara/Nordic
+ # https://github.com/PapirusDevelopmentTeam/papirus-icon-theme
+ # https://github.com/PapirusDevelopmentTeam/papirus-folders
+ #
+ # Change icon color schema:
+ # > papirus-folders -C violet --theme Papirus-Dark
+ #
+ gsettings set $gnome-schema gtk-theme "Dracula"
+ gsettings set org.gnome.desktop.wm.preferences theme "Dracula"
+ gsettings set $gnome-schema icon-theme "Papirus-Dark"
+
+ # Cursor
+ gsettings set $gnome-schema cursor-theme Adwaita
+ gsettings set $gnome-schema cursor-size $cursor_size
+
+ # Font
+ gsettings set $gnome-schema font-name 'SF Pro Display 10'
+ gsettings set $gnome-schema monospace-font-name 'JetBrainsMono Nerd Font Mono 10'
+ gsettings set $gnome-schema document-font-name 'SF Pro Display 10'
+ gsettings set org.gnome.desktop.wm.preferences titlebar-font 'SF Pro Display 10'
+
+ # Terminal
+ gsettings set org.gnome.desktop.default-applications.terminal exec $term
+ gsettings set org.gnome.desktop.default-applications.terminal exec-arg ''
+
+ # Other
+ gsettings set org.gnome.desktop.wm.preferences button-layout ''
+ gsettings set org.gnome.mutter overlay-key ''
+}
+
+seat seat0 xcursor_theme default $cursor_size
+
+## Status Bar
+bar {
+ swaybar_command waybar
+}
diff --git a/.config/sway/sway.d/06_floating.conf b/.config/sway/sway.d/06_floating.conf
new file mode 100644
index 0000000..1128f2a
--- /dev/null
+++ b/.config/sway/sway.d/06_floating.conf
@@ -0,0 +1,45 @@
+# Window Rules
+# > swaymsg -t get_tree
+
+# General
+for_window [window_role="About"] floating enable
+for_window [window_role="bubble"] floating enable
+for_window [window_role="dialog"] floating enable
+for_window [window_role="pop-up"] floating enable
+for_window [window_role="task_dialog"] floating enable
+for_window [window_type="dialog"] floating enable
+for_window [window_type="menu"] floating enable
+for_window [app_id="zenity"] floating enable
+for_window [app_id="file-roller"] floating enable
+
+# Fullscreen
+for_window [class=.*] inhibit_idle fullscreen
+
+# KeepassXC
+for_window [app_id="org.keepassxc.KeePassXC"] floating enable, resize set width 1400 px height 800 px;
+
+# Firefox
+for_window [app_id="firefox" title="^About Mozilla Firefox$"] floating enable
+for_window [app_id="firefox" title="^Library$"] floating enable
+for_window [app_id="firefox" title="Sharing Indicator$"] floating enable, sticky enable, exec $move_cmd bottom-right
+for_window [app_id="firefox" title="^Picture-in-Picture$"] floating enable, sticky enable, exec $move_cmd bottom-right
+
+# IntelliJ
+for_window [title="^Welcome to PyCharm$"] floating enable, resize set 1500px 800px
+for_window [title="^Welcome to WebStorm$"] floating enable, resize set 1500px 800px
+
+# Other
+for_window [app_id="blueman-manager"] floating enable, resize set 900px 640px, exec $move_cmd top-right
+for_window [app_id="com.nextcloud.desktopclient.nextcloud"] floating enable
+for_window [app_id="pavucontrol"] floating enable, resize set 900px 640px, exec $move_cmd top-right
+for_window [app_id="seahorse"] floating enable
+for_window [app_id="subl" title="Changelog - Sublime Text"] floating enable
+for_window [app_id="thunar" title="^File Operation Progress$"] floating enable
+for_window [app_id="wdisplays"] floating enable
+for_window [app_id="AppImageLauncher"] floating enable
+for_window [app_id="AppImageLauncherSettings"] floating enable
+for_window [app_id="flameshot"] floating enable
+for_window [app_id="qt5ct"] floating enable
+
+# Waybar
+no_focus [app_id="waybar"]
diff --git a/.config/sway/sway.d/07_hotkeys.conf b/.config/sway/sway.d/07_hotkeys.conf
new file mode 100644
index 0000000..3ff197c
--- /dev/null
+++ b/.config/sway/sway.d/07_hotkeys.conf
@@ -0,0 +1,162 @@
+# Key bindings
+
+
+# Basics:
+#
+ # Start a terminal
+ bindsym $mod+Return exec $term
+
+ # Toggle notification control center
+ bindsym $mod+Shift+n exec swaync-client -t -sw
+
+ # Kill focused window
+ bindsym $mod+Shift+q kill
+
+ # Start your launcher
+ bindsym $mod+space exec $menu
+
+ # Drag floating windows by holding down $mod and left mouse button.
+ # Resize them with right mouse button + $mod.
+ # Despite the name, also works for non-floating windows.
+ # Change normal to inverse to use left mouse button for resizing and right
+ # mouse button for dragging.
+ floating_modifier $mod normal
+
+ # Reload the configuration file
+ bindsym $mod+Shift+c reload
+
+ # Exit sway (logs you out of your Wayland session)
+ bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
+#
+# Moving around:
+#
+ # Move your focus around
+ bindsym $mod+$left focus left
+ bindsym $mod+$down focus down
+ bindsym $mod+$up focus up
+ bindsym $mod+$right focus right
+ # Or use $mod+[up|down|left|right]
+ bindsym $mod+Left focus left
+ bindsym $mod+Down focus down
+ bindsym $mod+Up focus up
+ bindsym $mod+Right focus right
+
+ # Move the focused window with the same, but add Shift
+ bindsym $mod+Shift+$left move left
+ bindsym $mod+Shift+$down move down
+ bindsym $mod+Shift+$up move up
+ bindsym $mod+Shift+$right move right
+ # Ditto, with arrow keys
+ bindsym $mod+Shift+Left move left
+ bindsym $mod+Shift+Down move down
+ bindsym $mod+Shift+Up move up
+ bindsym $mod+Shift+Right move right
+#
+# Workspaces:
+#
+ # Switch to workspace
+ bindsym $mod+1 workspace number 1
+ bindsym $mod+2 workspace number 2
+ bindsym $mod+3 workspace number 3
+ bindsym $mod+4 workspace number 4
+ bindsym $mod+5 workspace number 5
+ bindsym $mod+6 workspace number 6
+ bindsym $mod+7 workspace number 7
+ bindsym $mod+8 workspace number 8
+ bindsym $mod+9 workspace number 9
+ bindsym $mod+0 workspace number 10
+ # Move focused container to workspace
+ bindsym $mod+Shift+1 move container to workspace number 1
+ bindsym $mod+Shift+2 move container to workspace number 2
+ bindsym $mod+Shift+3 move container to workspace number 3
+ bindsym $mod+Shift+4 move container to workspace number 4
+ bindsym $mod+Shift+5 move container to workspace number 5
+ bindsym $mod+Shift+6 move container to workspace number 6
+ bindsym $mod+Shift+7 move container to workspace number 7
+ bindsym $mod+Shift+8 move container to workspace number 8
+ bindsym $mod+Shift+9 move container to workspace number 9
+ bindsym $mod+Shift+0 move container to workspace number 10
+ # Note: workspaces can have any name you want, not just numbers.
+ # We just use 1-10 as the default.
+#
+# Layout stuff:
+#
+ # You can "split" the current object of your focus with
+ # $mod+b or $mod+v, for horizontal and vertical splits
+ # respectively.
+ bindsym $mod+b splith
+ bindsym $mod+v splitv
+
+ # Switch the current container between different layout styles
+ bindsym $mod+s layout stacking
+ bindsym $mod+w layout tabbed
+ bindsym $mod+e layout toggle split
+
+ # Make the current focus fullscreen
+ bindsym $mod+f fullscreen
+
+ # Toggle the current focus between tiling and floating mode
+ bindsym $mod+Shift+space floating toggle
+
+ # Swap focus between the tiling area and the floating area
+ # TODO: Remap because we use $mod+space for menu
+ # bindsym $mod+space focus mode_toggle
+
+ # Move focus to the parent container
+ bindsym $mod+a focus parent
+#
+# Scratchpad:
+#
+ # Sway has a "scratchpad", which is a bag of holding for windows.
+ # You can send windows there and get them back later.
+
+ # Move the currently focused window to the scratchpad
+ bindsym $mod+Shift+minus move scratchpad
+
+ # Show the next scratchpad window or hide the focused scratchpad window.
+ # If there are multiple scratchpad windows, this command cycles through them.
+ bindsym $mod+minus scratchpad show
+#
+# Resizing containers:
+#
+mode "resize" {
+ # left will shrink the containers width
+ # right will grow the containers width
+ # up will shrink the containers height
+ # down will grow the containers height
+ bindsym $left resize shrink width 10px
+ bindsym $down resize grow height 10px
+ bindsym $up resize shrink height 10px
+ bindsym $right resize grow width 10px
+
+ # Ditto, with arrow keys
+ bindsym Left resize shrink width 10px
+ bindsym Down resize grow height 10px
+ bindsym Up resize shrink height 10px
+ bindsym Right resize grow width 10px
+
+ # Return to default mode
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+bindsym $mod+r mode "resize"
+
+# Media
+bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
+bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
+bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
+bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
+bindsym XF86AudioPlay exec playerctl play-pause
+bindsym XF86AudioNext exec playerctl next
+bindsym XF86AudioPrev exec playerctl previous
+
+# Brightnesss
+bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
+bindsym XF86MonBrightnessUp exec brightnessctl set +5%
+
+# Clipboard Selection
+bindsym $mod+y exec clipman pick -t wofi
+
+# Screenshot
+# bindsym sysrq exec flameshot gui
+bindsym Print exec flameshot gui
diff --git a/.config/sway/sway.d/08_autostart.conf b/.config/sway/sway.d/08_autostart.conf
new file mode 100644
index 0000000..309e2dc
--- /dev/null
+++ b/.config/sway/sway.d/08_autostart.conf
@@ -0,0 +1,28 @@
+# Autostart
+
+# Authentication Agent
+# https://wiki.archlinux.org/title/Polkit
+exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+
+# Persist copy buffers when application closes
+# https://github.com/yory8/clipman
+exec wl-paste -t text --watch $HOME/.config/sway/bin/clipman_ignore
+
+# Flameshot
+# https://github.com/flameshot-org/flameshot/blob/master/docs/Sway%20and%20wlroots%20support.md#basic-steps
+# https://github.com/swaywm/sway/wiki#gtk-applications-take-20-seconds-to-start
+# exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK
+# exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
+
+exec swaync
+exec thunar --daemon
+
+# Tray opens up too late? #483
+# https://github.com/Alexays/Waybar/issues/483
+exec_always 'sleep 10; blueman-applet'
+exec 'sleep 10; gammastep-indicator'
+exec 'sleep 10; flameshot'
+exec 'sleep 10; keepassxc'
+exec 'sleep 10; nextcloud --background'
+
+exec swaymsg 'workspace 10; exec $term --title htops -e htop; workspace 1;'
diff --git a/.config/swaylock/config b/.config/swaylock/config
new file mode 100644
index 0000000..2163bea
--- /dev/null
+++ b/.config/swaylock/config
@@ -0,0 +1,169 @@
+# Swaylock
+#
+# Colors:
+# https://github.com/dracula/dracula-theme#color-palette
+#
+# Source:
+# https://github.com/arcticicestudio/nord/issues/132
+#
+# Reference:
+# https://github.com/swaywm/swaylock
+
+# Path to the config file
+# config=
+
+# Turn the screen into the given color instead of white
+color=282a36
+
+# Enable debugging output
+# debug
+
+# When an empty password is provided by the user, do not validate it
+ignore-empty-password
+
+# Show the number of failed authentication attempts on the indicator
+show-failed-attempts
+
+# Detach from the controlling terminal after locking
+# Note: this is the default behavior of i3lock
+daemonize
+
+# Display the given image
+# image [[