commit cd2608926c474902cc9577f7847dd5ad032f98cf
Author: mokou <mokou@posteo.de>
Date: Thu, 16 Apr 2020 20:57:15 +0200
Initial commit
Diffstat:
9 files changed, 1105 insertions(+), 0 deletions(-)
diff --git a/.chezmoiignore b/.chezmoiignore
diff --git a/dot_config/alacritty/alacritty.yml b/dot_config/alacritty/alacritty.yml
@@ -0,0 +1,560 @@
+# Configuration for Alacritty, the GPU enhanced terminal emulator.
+
+# 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: xterm-256color
+
+window:
+ # Window dimensions (changes require restart)
+ #
+ # Specified in number of columns/lines, not pixels.
+ # If both are `0`, this setting is ignored.
+ dimensions:
+ columns: 150
+ lines: 40
+
+ # 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: 10
+ y: 10
+
+ # Spread additional padding evenly around the terminal content.
+ dynamic_padding: true
+
+ # 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, but 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
+
+ # Window class (Linux only):
+ #class: Alacritty
+
+scrolling:
+ # Maximum number of lines in the scrollback buffer.
+ # Specifying '0' will disable scrolling.
+ history: 10000
+
+ # Number of lines the viewport will move for every line scrolled when
+ # scrollback is enabled (history > 0).
+ multiplier: 3
+
+# Font configuration (changes require restart)
+font:
+ # Normal (roman) font face
+ normal:
+ # Font family
+ #
+ # Default:
+ # - (macOS) Menlo
+ # - (Linux) monospace
+ # - (Windows) Consolas
+ family: Cozette
+
+ # 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: Cozette
+
+ # The `style` can be specified to pick a specific face.
+ #style: Bold
+
+ # Point size
+ #size: 13.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 upwards.
+ 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`
+ #
+ # macOS >= 10.14.x:
+ #
+ # If the font quality on non-retina display looks bad then set
+ # `use_thin_strokes` to `true` and enable font smoothing by running the
+ # following command:
+ # `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
+ #
+ # This is a global setting and will require a log out or restart to take
+ # effect.
+ use_thin_strokes: true
+
+# If `true`, bold text is drawn using the bright color variants.
+draw_bold_text_with_bright_colors: true
+
+colors:
+ # Default colors
+ primary:
+ background: '0x004043'
+ foreground: '0x069993'
+
+ # Normal colors
+ normal:
+ black: '0x24262a'
+ red: '0xa54242'
+ green: '0x8c9440'
+ yellow: '0xde935f'
+ blue: '0x5f819d'
+ magenta: '0x85678f'
+ cyan: '0x5e8d87'
+ white: '0x949494'
+
+ # Bright colors
+ bright:
+ black: '0x5f5f5f'
+ red: '0xcc6666'
+ green: '0xb5bd68'
+ yellow: '0xf0c674'
+ blue: '0x81a2be'
+ magenta: '0xb294bb'
+ cyan: '0x8abeb7'
+ white: '0xc5c8c6'
+
+
+# Visual Bell
+#
+# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
+# rung, the terminal background will be set to white and transition back to the
+# default background color. You can control the rate of this transition by
+# setting the `duration` property (represented in milliseconds). You can also
+# configure the transition function by setting the `animation` property.
+#
+# Values for `animation`:
+# - Ease
+# - EaseOut
+# - EaseOutSine
+# - EaseOutQuad
+# - EaseOutCubic
+# - EaseOutQuart
+# - EaseOutQuint
+# - EaseOutExpo
+# - EaseOutCirc
+# - Linear
+#
+# Specifying a `duration` of `0` will disable the visual bell.
+visual_bell:
+ animation: EaseOutExpo
+ duration: 0
+ color: '0xffffff'
+
+# 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
+
+# Mouse bindings
+#
+# Available fields:
+# - mouse
+# - action
+# - mods (optional)
+#
+# Values for `mouse`:
+# - Middle
+# - Left
+# - Right
+# - Numeric identifier such as `5`
+#
+# All available `mods` and `action` values are documented in the key binding
+# section.
+mouse_bindings:
+ - { mouse: Middle, action: PasteSelection }
+
+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
+
+ url:
+ # URL launcher
+ #
+ # This program is executed when clicking on a text which is recognized as a URL.
+ # The URL is always added to the command as the last parameter.
+ #
+ # When set to `None`, URL launching will be disabled completely.
+ #
+ # Default:
+ # - (macOS) open
+ # - (Linux) xdg-open
+ # - (Windows) explorer
+ #launcher:
+ # program: xdg-open
+ # args: []
+
+ # URL modifiers
+ #
+ # These are the modifiers that need to be held down for opening URLs when clicking
+ # on them. The available modifiers are documented in the key binding section.
+ modifiers: None
+
+selection:
+ semantic_escape_chars: ",│`|:\"' ()[]{}<>"
+
+ # When set to `true`, selected text will be copied to the primary clipboard.
+ save_to_clipboard: false
+
+# Allow terminal applications to change Alacritty's window title.
+dynamic_title: true
+
+cursor:
+ # Cursor style
+ #
+ # Values for `style`:
+ # - ▇ Block
+ # - _ Underline
+ # - | Beam
+ style: Block
+
+ # If this is `true`, the cursor will be rendered as a hollow box when the
+ # window is not focused.
+ unfocused_hollow: true
+
+# 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) user login shell
+# - (Windows) powershell
+#shell:
+# program: /bin/bash
+# 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
+
+# Windows 10 ConPTY backend (Windows only)
+#
+# This will enable better color support and may resolve other issues,
+# however this API and its implementation is still young and so is
+# disabled by default, as stability may not be as good as the winpty
+# backend.
+#
+# Alacritty will fall back to the WinPTY automatically if the ConPTY
+# backend cannot be initialized.
+enable_experimental_conpty_backend: false
+
+# Send ESC (\x1b) before characters when alt is pressed.
+alt_send_esc: true
+
+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`:
+ # - None
+ # - Error
+ # - Warn
+ # - Info
+ # - Debug
+ # - Trace
+ log_level: Warn
+
+ # Print all received window events.
+ print_events: false
+
+ # Record all characters and escape sequences as test data.
+ ref_test: false
+
+# Key bindings
+#
+# Key bindings are specified as a list of objects. Each binding will specify a
+# key and modifiers required to trigger it, terminal modes where the binding is
+# applicable, and what should be done when the key binding fires. It can either
+# send a byte sequence to the running application (`chars`), execute a
+# predefined action (`action`) or fork and execute a specified command plus
+# arguments (`command`).
+#
+# 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 `None` action.
+#
+# Example:
+# `- { key: V, mods: Control|Shift, action: Paste }`
+#
+# Available fields:
+# - key
+# - mods (optional)
+# - chars | action | command (exactly one required)
+# - mode (optional)
+#
+# Values for `key`:
+# - `A` -> `Z`
+# - `F1` -> `F12`
+# - `Key1` -> `Key0`
+#
+# A full list with available key codes can be found here:
+# https://docs.rs/glutin/*/glutin/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`
+#
+# Values for `mods`:
+# - Command
+# - Control
+# - Option
+# - Super
+# - Shift
+# - Alt
+#
+# Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
+# Whitespace and capitalization is relevant and must match the example.
+#
+# Values for `chars`:
+# 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.
+#
+# Values for `action`:
+# - Paste
+# - PasteSelection
+# - Copy
+# - IncreaseFontSize
+# - DecreaseFontSize
+# - ResetFontSize
+# - ScrollPageUp
+# - ScrollPageDown
+# - ScrollLineUp
+# - ScrollLineDown
+# - ScrollToTop
+# - ScrollToBottom
+# - ClearHistory
+# - Hide
+# - Quit
+# - ClearLogNotice
+# - SpawnNewInstance
+# - ToggleFullscreen
+# - None
+#
+# Values for `action` (macOS only):
+# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
+#
+# Values for `command`:
+# The `command` field must be a map containing a `program` string and
+# an `args` array of command line parameter strings.
+#
+# Example:
+# `command: { program: "alacritty", args: ["-e", "vttest"] }`
+#
+# Values for `mode`:
+# - ~AppCursor
+# - AppCursor
+# - ~AppKeypad
+# - AppKeypad
+key_bindings:
+ # (Windows/Linux only)
+ #- { key: V, mods: Control|Shift, action: Paste }
+ #- { key: C, mods: Control|Shift, action: Copy }
+ #- { key: Insert, mods: Shift, action: PasteSelection }
+ #- { key: Key0, mods: Control, action: ResetFontSize }
+ #- { key: Equals, mods: Control, action: IncreaseFontSize }
+ #- { key: Add, mods: Control, action: IncreaseFontSize }
+ #- { key: Subtract, mods: Control, action: DecreaseFontSize }
+ #- { key: Minus, mods: Control, action: DecreaseFontSize }
+ #- { key: Return, mods: Alt, action: ToggleFullscreen }
+
+ # (macOS only)
+ #- { key: Key0, mods: Command, action: ResetFontSize }
+ #- { key: Equals, mods: Command, action: IncreaseFontSize }
+ #- { key: Add, mods: Command, action: IncreaseFontSize }
+ #- { key: Minus, mods: Command, action: DecreaseFontSize }
+ #- { key: K, mods: Command, action: ClearHistory }
+ #- { key: K, mods: Command, chars: "\x0c" }
+ #- { key: V, mods: Command, action: Paste }
+ #- { key: C, mods: Command, action: Copy }
+ #- { key: H, mods: Command, action: Hide }
+ #- { key: Q, mods: Command, action: Quit }
+ #- { key: W, mods: Command, action: Quit }
+ #- { key: F, mods: Command|Control, action: ToggleFullscreen }
+
+ - { key: Paste, action: Paste }
+ - { key: Copy, action: Copy }
+ - { key: L, mods: Control, action: ClearLogNotice }
+ - { key: L, mods: Control, chars: "\x0c" }
+ - { key: Home, mods: Alt, chars: "\x1b[1;3H" }
+ - { key: Home, chars: "\x1bOH", mode: AppCursor }
+ - { key: Home, chars: "\x1b[H", mode: ~AppCursor }
+ - { key: End, mods: Alt, chars: "\x1b[1;3F" }
+ - { key: End, chars: "\x1bOF", mode: AppCursor }
+ - { key: End, chars: "\x1b[F", mode: ~AppCursor }
+ - { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
+ - { key: PageUp, mods: Shift, chars: "\x1b[5;2~", mode: Alt }
+ - { key: PageUp, mods: Control, chars: "\x1b[5;5~" }
+ - { key: PageUp, mods: Alt, chars: "\x1b[5;3~" }
+ - { key: PageUp, chars: "\x1b[5~" }
+ - { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
+ - { key: PageDown, mods: Shift, chars: "\x1b[6;2~", mode: Alt }
+ - { key: PageDown, mods: Control, chars: "\x1b[6;5~" }
+ - { key: PageDown, mods: Alt, chars: "\x1b[6;3~" }
+ - { key: PageDown, chars: "\x1b[6~" }
+ - { key: Tab, mods: Shift, chars: "\x1b[Z" }
+ - { key: Back, chars: "\x7f" }
+ - { key: Back, mods: Alt, chars: "\x1b\x7f" }
+ - { key: Insert, chars: "\x1b[2~" }
+ - { key: Delete, chars: "\x1b[3~" }
+ - { key: Left, mods: Shift, chars: "\x1b[1;2D" }
+ - { key: Left, mods: Control, chars: "\x1b[1;5D" }
+ - { key: Left, mods: Alt, chars: "\x1b[1;3D" }
+ - { key: Left, chars: "\x1b[D", mode: ~AppCursor }
+ - { key: Left, chars: "\x1bOD", mode: AppCursor }
+ - { key: Right, mods: Shift, chars: "\x1b[1;2C" }
+ - { key: Right, mods: Control, chars: "\x1b[1;5C" }
+ - { key: Right, mods: Alt, chars: "\x1b[1;3C" }
+ - { key: Right, chars: "\x1b[C", mode: ~AppCursor }
+ - { key: Right, chars: "\x1bOC", mode: AppCursor }
+ - { key: Up, mods: Shift, chars: "\x1b[1;2A" }
+ - { key: Up, mods: Control, chars: "\x1b[1;5A" }
+ - { key: Up, mods: Alt, chars: "\x1b[1;3A" }
+ - { key: Up, chars: "\x1b[A", mode: ~AppCursor }
+ - { key: Up, chars: "\x1bOA", mode: AppCursor }
+ - { key: Down, mods: Shift, chars: "\x1b[1;2B" }
+ - { key: Down, mods: Control, chars: "\x1b[1;5B" }
+ - { key: Down, mods: Alt, chars: "\x1b[1;3B" }
+ - { key: Down, chars: "\x1b[B", mode: ~AppCursor }
+ - { key: Down, chars: "\x1bOB", mode: AppCursor }
+ - { key: F1, chars: "\x1bOP" }
+ - { key: F2, chars: "\x1bOQ" }
+ - { key: F3, chars: "\x1bOR" }
+ - { key: F4, chars: "\x1bOS" }
+ - { key: F5, chars: "\x1b[15~" }
+ - { key: F6, chars: "\x1b[17~" }
+ - { key: F7, chars: "\x1b[18~" }
+ - { key: F8, chars: "\x1b[19~" }
+ - { key: F9, chars: "\x1b[20~" }
+ - { key: F10, chars: "\x1b[21~" }
+ - { key: F11, chars: "\x1b[23~" }
+ - { key: F12, chars: "\x1b[24~" }
+ - { key: F1, mods: Shift, chars: "\x1b[1;2P" }
+ - { key: F2, mods: Shift, chars: "\x1b[1;2Q" }
+ - { key: F3, mods: Shift, chars: "\x1b[1;2R" }
+ - { key: F4, mods: Shift, chars: "\x1b[1;2S" }
+ - { key: F5, mods: Shift, chars: "\x1b[15;2~" }
+ - { key: F6, mods: Shift, chars: "\x1b[17;2~" }
+ - { key: F7, mods: Shift, chars: "\x1b[18;2~" }
+ - { key: F8, mods: Shift, chars: "\x1b[19;2~" }
+ - { key: F9, mods: Shift, chars: "\x1b[20;2~" }
+ - { key: F10, mods: Shift, chars: "\x1b[21;2~" }
+ - { key: F11, mods: Shift, chars: "\x1b[23;2~" }
+ - { key: F12, mods: Shift, chars: "\x1b[24;2~" }
+ - { key: F1, mods: Control, chars: "\x1b[1;5P" }
+ - { key: F2, mods: Control, chars: "\x1b[1;5Q" }
+ - { key: F3, mods: Control, chars: "\x1b[1;5R" }
+ - { key: F4, mods: Control, chars: "\x1b[1;5S" }
+ - { key: F5, mods: Control, chars: "\x1b[15;5~" }
+ - { key: F6, mods: Control, chars: "\x1b[17;5~" }
+ - { key: F7, mods: Control, chars: "\x1b[18;5~" }
+ - { key: F8, mods: Control, chars: "\x1b[19;5~" }
+ - { key: F9, mods: Control, chars: "\x1b[20;5~" }
+ - { key: F10, mods: Control, chars: "\x1b[21;5~" }
+ - { key: F11, mods: Control, chars: "\x1b[23;5~" }
+ - { key: F12, mods: Control, chars: "\x1b[24;5~" }
+ - { key: F1, mods: Alt, chars: "\x1b[1;6P" }
+ - { key: F2, mods: Alt, chars: "\x1b[1;6Q" }
+ - { key: F3, mods: Alt, chars: "\x1b[1;6R" }
+ - { key: F4, mods: Alt, chars: "\x1b[1;6S" }
+ - { key: F5, mods: Alt, chars: "\x1b[15;6~" }
+ - { key: F6, mods: Alt, chars: "\x1b[17;6~" }
+ - { key: F7, mods: Alt, chars: "\x1b[18;6~" }
+ - { key: F8, mods: Alt, chars: "\x1b[19;6~" }
+ - { key: F9, mods: Alt, chars: "\x1b[20;6~" }
+ - { key: F10, mods: Alt, chars: "\x1b[21;6~" }
+ - { key: F11, mods: Alt, chars: "\x1b[23;6~" }
+ - { key: F12, mods: Alt, chars: "\x1b[24;6~" }
+ - { key: F1, mods: Super, chars: "\x1b[1;3P" }
+ - { key: F2, mods: Super, chars: "\x1b[1;3Q" }
+ - { key: F3, mods: Super, chars: "\x1b[1;3R" }
+ - { key: F4, mods: Super, chars: "\x1b[1;3S" }
+ - { key: F5, mods: Super, chars: "\x1b[15;3~" }
+ - { key: F6, mods: Super, chars: "\x1b[17;3~" }
+ - { key: F7, mods: Super, chars: "\x1b[18;3~" }
+ - { key: F8, mods: Super, chars: "\x1b[19;3~" }
+ - { key: F9, mods: Super, chars: "\x1b[20;3~" }
+ - { key: F10, mods: Super, chars: "\x1b[21;3~" }
+ - { key: F11, mods: Super, chars: "\x1b[23;3~" }
+ - { key: F12, mods: Super, chars: "\x1b[24;3~" }
+ - { key: NumpadEnter, chars: "\n" }
diff --git a/dot_config/fish/executable_config.fish b/dot_config/fish/executable_config.fish
@@ -0,0 +1,94 @@
+# Convenience function for only setting PATH if the specified directory exists
+function setpath
+ test -e $argv[1]; and set PATH $argv[1] $PATH
+end
+
+if test -z "$XDG_RUNTIME_DIR"
+ set -x XDG_RUNTIME_DIR "/tmp/$USER-runtime-dir"
+ if test ! -e "$XDG_RUNTIME_DIR"
+ mkdir "$XDG_RUNTIME_DIR"
+ chmod 0700 "$XDG_RUNTIME_DIR"
+ end
+end
+
+# PATH adjustment
+setpath ~/.rbenv/shims
+setpath ~/.rbenv/bin
+setpath ~/.cargo/bin
+setpath ~/.nimble/bin
+setpath ~/.local/bin
+setpath ~/n/bin
+setpath ~/.bin
+setpath ~/.cask/bin
+setpath ~/.npm-packages/bin
+setpath ~/.n/bin
+setpath /snap/bin
+setpath ~/.emacs.d/bin
+setpath ~/Library/Python/3.7/bin
+setpath /opt/texlive/2019/bin/x86_64-linux
+
+# Source private stuff
+source ~/.config/fish/private.fish
+
+# Environment variables
+set -x EDITOR "vim"
+set -x USER "lu"
+set -x SHELL /usr/bin/fish
+set -x TERM xterm-256color
+set -x N_PREFIX ~/n
+set -x GTK_IM_MODULE ibus
+set -x XMODIFIERS @im=ibus
+set -x QT_IM_MODULE ibus
+set -x GLFW_IM_MODULE ibus
+set -x LANG en_US.UTF-8
+set -x LC_ALL en_US.UTF-8
+set -x LANGUAGE en_US.UTF-8
+set -x RUST_SRC_PATH (rustc --print sysroot)/lib/rustlib/src/rust/src
+set -x XDG_CURRENT_DESKTOP Unity
+
+# General Aliases
+alias editconfig "chezmoi edit ~/.config/fish/config.fish; and chezmoi apply; and source ~/.config/fish/config.fish"
+alias j "z"
+alias jo "zo"
+alias be "bundle exec"
+alias doc "docker-compose"
+alias rp "rustup"
+alias ca "cargo"
+alias mkt "cd (mktemp -d)"
+alias y "sudo zypper"
+alias czm "chezmoi"
+# Git Aliases
+alias g "git"
+alias gs "g status --short"
+alias gl "g log --color --graph --abbrev-commit --oneline"
+alias gqp "g add --all; and g commit; and g push"
+alias gqc "g add --all; and g commit"
+alias gpl "g pull"
+alias gps "g push"
+alias gc "g commit"
+alias gaa "g add --all"
+alias gco "g checkout"
+alias gse "g send-email"
+alias wip "g add --all; and g commit -m WIP"
+alias squish "gs; and g commit -a --amend -C HEAD"
+# Mercurial Aliases
+alias h "hg"
+alias ha "hg addremove"
+alias hc "hg commit"
+alias hps "hg push"
+alias hp "hg push"
+alias hpl "hg pull"
+alias hs "hg status"
+alias hl "hg log"
+
+# Aliases that overwrite other, existing commands
+if command --search hub > /dev/null do
+ alias git "hub"
+end
+
+if command --search exa > /dev/null do
+ alias ls "exa"
+end
+
+# Initialize Shell
+eval (starship init fish)
diff --git a/dot_config/fish/executable_fishfile b/dot_config/fish/executable_fishfile
@@ -0,0 +1,2 @@
+jethrokuan/z
+jorgebucaran/fish-nvm
diff --git a/dot_config/sway/config b/dot_config/sway/config
@@ -0,0 +1,147 @@
+############
+## VARIABLES
+############
+
+# Modifier key, here we use the Meta/Windows key
+set $mod Mod4
+
+# Movement keys
+set $left h
+set $down j
+set $up k
+set $right l
+
+# Your preferred terminal editor
+set $term alacritty
+
+# Your preferred app launcher
+set $menu rofi -show drun
+
+#############
+## APPEARANCE
+#############
+
+# Wallpaper
+#output * bg ~/mokou.jpg fill
+
+# Borders
+default_border pixel 1
+default_floating_border none
+smart_borders on
+
+# Font
+font Cozette 11
+
+# Focus
+# class border backgr. text indicator child_border
+client.focused #004043 #004043 #ffffff #069993 #069993
+client.focused_inactive #004043 #004043 #ffffff #004043 #004043
+client.unfocused #004043 #004043 #888888 #004043 #004043
+
+# gaps
+gaps inner 10
+gaps outer 10
+
+# Hide cursor after a while (10 secs)
+seat seat0 hide_cursor 10000
+
+##############
+## KEYBINDINGS
+##############
+
+# Start a terminal
+bindsym $mod+Return exec $term
+
+# Start Emacs
+bindsym $mod+Shift+Return exec emacs
+
+# Kill focused window
+bindsym $mod+Shift+q kill
+
+# Start the program launcher
+bindsym $mod+space exec $menu
+
+# Start the emoji selector
+bindsym $mod+Shift+space exec rofi -show emoji -modi emoji
+
+# Drag floating windows with the mouse
+floating_modifier $mod normal
+
+# Reload the config file
+bindsym $mod+Shift+c reload
+
+# Exit sway
+bindsym $mod+Shift+e exec swaynag -t warning -m 'Do you want to exit sway?' -b 'Yes, exit' 'swaymsg exit'
+
+# change focus
+bindsym $mod+$left focus left
+bindsym $mod+$down focus down
+bindsym $mod+$up focus up
+bindsym $mod+$right focus right
+
+# Move focused window
+bindsym $mod+Shift+$left move left
+bindsym $mod+Shift+$down move down
+bindsym $mod+Shift+$up move up
+bindsym $mod+Shift+$right move right
+
+# Switch to workspace
+bindsym $mod+1 workspace 1
+bindsym $mod+2 workspace 2
+bindsym $mod+3 workspace 3
+bindsym $mod+4 workspace 4
+
+# Move to workspace
+bindsym $mod+Shift+1 move container to workspace 1
+bindsym $mod+Shift+2 move container to workspace 2
+bindsym $mod+Shift+3 move container to workspace 3
+bindsym $mod+Shift+4 move container to workspace 4
+
+# Split screen
+bindsym $mod+b splith
+bindsym $mod+v splitv
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# Fullscreen current container
+bindsym $mod+f fullscreen
+
+# Switch between tiling and floating for current container
+bindsym $mod+Shift+d floating toggle
+
+# Switch between tiling area and floating area
+bindsym $mod+d focus mode_toggle
+
+# Screenshots
+bindsym $mod+p exec slurp | grim -t png -c -g - ~/screenshot.png
+bindsym $mod+Shift+p exec grim -t png -c ~/screenshot.png
+
+# Volume
+bindsym XF86AudioMute exec pamixer -t
+bindsym XF86AudioRaiseVolume exec pamixer -i 5
+bindsym XF86AudioLowerVolume exec pamixer -d 5
+
+# Lock
+bindsym $mod+Shift+o exec swaylock -f -C ~/.config/swaylock/config
+
+#######
+## Idle
+#######
+
+exec swayidle -w timeout 1800 'swaylock -f -C ~/.config/swaylock/config' \
+ timeout 2000 'swaymsg "output * dmps off"' \
+ resume 'swaymsg "output * dpms on"' \
+ before-sleep 'swaylock -f -C ~/.config/swaylock/config'
+
+################
+## Exec on start
+################
+
+# Notifications
+exec mako
+
+# Bar
+exec waybar
diff --git a/dot_config/swaylock/config b/dot_config/swaylock/config
@@ -0,0 +1,14 @@
+color=004043
+
+indicator-radius=100
+indicator-thickness=7
+
+effect-blur=7x5
+
+ring-color=069993
+ring-ver-color=069993
+ring-wrong-color=ff5370
+ring-clear-color=f78c6c
+
+key-hl-color=89ddff
+separator-color=00000000
diff --git a/dot_config/waybar/config b/dot_config/waybar/config
@@ -0,0 +1,102 @@
+{
+ "layer": "top",
+ "height": 20,
+ "modules-left": ["sway/workspaces", "sway/mode", "custom/media"],
+ "modules-center": ["sway/window"],
+ "modules-right": ["pulseaudio", "cpu", "memory", "temperature", "battery", "clock", "tray"],
+ // Modules configuration
+ "sway/workspaces": {
+ "disable-scroll": true,
+ "all-outputs": true,
+ "format": "{name}: {icon}",
+ "format-icons": {
+ "1": "",
+ "2": "",
+ "3": "",
+ "4": "",
+ "5": "",
+ "urgent": "",
+ "focused": "",
+ "default": ""
+ }
+ },
+ "sway/mode": {
+ "format": "<span style=\"italic\">{}</span>"
+ },
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": "",
+ "deactivated": ""
+ }
+ },
+ "tray": {
+ // "icon-size": 21,
+ "spacing": 10
+ },
+ "clock": {
+ "tooltip": "{:%Y-%m-%d}",
+ "format": "{:%H:%M} ",
+ "format-alt": "{:%Y-%m-%d}"
+ },
+ "cpu": {
+ "format": "{usage}% ",
+ "tooltip": false
+ },
+ "memory": {
+ "format": "{}% "
+ },
+ "temperature": {
+ // "thermal-zone": 2,
+ // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
+ "critical-threshold": 80,
+ // "format-critical": "{temperatureC}°C {icon}",
+ "format": "{temperatureC}°C {icon}",
+ "format-icons": ["", "", ""]
+ },
+ "battery": {
+ "states": {
+ // "good": 95,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{capacity}% {icon}",
+ "format-charging": "{capacity}% ",
+ "format-plugged": "{capacity}% ",
+ "format-alt": "{time} {icon}",
+ // "format-good": "", // An empty format will hide the module
+ // "format-full": "",
+ "format-icons": ["", "", "", "", ""]
+ },
+ "battery#bat2": {
+ "bat": "BAT2"
+ },
+ "network": {
+ // "interface": "wlp2*", // (Optional) To force the use of this interface
+ "format-wifi": "{essid} ({signalStrength}%) 直",
+ "format-ethernet": "{ifname}: {ipaddr}/{cidr}",
+ "format-linked": "{ifname} (No IP)",
+ "format-disconnected": "Disconnected 睊",
+ "format-alt": "{ifname}: {ipaddr}/{cidr}"
+ },
+ "pulseaudio": {
+ // "scroll-step": 1, // %, can be a float
+ "format": "{volume}% {icon}",
+ "format-bluetooth": "{volume}% {icon} {format_source}",
+ "format-bluetooth-muted": " {icon} {format_source}",
+ "format-muted": " {format_source}",
+ "format-source": "{volume}% ",
+ "format-source-muted": "",
+ "format-icons": {
+ "headphones": "",
+ "handsfree": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
+ },
+ "on-click": "st -e pulsemixer"
+ }
+}
+
diff --git a/dot_config/waybar/style.css b/dot_config/waybar/style.css
@@ -0,0 +1,175 @@
+* {
+ border: none;
+ border-radius: 0;
+ /* `otf-font-awesome` is required to be installed for icons */
+ font-family: Cozette, monospace;
+ font-size: 11px;
+ min-height: 0;
+}
+
+window#waybar {
+ background-color: #004043;
+ border-bottom: 3px solid #004043;
+ color: #069993;
+ transition-property: background-color;
+ transition-duration: .5s;
+}
+
+window#waybar.hidden {
+ opacity: 0.2;
+}
+
+/*
+window#waybar.empty {
+ background-color: transparent;
+}
+window#waybar.solo {
+ background-color: #FFFFFF;
+}
+*/
+
+#workspaces button {
+ padding: 0 5px;
+ background-color: #004043;
+ color: #069993;
+ border-bottom: 3px solid #004043;
+}
+
+/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+#workspaces button:hover {
+ background: rgba(0, 0, 0, 0.2);
+ box-shadow: inherit;
+ border-bottom: 3px solid #ffffff;
+}
+
+#workspaces button.focused {
+ background-color: #004043;
+ color: #fff;
+}
+
+#workspaces button.urgent {
+ background-color: #004043;
+ color: navy;
+ border-bottom: 3px solid #004043;
+}
+
+#mode {
+ background-color: #004043;
+ border-bottom: 3px solid #004043;
+}
+
+#clock,
+#battery,
+#cpu,
+#memory,
+#temperature,
+#backlight,
+#network,
+#pulseaudio,
+#custom-media,
+#tray,
+#mode,
+#idle_inhibitor,
+#mpd {
+ padding: 0 10px;
+ margin: 0 4px;
+ color: #ffffff;
+}
+
+#clock {
+ background-color: #004043;
+ color: #fff;
+
+}
+
+#battery {
+ background-color: #ffffff;
+ color: #000000;
+}
+
+#battery.charging {
+ color: #ffffff;
+ background-color: #26A65B;
+}
+
+@keyframes blink {
+ to {
+ background-color: #ffffff;
+ color: #000000;
+ }
+}
+
+#battery.critical:not(.charging) {
+ background-color: #f53c3c;
+ color: #ffffff;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+label:focus {
+ background-color: #000000;
+}
+
+#cpu {
+ background-color: #004043;
+ color: #fff;
+}
+
+#memory {
+ background-color: #004043;
+ color: #fff;
+}
+
+#backlight {
+ background-color: #004043;
+ color: #fff;
+}
+
+#network {
+ background-color: #004043;
+ color: #fff;
+}
+
+#network.disconnected {
+ background-color: #004043;
+ color: #fff;
+}
+
+#pulseaudio {
+ background-color: #004043;
+ color: #fff;
+}
+
+#pulseaudio.muted {
+ background-color: #004043;
+ color: #fff;
+}
+
+#temperature {
+ background-color: #004043;
+ color: #fff;
+}
+
+#temperature.critical {
+ background-color: #004043;
+ color: #fff;
+}
+
+#tray {
+ background-color: #004043;
+ color: #fff;
+}
+
+#idle_inhibitor {
+ background-color: #004043;
+ color: #fff;
+}
+
+#idle_inhibitor.activated {
+ background-color: #004043;
+ color: #fff;
+}
+
diff --git a/dot_gitconfig b/dot_gitconfig
@@ -0,0 +1,11 @@
+[user]
+ name = mokou
+ email = mokou@posteo.de
+[core]
+ editor = vim
+[push]
+ default = simple
+[pull]
+ rebase = true
+[rebase]
+ autoStash = true