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 [[]:] + +# Display the current xkb layout while typing +show-keyboard-layout + +# Force hiding the current xkb layout while typing, even if more than one layout +# is configured or the show-keyboard-layout option is set +# hide-keyboard-layout + +# Disable the Caps Lock Text +# disable-caps-lock-text + +# Show the current Caps Lock state also on the indicator +# indicator-caps-lock + +# Image scaling mode: 'stretch', 'fill', 'fit', 'center', 'tile' & 'solid\color' +# scaling + +# Same as scaling=tile +# tiling + +# Disable the unlock indicator +# no-unlock-indicator + +# Sets the color of backspace highlight segments +bs-hl-color=ff79c6 + +# Sets the color of backspace highlight segments when Caps Lock is active +caps-lock-bs-hl-color=ffb86c + +# Sets the color of the key press highlight segments when Caps Lock is active +caps-lock-key-hl-color=f1fa8c + +# Sets the font of the text +font=SF Pro Display + +# FUTURE RELEASE +# Sets a fixed font size for the indicator text +# font-size= + +# FUTURE RELEASE +# Sets the indicator to show even if idle +indicator-idle-visible + +# Sets the indicator radius (default: 50) +indicator-radius=120 + +# Sets the indicator thickness (default: 10) +indicator-thickness=18 + +# FUTURE RELEASE +# Sets the horizontal position of the indicator +# indicator-x-position + +# FUTURE RELEASE +# Sets the vertical position of the indicator +# indicator-y-position + +# Sets the color of the inside of the indicator +inside-color=282a36 + +# Sets the color of the inside of the indicator when cleared +inside-clear-color=8be9fd + +# Sets the color of the inside of the indicator when Caps Lock is active +# inside-caps-lock-color= + +# Sets the color of the inside of the indicator when verifying +inside-ver-color=6272a4 + +# Sets the color of the inside of the indicator when invalid +inside-wrong-color=ff5555 + +# Sets the color of key press highlight segments +key-hl-color=50fa7b + +# Sets the background color of the box containing the layout text +layout-bg-color=282a36 + +# Sets the color of the border of the box containing the layout text +# layout-border-color= + +# Sets the color of the layout text +# layout-text-color= + +# Sets the color of the line between the inside and ring +# line-color= + +# Sets the color of the line between the inside and ring when cleared +# line-clear-color= + +# Sets the color of the line between the inside and ring when Caps Lock is active +# line-caps-lock-color= + +# Sets the color of the line between the inside and ring when verifying +# line-ver-color= + +# Sets the color of the line between the inside and ring when invalid +# line-wrong-color= + +# Use the inside color for the line between the inside and ring +# line-uses-inside + +# Use the ring color for the line between the inside and ring +line-uses-ring + +# Sets the color of the outside of the indicator when typing or idle +ring-color=44475a + +# Sets the color of the outside of the indicator when cleared +ring-clear-color=8be9fd + +# Sets the color of the ring of the indicator when Caps Lock is active +# ring-caps-lock-color= + +# Sets the color of the outside of the indicator when verifying +ring-ver-color=8be9fd + +# Sets the color of the outside of the indicator when invalid +ring-wrong-color=ffb86c + +# Sets the color of the lines that separate highlight segments +separator-color=44475a + +# Sets the color of the text +text-color=f8f8f2 + +# Sets the color of the text when cleared +text-clear-color=44475a + +# Sets the color of the text when Caps Lock is active +# text-caps-lock-color= + +# Sets the color of the text when verifying +text-ver-color=44475a + +# Sets the color of the text when invalid +text-wrong-color=44475a diff --git a/.config/systemd/user/gnome-keyring-daemon.service.d/override.conf b/.config/systemd/user/gnome-keyring-daemon.service.d/override.conf new file mode 100644 index 0000000..5afc5c1 --- /dev/null +++ b/.config/systemd/user/gnome-keyring-daemon.service.d/override.conf @@ -0,0 +1,15 @@ +# [Unit] +# Description=GNOME Keyring daemon + +# Requires=gnome-keyring-daemon.socket + +[Service] +# Type=simple +# StandardError=journal +ExecStart= +ExecStart=/usr/bin/gnome-keyring-daemon --foreground --components="pkcs11,ssh,secrets" --control-directory=%t/keyring +# Restart=on-failure + +[Install] +# Also=gnome-keyring-daemon.socket +# WantedBy=default.target diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs new file mode 100644 index 0000000..9615a9c --- /dev/null +++ b/.config/user-dirs.dirs @@ -0,0 +1,15 @@ +# This file is written by xdg-user-dirs-update +# If you want to change or add directories, just edit the line you're +# interested in. All local changes will be retained on the next run. +# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped +# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an +# absolute path. No other format is supported. +# +XDG_DESKTOP_DIR="$HOME/desktop" +XDG_DOCUMENTS_DIR="$HOME/documents" +XDG_DOWNLOAD_DIR="$HOME/downloads" +XDG_MUSIC_DIR="$HOME/music" +XDG_PICTURES_DIR="$HOME/photos" +XDG_PUBLICSHARE_DIR="$HOME/" +XDG_TEMPLATES_DIR="$HOME/" +XDG_VIDEOS_DIR="$HOME/videos" diff --git a/.config/wofi/style.css b/.config/wofi/style.css new file mode 100644 index 0000000..58e27ba --- /dev/null +++ b/.config/wofi/style.css @@ -0,0 +1,39 @@ +window { +margin: 0px; +border: 1px solid #bd93f9; +background-color: #282a36; +} + +#input { +margin: 5px; +border: none; +color: #f8f8f2; +background-color: #44475a; +} + +#inner-box { +margin: 5px; +border: none; +background-color: #282a36; +} + +#outer-box { +margin: 5px; +border: none; +background-color: #282a36; +} + +#scroll { +margin: 0px; +border: none; +} + +#text { +margin: 5px; +border: none; +color: #f8f8f2; +} + +#entry:selected { +background-color: #44475a; +} diff --git a/.config/wofi/wofi.config b/.config/wofi/wofi.config new file mode 100644 index 0000000..2fe8a56 --- /dev/null +++ b/.config/wofi/wofi.config @@ -0,0 +1,16 @@ +# https://hg.sr.ht/~scoopta/wofi +# https://manpages.ubuntu.com/manpages/impish/man5/wofi.5.html +dmenu +show=drun +width=800 +location=2 +yoffset=200 +gtk_dark=true +lines=10 +exec_search=true +no_actions=true +allow_images=true +allow_markup=true +insensitive=true +sort_order=alphabetical +prompt= diff --git a/.fehbg b/.fehbg deleted file mode 100755 index 7a7bcbe..0000000 --- a/.fehbg +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -feh --no-fehbg --bg-scale "$HOME/wallpaper.jpg" diff --git a/.gtkrc-2.0 b/.gtkrc-2.0 new file mode 100644 index 0000000..b43f9d3 --- /dev/null +++ b/.gtkrc-2.0 @@ -0,0 +1,18 @@ +# DO NOT EDIT! This file will be overwritten by LXAppearance. +# Any customization should be done in ~/.gtkrc-2.0.mine instead. + +include "/home/scwerner/.gtkrc-2.0.mine" +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-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-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle="hintfull" diff --git a/.kopiaignore b/.kopiaignore new file mode 100644 index 0000000..e8abf08 --- /dev/null +++ b/.kopiaignore @@ -0,0 +1,55 @@ +# Personal +builds/ +containers/ +downloads/ +storage/ + +# History +.bash_history +.local/share/Trash +.local/share/gvfs-metadata +.zsh_history +apps/.trash +lost+found +Thumbs.db + +# NextCloud Sync +*sync_*.db* +.config/Nextcloud/logs + +# Caching +**/.cache +**/Cache +**/CacheStorage +**/cache +**/tmp + +# Browser +.config/chromium +.mozilla + +# Package managers +.cargo +.go +.lein +.m2 +.npm +.nvm +.pyenv +.rustup +.yarn +node_modules + +# Developement +.eggs +.git +.local/share/JetBrains +.mypy_cache +.tox +.travis +__pycache__ +_pytest +test-sdist +venv +venvs +virtualenv diff --git a/.xinitrc b/.xinitrc deleted file mode 100644 index f20bc9d..0000000 --- a/.xinitrc +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -userresources=$HOME/.Xresources -usermodmap=$HOME/.Xmodmap -sysresources=/etc/X11/xinit/.Xresources -sysmodmap=/etc/X11/xinit/.Xmodmap - -# merge in defaults and keymaps - -if [ -f $sysresources ]; then - xrdb -merge $sysresources -fi - -if [ -f $sysmodmap ]; then - xmodmap $sysmodmap -fi - -if [ -f "$userresources" ]; then - xrdb -merge "$userresources" -fi - -if [ -f "$usermodmap" ]; then - xmodmap "$usermodmap" -fi - -if [ -d /etc/X11/xinit/xinitrc.d ] ; then - for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do - [ -x "$f" ] && . "$f" - done - unset f -fi - -# If you do not use a desktop environment, add the folliwing -[[ -f ~/.Xresources ]] && xrdb -merge -I$HOME ~/.Xresources - -# Start i3 window manager -exec i3 -V >> ~/.config/i3/logs/i3log-$(date +'%F-%k-%M-%S') 2>&1 - -# Set desktop background: https://wiki.archlinux.org/index.php/Feh -sh ~/.fehbg & diff --git a/.zprofile b/.zprofile index 0df3d19..e135d5d 100644 --- a/.zprofile +++ b/.zprofile @@ -1,11 +1,10 @@ #!/bin/zsh # shellcheck shell=bash -if dircolors_path="$(type -p "dircolors")" || [[ -z $dircolors_path ]]; then - eval $(dircolors -b $HOME/.dircolors) || eval $(dircolors -b) -fi - -[ "$XDG_CURRENT_DESKTOP" = "KDE" ] || [ "$XDG_CURRENT_DESKTOP" = "GNOME" ] || export QT_QPA_PLATFORMTHEME="qt5ct" - +# Enable auto-activation of pyenv # https://github.com/pyenv/pyenv/#installation -eval "$(pyenv init --path)" +# eval "$(pyenv init --path)" + +if [ "$(tty)" = "/dev/tty1" ] ; then + exec sway +fi diff --git a/.zshenv b/.zshenv index 6262201..34fab92 100644 --- a/.zshenv +++ b/.zshenv @@ -4,11 +4,13 @@ export GOPATH="$HOME/.go" export NVM_DIR="$HOME/.nvm" export PYENV_ROOT="$HOME/.pyenv" +export JETBRAIN_TOOLBOX="$HOME/.local/share/JetBrains/Toolbox/scripts" typeset -U PATH path path=( "$PYENV_ROOT/bin" "$GOPATH/bin" + "$JETBRAIN_TOOLBOX" "/usr/local/bin" "$HOME/.local/bin" "$HOME/bin" @@ -17,11 +19,10 @@ path=( export PATH # Load local user environment variables -if [ -f "$HOME/.local_env" ]; then - source "$HOME/.local_env" +if [ -f "$HOME/.zshenv_local" ]; then + source "$HOME/.zshenv_local" fi - # Prevent duplicate output of python virtualenv # https://github.com/spaceship-prompt/spaceship-prompt/issues/19#issuecomment-345917827 export VIRTUAL_ENV_DISABLE_PROMPT=true diff --git a/.zshrc b/.zshrc index 91106af..c1b9063 100644 --- a/.zshrc +++ b/.zshrc @@ -55,12 +55,12 @@ SPACESHIP_PROMPT_ORDER=( conda # conda virtualenv section pyenv # Pyenv section dotnet # .NET section - ember # Ember.js section + #ember # Ember.js section kubectl # Kubectl context section terraform # Terraform workspace section line_sep # Line break #battery # Battery level and status - vi_mode # Vi-mode indicator + #vi_mode # Vi-mode indicator char # Prompt character ) # SPACESHIP_RPROMPT_ORDER=( @@ -161,6 +161,10 @@ setopt share_history # share command history data # Which plugins would you like to load? # Standard plugins can be found in ~/.oh-my-zsh/plugins/* # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ +# +# Enable Dracula syntax highlighting colors +# https://draculatheme.com/zsh-syntax-highlighting +source "$HOME/themes/dracula-theme/themes/zsh-syntax-highlighting/zsh-syntax-highlighting.sh" plugins=( colored-man-pages docker @@ -171,7 +175,7 @@ plugins=( pip pyenv safe-paste - ssh-agent + # ssh-agent sudo vscode zsh-autosuggestions @@ -221,7 +225,7 @@ function mv() { } # Load shared and local user aliases -for alias_path in "$HOME/.aliases" "$HOME/.local_aliases"; do +for alias_path in "$HOME/.aliases" "$HOME/.aliases_local"; do if [ -f $alias_path ]; then source $alias_path fi @@ -230,7 +234,8 @@ done # Enable auto-activation of pyenv virtualenvs # https://github.com/pyenv/pyenv-virtualenv#installing-as-a-pyenv-plugin if command -v pyenv 1>/dev/null 2>&1; then - eval "$(pyenv init --path)" + eval "$(pyenv init -)" + # eval "$(pyenv init --path)" fi # Automatically load node version found in .nvmrc @@ -256,4 +261,3 @@ add-zsh-hook chpwd load-nvmrc load-nvmrc test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh" - diff --git a/backup-external.zsh b/backup-external.zsh deleted file mode 100755 index afc40e2..0000000 --- a/backup-external.zsh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/zsh -# shellcheck shell=bash - -export BORG_REPO="/run/media/swerner/BACKUP/$(hostname)" - -info() { printf "\n%s %s\n\n" "$( date )" "$*" >&2; } -trap "echo $( date ) Backup interrupted >&2; exit 2" INT TERM - -if [ -z "$BORG_PASSPHRASE" ]; then - echo -n 'Repo passphrase:' - read -s BORG_PASSPHRASE - export BORG_PASSPHRASE - echo -fi - -info "Starting backup" - -borg create \ - --stats \ - --verbose \ - --filter AME \ - --list \ - --show-rc \ - --compression zstd,15 \ - --exclude-caches \ - --exclude-nodump \ - --exclude-from $HOME/.borg-exclude \ - \ - ::'{hostname}-{now}' \ - "${HOME}" \ - -backup_exit=$? - -info "Pruning repository" - -borg prune \ - --verbose \ - --list \ - --prefix '{hostname}-' \ - --show-rc \ - --keep-daily 7 \ - --keep-weekly 4 \ - --keep-monthly 6 \ - -prune_exit=$? - -# use highest exit code as global exit code -global_exit=$(( backup_exit > prune_exit ? backup_exit : prune_exit )) - -if [ ${global_exit} -eq 0 ]; then - info "Backup and Prune finished successfully" -elif [ ${global_exit} -eq 1 ]; then - info "Backup and/or Prune finished with warnings" -else - info "Backup and/or Prune finished with errors" -fi - -exit ${global_exit} diff --git a/backup.sh b/backup.sh new file mode 100755 index 0000000..a3c6e7a --- /dev/null +++ b/backup.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +# shellcheck shell=bash +# +# Recreate local and remote repo - https://github.com/kopia/kopia/issues/2007 +# 1. kopia repository create filesystem --path= +# 2. kopia repository sync-to b2 --bucket= --key-id= --key= +# +# Mount snapshot +# 1. + +set -e +trap 'echo "Command filed with exit code $?."' EXIT + +PHYSICAL_REPO="/run/media/scwerner/BACKUP-01/scwerner/tinkerframe/repo" +B2_BUCKET_NAME="tinkerframe-backup" + +echo "Checking if ${PHYSICAL_REPO} is mounted." +if [ ! -d "$PHYSICAL_REPO" ]; then + echo "${PHYSICAL_REPO} not found, exiting!" + exit 1 +fi + +# Prompt for repository password +if [ -z "$KOPIA_PASSWORD" ]; then + read -sp 'Repo passphrase: ' KOPIA_PASSWORD + echo + export KOPIA_PASSWORD +fi + +# Create snapshot on external +echo "Creating snapshot at ${PHYSICAL_REPO}." +kopia snapshot create $HOME + +# Sycncing snapshot to cloud storage +echo "Syncing backup to Backblaze B2 Cloud Storage." +read -sp 'Backblaze B2 Key ID: ' b2_key_id +echo +read -sp 'Backblaze B2 Key: ' b2_key +echo +kopia repository sync-to b2 \ + --bucket=tinkerframe-backup \ + --key-id=$b2_key_id \ + --key=$b2_key \ + --must-exist \ + --delete + +kopia content stats