From e3bbee81de559c1b4dea7a83d46da3b4e00cc2a8 Mon Sep 17 00:00:00 2001 From: la-ninpre Date: Mon, 12 Jul 2021 16:27:52 +0300 Subject: move to GNU stow approach on managing dotfiles --- .bash_profile | 11 - .bashrc | 54 -- .config/alacritty/alacritty.yml | 808 ---------------------------- .config/moc/config | 690 ------------------------ .config/moc/keymap | 188 ------- .config/moc/themes/laninpre_theme | 38 -- .config/nvim/after/ftplugin/python.vim | 26 - .config/nvim/after/ftplugin/yaml.vim | 1 - .config/nvim/ftdetect/pikchr.vim | 1 - .config/nvim/init.vim | 156 ------ .config/nvim/syntax/pikchr.vim | 93 ---- .config/starship.toml | 16 - .gitmodules | 4 +- .local/bin/fossil-update | 95 ---- .local/bin/keylookup | 8 - .local/bin/mocpnotify | 11 - .local/bin/nimi_sewi | 10 - .local/bin/paperbackup | 165 ------ .local/bin/print_codes | 97 ---- .local/bin/rand | 18 - .xmonad | 1 - alacritty/.config/alacritty/alacritty.yml | 808 ++++++++++++++++++++++++++++ bash/.bash_profile | 11 + bash/.bashrc | 54 ++ bin/.local/bin/fossil-update | 95 ++++ bin/.local/bin/keylookup | 8 + bin/.local/bin/nimi_sewi | 10 + bin/.local/bin/paperbackup | 165 ++++++ bin/.local/bin/print_codes | 97 ++++ bin/.local/bin/rand | 18 + moc/.config/moc/config | 690 ++++++++++++++++++++++++ moc/.config/moc/keymap | 188 +++++++ moc/.config/moc/themes/laninpre_theme | 38 ++ moc/.local/bin/mocpnotify | 11 + nvim/.config/nvim/after/ftplugin/python.vim | 26 + nvim/.config/nvim/after/ftplugin/yaml.vim | 1 + nvim/.config/nvim/ftdetect/pikchr.vim | 1 + nvim/.config/nvim/init.vim | 156 ++++++ nvim/.config/nvim/syntax/pikchr.vim | 93 ++++ starship/.config/starship.toml | 16 + xmonad/.xmonad | 1 + 41 files changed, 2489 insertions(+), 2489 deletions(-) delete mode 100644 .bash_profile delete mode 100644 .bashrc delete mode 100644 .config/alacritty/alacritty.yml delete mode 100644 .config/moc/config delete mode 100644 .config/moc/keymap delete mode 100644 .config/moc/themes/laninpre_theme delete mode 100644 .config/nvim/after/ftplugin/python.vim delete mode 100644 .config/nvim/after/ftplugin/yaml.vim delete mode 100644 .config/nvim/ftdetect/pikchr.vim delete mode 100644 .config/nvim/init.vim delete mode 100644 .config/nvim/syntax/pikchr.vim delete mode 100644 .config/starship.toml delete mode 100755 .local/bin/fossil-update delete mode 100755 .local/bin/keylookup delete mode 100755 .local/bin/mocpnotify delete mode 100755 .local/bin/nimi_sewi delete mode 100755 .local/bin/paperbackup delete mode 100755 .local/bin/print_codes delete mode 100755 .local/bin/rand delete mode 160000 .xmonad create mode 100644 alacritty/.config/alacritty/alacritty.yml create mode 100644 bash/.bash_profile create mode 100644 bash/.bashrc create mode 100755 bin/.local/bin/fossil-update create mode 100755 bin/.local/bin/keylookup create mode 100755 bin/.local/bin/nimi_sewi create mode 100755 bin/.local/bin/paperbackup create mode 100755 bin/.local/bin/print_codes create mode 100755 bin/.local/bin/rand create mode 100644 moc/.config/moc/config create mode 100644 moc/.config/moc/keymap create mode 100644 moc/.config/moc/themes/laninpre_theme create mode 100755 moc/.local/bin/mocpnotify create mode 100644 nvim/.config/nvim/after/ftplugin/python.vim create mode 100644 nvim/.config/nvim/after/ftplugin/yaml.vim create mode 100644 nvim/.config/nvim/ftdetect/pikchr.vim create mode 100644 nvim/.config/nvim/init.vim create mode 100644 nvim/.config/nvim/syntax/pikchr.vim create mode 100644 starship/.config/starship.toml create mode 160000 xmonad/.xmonad diff --git a/.bash_profile b/.bash_profile deleted file mode 100644 index 27b8539..0000000 --- a/.bash_profile +++ /dev/null @@ -1,11 +0,0 @@ -# -# ~/.bash_profile -# - -export PATH="${PATH}:$HOME/.gem/ruby/2.7.0/bin:$HOME/.local/bin" -export EDITOR="nvim" -export TERMINAL="alacritty" -export BROWSER="brave" -export TESSDATA_PREFIX=/usr/share/tessdata - -[[ -f ~/.bashrc ]] && . ~/.bashrc diff --git a/.bashrc b/.bashrc deleted file mode 100644 index 0fe0b47..0000000 --- a/.bashrc +++ /dev/null @@ -1,54 +0,0 @@ -# -# ~/.bashrc -# - -# If not running interactively, don't do anything -[[ $- != *i* ]] && return - -# vi mode -set -o vi - -# aliases -alias ls='ls --color=auto --group-directories-first' -alias ll='ls -lAh' -alias cat='bat -p' -alias mocp='mocp -M "~/.config/moc"' -alias ssh='TERM=rxvt ssh' # fix alacritty term issues -alias ..='cd ..' - -# see https://www.atlassian.com/git/tutorials/dotfiles -# and https://youtu.be/tBoLDpTWVOM -alias config='/usr/bin/git --git-dir=$HOME/Documents/dotfiles --work-tree=$HOME' - -alias brc='nvim ~/.bashrc && source ~/.bashrc' -alias vrc='nvim ~/.config/nvim/init.vim' - -alias v='nvim' -alias fsl='fossil' - -PS1='[\u@\h \W]\$ ' - -# use gpg authentication key for ssh auth -SSH_AUTH_SOCK=$( gpgconf --list-dirs agent-ssh-socket ) -export SSH_AUTH_SOCK -gpgconf --launch gpg-agent - -# fzf bindings and tweaks -source /usr/share/fzf/key-bindings.bash -source /usr/share/fzf/completion.bash -export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git' -# shellcheck disable=SC2016 -export FZF_CTRL_T_COMMAND='$FZF_DEFAULT_COMMAND' - -FOSSILS_HOME=$HOME/Documents/Fossils -export FOSSILS_HOME - -# quickly cd into fossil repo -fslcd() { - _fsl_checkout=$(fossil all ls -c | fzf +m) - cd "$_fsl_checkout" || return -} - -# starship prompt -eval "$(starship init bash)" - diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml deleted file mode 100644 index 046c97c..0000000 --- a/.config/alacritty/alacritty.yml +++ /dev/null @@ -1,808 +0,0 @@ -# Configuration for Alacritty, the GPU enhanced terminal emulator. - -# Import additional configuration files -# -# These configuration files will be loaded in order, replacing values in files -# loaded earlier with those loaded later in the chain. The file itself will -# always be loaded last. -#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 - -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: 7 - y: 7 - - # 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, but no title bar buttons - decorations: none - - # Startup Mode (changes require restart) - # - # Values for `startup_mode`: - # - Windowed - # - Maximized - # - Fullscreen - # - # Values for `startup_mode` (macOS only): - # - SimpleFullscreen - startup_mode: Maximized - - # 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: JetBrains Mono - - # The `style` can be specified to pick a specific face. - style: Medium - - # 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: JetBrains Mono - - # 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: JetBrains Mono - - # 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: JetBrains Mono - - # The `style` can be specified to pick a specific face. - style: Bold Italic - - # Point size - size: 11.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 - -# manual-rbow -colors: - # Default colors - primary: - background: '#19191a' - foreground: '#cadcde' - - # Normal colors - normal: - black: '#393838' - red: '#c74444' - green: '#7f9848' - yellow: '#d7a06d' - blue: '#4e96d5' - magenta: '#bc5fa7' - cyan: '#55b795' - white: '#c3b2f7' - - # Bright colors - bright: - black: '#5a514b' - red: '#ed7c68' - green: '#c7ea76' - yellow: '#ffdb9d' - blue: '#a6d5fe' - magenta: '#edbbe9' - cyan: '#7fe2c5' - white: '#e2d6ff' - -# old-theme (hybrid by w0ng) -# colors: -# # Default colors -# primary: -# background: '0x1d1f21' -# foreground: '0xc5c8c6' -# -# # Normal colors -# normal: -# black: '#282a2e' -# red: '#a54242' -# green: '#8c9440' -# yellow: '#de935f' -# blue: '#5f819d' -# magenta: '#85678f' -# cyan: '#5e8d87' -# white: '#707880' -# -# # Bright colors -# bright: -# black: '#373b41' -# red: '#cc6666' -# green: '#b5bd68' -# yellow: '#f0c674' -# blue: '#81a2be' -# magenta: '#b294bb' -# cyan: '#8abeb7' -# white: '#c5c8c6' - -# 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 and 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 and CellBackground, which reference the - # affected cell, or hexadecimal colors like #ff00ff. - #vi_mode_cursor: - # text: CellBackground - # cursor: CellForeground - - # Selection colors - # - # Colors which should be used to draw the selection area. - # - # Allowed values are CellForeground and CellBackground, which reference the - # affected cell, or hexadecimal colors like #ff00ff. - #selection: - # text: CellBackground - # background: CellForeground - - # Search colors - # - # Colors used for the search bar and match highlighting. - #search: - # Allowed values are CellForeground and CellBackground, which reference the - # affected cell, or hexadecimal colors like #ff00ff. - #matches: - # foreground: '#000000' - # background: '#ffffff' - - #bar: - # background: '#c5c8c6' - # foreground: '#1d1f21' - - # 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: false - -#cursor: - # Cursor style - # - # Values for `style`: - # - ▇ Block - # - _ Underline - # - | Beam - #style: Block - - # 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 - - # 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: /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 - -# WinPTY backend (Windows only) -# -# Alacritty defaults to using the newer ConPTY backend if it is available, -# since it resolves a lot of bugs and is quite a bit faster. If it is not -# available, the WinPTY backend will be used instead. -# -# Setting this option to `true` makes Alacritty use the legacy WinPTY backend, -# even if the ConPTY backend is available. -#winpty_backend: false - -# 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 - - #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 `launcher: None`, URL launching will be disabled completely. - # - # Default: - # - (macOS) open - # - (Linux/BSD) 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 - -# 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 -# -# (`mode: Vi` only): -# - Open -# Open URLs at the cursor location with the launcher configured in `url.launcher`. -# - Up -# Move the vi mode cursor up by one line. -# - Down -# Move the vi mode cursor down by one line. -# - Left -# Move the vi mode cursor left by one character. -# - Right -# Move the vi mode cursor right by one character. -# - First -# Move the vi mode cursor to the start of the line, searching across newlines if it is already at the beginning. -# - Last -# Move the vi mode cursor to the end of the line, searching across newlines if it is already at the end. -# - FirstOccupied -# Move the vi mode cursor to the first non-empty cell in this line, searching across newlines if it is already at the first one. -# - High -# Move the vi mode cursor to the top of the screen. -# - Middle -# Move the vi mode cursor to the middle of the screen. -# - Low -# Move the vi mode cursor to the bottom of the screen. -# - SemanticLeft -# Move the vi mode cursor to the start of the previous semantically separated word. -# - SemanticRight -# Move the vi mode cursor to the start of the next semantically separated word. -# - SemanticLeftEnd -# Move the vi mode cursor to the end of the previous semantically separated word. -# - SemanticRightEnd -# Move the vi mode cursor to the end of the next semantically separated word. -# - WordLeft -# Move the vi mode cursor to the start of the previous whitespace separated word. -# - WordRight -# Move the vi mode cursor to the start of the next whitespace separated word. -# - WordLeftEnd -# Move the vi mode cursor to the end of the previous whitespace separated word. -# - WordRightEnd -# Move the vi mode cursor to the end of the next whitespace separated word. -# - Bracket -# Move the vi mode cursor to the next character that matches the bracket at the cursor's -# current location. -# - ToggleNormalSelection -# - ToggleLineSelection -# - ToggleBlockSelection -# - ToggleSemanticSelection -# Toggle semantic selection based on `selection.semantic_escape_chars`. -# - SearchNext -# Jump to the beginning of the next match. -# - SearchPrevious -# Jump to the beginning of the previous match. -# - SearchStart -# Jump to the next start of a match to the left of the vi mode cursor. -# - SearchEnd -# Jump to the next end of a match to the left of the vi mode cursor. -# -# (macOS only): -# - ToggleSimpleFullscreen -# Enter fullscreen without occupying another space. -# -# (Linux/BSD only): -# - 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 -# - 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: - #- { key: Paste, action: Paste } - #- { key: Copy, action: Copy } - #- { key: L, mods: Control, action: ClearLogNotice } - #- { key: L, mods: Control, mode: ~Vi, 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: Vi, action: ScrollToBottom } - #- { key: Space, mods: Shift|Control, action: ToggleViMode } - #- { key: Escape, mode: Vi, action: ClearSelection } - #- { key: I, mode: Vi, action: ScrollToBottom } - #- { key: I, mode: Vi, action: ToggleViMode } - #- { key: C, mods: Control, mode: Vi, action: ToggleViMode } - #- { key: Y, mods: Control, mode: Vi, action: ScrollLineUp } - #- { key: E, mods: Control, mode: Vi, action: ScrollLineDown } - #- { key: G, mode: Vi, action: ScrollToTop } - #- { key: G, mods: Shift, mode: Vi, action: ScrollToBottom } - #- { key: B, mods: Control, mode: Vi, action: ScrollPageUp } - #- { key: F, mods: Control, mode: Vi, action: ScrollPageDown } - #- { key: U, mods: Control, mode: Vi, action: ScrollHalfPageUp } - #- { key: D, mods: Control, mode: Vi, action: ScrollHalfPageDown } - #- { key: Y, mode: Vi, action: Copy } - #- { key: Y, mode: Vi, action: ClearSelection } - #- { key: Copy, mode: Vi, action: ClearSelection } - #- { key: V, mode: Vi, action: ToggleNormalSelection } - #- { key: V, mods: Shift, mode: Vi, action: ToggleLineSelection } - #- { key: V, mods: Control, mode: Vi, action: ToggleBlockSelection } - #- { key: V, mods: Alt, mode: Vi, action: ToggleSemanticSelection } - #- { key: Return, mode: Vi, action: Open } - #- { key: K, mode: Vi, action: Up } - #- { key: J, mode: Vi, action: Down } - #- { key: H, mode: Vi, action: Left } - #- { key: L, mode: Vi, action: Right } - #- { key: Up, mode: Vi, action: Up } - #- { key: Down, mode: Vi, action: Down } - #- { key: Left, mode: Vi, action: Left } - #- { key: Right, mode: Vi, action: Right } - #- { key: Key0, mode: Vi, action: First } - #- { key: Key4, mods: Shift, mode: Vi, action: Last } - #- { key: Key6, mods: Shift, mode: Vi, action: FirstOccupied } - #- { key: H, mods: Shift, mode: Vi, action: High } - #- { key: M, mods: Shift, mode: Vi, action: Middle } - #- { key: L, mods: Shift, mode: Vi, action: Low } - #- { key: B, mode: Vi, action: SemanticLeft } - #- { key: W, mode: Vi, action: SemanticRight } - #- { key: E, mode: Vi, action: SemanticRightEnd } - #- { key: B, mods: Shift, mode: Vi, action: WordLeft } - #- { key: W, mods: Shift, mode: Vi, action: WordRight } - #- { key: E, mods: Shift, mode: Vi, action: WordRightEnd } - #- { key: Key5, mods: Shift, mode: Vi, action: Bracket } - #- { key: Slash, mode: Vi, action: SearchForward } - #- { key: Slash, mods: Shift, mode: Vi, action: SearchBackward } - #- { key: N, mode: Vi, action: SearchNext } - #- { key: N, mods: Shift, mode: Vi, action: SearchPrevious } - - # (Windows, Linux, and BSD only) - #- { key: V, mods: Control|Shift, action: Paste } - #- { key: C, mods: Control|Shift, action: Copy } - #- { key: F, mods: Control|Shift, action: SearchForward } - #- { key: B, mods: Control|Shift, action: SearchBackward } - #- { key: C, mods: Control|Shift, mode: Vi, 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, chars: "\x0c" } - #- { 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: K, mods: Command, action: ClearHistory } - #- { key: V, mods: Command, action: Paste } - #- { key: C, mods: Command, action: Copy } - #- { key: C, mods: Command, mode: Vi, action: ClearSelection } - #- { key: H, mods: Command, action: Hide } - #- { 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, action: SearchForward } - #- { key: B, mods: Command, 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`: - # - None - # - Error - # - Warn - # - Info - # - Debug - # - Trace - #log_level: Warn - - # Print all received window events. - #print_events: false diff --git a/.config/moc/config b/.config/moc/config deleted file mode 100644 index 4f66516..0000000 --- a/.config/moc/config +++ /dev/null @@ -1,690 +0,0 @@ -# This is a configuration file for the MOC player. It should be named -# 'config' and placed in the ~/.moc directory. As this file can specify -# commands which invoke other applications, MOC will refuse to start if it -# is not owned by either root or the current user, or if it is writable by -# anyone other than its owner. All options are given with their default -# values, and therefore commented. - -# Comments begin with '#'. -# You can use quotes and escape ('\') in parameters. -# -# You can have variable values substituted by enclosing the variable name -# as "${...}". (This only applies to the portion of the option following -# the '='.) Variables are substituted first from the environment then, -# if not found, from the configuration options. (Note that the value of -# a configuration option substituted is that which it has at the time the -# substitution variable is encountered.) If there is a naming conflict -# between an environment and configuration variable, you may be able to -# resolve it by using lowercase as the environment variable matches are -# case-sensitive whereas the configuration variables are not. -# -# You can also use the form "${...:-...}" where the value in the second -# position will be substituted if the variable name given in the first -# position is unset or null. -# -# So, for example: -# -# MusicDir = /music/${USER:-public} -# Fastdir1 = ${MusicDir}/mp3/rock -# Fastdir2 = ${MusicDir}/mp3/electronic -# Fastdir3 = ${MusicDir}/mp3/rap -# Fastdir4 = ${MusicDir}/mp3/etc -# -# Variable names are limited to those accepted by the BASH shell; that -# is, those comprising the upper- and lowercase ASCII characters, digits -# and the underscore. -# -# If you need to use the "${" sequence for any other purpose, write "$${" -# and it will be replaced by "${" and not treated as a substitution. -# -# Some options take lists of strings as their values. The strings are -# separated by colons. Additional strings can be appended to the list -# using "+=" in place of a plain "=" to assign the value. For an example, -# see the XTerms option. -# -# You can override any configuration option when you run MOC using the -# '-O' command line option: -# -# mocp -O AutoNext=no -O messagelingertime=1 -O XTerms+=xxt:xwt -# -# This command line option can be repeated as many times as needed and -# the configuration option name is not case sensitive. (Note that MOC -# does not perform variable substitution on the value of such overridden -# configuration options.) Most option values are set before the -# configuration file is processed (which allows the new values to be -# picked up by substitutions), however list-valued options are overridden -# afterwards (which gives the choice of whether the configured values are -# replaced or added to). - -# Remember that the client and server are separate processes and the -# server will retain the configuration values formed from the environment -# within which it was originally started. - -# Show file titles (title, author, album) instead of file names? -#ReadTags = yes - -# In which directory do you store your music files? If you specify it -# you will be able to jump straight to this directory with the '-m' -# parameter or the 'm' command. This can also point to a playlist. -# -# Example: MusicDir = "/home/joe/music" -# -MusicDir = "/home/aaoth/Music" - -# Start in the music directory by default? If set to 'no', start -# in the current directory by default. A single directory on -# the command line takes precedence. -StartInMusicDir = yes - -# How to sort? FileName is the option's only value for now. -#Sort = FileName - -# Show errors in the streams (for example, broken frames in MP3 files)? -#ShowStreamErrors = no - -# Ignore CRC errors in MP3 files? Most players do that, so the default -# value is 'yes'. -#MP3IgnoreCRCErrors = yes - -# Set playback toggles. -#Repeat = no -#Shuffle = no -#AutoNext = yes - -# Default FormatString: -# -# %n - Track number -# %a - Artist -# %A - Album -# %t - Title -# %(X:TRUE:FALSE) - Ternary expression: if X exists, do TRUE, -# otherwise FALSE. The escape character must -# be doubled (i.e., '\\'). (See zshmisc -# documentation for more information.) -# -#FormatString = "%(n:%n :)%(a:%a - :)%(t:%t:)%(A: \(%A\):)" - -# Input and output buffer sizes (in kilobytes). -#InputBuffer = 512 # Minimum value is 32KB -#OutputBuffer = 512 # Minimum value is 128KB - -# How much to fill the input buffer before playing (in kilobytes)? -# This can't be greater than the value of InputBuffer. While this has -# a positive effect for network streams, it also causes the broadcast -# audio to be delayed. -#Prebuffering = 64 - -# Use this HTTP proxy server for internet streams. If not set, the -# environment variables http_proxy and ALL_PROXY will be used if present. -# -# Format: HTTPProxy = PROXY_NAME:PORT -# -#HTTPProxy = - -# Sound driver - OSS, ALSA, JACK, SNDIO (on OpenBSD) or null (only for -# debugging). You can enter more than one driver as a colon-separated -# list. The first working driver will be used. -SoundDriver = JACK:ALSA - -# Jack output settings. -JackClientName = "moc" -JackStartServer = no -JackOutLeft = "system:playback_1" -JackOutRight = "system:playback_2" - -# OSS output settings. -#OSSDevice = /dev/dsp -#OSSMixerDevice = /dev/mixer -#OSSMixerChannel1 = pcm # 'pcm', 'master' or 'speaker' -#OSSMixerChannel2 = master # 'pcm', 'master' or 'speaker' - -# ALSA output settings. If you need to dump the audio produced by MOC -# to a file for diagnostic purposes, the following setting of 'ALSADevice' -# should do that: -# -# ALSADevice=tee:hw,'/tmp/out.wav',wav -# -#ALSADevice = default -#ALSAMixer1 = PCM -#ALSAMixer2 = Master - -# Under some circumstances on 32-bit systems, audio played continously -# for long periods of time may begin to stutter. Setting this option to -# 'yes' will force MOC to avoid ALSA's dmix resampling and prevent this -# stutter. But it also has other implications: -# -# - You may experience unacceptably high CPU load. -# - ALSA's resampler plug-ins will not be used. -# - The resampling may be of lower quality than ALSA would provide. -# - You may need to try different "ResampleMethod" option settings. -# - The "ForceSampleRate" option may be ineffective. -# - If libsamplerate is not configured, many audios may be unplayable. -# -#ALSAStutterDefeat = no - -# Save software mixer state? -# If enabled, a file 'softmixer' will be created in '~/.moc/' storing the -# mixersetting set when the server is shut down. -# Note that there is a "hidden" 'Amplification' setting in that file. -# Amplification (0-200) is used to scale the mixer setting (0-100). This -# results in a higher signal amplitude but may also produce clipping. -#Softmixer_SaveState = yes - -# Save equalizer state? -# If enabled, a file 'equalizer' will be created in '~/.moc/' storing the -# equalizer settings when the server is shut down. -# Note that there is a "hidden" 'Mixin' setting in that file. -# Mixin (0.0-1.0) is used to determine how much of the original signal is -# used after equalizing. 0 means to only use the equalized sound, while 1 -# effectively disabled the mixer. The default is 0.25. -#Equalizer_SaveState = yes - -# Show files with dot at the beginning? -#ShowHiddenFiles = no - -# Hide file name extensions? -#HideFileExtension = no - -# Show file format in menu? -#ShowFormat = yes - -# Show file time in menu? Possible values: 'yes', 'no' and 'IfAvailable' -# (meaning show the time only when it is already known, which often works -# faster). -#ShowTime = IfAvailable - -# Show time played as a percentage in the time progress bar. -#ShowTimePercent = no - -# Values of the TERM environment variable which are deemed to be managed by -# screen(1). If you are setting a specific terminal using screen(1)'s -# '-T ' option, then you will need to add 'screen.' to this list. -# Note that this is only a partial test; the value of the WINDOW environment -# variable must also be a number (which screen(1) sets). -#ScreenTerms = screen:screen-w:vt100 - -# Values of the TERM environment variable which are deemed to be xterms. If -# you are using MOC within screen(1) under an xterm, then add screen(1)'s -# TERM setting here as well to cause MOC to update the xterm's title. -#XTerms = xterm -#XTerms += xterm-colour:xterm-color -#XTerms += xterm-256colour:xterm-256color -#XTerms += rxvt:rxvt-unicode -#XTerms += rxvt-unicode-256colour:rxvt-unicode-256color -#XTerms += eterm - -# Theme file to use. This can be absolute path or relative to -# /usr/share/moc/themes/ (depends on installation prefix) or -# ~/.moc/themes/ . -# -# Example: Theme = laras_theme -# -Theme = laninpre_theme - -# The theme used when running on an xterm. -# -# Example: XTermTheme = transparent-background -# -#XTermTheme = - -# Should MOC try to autoload the default lyrics file for an audio? (The -# default lyrics file is a text file with the same file name as the audio -# file name with any trailing "extension" removed.) -#AutoLoadLyrics = yes - -# MOC directory (where pid file, socket and state files are stored). -# You can use ~ at the beginning. -MOCDir = ~/.config/moc - -# Use mmap() to read files. mmap() is much slower on NFS. -#UseMMap = no - -# Use MIME to identify audio files. This can make for slower loading -# of playlists but is more accurate than using "extensions". -#UseMimeMagic = no - -# Assume this encoding for ID3 version 1/1.1 tags (MP3 files). Unlike -# ID3v2, UTF-8 is not used here and MOC can't guess how tags are encoded. -# Another solution is using librcc (see the next option). This option is -# ignored if UseRCC is set to 'yes'. -#ID3v1TagsEncoding = WINDOWS-1250 - -# Use librcc to fix ID3 version 1/1.1 tags encoding. -#UseRCC = yes - -# Use librcc to filenames and directory names encoding. -#UseRCCForFilesystem = yes - -# When this option is set the player assumes that if the encoding of -# ID3v2 is set to ISO-8859-1 then the ID3v1TagsEncoding is actually -# that and applies appropriate conversion. -#EnforceTagsEncoding = no - -# Enable the conversion of filenames from the local encoding to UTF-8. -#FileNamesIconv = no - -# Enable the conversion of the xterm title from UTF-8 to the local encoding. -#NonUTFXterm = no - -# Should MOC precache files to assist gapless playback? -#Precache = yes - -# Remember the playlist after exit? -#SavePlaylist = yes - -# When using more than one client (interface) at a time, do they share -# the playlist? -#SyncPlaylist = yes - -# Choose a keymap file (relative to '~/.moc/' or using an absolute path). -# An annotated example keymap file is included ('keymap.example'). -# -# Example: Keymap = my_keymap -# -Keymap = keymap - -# Use ASCII rather than graphic characters for drawing lines. This -# helps on some terminals. -#ASCIILines = no - -# FastDirs, these allow you to jump directly to a directory, the key -# bindings are in the keymap file. -# -# Examples: Fastdir1 = /mp3/rock -# Fastdir2 = /mp3/electronic -# Fastdir3 = /mp3/rap -# Fastdir4 = /mp3/etc -# -#Fastdir1 = -#Fastdir2 = -#Fastdir3 = -#Fastdir4 = -#Fastdir5 = -#Fastdir6 = -#Fastdir7 = -#Fastdir8 = -#Fastdir9 = -#Fastdir10 = - -# How fast to seek (in number of seconds per keystroke). The first -# option is for normal seek and the second for silent seek. -#SeekTime = 1 -#SilentSeekTime = 5 - -# PreferredDecoders allows you to specify which decoder should be used -# for any given audio format. It is a colon-separated list in which -# each entry is of the general form 'code(decoders)', where 'code' -# identifies the audio format and 'decoders' is a comma-separated list -# of decoders in order of preference. -# -# The audio format identifier may be either a filename extension or a -# MIME media type. If the latter, the format is 'type/subtype' (e.g., -# 'audio/flac'). Because different systems may give different MIME -# media types, any 'x-' prefix of the subtype is ignored both here and -# in the actual file MIME type (so all combinations of 'audio/flac' and -# 'audio/x-flac' match each other). -# -# For Internet streams the matching is done on MIME media type and on -# actual content. For files the matches are made on MIME media type -# (if the 'UseMimeMagic' option is set) and on filename extension. The -# MIME media type of a file is not determined until the first entry for -# MIME is encountered in the list. -# -# The matching is done in the order of appearance in the list with any -# entries added from the command line being matched before those listed -# here. Therefore, if you place all filename extension entries before -# all MIME entries you will speed up MOC's processing of directories -# (which could be significant for remote file systems). -# -# The decoder list may be empty, in which case no decoders will be used -# for files (and files with that audio format ignored) while Internet -# streams will be assessed on the actual content. Any decoder position -# may contain an asterisk, in which case any decoder not otherwise listed -# which can handle the audio format will be used. It is not an error to -# list the same decoder twice, but neither does it make sense to do so. -# -# If you have a mix of audio and non-audio files in your directories, you -# may wish to include entries at top of the list which ignore non-audio -# files by extension. -# -# In summary, the PreferredDecoders option provides fine control over the -# type of matching which is performed (filename extension, MIME media -# type and streamed media content) and which decoder(s) (if any) are used -# based on the option's list entries and their ordering. -# -# Examples: aac(aac,ffmpeg) first try FAAD2 for AACs then FFmpeg -# mp3() ignore MP3 files -# wav(*,sndfile) use sndfile for WAV as a last resort -# ogg(vorbis,*):flac(flac,*) try Xiph decoders first -# ogg():audio/ogg() ignore OGG files, and -# force Internet selection by content -# gz():html() ignore some non-audio files -# -# Any unspecified audio formats default to trying all decoders. -# Any unknown (or misspelt) drivers are ignored. -# All names are case insensitive. -# The default setting reflects the historical situation modified by -# the experience of users. -# -#PreferredDecoders = aac(aac,ffmpeg):m4a(ffmpeg) -#PreferredDecoders += mpc(musepack,*,ffmpeg):mpc8(musepack,*,ffmpeg) -#PreferredDecoders += sid(sidplay2):mus(sidplay2) -#PreferredDecoders += wav(sndfile,*,ffmpeg) -#PreferredDecoders += wv(wavpack,*,ffmpeg) -#PreferredDecoders += audio/aac(aac):audio/aacp(aac):audio/m4a(ffmpeg) -#PreferredDecoders += audio/wav(sndfile,*) - -# The following PreferredDecoders attempt to handle the ambiguity surrounding -# container types such as OGG for files. The first two entries will force -# a local file to the correct decoder (assuming the .ogg file contains Vorbis -# audio), while the MIME media types will cause Internet audio streams to -# be assessed on content (which may be either Vorbis or Speex). -# -#PreferredDecoders += ogg(vorbis,ffmpeg):oga(vorbis,ffmpeg):ogv(ffmpeg) -#PreferredDecoders += opus(ffmpeg) -#PreferredDecoders += spx(speex) -#PreferredDecoders += application/ogg(vorbis):audio/ogg(vorbis) - -# Which resampling method to use. There are a few methods of resampling -# sound supported by libresamplerate. The default is 'Linear') which is -# also the fastest. A better description can be found at: -# -# http://www.mega-nerd.com/libsamplerate/api_misc.html#Converters -# -# but briefly, the following methods are based on bandlimited interpolation -# and are higher quality, but also slower: -# -# SincBestQuality - really slow (I know you probably have an xx GHz -# processor, but it's still not enough to not see -# this in the top output :) The worst case -# Signal-to-Noise Ratio is 97dB. -# SincMediumQuality - much faster. -# SincFastest - the fastest bandlimited interpolation. -# -# And these are lower quality, but much faster methods: -# -# ZeroOrderHold - really poor quality, but it's really fast. -# Linear - a bit better and a bit slower. -# -#ResampleMethod = Linear - -# Always use this sample rate (in Hz) when opening the audio device (and -# resample the sound if necessary). When set to 0 the device is opened -# with the file's rate. -#ForceSampleRate = 0 - -# By default, even if the sound card reports that it can output 24bit samples -# MOC converts 24bit PCM to 16bit. Setting this option to 'yes' allows MOC -# to use 24bit output. (The MP3 decoder, for example, uses this format.) -# This is disabled by default because there were reports that it prevents -# MP3 files from playing on some soundcards. -#Allow24bitOutput = no - -# Use realtime priority for output buffer thread. This will prevent gaps -# while playing even with heavy load. The user who runs MOC must have -# permissions to set such a priority. This could be dangerous, because it -# is possible that a bug in MOC will freeze your computer. -#UseRealtimePriority = no - -# The number of audio files for which MOC will cache tags. When this limit -# is reached, file tags are discarded on a least recently used basis (with -# one second resolution). You can disable the cache by giving it a size of -# zero. Note that if you decrease the cache size below the number of items -# currently in the cache, the number will not decrease immediately (if at -# all). -#TagsCacheSize = 256 - -# Number items in the playlist. -#PlaylistNumbering = yes - -# Main window layouts can be configured. You can change the position and -# size of the menus (directory and playlist). You have three layouts and -# can switch between then using the 'l' key (standard mapping). By default, -# only two layouts are configured. -# -# The format is as follows: -# -# - Each layout is described as a list of menu entries. -# - Each menu entry is of the form: -# -# menu(position_x, position_y, width, height) -# -# where 'menu' is either 'directory' or 'playlist'. -# - The parameters define position and size of the menu. They can -# be absolute numbers (like 10) or a percentage of the screen size -# (like 45%). -# - 'width' and 'height' can have also value of 'FILL' which means -# fill the screen from the menu's position to the border. -# - Menus may overlap. -# -# You must describe at least one menu (default is to fill the whole window). -# There must be at least one layout (Layout1) defined; others can be empty. -# -# Example: Layout1 = playlist(50%,50%,50%,50%) -# Layout2 = "" -# Layout3 = "" -# -# Just one layout, the directory will occupy the whole -# screen, the playlist will have 1/4 of the screen size -# and be positioned at lower right corner. (Note that -# because the playlist will be hidden by the directory -# you will have to use the TAB key to make the playlist -# visible.) -# -# Example: Layout1 = playlist(0,0,100%,10):directory(0,10,100%,FILL) -# -# The screen is split into two parts: playlist at the top -# and the directory menu at the bottom. Playlist will -# occupy 10 lines and the directory menu the rest. -# -#Layout1 = directory(0,0,50%,100%):playlist(50%,0,FILL,100%) -#Layout2 = directory(0,0,100%,100%):playlist(0,0,100%,100%) -#Layout3 = "" - -# When the song changes, should the menu be scrolled so that the currently -# played file is visible? -#FollowPlayedFile = yes - -# What to do if the interface was started and the server is already playing -# something from the playlist? If CanStartInPlaylist is set to 'yes', the -# interface will switch to the playlist. When set to 'no' it will start -# from the last directory. -#CanStartInPlaylist = yes - -# Executing external commands (1 - 10) invoked with key commands (F1 - F10 -# by default). -# -# Some arguments are substituted before executing: -# -# %f - file path -# %i - title made from tags -# %S - start block mark (in seconds) -# %E - end block mark (in seconds) -# -# Data from tags can also be substituted: -# -# %t - title -# %a - album -# %r - artist -# %n - track -# %m - time of the file (in seconds) -# -# The parameters above apply to the currently selected file. If you change -# them to capital letters, they are taken from the file currently playing. -# -# Programs are run using execv(), not a shell, so you can't do things like -# redirecting the output to a file. The command string is split using blank -# characters as separators; the first element is the command to be executed -# and the rest are its parameters, so if you use "echo Playing: %I" we run -# program 'echo' (from $PATH) with 2 parameters: the string 'Playing:' and -# the title of the file currently playing. Even if the title contains -# spaces, it's still one parameter and it's safe if it contains `rm -rf /`. -# -# Examples: ExecCommand1 = "cp %f /mnt/usb_drive" -# ExecCommand2 = "/home/joe/now_playing %I" -# -#ExecCommand1 = -#ExecCommand2 = -#ExecCommand3 = -#ExecCommand4 = -#ExecCommand5 = -#ExecCommand6 = -#ExecCommand7 = -#ExecCommand8 = -#ExecCommand9 = -#ExecCommand10 = - -# Display the cursor in the line with the selected file. Some braille -# readers (the Handy Tech modular series ZMU 737, for example) use the -# cursor to focus and can make use of it to present the file line even -# when other fields are changing. -#UseCursorSelection = no - -# Set the terminal title when running under xterm. -#SetXtermTitle = yes - -# Set the terminal title when running under screen(1). If MOC can detect -# that it is running under screen(1), then it will set an appropriate -# title (see description of ScreenTerms above). However, if multiple -# levels of screen management are involved, detection might fail and this -# could cause a screen upset. In that situation you can use this option -# to force screen titles off. -#SetScreenTitle = yes - -# Display full paths instead of just file names in the playlist. -#PlaylistFullPaths = yes - -# The following setting describes how block markers are displayed in -# the play time progress bar. Its value is a string of exactly three -# characters. The first character is displayed in a position which -# corresponds to the time marked as the start of a block and the last -# character to the time marked as the end of the block. The middle -# character is displayed instead if both the start and the end of the block -# would fall in the same position (within the resolution of the interface). -# You can turn off the displaying of these block marker positions by using -# three space characters. -#BlockDecorators = "`\"'" - -# How long (in seconds) to leave a message displayed on the screen. -# Setting this to a high value allows you to scroll through the messages -# using the 'hide_message' key. Setting it to zero means you'll have to -# be quick to see any message at all. Any new messages will be queued up -# and displayed after the current message's linger time expires. -#MessageLingerTime = 3 - -# Does MOC display a prefix on delayed messages indicating -# the number of queued messages still to be displayed? -#PrefixQueuedMessages = yes - -# String to append to the queued message count if any -# error messages are still waiting to be displayed. -#ErrorMessagesQueued = "!" - -# Self-describing ModPlug options (with 'yes' or 'no' values). -#ModPlug_Oversampling = yes -#ModPlug_NoiseReduction = yes -#ModPlug_Reverb = no -#ModPlug_MegaBass = no -#ModPlug_Surround = no - -# ModPlug resampling mode. -# Valid values are: -# -# FIR - 8 tap fir filter (extremely high quality) -# SPLINE - Cubic spline interpolation (high quality) -# LINEAR - Linear interpolation (fast, good quality) -# NEAREST - No interpolation (very fast, extremely bad sound quality) -# -#ModPlug_ResamplingMode = FIR - -# Other self-describing ModPlug audio characteristic options. -# (Note that the 32 bit sample size seems to be buggy.) -#ModPlug_Channels = 2 # 1 or 2 channels -#ModPlug_Bits = 16 # 8, 16 or 32 bits -#ModPlug_Frequency = 44100 # 11025, 22050, 44100 or 48000 Hz -#ModPlug_ReverbDepth = 0 # 0 (quiet) to 100 (loud) -#ModPlug_ReverbDelay = 0 # Delay in ms (usually 40-200ms) -#ModPlug_BassAmount = 0 # 0 (quiet) to 100 (loud). -#ModPlug_BassRange = 10 # Cutoff in Hz (10-100). -#ModPlug_SurroundDepth = 0 # Surround level 0(quiet)-100(heavy). -#ModPlug_SurroundDelay = 0 # Surround delay in ms, usually 5-40ms. -#ModPlug_LoopCount = 0 # 0 (never), n (times) or -1 (forever) - -# Self-describing TiMidity audio characteristic options. -#TiMidity_Rate = 44100 # Between 8000 and 48000 -#TiMidity_Bits = 16 # 8 or 16 -#TiMidity_Channels = 2 # 1 or 2 -#TiMidity_Volume = 100 # 0 to 800 - -# You can setup a TiMidity-Config-File here. -# Leave it unset to use library defaults (/etc/timidity.cfg mostly). -# Setting it to 'yes' also uses the library defaults. -# Set it to 'no' if you don't have any configuration file. -# Otherwise set it to the name of a specific file. -#TiMidity_Config = - -# Self-describing SidPlay2 audio characteristic options. -#SidPlay2_DefaultSongLength = 180 # If not in database (in seconds) -#SidPlay2_MinimumSongLength = 0 # Play at least n (in seconds) -#SidPlay2_Frequency = 44100 # 4000 to 48000 -#SidPlay2_Bits = 16 # 8 or 16 -#SidPlay2_Optimisation = 0 # 0 (worst quality) to 2 (best quality) - -# Set path to a HVSC-compatible database (if not set, database is disabled). -#SidPlay2_Database = - -# SidPlay2 playback Mode: -# -# "M": Mono (best for many SIDs) -# "S": Stereo -# "L"/"R": Left / Right -# -#SidPlay2_PlayMode = "M" - -# Use start-song information from SID ('yes') or start at first song -# ('no'). Songs before the start-song won't be played. (Note that this -# option previously took the values 1 and 0; these are now deprecated -# in favour of 'yes' and 'no'.) -#SidPlay2_StartAtStart = yes - -# Play sub-tunes. (Note that this option previously took the values 1 -# and 0; these are now deprecated in favour of 'yes' and 'no'.) -#SidPlay2_PlaySubTunes = yes - -# Run the OnSongChange command when a new song starts playing. -# Specify the full path (i.e. no leading '~') of an executable to run. -# Arguments will be passed, and you can use the following escapes: -# -# %a artist -# %r album -# %f filename -# %t title -# %n track -# %d file duration in XX:YY form -# %D file duration, number of seconds -# -# No pipes/redirects can be used directly, but writing a shell script -# can do the job. -# -# Example: OnSongChange = "/home/jack/.moc/myscript %a %r" -# -OnSongChange = "/home/aaoth/.local/bin/mocpnotify next %a %t %d" - -# If RepeatSongChange is 'yes' then MOC will execute the command every time -# a song starts playing regardless of whether or not it is just repeating. -# Otherwise the command will only be executed when a different song is -# started. -#RepeatSongChange = no - -# Run the OnStop command (full path, no arguments) when MOC changes state -# to stopped (i.e., when user stopped playing or changes a song). -OnStop = "/home/aaoth/.local/bin/mocpnotify stop" - -# This option determines which song to play after finishing all the songs -# in the queue. Setting this to 'yes' causes MOC to play the song which -# follows the song being played before queue playing started. If set to -# 'no', MOC will play the song following the last song in the queue if it -# is in the playlist. The default is 'yes' because this is the way other -# players usually behave. (Note that this option previously took the -# values 1 and 0; these are now deprecated in favour of 'yes' and 'no'.) -#QueueNextSongReturn = yes diff --git a/.config/moc/keymap b/.config/moc/keymap deleted file mode 100644 index 5a1dde6..0000000 --- a/.config/moc/keymap +++ /dev/null @@ -1,188 +0,0 @@ -# This is the example keymap file for MOC. You can define your own key -# bindings for MOC commands by creating your own keymap file and setting -# the 'Keymap' option in ~/.moc/config. -# -# The format of this file is: -# -# - Lines beginning with # are comments. -# - Blank lines are ignored. -# - Every other line is expected to be in one of the formats: -# -# COMMAND = [KEY ...] -# COMMAND += KEY ... -# -# The KEY can be: -# -# - Just a char, like i, L, ", * -# - CTRL-KEY sequence: ^k (CTRL-k), ^4 -# - ALT-KEY (meta) sequence: M-j (ALT-j), M-/ -# - Special keys: DOWN, UP -# LEFT, RIGHT -# HOME, END -# BACKSPACE -# INS, DEL -# ENTER -# PAGE_UP, PAGE_DOWN -# SPACE, TAB -# KEYPAD_CENTER -# ESCAPE -# F1 - F12 -# -# Note that the use of a digit as a KEY is deprecated. -# -# Maximum number of KEYs for one COMMAND is 5. -# -# Omitting the KEY for a COMMAND will unbind all its default keys. They -# will also be automatically unbound when you bind new KEYs to it. Individual -# default KEYs will be automatically unbound when they are explicitly bound -# to some other COMMAND. -# -# Using the '+=' form will cause the KEYs to be appended to any existing -# (default or explicit) bindings for the COMMAND. Appending an existing -# default binding for the same COMMAND will cause MOC to think of that KEY -# as then being explicitly bound. -# -# Only one binding for any given COMMAND can appear in the keymap file. One -# exception to this is that if the default keys for a COMMAND are explicitly -# unbound then a subsequent binding may appear for it. A second exception -# is that multiple appending bindings may appear. -# -# Meta-key detection is sensitive to the ESCDELAY environment variable (see -# the manpage for ncurses(3)). In its absence, MOC resets the default -# delay to 25ms. If you need to emulate meta-key sequences using the ESC -# key, then you may need to set the value of ESCDELAY back to its ncurses -# default of 1000ms (but doing so will make the response to the ESC key -# sluggish). -# -# If MOC's keypresses are being filtered through some other program (in a -# GUI environment, for example) which also does meta-key detection, then -# MOC is at the mercy of the timings with which that program presents them. -# -# Default key configuration for MOC (and a list of all available commands): - -# MOC control keys: -quit_client = q z -quit = Q Z - -# Menu and interface control keys: -go = ENTER -menu_down = DOWN j -menu_up = UP k -menu_page_down = PAGE_DOWN d -menu_page_up = PAGE_UP u -menu_first_item = HOME g -menu_last_item = END G -search_menu = / -toggle_read_tags = f -toggle_show_time = ^t -toggle_show_format = ^f -toggle_menu = TAB -toggle_layout = ^l -toggle_hidden_files = ^' -next_search = N -show_lyrics = L -theme_menu = T -help = ? -refresh = ^r -reload = r - -# Audio playing and positioning keys: -seek_forward = RIGHT l -seek_backward = LEFT h -seek_forward_fast = ] -seek_backward_fast = [ -pause = p SPACE -stop = s -next = n -previous = b -toggle_shuffle = S -toggle_repeat = R -toggle_auto_next = X -toggle_mixer = t -go_url = o - -# Volume control keys: -volume_down_1 = < -volume_up_1 = > -volume_down_5 = , -volume_up_5 = . -volume_10 = M-1 -volume_20 = M-2 -volume_30 = M-3 -volume_40 = M-4 -volume_50 = M-5 -volume_60 = M-6 -volume_70 = M-7 -volume_80 = M-8 -volume_90 = M-9 - -# Directory navigation keys: defaults are Shift-number -# (i.e., 'shift 1' -> '!' -> 'Fastdir1'). -go_to_a_directory = i -go_to_music_directory = m -go_to_fast_dir1 = ! -go_to_fast_dir2 = @ -go_to_fast_dir3 = # -go_to_fast_dir4 = $ -go_to_fast_dir5 = % -go_to_fast_dir6 = ^ -go_to_fast_dir7 = & -go_to_fast_dir8 = * -go_to_fast_dir9 = ( -go_to_fast_dir10 = ) -go_to_playing_file = ^o -go_up = H - -# Playlist specific keys: -add_file = y -add_directory = Y -plist_add_stream = ^a -delete_from_playlist = x -playlist_full_paths = P -plist_move_up = J -plist_move_down = K -save_playlist = V -remove_dead_entries = ^x -clear_playlist = D - -# Queue manipulation keys: -enqueue_file = ^m -clear_queue = M-m - -# User interaction control: -history_up = UP -history_down = DOWN -delete_to_start = ^h -delete_to_end = ^l -cancel = ESCAPE -hide_message = ^; - -# Softmixer specific keys: -toggle_softmixer = w -toggle_make_mono = M - -# Equalizer specific keys: -toggle_equalizer = E -equalizer_refresh = e -equalizer_prev = ^d -equalizer_next = ^u - -# External commands: -mark_start = ' -mark_end = " -exec_command1 = F1 -exec_command2 = F2 -exec_command3 = F3 -exec_command4 = F4 -exec_command5 = F5 -exec_command6 = F6 -exec_command7 = F7 -exec_command8 = F8 -exec_command9 = F9 -exec_command10 = F10 - -# The following commands are available but not assigned to any keys by -# default: -# -# toggle_percent Switch on/off play progress bar time percentage -# diff --git a/.config/moc/themes/laninpre_theme b/.config/moc/themes/laninpre_theme deleted file mode 100644 index 0ed3aca..0000000 --- a/.config/moc/themes/laninpre_theme +++ /dev/null @@ -1,38 +0,0 @@ - -# Author: la-ninpre - -background = default default -frame = blue default dim -window_title = cyan default -directory = blue default bold -selected_directory = blue yellow dim,reverse -playlist = blue default bold,dim -selected_playlist = blue yellow dim,reverse -file = blue default bold -selected_file = blue yellow dim,reverse -marked_file = cyan default bold -marked_selected_file = yellow blue dim -info = cyan default -selected_info = blue default bold -marked_info = blue default bold -marked_selected_info = cyan default bold -status = blue default dim -title = yellow default bold -state = blue default -current_time = green default -time_left = default default dim -total_time = red default bold -time_total_frames = red default bold,dim -sound_parameters = yellow default dim -legend = yellow default dim -disabled = default default dim -enabled = green default bold -empty_mixer_bar = blue default bold -filled_mixer_bar = blue yellow dim,reverse -empty_time_bar = blue default bold -filled_time_bar = default blue dim -entry = cyan default bold -entry_title = cyan default bold -error = red default bold,standout -message = green default bold -plist_time = green default bold diff --git a/.config/nvim/after/ftplugin/python.vim b/.config/nvim/after/ftplugin/python.vim deleted file mode 100644 index ef4d633..0000000 --- a/.config/nvim/after/ftplugin/python.vim +++ /dev/null @@ -1,26 +0,0 @@ -set shiftwidth=4 tabstop=4 softtabstop=4 expandtab autoindent smartindent - -setlocal path=.,** -setlocal wildignore=*/__pycache__/*,*.pyc - -set include=^\\s*\\(from\\\|import\\)\\s*\\zs\\(\\S\\+\\s\\{-}\\)*\\ze\\($\\\|\ as\\) - -function! PyInclude(fname) - let parts = split(a:fname, ' import ') - let l = parts[0] - if len(parts) > 1 - let r = parts[1] - let joined = join([l, r], '.') - let fp = substitute(joined, '\.', '/', 'g') . '.py' - let found = glob(fp, 1) - if len(found) - return substitute(joined, '\.', '/', 'g') . '.py' - endif - endif - return substitute(joined, '\.', '/', 'g') . '.py' -endfunction - -setlocal includeexpr=PyInclude(v:fname) -setlocal define=^\\s*\\<\\(def\\\|class\\)\\> - -nnoremap pp :!pycodestyle --first % diff --git a/.config/nvim/after/ftplugin/yaml.vim b/.config/nvim/after/ftplugin/yaml.vim deleted file mode 100644 index 42313c3..0000000 --- a/.config/nvim/after/ftplugin/yaml.vim +++ /dev/null @@ -1 +0,0 @@ -set shiftwidth=2 tabstop=2 softtabstop=2 expandtab diff --git a/.config/nvim/ftdetect/pikchr.vim b/.config/nvim/ftdetect/pikchr.vim deleted file mode 100644 index ebd25b4..0000000 --- a/.config/nvim/ftdetect/pikchr.vim +++ /dev/null @@ -1 +0,0 @@ -autocmd BufRead,BufNewFile *.pikchr set filetype=pikchr diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim deleted file mode 100644 index 52d7176..0000000 --- a/.config/nvim/init.vim +++ /dev/null @@ -1,156 +0,0 @@ -" la-ninpre init.vim " - -" misc: {{{ - -" use space as leader key -let mapleader=" " - -" enter new era :D -set nocompatible -set encoding=utf-8 - -" enable 24-bit colors -set termguicolors - -" enable hybrid numbers -set nu rnu - -" mouse is bad, but sometimes is useful -set mouse=a - -" this is for better file searching -set path=.,** -set wildmenu - -" more intuitive splits -set splitbelow splitright - -" search options -set nohlsearch incsearch ignorecase smartcase showmatch - -" ruler -set rulerformat=%35(%{strftime('%F\ %H:%M')}%=%l/%L%=%c%V%=%p%%\ %) - -" expand tabs to spaces -set tabstop=4 softtabstop=4 -set shiftwidth=4 -set expandtab - -" use autoindents -set smartindent - -" replace default behaviour with undotree plugin -set noswapfile nobackup -set undodir=~/.local/share/nvim/undodir -set undofile - -" actually, i don't remember what is this... -set hidden - -" fix update time -set updatetime=50 - -" remind yourself about 80 column rule -set colorcolumn=81 - -" this could be used to show unprintable characters -set listchars=tab:>-,eol:$,space:•,trail:~ - -" }}} -" plugins: {{{ - -" pluggins are installed with vim plug -call plug#begin('~/.local/share/nvim/plugged') -Plug '~/.local/share/nvim/plugged/gruvbox', {'branch': 'la-ninpre/la-ninpre'} -Plug 'junegunn/goyo.vim' -Plug 'junegunn/limelight.vim' -Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } -Plug 'junegunn/fzf.vim' -Plug 'mattn/emmet-vim' -Plug 'ap/vim-css-color' -Plug 'preservim/nerdcommenter' -Plug 'tpope/vim-surround' -Plug 'mbbill/undotree' -Plug 'dense-analysis/ale' -Plug 'cespare/vim-toml' -Plug 'https://tildegit.org/sloum/gemini-vim-syntax' -call plug#end() -filetype plugin indent on - -" }}} -" colorscheme: {{{ -" colorscheme tweaks -if exists('+termguicolors') - let &t_8f = "\[38;2;%lu;%lu;%lum" - let &t_8b = "\[48;2;%lu;%lu;%lum" -endif - -let g:gruvbox_contrast_dark='hard' -let g:gruvbox_italic=1 -let g:gruvbox_transparent_bg=1 -let g:gruvbox_invert_selection='0' - -set background=dark -colorscheme gruvbox - -" }}} -" mappings: {{{ - -" easier navigation in splits -map -map -map -map - -" replace all occurencies of the word under the cursor -nnoremap su :%s/\<\>/ - -" show or hide undo tree -nnoremap u :UndotreeToggle - -" open helptags -nnoremap h :Helptags - -" open file with fzf -nnoremap o :Files - -" easy source init.vim -nnoremap :so ~/.config/nvim/init.vim -" easy open init.vim -nnoremap vc :e ~/.config/nvim/init.vim - -" show or hide unprintable characters -nnoremap sl :set list -nnoremap sn :set nolist - -" goyo -nnoremap go :Goyo - -" actually magick! -" this moves higlighted block up or down -vnoremap J :m '>+1gv=gv -vnoremap K :m '<-2gv=gv - -" alias for capturing group in command mode (for use with regexps) -cmap ;( \(\) - -" }}} -" autocommands: {{{ - -" limelight on when goyo -autocmd! User GoyoEnter Limelight -autocmd! User GoyoLeave Limelight! - -" fix wrong nvim size when starting in alacritty -autocmd VimEnter * :silent exec "!kill -s SIGWINCH $PPID" - -" enable insert mode when entering git commit message -autocmd VimEnter */COMMIT_EDITMSG startinsert - -" highlight yanked text (needs nvim 0.5.x) -augroup highlight_yank - autocmd! - autocmd TextYankPost * silent! lua require'vim.highlight'.on_yank({timeout = 40}) -augroup END - -" vim: ft=vim fdm=marker: diff --git a/.config/nvim/syntax/pikchr.vim b/.config/nvim/syntax/pikchr.vim deleted file mode 100644 index 52d4d59..0000000 --- a/.config/nvim/syntax/pikchr.vim +++ /dev/null @@ -1,93 +0,0 @@ -" Vim syntax file -" Language: Pikchr -" Mantainer: la-ninpre -" Latest Revision: 14 Dec 2020 - -" check if syntax highlighting is not in conflict -if exists("b:current_syntax") - finish -endif - -""" syntax block - -" keywords -syntax keyword PikchrStatement print assert -syntax keyword PikchrExprFunc abs cos dist int max min sin sqrt -syntax keyword PikchrObject arc arrow box circle cylinder dot ellipse file line -syntax keyword PikchrObject move oval spline text -syntax keyword PikchrDirection right down left up nextgroup=PikchrNumber -syntax keyword PikchrDirection n north ne e east se s south sw w west nw -syntax keyword PikchrPlace of in vertex -syntax keyword PikchrAttribute dashed dotted color fill behind cw ccw -syntax keyword PikchrAttribute thick thin solid chop fit -syntax keyword PikchrTextAttr above aligned below big small bold italic -syntax keyword PikchrTextAttr center ljust rjust -syntax keyword PikchrLocAttr at with -syntax keyword PikchrEdgename n north ne nw e east s south se sw w west -syntax keyword PikchrEdgename t top bot bottom c center start end left right -syntax keyword PikchrEdgename nextgroup=PikchrPlace -syntax keyword PikchrNumPropty diameter ht height rad radius thickness width wid -syntax keyword PikchrNthObj last previous -syntax keyword PikchrOperator + - * / - -" define stmt -syntax match PikchrDefineStmt "^define\s\i\+" contains=PikchrCustomObject -syntax keyword PikchrDefine define contained -syntax match PikchrCustomObject "\i\+" contained - -" literals -syntax match PikchrComment "\v(#.*$)|(/\*.*\*/)" -syntax match PikchrString "\".*\"" -syntax match PikchrVariable "\v\i+\s?(\*|\+|-|/)?\=" -syntax match PikchrDollVar "\$\i\+" -syntax match PikchrLabel "\u\w*" -syntax match PikchrNumber "\v\.?\d+(\.\d+)?(\%|in|cm|px|pt|pc|mm)?" -syntax match PikchrNumber "\v0x\x+" -syntax match PikchrOrdinal "\v([^0]\d+(st|nd|rd|th))|first" - -" matches -syntax match PikchrAttributeSup "\v" -syntax match PikchrAttributeSup "\v" -syntax match PikchrAttributeSup "\v\<-\>?|-\>" -syntax match PikchrPosition "\v(((of\sthe\s)?\sway\s)?between)|and" -syntax match PikchrDotEdgename "\v\.(n(e|w)?(orth)?|e(ast)?|s(e|w)?(outh)?|w(est)?)" -syntax match PikchrDotEdgename "\v\.(bot(tom)?|t(op)?|right|left|start|end|c(enter)?)" -syntax match PikchrDotPropty "\v\.(color|dashed|diameter|dotted|fill)" -syntax match PikchrDotPropty "\v\.(ht|height|rad(ius)?|thickness|wid(th)?)" -syntax match PikchrPathElem "\v<(from|then|go|to|(until\s)?even\swith|heading|close)>" nextgroup=PikchrDirection - -""" highlight block - -" keywords -hi def link PikchrStatement Statement -hi def link PikchrExprFunc Function -hi def link PikchrObject Type -hi def link PikchrDirection Function -hi def link PikchrLocAttr Tag -hi def link PikchrPlace Function -hi def link PikchrTextAttr Identifier -hi def link PikchrNumPropty Identifier -hi def link PikchrEdgename Identifier -hi def link PikchrNthObj Constant -hi def link PikchrOperator Operator - -" define stmt -hi def link PikchrDefine Define -hi def link PikchrCustomObject Type - -" literals -hi def link PikchrComment Comment -hi def link PikchrString String -hi def link PikchrVariable Identifier -hi def link PikchrDollVar Identifier -hi def link PikchrLabel Identifier -hi def link PikchrNumber Number -hi def link PikchrOrdinal Number - -" matches -hi def link PikchrAttribute Tag -hi def link PikchrAttributeSup Tag -hi def link PikchrPosition Function -hi def link PikchrDotEdgename Identifier -hi def link PikchrDotPropty Identifier -hi def link PikchrPathElem Statement diff --git a/.config/starship.toml b/.config/starship.toml deleted file mode 100644 index 15e7b98..0000000 --- a/.config/starship.toml +++ /dev/null @@ -1,16 +0,0 @@ -# Don't print a new line at the start of the prompt -add_newline = false - -[line_break] -disabled = true - -[username] -show_always = true - -# Replace the "❯" symbol in the prompt with "➜" -#[character] # The name of the module we are configuring is "character" -#success_symbol = "[➜](bold green)" # The "success_symbol" segment is being set to "➜" with the color "bold green" - -# Disable the package module, hiding it from the prompt completely -#[package] -#disabled = true diff --git a/.gitmodules b/.gitmodules index 67bbae0..7fd45fe 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule ".xmonad"] - path = .xmonad +[submodule "xmonad/.xmonad"] + path = xmonad/.xmonad url = https://git.aaoth.xyz/xmonad-config.git diff --git a/.local/bin/fossil-update b/.local/bin/fossil-update deleted file mode 100755 index 5ea4d1e..0000000 --- a/.local/bin/fossil-update +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/sh - -SUDO=doas -_fossil_co=$(fossil all ls -c | grep fossil) # fossil checkout location -_ask_upgrade=1 -_ask_all=1 -_clean_build=0 -_make_jobs=8 - -usage() { - echo "usage: fossil-update [OPTIONS]" - echo "options:" - echo " -y upgrade without asking" - echo " -a upgrade and turn off the fossil service(if it's running) without asking" - echo " -c clean build, run 'make distclean' before building" - echo " -h print this help message" -} - -check_service() { - _fsl_pid=$(pgrep -u root -f "$(which fossil)") && export _fsl_pid - [ -n "$_fsl_pid" ] && { - [ "$_ask_all" -ne 0 ] && { - echo "fossil service is active. stop it? (Y/y)" - read -r _stop_fsl - case $_stop_fsl in - [Yy] ) stop_service && return 0 - ;; - * ) echo "upgrade is not possible" && exit 2 - ;; - esac - } - stop_service - } -} - -stop_service() { - # i am using systemd service to run fossil server - $SUDO systemctl stop fossil -} - -compile() { - echo "configuring..." && \ - ./configure >/dev/null && \ - echo "building..." && make -j "$_make_jobs" >/dev/null \ - && echo "build done" -} - -install() { - check_service - $SUDO make install >/dev/null && echo "upgrade done" - [ -n "$_fsl_pid" ] && echo "don't forget to enable fossil service back" \ - || return 0 -} - -main() { - cd "$_fossil_co" || return - [ $_clean_build -gt 0 ] && { - echo "cleaning previous build" - [ -f Makefile ] && make distclean >/dev/null - } - fossil up trunk - [ $_ask_all -eq 0 ] || [ $_ask_upgrade -eq 0 ] && { - compile && install - exit - } - echo "upgrade? (Y/y)" && \ - read -r _upgrade && \ - case $_upgrade in - [Yy] ) compile && install - ;; - * ) exit 1 - ;; - esac -} - -while getopts yach opts -do - case "$opts" in - y) - _ask_upgrade=0 - ;; - a) - _ask_all=0 - ;; - c) - _clean_build=1 - ;; - h|*) - usage && exit 1 - ;; - esac -done - -main - diff --git a/.local/bin/keylookup b/.local/bin/keylookup deleted file mode 100755 index 90e3a45..0000000 --- a/.local/bin/keylookup +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -main() { - curl "http://hkps.pool.sks-keyservers.net/pks/lookup?op=get&search=0x$1" -} - -main "$@" - diff --git a/.local/bin/mocpnotify b/.local/bin/mocpnotify deleted file mode 100755 index f3aa72c..0000000 --- a/.local/bin/mocpnotify +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -case $1 in - "next") - notify-send -a mocp -t 3000 "now playing" "$2 - $3 [$4]" - ;; - "stop") - notify-send -a mocp -t 3000 "mocp" "stopped playing" - ;; -esac - diff --git a/.local/bin/nimi_sewi b/.local/bin/nimi_sewi deleted file mode 100755 index c21c40f..0000000 --- a/.local/bin/nimi_sewi +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -# generate random tokipona phrase(see nimisewi for details), -# copy it to the clipboard and send notification with it - -_nimi_sewi=$(nimisewi) - -echo "$_nimi_sewi" | xclip -sel clipboard - -notify-send -a nimi_sewi -t 2000 "nimi sewi" "$_nimi_sewi" diff --git a/.local/bin/paperbackup b/.local/bin/paperbackup deleted file mode 100755 index 4300241..0000000 --- a/.local/bin/paperbackup +++ /dev/null @@ -1,165 +0,0 @@ -#!/bin/sh -e - -# Copyright (c) 2021, la-ninpre -# -# Permission to use, copy, modify, and/or distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -# -# ---------------------------------------------------------------------- # -# -# small script to backup secret gpg keys using paperkey and qrencode. -# -# basic usage: -# -# $ paperbackup -u user@email.com -# -# by default exports minimized public key and paperkeyed secret key -# to qr-encoded images, which then are combined into one image for -# easy printing. -# -# dependencies: -# - gpg (obviously) -# - paperkey -# - qrencode -# - imagemagick (optional, use -n to disable montage) - -usage() { - echo "usage: ${0##*/} [OPTIONS]" - echo - echo "options:" - echo " -u, --uid {UID}" - echo " gpg keyid or uid (this is mandatory)" - echo " -l, --level {L,M,Q,H}" - echo " qrencode correction level" - echo " -t, --term" - echo " output to terminal instead of png image" - echo " -n, --nomontage" - echo " disable composing qrcodes to one image" - echo " -h, --help" - echo " print usage information" - echo -} - -check_uid() { - [ -z "$1" ] && echo "uid could not be empty" && exit 1 - - if ! gpg -K "$1" >/dev/null - then - exit 1 - fi - - PB_UID="$1" -} - -check_corr_lvl() { - case "$1" in - l|L|m|M|q|Q|h|H) - PB_CORR_LVL="$1" - ;; - *) - echo "correction level should be one of L,M,Q,H" - usage - exit 1 - ;; - esac -} - -qr_encode() { - PB_QRENCODE_FLAGS="-8 -l $PB_CORR_LVL -t $PB_TYPE" - - case "$PB_TYPE" in - png) - PB_QRENCODE_FLAGS="$PB_QRENCODE_FLAGS -o $1" - ;; - UTF8) - ;; - *) - exit 1 - ;; - esac - - # i don't know if it is safe to do so, but it's very convenient - # shellcheck disable=SC2086 - qrencode $PB_QRENCODE_FLAGS -} - -get_pubkey() { - [ -n "$1" ] && gpg --export --export-options export-minimal "$1" \ - | qr_encode "$1-pubkey.png" -} - -get_seckey() { - [ -n "$1" ] && gpg --export-secret-key "$1" \ - | paperkey --output-type raw | qr_encode "$1-seckey.png" -} - -montage_keys() { - montage \ - -pointsize 18 \ - -title "\nsecret key backup for $PB_UID\n$PB_DATE" \ - -label pubkey "$PB_UID-pubkey.png" \ - -label seckey "$PB_UID-seckey.png" \ - -mode concatenate \ - "$PB_UID-keys.png" - - rm -f "$PB_UID-pubkey.png" "$PB_UID-seckey.png" -} - -main() { - PB_TYPE="png" - PB_CORR_LVL="H" - PB_DATE=$(date "+%F %T") - PB_MONTAGE=1 - - while [ -n "$1" ] - do - case "$1" in - --uid|-u) - shift - check_uid "$1" - ;; - --level|-l) - shift - check_corr_lvl "$1" - ;; - --term|-t) - PB_TYPE="UTF8" - ;; - --nomontage|-n) - PB_MONTAGE=0 - ;; - --help|-h) - echo "backup secret gpg key using paperkey and qrencode" - echo - usage - exit - ;; - *) - usage - exit 1 - ;; - esac - shift - done - - [ -z "$PB_UID" ] && echo "please specify uid or keyid" && exit 1; - - get_pubkey "$PB_UID" && get_seckey "$PB_UID" - - [ "$PB_TYPE" = "png" ] \ - && [ "$PB_MONTAGE" -eq 1 ] \ - && montage_keys - - exit 0 -} - -main "$@" diff --git a/.local/bin/print_codes b/.local/bin/print_codes deleted file mode 100755 index bb8b708..0000000 --- a/.local/bin/print_codes +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/sh - -# Copyright (c) 2021, la-ninpre -# -# Permission to use, copy, modify, and/or distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - -# small script to create page with qr-coded recovery tokens for otp -# uses: qrencode, imagemagick(convert, montage) -# -# file with codes should be in following format: -# - recovery codes should be on separate lines -# - every line beginning with # is ignored - -QRENCODE_ERR_CORR_LEVEL=H -CODES_KEEP_PNG=0 -CODES_MAKE_PDF=0 - -usage() { - echo "create qr-coded recovery tokens for easy printing" - echo - echo "USAGE:" - echo " $0 [OPTIONS] " - echo - echo "OPTIONS:" - echo " -k keep png files with qrcodes" - echo " -l {L,M,Q,H}" - echo " set qrencode error correction level" - echo " -p produce pdf instead of image" - echo " -h print this help message" - echo -} - -while getopts kl:ph arg -do - case "$arg" in - k) CODES_KEEP_PNG=1 - ;; - l) case $OPTARG in - [lL]) QRENCODE_ERR_CORR_LEVEL=L ;; - [mM]) QRENCODE_ERR_CORR_LEVEL=M ;; - [qQ]) QRENCODE_ERR_CORR_LEVEL=Q ;; - [hH]) QRENCODE_ERR_CORR_LEVEL=H ;; - *) echo "error correction level should be one of L, M, Q or H" - exit 1 ;; - esac - ;; - p) CODES_MAKE_PDF=1 - ;; - h|*) usage && exit 1 - ;; - esac -done - -shift $((OPTIND - 1)) - -[ $# -ne 1 ] && usage && exit 1 - -CODES_FILE="$1" -CODES_BASENAME="${CODES_FILE%%.*}" -CODES_EXT="${CODES_FILE##*.}" -CODES_DIR="$PWD/${CODES_BASENAME}_${CODES_EXT}_dir" -CODES_DATE="$(date +'%Y-%m-%d %H:%M')" -CODES_OUTPUT="${CODES_BASENAME}_qrcodes" -CODES_OUT_IMG="${CODES_OUTPUT}.png" -CODES_OUT_PDF="${CODES_OUTPUT}.pdf" - -rm -f "$CODES_OUT_IMG" "$CODES_OUT_PDF" -[ -d "$CODES_DIR" ] && rm -rf "$CODES_DIR" -mkdir "$CODES_DIR" - -sed -e '/^#.*/ d' -e '/^\s*$/ d' < "$CODES_FILE" \ - | xargs -I{} \ - qrencode -l "$QRENCODE_ERR_CORR_LEVEL" -t png -d 150 \ - -o "$CODES_DIR/{}-code.png" {} - -montage -title "\n$CODES_FILE\n$CODES_DATE" \ - "$CODES_DIR/*-code.png" -page a4 -geometry 128x128\> "$CODES_OUT_IMG" - -[ "$CODES_MAKE_PDF" -ne 0 ] && { - convert \( -size 1240x1754 xc: \) "$CODES_OUT_IMG" \ - -composite "$CODES_OUT_PDF" - [ "$CODES_KEEP_PNG" -eq 0 ] && rm -f "$CODES_OUT_IMG" - } - -[ "$CODES_KEEP_PNG" -eq 0 ] && rm -rf "$CODES_DIR" || exit 0 - diff --git a/.local/bin/rand b/.local/bin/rand deleted file mode 100755 index 795885b..0000000 --- a/.local/bin/rand +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -# rand (inspired by https://rgz.ee/random.html) -# -# generate random string from charset as first argument and length as second -# -# example: -# $ rand '1-9a-f' 10 -# > 329402aa42 -# -# defaults: -# charset -- all printable characters and space -# length -- 25 - -[ -z $1 ] && charset=' -~' || charset=$1 -[ -z $2 ] && length=25 || length=$2 - -tr -cd "$charset" < /dev/urandom | fold -w "$length" | head -n 1 diff --git a/.xmonad b/.xmonad deleted file mode 160000 index bb42414..0000000 --- a/.xmonad +++ /dev/null @@ -1 +0,0 @@ -Subproject commit bb4241466ea4c1f8af875c553d8429fda44242cb diff --git a/alacritty/.config/alacritty/alacritty.yml b/alacritty/.config/alacritty/alacritty.yml new file mode 100644 index 0000000..046c97c --- /dev/null +++ b/alacritty/.config/alacritty/alacritty.yml @@ -0,0 +1,808 @@ +# Configuration for Alacritty, the GPU enhanced terminal emulator. + +# Import additional configuration files +# +# These configuration files will be loaded in order, replacing values in files +# loaded earlier with those loaded later in the chain. The file itself will +# always be loaded last. +#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 + +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: 7 + y: 7 + + # 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, but no title bar buttons + decorations: none + + # Startup Mode (changes require restart) + # + # Values for `startup_mode`: + # - Windowed + # - Maximized + # - Fullscreen + # + # Values for `startup_mode` (macOS only): + # - SimpleFullscreen + startup_mode: Maximized + + # 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: JetBrains Mono + + # The `style` can be specified to pick a specific face. + style: Medium + + # 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: JetBrains Mono + + # 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: JetBrains Mono + + # 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: JetBrains Mono + + # The `style` can be specified to pick a specific face. + style: Bold Italic + + # Point size + size: 11.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 + +# manual-rbow +colors: + # Default colors + primary: + background: '#19191a' + foreground: '#cadcde' + + # Normal colors + normal: + black: '#393838' + red: '#c74444' + green: '#7f9848' + yellow: '#d7a06d' + blue: '#4e96d5' + magenta: '#bc5fa7' + cyan: '#55b795' + white: '#c3b2f7' + + # Bright colors + bright: + black: '#5a514b' + red: '#ed7c68' + green: '#c7ea76' + yellow: '#ffdb9d' + blue: '#a6d5fe' + magenta: '#edbbe9' + cyan: '#7fe2c5' + white: '#e2d6ff' + +# old-theme (hybrid by w0ng) +# colors: +# # Default colors +# primary: +# background: '0x1d1f21' +# foreground: '0xc5c8c6' +# +# # Normal colors +# normal: +# black: '#282a2e' +# red: '#a54242' +# green: '#8c9440' +# yellow: '#de935f' +# blue: '#5f819d' +# magenta: '#85678f' +# cyan: '#5e8d87' +# white: '#707880' +# +# # Bright colors +# bright: +# black: '#373b41' +# red: '#cc6666' +# green: '#b5bd68' +# yellow: '#f0c674' +# blue: '#81a2be' +# magenta: '#b294bb' +# cyan: '#8abeb7' +# white: '#c5c8c6' + +# 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 and 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 and CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #vi_mode_cursor: + # text: CellBackground + # cursor: CellForeground + + # Selection colors + # + # Colors which should be used to draw the selection area. + # + # Allowed values are CellForeground and CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #selection: + # text: CellBackground + # background: CellForeground + + # Search colors + # + # Colors used for the search bar and match highlighting. + #search: + # Allowed values are CellForeground and CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #matches: + # foreground: '#000000' + # background: '#ffffff' + + #bar: + # background: '#c5c8c6' + # foreground: '#1d1f21' + + # 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: false + +#cursor: + # Cursor style + # + # Values for `style`: + # - ▇ Block + # - _ Underline + # - | Beam + #style: Block + + # 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 + + # 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: /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 + +# WinPTY backend (Windows only) +# +# Alacritty defaults to using the newer ConPTY backend if it is available, +# since it resolves a lot of bugs and is quite a bit faster. If it is not +# available, the WinPTY backend will be used instead. +# +# Setting this option to `true` makes Alacritty use the legacy WinPTY backend, +# even if the ConPTY backend is available. +#winpty_backend: false + +# 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 + + #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 `launcher: None`, URL launching will be disabled completely. + # + # Default: + # - (macOS) open + # - (Linux/BSD) 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 + +# 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 +# +# (`mode: Vi` only): +# - Open +# Open URLs at the cursor location with the launcher configured in `url.launcher`. +# - Up +# Move the vi mode cursor up by one line. +# - Down +# Move the vi mode cursor down by one line. +# - Left +# Move the vi mode cursor left by one character. +# - Right +# Move the vi mode cursor right by one character. +# - First +# Move the vi mode cursor to the start of the line, searching across newlines if it is already at the beginning. +# - Last +# Move the vi mode cursor to the end of the line, searching across newlines if it is already at the end. +# - FirstOccupied +# Move the vi mode cursor to the first non-empty cell in this line, searching across newlines if it is already at the first one. +# - High +# Move the vi mode cursor to the top of the screen. +# - Middle +# Move the vi mode cursor to the middle of the screen. +# - Low +# Move the vi mode cursor to the bottom of the screen. +# - SemanticLeft +# Move the vi mode cursor to the start of the previous semantically separated word. +# - SemanticRight +# Move the vi mode cursor to the start of the next semantically separated word. +# - SemanticLeftEnd +# Move the vi mode cursor to the end of the previous semantically separated word. +# - SemanticRightEnd +# Move the vi mode cursor to the end of the next semantically separated word. +# - WordLeft +# Move the vi mode cursor to the start of the previous whitespace separated word. +# - WordRight +# Move the vi mode cursor to the start of the next whitespace separated word. +# - WordLeftEnd +# Move the vi mode cursor to the end of the previous whitespace separated word. +# - WordRightEnd +# Move the vi mode cursor to the end of the next whitespace separated word. +# - Bracket +# Move the vi mode cursor to the next character that matches the bracket at the cursor's +# current location. +# - ToggleNormalSelection +# - ToggleLineSelection +# - ToggleBlockSelection +# - ToggleSemanticSelection +# Toggle semantic selection based on `selection.semantic_escape_chars`. +# - SearchNext +# Jump to the beginning of the next match. +# - SearchPrevious +# Jump to the beginning of the previous match. +# - SearchStart +# Jump to the next start of a match to the left of the vi mode cursor. +# - SearchEnd +# Jump to the next end of a match to the left of the vi mode cursor. +# +# (macOS only): +# - ToggleSimpleFullscreen +# Enter fullscreen without occupying another space. +# +# (Linux/BSD only): +# - 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 +# - 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: + #- { key: Paste, action: Paste } + #- { key: Copy, action: Copy } + #- { key: L, mods: Control, action: ClearLogNotice } + #- { key: L, mods: Control, mode: ~Vi, 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: Vi, action: ScrollToBottom } + #- { key: Space, mods: Shift|Control, action: ToggleViMode } + #- { key: Escape, mode: Vi, action: ClearSelection } + #- { key: I, mode: Vi, action: ScrollToBottom } + #- { key: I, mode: Vi, action: ToggleViMode } + #- { key: C, mods: Control, mode: Vi, action: ToggleViMode } + #- { key: Y, mods: Control, mode: Vi, action: ScrollLineUp } + #- { key: E, mods: Control, mode: Vi, action: ScrollLineDown } + #- { key: G, mode: Vi, action: ScrollToTop } + #- { key: G, mods: Shift, mode: Vi, action: ScrollToBottom } + #- { key: B, mods: Control, mode: Vi, action: ScrollPageUp } + #- { key: F, mods: Control, mode: Vi, action: ScrollPageDown } + #- { key: U, mods: Control, mode: Vi, action: ScrollHalfPageUp } + #- { key: D, mods: Control, mode: Vi, action: ScrollHalfPageDown } + #- { key: Y, mode: Vi, action: Copy } + #- { key: Y, mode: Vi, action: ClearSelection } + #- { key: Copy, mode: Vi, action: ClearSelection } + #- { key: V, mode: Vi, action: ToggleNormalSelection } + #- { key: V, mods: Shift, mode: Vi, action: ToggleLineSelection } + #- { key: V, mods: Control, mode: Vi, action: ToggleBlockSelection } + #- { key: V, mods: Alt, mode: Vi, action: ToggleSemanticSelection } + #- { key: Return, mode: Vi, action: Open } + #- { key: K, mode: Vi, action: Up } + #- { key: J, mode: Vi, action: Down } + #- { key: H, mode: Vi, action: Left } + #- { key: L, mode: Vi, action: Right } + #- { key: Up, mode: Vi, action: Up } + #- { key: Down, mode: Vi, action: Down } + #- { key: Left, mode: Vi, action: Left } + #- { key: Right, mode: Vi, action: Right } + #- { key: Key0, mode: Vi, action: First } + #- { key: Key4, mods: Shift, mode: Vi, action: Last } + #- { key: Key6, mods: Shift, mode: Vi, action: FirstOccupied } + #- { key: H, mods: Shift, mode: Vi, action: High } + #- { key: M, mods: Shift, mode: Vi, action: Middle } + #- { key: L, mods: Shift, mode: Vi, action: Low } + #- { key: B, mode: Vi, action: SemanticLeft } + #- { key: W, mode: Vi, action: SemanticRight } + #- { key: E, mode: Vi, action: SemanticRightEnd } + #- { key: B, mods: Shift, mode: Vi, action: WordLeft } + #- { key: W, mods: Shift, mode: Vi, action: WordRight } + #- { key: E, mods: Shift, mode: Vi, action: WordRightEnd } + #- { key: Key5, mods: Shift, mode: Vi, action: Bracket } + #- { key: Slash, mode: Vi, action: SearchForward } + #- { key: Slash, mods: Shift, mode: Vi, action: SearchBackward } + #- { key: N, mode: Vi, action: SearchNext } + #- { key: N, mods: Shift, mode: Vi, action: SearchPrevious } + + # (Windows, Linux, and BSD only) + #- { key: V, mods: Control|Shift, action: Paste } + #- { key: C, mods: Control|Shift, action: Copy } + #- { key: F, mods: Control|Shift, action: SearchForward } + #- { key: B, mods: Control|Shift, action: SearchBackward } + #- { key: C, mods: Control|Shift, mode: Vi, 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, chars: "\x0c" } + #- { 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: K, mods: Command, action: ClearHistory } + #- { key: V, mods: Command, action: Paste } + #- { key: C, mods: Command, action: Copy } + #- { key: C, mods: Command, mode: Vi, action: ClearSelection } + #- { key: H, mods: Command, action: Hide } + #- { 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, action: SearchForward } + #- { key: B, mods: Command, 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`: + # - None + # - Error + # - Warn + # - Info + # - Debug + # - Trace + #log_level: Warn + + # Print all received window events. + #print_events: false diff --git a/bash/.bash_profile b/bash/.bash_profile new file mode 100644 index 0000000..27b8539 --- /dev/null +++ b/bash/.bash_profile @@ -0,0 +1,11 @@ +# +# ~/.bash_profile +# + +export PATH="${PATH}:$HOME/.gem/ruby/2.7.0/bin:$HOME/.local/bin" +export EDITOR="nvim" +export TERMINAL="alacritty" +export BROWSER="brave" +export TESSDATA_PREFIX=/usr/share/tessdata + +[[ -f ~/.bashrc ]] && . ~/.bashrc diff --git a/bash/.bashrc b/bash/.bashrc new file mode 100644 index 0000000..0fe0b47 --- /dev/null +++ b/bash/.bashrc @@ -0,0 +1,54 @@ +# +# ~/.bashrc +# + +# If not running interactively, don't do anything +[[ $- != *i* ]] && return + +# vi mode +set -o vi + +# aliases +alias ls='ls --color=auto --group-directories-first' +alias ll='ls -lAh' +alias cat='bat -p' +alias mocp='mocp -M "~/.config/moc"' +alias ssh='TERM=rxvt ssh' # fix alacritty term issues +alias ..='cd ..' + +# see https://www.atlassian.com/git/tutorials/dotfiles +# and https://youtu.be/tBoLDpTWVOM +alias config='/usr/bin/git --git-dir=$HOME/Documents/dotfiles --work-tree=$HOME' + +alias brc='nvim ~/.bashrc && source ~/.bashrc' +alias vrc='nvim ~/.config/nvim/init.vim' + +alias v='nvim' +alias fsl='fossil' + +PS1='[\u@\h \W]\$ ' + +# use gpg authentication key for ssh auth +SSH_AUTH_SOCK=$( gpgconf --list-dirs agent-ssh-socket ) +export SSH_AUTH_SOCK +gpgconf --launch gpg-agent + +# fzf bindings and tweaks +source /usr/share/fzf/key-bindings.bash +source /usr/share/fzf/completion.bash +export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git' +# shellcheck disable=SC2016 +export FZF_CTRL_T_COMMAND='$FZF_DEFAULT_COMMAND' + +FOSSILS_HOME=$HOME/Documents/Fossils +export FOSSILS_HOME + +# quickly cd into fossil repo +fslcd() { + _fsl_checkout=$(fossil all ls -c | fzf +m) + cd "$_fsl_checkout" || return +} + +# starship prompt +eval "$(starship init bash)" + diff --git a/bin/.local/bin/fossil-update b/bin/.local/bin/fossil-update new file mode 100755 index 0000000..5ea4d1e --- /dev/null +++ b/bin/.local/bin/fossil-update @@ -0,0 +1,95 @@ +#!/bin/sh + +SUDO=doas +_fossil_co=$(fossil all ls -c | grep fossil) # fossil checkout location +_ask_upgrade=1 +_ask_all=1 +_clean_build=0 +_make_jobs=8 + +usage() { + echo "usage: fossil-update [OPTIONS]" + echo "options:" + echo " -y upgrade without asking" + echo " -a upgrade and turn off the fossil service(if it's running) without asking" + echo " -c clean build, run 'make distclean' before building" + echo " -h print this help message" +} + +check_service() { + _fsl_pid=$(pgrep -u root -f "$(which fossil)") && export _fsl_pid + [ -n "$_fsl_pid" ] && { + [ "$_ask_all" -ne 0 ] && { + echo "fossil service is active. stop it? (Y/y)" + read -r _stop_fsl + case $_stop_fsl in + [Yy] ) stop_service && return 0 + ;; + * ) echo "upgrade is not possible" && exit 2 + ;; + esac + } + stop_service + } +} + +stop_service() { + # i am using systemd service to run fossil server + $SUDO systemctl stop fossil +} + +compile() { + echo "configuring..." && \ + ./configure >/dev/null && \ + echo "building..." && make -j "$_make_jobs" >/dev/null \ + && echo "build done" +} + +install() { + check_service + $SUDO make install >/dev/null && echo "upgrade done" + [ -n "$_fsl_pid" ] && echo "don't forget to enable fossil service back" \ + || return 0 +} + +main() { + cd "$_fossil_co" || return + [ $_clean_build -gt 0 ] && { + echo "cleaning previous build" + [ -f Makefile ] && make distclean >/dev/null + } + fossil up trunk + [ $_ask_all -eq 0 ] || [ $_ask_upgrade -eq 0 ] && { + compile && install + exit + } + echo "upgrade? (Y/y)" && \ + read -r _upgrade && \ + case $_upgrade in + [Yy] ) compile && install + ;; + * ) exit 1 + ;; + esac +} + +while getopts yach opts +do + case "$opts" in + y) + _ask_upgrade=0 + ;; + a) + _ask_all=0 + ;; + c) + _clean_build=1 + ;; + h|*) + usage && exit 1 + ;; + esac +done + +main + diff --git a/bin/.local/bin/keylookup b/bin/.local/bin/keylookup new file mode 100755 index 0000000..90e3a45 --- /dev/null +++ b/bin/.local/bin/keylookup @@ -0,0 +1,8 @@ +#!/bin/sh + +main() { + curl "http://hkps.pool.sks-keyservers.net/pks/lookup?op=get&search=0x$1" +} + +main "$@" + diff --git a/bin/.local/bin/nimi_sewi b/bin/.local/bin/nimi_sewi new file mode 100755 index 0000000..c21c40f --- /dev/null +++ b/bin/.local/bin/nimi_sewi @@ -0,0 +1,10 @@ +#!/bin/sh + +# generate random tokipona phrase(see nimisewi for details), +# copy it to the clipboard and send notification with it + +_nimi_sewi=$(nimisewi) + +echo "$_nimi_sewi" | xclip -sel clipboard + +notify-send -a nimi_sewi -t 2000 "nimi sewi" "$_nimi_sewi" diff --git a/bin/.local/bin/paperbackup b/bin/.local/bin/paperbackup new file mode 100755 index 0000000..4300241 --- /dev/null +++ b/bin/.local/bin/paperbackup @@ -0,0 +1,165 @@ +#!/bin/sh -e + +# Copyright (c) 2021, la-ninpre +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +# ---------------------------------------------------------------------- # +# +# small script to backup secret gpg keys using paperkey and qrencode. +# +# basic usage: +# +# $ paperbackup -u user@email.com +# +# by default exports minimized public key and paperkeyed secret key +# to qr-encoded images, which then are combined into one image for +# easy printing. +# +# dependencies: +# - gpg (obviously) +# - paperkey +# - qrencode +# - imagemagick (optional, use -n to disable montage) + +usage() { + echo "usage: ${0##*/} [OPTIONS]" + echo + echo "options:" + echo " -u, --uid {UID}" + echo " gpg keyid or uid (this is mandatory)" + echo " -l, --level {L,M,Q,H}" + echo " qrencode correction level" + echo " -t, --term" + echo " output to terminal instead of png image" + echo " -n, --nomontage" + echo " disable composing qrcodes to one image" + echo " -h, --help" + echo " print usage information" + echo +} + +check_uid() { + [ -z "$1" ] && echo "uid could not be empty" && exit 1 + + if ! gpg -K "$1" >/dev/null + then + exit 1 + fi + + PB_UID="$1" +} + +check_corr_lvl() { + case "$1" in + l|L|m|M|q|Q|h|H) + PB_CORR_LVL="$1" + ;; + *) + echo "correction level should be one of L,M,Q,H" + usage + exit 1 + ;; + esac +} + +qr_encode() { + PB_QRENCODE_FLAGS="-8 -l $PB_CORR_LVL -t $PB_TYPE" + + case "$PB_TYPE" in + png) + PB_QRENCODE_FLAGS="$PB_QRENCODE_FLAGS -o $1" + ;; + UTF8) + ;; + *) + exit 1 + ;; + esac + + # i don't know if it is safe to do so, but it's very convenient + # shellcheck disable=SC2086 + qrencode $PB_QRENCODE_FLAGS +} + +get_pubkey() { + [ -n "$1" ] && gpg --export --export-options export-minimal "$1" \ + | qr_encode "$1-pubkey.png" +} + +get_seckey() { + [ -n "$1" ] && gpg --export-secret-key "$1" \ + | paperkey --output-type raw | qr_encode "$1-seckey.png" +} + +montage_keys() { + montage \ + -pointsize 18 \ + -title "\nsecret key backup for $PB_UID\n$PB_DATE" \ + -label pubkey "$PB_UID-pubkey.png" \ + -label seckey "$PB_UID-seckey.png" \ + -mode concatenate \ + "$PB_UID-keys.png" + + rm -f "$PB_UID-pubkey.png" "$PB_UID-seckey.png" +} + +main() { + PB_TYPE="png" + PB_CORR_LVL="H" + PB_DATE=$(date "+%F %T") + PB_MONTAGE=1 + + while [ -n "$1" ] + do + case "$1" in + --uid|-u) + shift + check_uid "$1" + ;; + --level|-l) + shift + check_corr_lvl "$1" + ;; + --term|-t) + PB_TYPE="UTF8" + ;; + --nomontage|-n) + PB_MONTAGE=0 + ;; + --help|-h) + echo "backup secret gpg key using paperkey and qrencode" + echo + usage + exit + ;; + *) + usage + exit 1 + ;; + esac + shift + done + + [ -z "$PB_UID" ] && echo "please specify uid or keyid" && exit 1; + + get_pubkey "$PB_UID" && get_seckey "$PB_UID" + + [ "$PB_TYPE" = "png" ] \ + && [ "$PB_MONTAGE" -eq 1 ] \ + && montage_keys + + exit 0 +} + +main "$@" diff --git a/bin/.local/bin/print_codes b/bin/.local/bin/print_codes new file mode 100755 index 0000000..bb8b708 --- /dev/null +++ b/bin/.local/bin/print_codes @@ -0,0 +1,97 @@ +#!/bin/sh + +# Copyright (c) 2021, la-ninpre +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +# small script to create page with qr-coded recovery tokens for otp +# uses: qrencode, imagemagick(convert, montage) +# +# file with codes should be in following format: +# - recovery codes should be on separate lines +# - every line beginning with # is ignored + +QRENCODE_ERR_CORR_LEVEL=H +CODES_KEEP_PNG=0 +CODES_MAKE_PDF=0 + +usage() { + echo "create qr-coded recovery tokens for easy printing" + echo + echo "USAGE:" + echo " $0 [OPTIONS] " + echo + echo "OPTIONS:" + echo " -k keep png files with qrcodes" + echo " -l {L,M,Q,H}" + echo " set qrencode error correction level" + echo " -p produce pdf instead of image" + echo " -h print this help message" + echo +} + +while getopts kl:ph arg +do + case "$arg" in + k) CODES_KEEP_PNG=1 + ;; + l) case $OPTARG in + [lL]) QRENCODE_ERR_CORR_LEVEL=L ;; + [mM]) QRENCODE_ERR_CORR_LEVEL=M ;; + [qQ]) QRENCODE_ERR_CORR_LEVEL=Q ;; + [hH]) QRENCODE_ERR_CORR_LEVEL=H ;; + *) echo "error correction level should be one of L, M, Q or H" + exit 1 ;; + esac + ;; + p) CODES_MAKE_PDF=1 + ;; + h|*) usage && exit 1 + ;; + esac +done + +shift $((OPTIND - 1)) + +[ $# -ne 1 ] && usage && exit 1 + +CODES_FILE="$1" +CODES_BASENAME="${CODES_FILE%%.*}" +CODES_EXT="${CODES_FILE##*.}" +CODES_DIR="$PWD/${CODES_BASENAME}_${CODES_EXT}_dir" +CODES_DATE="$(date +'%Y-%m-%d %H:%M')" +CODES_OUTPUT="${CODES_BASENAME}_qrcodes" +CODES_OUT_IMG="${CODES_OUTPUT}.png" +CODES_OUT_PDF="${CODES_OUTPUT}.pdf" + +rm -f "$CODES_OUT_IMG" "$CODES_OUT_PDF" +[ -d "$CODES_DIR" ] && rm -rf "$CODES_DIR" +mkdir "$CODES_DIR" + +sed -e '/^#.*/ d' -e '/^\s*$/ d' < "$CODES_FILE" \ + | xargs -I{} \ + qrencode -l "$QRENCODE_ERR_CORR_LEVEL" -t png -d 150 \ + -o "$CODES_DIR/{}-code.png" {} + +montage -title "\n$CODES_FILE\n$CODES_DATE" \ + "$CODES_DIR/*-code.png" -page a4 -geometry 128x128\> "$CODES_OUT_IMG" + +[ "$CODES_MAKE_PDF" -ne 0 ] && { + convert \( -size 1240x1754 xc: \) "$CODES_OUT_IMG" \ + -composite "$CODES_OUT_PDF" + [ "$CODES_KEEP_PNG" -eq 0 ] && rm -f "$CODES_OUT_IMG" + } + +[ "$CODES_KEEP_PNG" -eq 0 ] && rm -rf "$CODES_DIR" || exit 0 + diff --git a/bin/.local/bin/rand b/bin/.local/bin/rand new file mode 100755 index 0000000..795885b --- /dev/null +++ b/bin/.local/bin/rand @@ -0,0 +1,18 @@ +#!/bin/sh + +# rand (inspired by https://rgz.ee/random.html) +# +# generate random string from charset as first argument and length as second +# +# example: +# $ rand '1-9a-f' 10 +# > 329402aa42 +# +# defaults: +# charset -- all printable characters and space +# length -- 25 + +[ -z $1 ] && charset=' -~' || charset=$1 +[ -z $2 ] && length=25 || length=$2 + +tr -cd "$charset" < /dev/urandom | fold -w "$length" | head -n 1 diff --git a/moc/.config/moc/config b/moc/.config/moc/config new file mode 100644 index 0000000..4f66516 --- /dev/null +++ b/moc/.config/moc/config @@ -0,0 +1,690 @@ +# This is a configuration file for the MOC player. It should be named +# 'config' and placed in the ~/.moc directory. As this file can specify +# commands which invoke other applications, MOC will refuse to start if it +# is not owned by either root or the current user, or if it is writable by +# anyone other than its owner. All options are given with their default +# values, and therefore commented. + +# Comments begin with '#'. +# You can use quotes and escape ('\') in parameters. +# +# You can have variable values substituted by enclosing the variable name +# as "${...}". (This only applies to the portion of the option following +# the '='.) Variables are substituted first from the environment then, +# if not found, from the configuration options. (Note that the value of +# a configuration option substituted is that which it has at the time the +# substitution variable is encountered.) If there is a naming conflict +# between an environment and configuration variable, you may be able to +# resolve it by using lowercase as the environment variable matches are +# case-sensitive whereas the configuration variables are not. +# +# You can also use the form "${...:-...}" where the value in the second +# position will be substituted if the variable name given in the first +# position is unset or null. +# +# So, for example: +# +# MusicDir = /music/${USER:-public} +# Fastdir1 = ${MusicDir}/mp3/rock +# Fastdir2 = ${MusicDir}/mp3/electronic +# Fastdir3 = ${MusicDir}/mp3/rap +# Fastdir4 = ${MusicDir}/mp3/etc +# +# Variable names are limited to those accepted by the BASH shell; that +# is, those comprising the upper- and lowercase ASCII characters, digits +# and the underscore. +# +# If you need to use the "${" sequence for any other purpose, write "$${" +# and it will be replaced by "${" and not treated as a substitution. +# +# Some options take lists of strings as their values. The strings are +# separated by colons. Additional strings can be appended to the list +# using "+=" in place of a plain "=" to assign the value. For an example, +# see the XTerms option. +# +# You can override any configuration option when you run MOC using the +# '-O' command line option: +# +# mocp -O AutoNext=no -O messagelingertime=1 -O XTerms+=xxt:xwt +# +# This command line option can be repeated as many times as needed and +# the configuration option name is not case sensitive. (Note that MOC +# does not perform variable substitution on the value of such overridden +# configuration options.) Most option values are set before the +# configuration file is processed (which allows the new values to be +# picked up by substitutions), however list-valued options are overridden +# afterwards (which gives the choice of whether the configured values are +# replaced or added to). + +# Remember that the client and server are separate processes and the +# server will retain the configuration values formed from the environment +# within which it was originally started. + +# Show file titles (title, author, album) instead of file names? +#ReadTags = yes + +# In which directory do you store your music files? If you specify it +# you will be able to jump straight to this directory with the '-m' +# parameter or the 'm' command. This can also point to a playlist. +# +# Example: MusicDir = "/home/joe/music" +# +MusicDir = "/home/aaoth/Music" + +# Start in the music directory by default? If set to 'no', start +# in the current directory by default. A single directory on +# the command line takes precedence. +StartInMusicDir = yes + +# How to sort? FileName is the option's only value for now. +#Sort = FileName + +# Show errors in the streams (for example, broken frames in MP3 files)? +#ShowStreamErrors = no + +# Ignore CRC errors in MP3 files? Most players do that, so the default +# value is 'yes'. +#MP3IgnoreCRCErrors = yes + +# Set playback toggles. +#Repeat = no +#Shuffle = no +#AutoNext = yes + +# Default FormatString: +# +# %n - Track number +# %a - Artist +# %A - Album +# %t - Title +# %(X:TRUE:FALSE) - Ternary expression: if X exists, do TRUE, +# otherwise FALSE. The escape character must +# be doubled (i.e., '\\'). (See zshmisc +# documentation for more information.) +# +#FormatString = "%(n:%n :)%(a:%a - :)%(t:%t:)%(A: \(%A\):)" + +# Input and output buffer sizes (in kilobytes). +#InputBuffer = 512 # Minimum value is 32KB +#OutputBuffer = 512 # Minimum value is 128KB + +# How much to fill the input buffer before playing (in kilobytes)? +# This can't be greater than the value of InputBuffer. While this has +# a positive effect for network streams, it also causes the broadcast +# audio to be delayed. +#Prebuffering = 64 + +# Use this HTTP proxy server for internet streams. If not set, the +# environment variables http_proxy and ALL_PROXY will be used if present. +# +# Format: HTTPProxy = PROXY_NAME:PORT +# +#HTTPProxy = + +# Sound driver - OSS, ALSA, JACK, SNDIO (on OpenBSD) or null (only for +# debugging). You can enter more than one driver as a colon-separated +# list. The first working driver will be used. +SoundDriver = JACK:ALSA + +# Jack output settings. +JackClientName = "moc" +JackStartServer = no +JackOutLeft = "system:playback_1" +JackOutRight = "system:playback_2" + +# OSS output settings. +#OSSDevice = /dev/dsp +#OSSMixerDevice = /dev/mixer +#OSSMixerChannel1 = pcm # 'pcm', 'master' or 'speaker' +#OSSMixerChannel2 = master # 'pcm', 'master' or 'speaker' + +# ALSA output settings. If you need to dump the audio produced by MOC +# to a file for diagnostic purposes, the following setting of 'ALSADevice' +# should do that: +# +# ALSADevice=tee:hw,'/tmp/out.wav',wav +# +#ALSADevice = default +#ALSAMixer1 = PCM +#ALSAMixer2 = Master + +# Under some circumstances on 32-bit systems, audio played continously +# for long periods of time may begin to stutter. Setting this option to +# 'yes' will force MOC to avoid ALSA's dmix resampling and prevent this +# stutter. But it also has other implications: +# +# - You may experience unacceptably high CPU load. +# - ALSA's resampler plug-ins will not be used. +# - The resampling may be of lower quality than ALSA would provide. +# - You may need to try different "ResampleMethod" option settings. +# - The "ForceSampleRate" option may be ineffective. +# - If libsamplerate is not configured, many audios may be unplayable. +# +#ALSAStutterDefeat = no + +# Save software mixer state? +# If enabled, a file 'softmixer' will be created in '~/.moc/' storing the +# mixersetting set when the server is shut down. +# Note that there is a "hidden" 'Amplification' setting in that file. +# Amplification (0-200) is used to scale the mixer setting (0-100). This +# results in a higher signal amplitude but may also produce clipping. +#Softmixer_SaveState = yes + +# Save equalizer state? +# If enabled, a file 'equalizer' will be created in '~/.moc/' storing the +# equalizer settings when the server is shut down. +# Note that there is a "hidden" 'Mixin' setting in that file. +# Mixin (0.0-1.0) is used to determine how much of the original signal is +# used after equalizing. 0 means to only use the equalized sound, while 1 +# effectively disabled the mixer. The default is 0.25. +#Equalizer_SaveState = yes + +# Show files with dot at the beginning? +#ShowHiddenFiles = no + +# Hide file name extensions? +#HideFileExtension = no + +# Show file format in menu? +#ShowFormat = yes + +# Show file time in menu? Possible values: 'yes', 'no' and 'IfAvailable' +# (meaning show the time only when it is already known, which often works +# faster). +#ShowTime = IfAvailable + +# Show time played as a percentage in the time progress bar. +#ShowTimePercent = no + +# Values of the TERM environment variable which are deemed to be managed by +# screen(1). If you are setting a specific terminal using screen(1)'s +# '-T ' option, then you will need to add 'screen.' to this list. +# Note that this is only a partial test; the value of the WINDOW environment +# variable must also be a number (which screen(1) sets). +#ScreenTerms = screen:screen-w:vt100 + +# Values of the TERM environment variable which are deemed to be xterms. If +# you are using MOC within screen(1) under an xterm, then add screen(1)'s +# TERM setting here as well to cause MOC to update the xterm's title. +#XTerms = xterm +#XTerms += xterm-colour:xterm-color +#XTerms += xterm-256colour:xterm-256color +#XTerms += rxvt:rxvt-unicode +#XTerms += rxvt-unicode-256colour:rxvt-unicode-256color +#XTerms += eterm + +# Theme file to use. This can be absolute path or relative to +# /usr/share/moc/themes/ (depends on installation prefix) or +# ~/.moc/themes/ . +# +# Example: Theme = laras_theme +# +Theme = laninpre_theme + +# The theme used when running on an xterm. +# +# Example: XTermTheme = transparent-background +# +#XTermTheme = + +# Should MOC try to autoload the default lyrics file for an audio? (The +# default lyrics file is a text file with the same file name as the audio +# file name with any trailing "extension" removed.) +#AutoLoadLyrics = yes + +# MOC directory (where pid file, socket and state files are stored). +# You can use ~ at the beginning. +MOCDir = ~/.config/moc + +# Use mmap() to read files. mmap() is much slower on NFS. +#UseMMap = no + +# Use MIME to identify audio files. This can make for slower loading +# of playlists but is more accurate than using "extensions". +#UseMimeMagic = no + +# Assume this encoding for ID3 version 1/1.1 tags (MP3 files). Unlike +# ID3v2, UTF-8 is not used here and MOC can't guess how tags are encoded. +# Another solution is using librcc (see the next option). This option is +# ignored if UseRCC is set to 'yes'. +#ID3v1TagsEncoding = WINDOWS-1250 + +# Use librcc to fix ID3 version 1/1.1 tags encoding. +#UseRCC = yes + +# Use librcc to filenames and directory names encoding. +#UseRCCForFilesystem = yes + +# When this option is set the player assumes that if the encoding of +# ID3v2 is set to ISO-8859-1 then the ID3v1TagsEncoding is actually +# that and applies appropriate conversion. +#EnforceTagsEncoding = no + +# Enable the conversion of filenames from the local encoding to UTF-8. +#FileNamesIconv = no + +# Enable the conversion of the xterm title from UTF-8 to the local encoding. +#NonUTFXterm = no + +# Should MOC precache files to assist gapless playback? +#Precache = yes + +# Remember the playlist after exit? +#SavePlaylist = yes + +# When using more than one client (interface) at a time, do they share +# the playlist? +#SyncPlaylist = yes + +# Choose a keymap file (relative to '~/.moc/' or using an absolute path). +# An annotated example keymap file is included ('keymap.example'). +# +# Example: Keymap = my_keymap +# +Keymap = keymap + +# Use ASCII rather than graphic characters for drawing lines. This +# helps on some terminals. +#ASCIILines = no + +# FastDirs, these allow you to jump directly to a directory, the key +# bindings are in the keymap file. +# +# Examples: Fastdir1 = /mp3/rock +# Fastdir2 = /mp3/electronic +# Fastdir3 = /mp3/rap +# Fastdir4 = /mp3/etc +# +#Fastdir1 = +#Fastdir2 = +#Fastdir3 = +#Fastdir4 = +#Fastdir5 = +#Fastdir6 = +#Fastdir7 = +#Fastdir8 = +#Fastdir9 = +#Fastdir10 = + +# How fast to seek (in number of seconds per keystroke). The first +# option is for normal seek and the second for silent seek. +#SeekTime = 1 +#SilentSeekTime = 5 + +# PreferredDecoders allows you to specify which decoder should be used +# for any given audio format. It is a colon-separated list in which +# each entry is of the general form 'code(decoders)', where 'code' +# identifies the audio format and 'decoders' is a comma-separated list +# of decoders in order of preference. +# +# The audio format identifier may be either a filename extension or a +# MIME media type. If the latter, the format is 'type/subtype' (e.g., +# 'audio/flac'). Because different systems may give different MIME +# media types, any 'x-' prefix of the subtype is ignored both here and +# in the actual file MIME type (so all combinations of 'audio/flac' and +# 'audio/x-flac' match each other). +# +# For Internet streams the matching is done on MIME media type and on +# actual content. For files the matches are made on MIME media type +# (if the 'UseMimeMagic' option is set) and on filename extension. The +# MIME media type of a file is not determined until the first entry for +# MIME is encountered in the list. +# +# The matching is done in the order of appearance in the list with any +# entries added from the command line being matched before those listed +# here. Therefore, if you place all filename extension entries before +# all MIME entries you will speed up MOC's processing of directories +# (which could be significant for remote file systems). +# +# The decoder list may be empty, in which case no decoders will be used +# for files (and files with that audio format ignored) while Internet +# streams will be assessed on the actual content. Any decoder position +# may contain an asterisk, in which case any decoder not otherwise listed +# which can handle the audio format will be used. It is not an error to +# list the same decoder twice, but neither does it make sense to do so. +# +# If you have a mix of audio and non-audio files in your directories, you +# may wish to include entries at top of the list which ignore non-audio +# files by extension. +# +# In summary, the PreferredDecoders option provides fine control over the +# type of matching which is performed (filename extension, MIME media +# type and streamed media content) and which decoder(s) (if any) are used +# based on the option's list entries and their ordering. +# +# Examples: aac(aac,ffmpeg) first try FAAD2 for AACs then FFmpeg +# mp3() ignore MP3 files +# wav(*,sndfile) use sndfile for WAV as a last resort +# ogg(vorbis,*):flac(flac,*) try Xiph decoders first +# ogg():audio/ogg() ignore OGG files, and +# force Internet selection by content +# gz():html() ignore some non-audio files +# +# Any unspecified audio formats default to trying all decoders. +# Any unknown (or misspelt) drivers are ignored. +# All names are case insensitive. +# The default setting reflects the historical situation modified by +# the experience of users. +# +#PreferredDecoders = aac(aac,ffmpeg):m4a(ffmpeg) +#PreferredDecoders += mpc(musepack,*,ffmpeg):mpc8(musepack,*,ffmpeg) +#PreferredDecoders += sid(sidplay2):mus(sidplay2) +#PreferredDecoders += wav(sndfile,*,ffmpeg) +#PreferredDecoders += wv(wavpack,*,ffmpeg) +#PreferredDecoders += audio/aac(aac):audio/aacp(aac):audio/m4a(ffmpeg) +#PreferredDecoders += audio/wav(sndfile,*) + +# The following PreferredDecoders attempt to handle the ambiguity surrounding +# container types such as OGG for files. The first two entries will force +# a local file to the correct decoder (assuming the .ogg file contains Vorbis +# audio), while the MIME media types will cause Internet audio streams to +# be assessed on content (which may be either Vorbis or Speex). +# +#PreferredDecoders += ogg(vorbis,ffmpeg):oga(vorbis,ffmpeg):ogv(ffmpeg) +#PreferredDecoders += opus(ffmpeg) +#PreferredDecoders += spx(speex) +#PreferredDecoders += application/ogg(vorbis):audio/ogg(vorbis) + +# Which resampling method to use. There are a few methods of resampling +# sound supported by libresamplerate. The default is 'Linear') which is +# also the fastest. A better description can be found at: +# +# http://www.mega-nerd.com/libsamplerate/api_misc.html#Converters +# +# but briefly, the following methods are based on bandlimited interpolation +# and are higher quality, but also slower: +# +# SincBestQuality - really slow (I know you probably have an xx GHz +# processor, but it's still not enough to not see +# this in the top output :) The worst case +# Signal-to-Noise Ratio is 97dB. +# SincMediumQuality - much faster. +# SincFastest - the fastest bandlimited interpolation. +# +# And these are lower quality, but much faster methods: +# +# ZeroOrderHold - really poor quality, but it's really fast. +# Linear - a bit better and a bit slower. +# +#ResampleMethod = Linear + +# Always use this sample rate (in Hz) when opening the audio device (and +# resample the sound if necessary). When set to 0 the device is opened +# with the file's rate. +#ForceSampleRate = 0 + +# By default, even if the sound card reports that it can output 24bit samples +# MOC converts 24bit PCM to 16bit. Setting this option to 'yes' allows MOC +# to use 24bit output. (The MP3 decoder, for example, uses this format.) +# This is disabled by default because there were reports that it prevents +# MP3 files from playing on some soundcards. +#Allow24bitOutput = no + +# Use realtime priority for output buffer thread. This will prevent gaps +# while playing even with heavy load. The user who runs MOC must have +# permissions to set such a priority. This could be dangerous, because it +# is possible that a bug in MOC will freeze your computer. +#UseRealtimePriority = no + +# The number of audio files for which MOC will cache tags. When this limit +# is reached, file tags are discarded on a least recently used basis (with +# one second resolution). You can disable the cache by giving it a size of +# zero. Note that if you decrease the cache size below the number of items +# currently in the cache, the number will not decrease immediately (if at +# all). +#TagsCacheSize = 256 + +# Number items in the playlist. +#PlaylistNumbering = yes + +# Main window layouts can be configured. You can change the position and +# size of the menus (directory and playlist). You have three layouts and +# can switch between then using the 'l' key (standard mapping). By default, +# only two layouts are configured. +# +# The format is as follows: +# +# - Each layout is described as a list of menu entries. +# - Each menu entry is of the form: +# +# menu(position_x, position_y, width, height) +# +# where 'menu' is either 'directory' or 'playlist'. +# - The parameters define position and size of the menu. They can +# be absolute numbers (like 10) or a percentage of the screen size +# (like 45%). +# - 'width' and 'height' can have also value of 'FILL' which means +# fill the screen from the menu's position to the border. +# - Menus may overlap. +# +# You must describe at least one menu (default is to fill the whole window). +# There must be at least one layout (Layout1) defined; others can be empty. +# +# Example: Layout1 = playlist(50%,50%,50%,50%) +# Layout2 = "" +# Layout3 = "" +# +# Just one layout, the directory will occupy the whole +# screen, the playlist will have 1/4 of the screen size +# and be positioned at lower right corner. (Note that +# because the playlist will be hidden by the directory +# you will have to use the TAB key to make the playlist +# visible.) +# +# Example: Layout1 = playlist(0,0,100%,10):directory(0,10,100%,FILL) +# +# The screen is split into two parts: playlist at the top +# and the directory menu at the bottom. Playlist will +# occupy 10 lines and the directory menu the rest. +# +#Layout1 = directory(0,0,50%,100%):playlist(50%,0,FILL,100%) +#Layout2 = directory(0,0,100%,100%):playlist(0,0,100%,100%) +#Layout3 = "" + +# When the song changes, should the menu be scrolled so that the currently +# played file is visible? +#FollowPlayedFile = yes + +# What to do if the interface was started and the server is already playing +# something from the playlist? If CanStartInPlaylist is set to 'yes', the +# interface will switch to the playlist. When set to 'no' it will start +# from the last directory. +#CanStartInPlaylist = yes + +# Executing external commands (1 - 10) invoked with key commands (F1 - F10 +# by default). +# +# Some arguments are substituted before executing: +# +# %f - file path +# %i - title made from tags +# %S - start block mark (in seconds) +# %E - end block mark (in seconds) +# +# Data from tags can also be substituted: +# +# %t - title +# %a - album +# %r - artist +# %n - track +# %m - time of the file (in seconds) +# +# The parameters above apply to the currently selected file. If you change +# them to capital letters, they are taken from the file currently playing. +# +# Programs are run using execv(), not a shell, so you can't do things like +# redirecting the output to a file. The command string is split using blank +# characters as separators; the first element is the command to be executed +# and the rest are its parameters, so if you use "echo Playing: %I" we run +# program 'echo' (from $PATH) with 2 parameters: the string 'Playing:' and +# the title of the file currently playing. Even if the title contains +# spaces, it's still one parameter and it's safe if it contains `rm -rf /`. +# +# Examples: ExecCommand1 = "cp %f /mnt/usb_drive" +# ExecCommand2 = "/home/joe/now_playing %I" +# +#ExecCommand1 = +#ExecCommand2 = +#ExecCommand3 = +#ExecCommand4 = +#ExecCommand5 = +#ExecCommand6 = +#ExecCommand7 = +#ExecCommand8 = +#ExecCommand9 = +#ExecCommand10 = + +# Display the cursor in the line with the selected file. Some braille +# readers (the Handy Tech modular series ZMU 737, for example) use the +# cursor to focus and can make use of it to present the file line even +# when other fields are changing. +#UseCursorSelection = no + +# Set the terminal title when running under xterm. +#SetXtermTitle = yes + +# Set the terminal title when running under screen(1). If MOC can detect +# that it is running under screen(1), then it will set an appropriate +# title (see description of ScreenTerms above). However, if multiple +# levels of screen management are involved, detection might fail and this +# could cause a screen upset. In that situation you can use this option +# to force screen titles off. +#SetScreenTitle = yes + +# Display full paths instead of just file names in the playlist. +#PlaylistFullPaths = yes + +# The following setting describes how block markers are displayed in +# the play time progress bar. Its value is a string of exactly three +# characters. The first character is displayed in a position which +# corresponds to the time marked as the start of a block and the last +# character to the time marked as the end of the block. The middle +# character is displayed instead if both the start and the end of the block +# would fall in the same position (within the resolution of the interface). +# You can turn off the displaying of these block marker positions by using +# three space characters. +#BlockDecorators = "`\"'" + +# How long (in seconds) to leave a message displayed on the screen. +# Setting this to a high value allows you to scroll through the messages +# using the 'hide_message' key. Setting it to zero means you'll have to +# be quick to see any message at all. Any new messages will be queued up +# and displayed after the current message's linger time expires. +#MessageLingerTime = 3 + +# Does MOC display a prefix on delayed messages indicating +# the number of queued messages still to be displayed? +#PrefixQueuedMessages = yes + +# String to append to the queued message count if any +# error messages are still waiting to be displayed. +#ErrorMessagesQueued = "!" + +# Self-describing ModPlug options (with 'yes' or 'no' values). +#ModPlug_Oversampling = yes +#ModPlug_NoiseReduction = yes +#ModPlug_Reverb = no +#ModPlug_MegaBass = no +#ModPlug_Surround = no + +# ModPlug resampling mode. +# Valid values are: +# +# FIR - 8 tap fir filter (extremely high quality) +# SPLINE - Cubic spline interpolation (high quality) +# LINEAR - Linear interpolation (fast, good quality) +# NEAREST - No interpolation (very fast, extremely bad sound quality) +# +#ModPlug_ResamplingMode = FIR + +# Other self-describing ModPlug audio characteristic options. +# (Note that the 32 bit sample size seems to be buggy.) +#ModPlug_Channels = 2 # 1 or 2 channels +#ModPlug_Bits = 16 # 8, 16 or 32 bits +#ModPlug_Frequency = 44100 # 11025, 22050, 44100 or 48000 Hz +#ModPlug_ReverbDepth = 0 # 0 (quiet) to 100 (loud) +#ModPlug_ReverbDelay = 0 # Delay in ms (usually 40-200ms) +#ModPlug_BassAmount = 0 # 0 (quiet) to 100 (loud). +#ModPlug_BassRange = 10 # Cutoff in Hz (10-100). +#ModPlug_SurroundDepth = 0 # Surround level 0(quiet)-100(heavy). +#ModPlug_SurroundDelay = 0 # Surround delay in ms, usually 5-40ms. +#ModPlug_LoopCount = 0 # 0 (never), n (times) or -1 (forever) + +# Self-describing TiMidity audio characteristic options. +#TiMidity_Rate = 44100 # Between 8000 and 48000 +#TiMidity_Bits = 16 # 8 or 16 +#TiMidity_Channels = 2 # 1 or 2 +#TiMidity_Volume = 100 # 0 to 800 + +# You can setup a TiMidity-Config-File here. +# Leave it unset to use library defaults (/etc/timidity.cfg mostly). +# Setting it to 'yes' also uses the library defaults. +# Set it to 'no' if you don't have any configuration file. +# Otherwise set it to the name of a specific file. +#TiMidity_Config = + +# Self-describing SidPlay2 audio characteristic options. +#SidPlay2_DefaultSongLength = 180 # If not in database (in seconds) +#SidPlay2_MinimumSongLength = 0 # Play at least n (in seconds) +#SidPlay2_Frequency = 44100 # 4000 to 48000 +#SidPlay2_Bits = 16 # 8 or 16 +#SidPlay2_Optimisation = 0 # 0 (worst quality) to 2 (best quality) + +# Set path to a HVSC-compatible database (if not set, database is disabled). +#SidPlay2_Database = + +# SidPlay2 playback Mode: +# +# "M": Mono (best for many SIDs) +# "S": Stereo +# "L"/"R": Left / Right +# +#SidPlay2_PlayMode = "M" + +# Use start-song information from SID ('yes') or start at first song +# ('no'). Songs before the start-song won't be played. (Note that this +# option previously took the values 1 and 0; these are now deprecated +# in favour of 'yes' and 'no'.) +#SidPlay2_StartAtStart = yes + +# Play sub-tunes. (Note that this option previously took the values 1 +# and 0; these are now deprecated in favour of 'yes' and 'no'.) +#SidPlay2_PlaySubTunes = yes + +# Run the OnSongChange command when a new song starts playing. +# Specify the full path (i.e. no leading '~') of an executable to run. +# Arguments will be passed, and you can use the following escapes: +# +# %a artist +# %r album +# %f filename +# %t title +# %n track +# %d file duration in XX:YY form +# %D file duration, number of seconds +# +# No pipes/redirects can be used directly, but writing a shell script +# can do the job. +# +# Example: OnSongChange = "/home/jack/.moc/myscript %a %r" +# +OnSongChange = "/home/aaoth/.local/bin/mocpnotify next %a %t %d" + +# If RepeatSongChange is 'yes' then MOC will execute the command every time +# a song starts playing regardless of whether or not it is just repeating. +# Otherwise the command will only be executed when a different song is +# started. +#RepeatSongChange = no + +# Run the OnStop command (full path, no arguments) when MOC changes state +# to stopped (i.e., when user stopped playing or changes a song). +OnStop = "/home/aaoth/.local/bin/mocpnotify stop" + +# This option determines which song to play after finishing all the songs +# in the queue. Setting this to 'yes' causes MOC to play the song which +# follows the song being played before queue playing started. If set to +# 'no', MOC will play the song following the last song in the queue if it +# is in the playlist. The default is 'yes' because this is the way other +# players usually behave. (Note that this option previously took the +# values 1 and 0; these are now deprecated in favour of 'yes' and 'no'.) +#QueueNextSongReturn = yes diff --git a/moc/.config/moc/keymap b/moc/.config/moc/keymap new file mode 100644 index 0000000..5a1dde6 --- /dev/null +++ b/moc/.config/moc/keymap @@ -0,0 +1,188 @@ +# This is the example keymap file for MOC. You can define your own key +# bindings for MOC commands by creating your own keymap file and setting +# the 'Keymap' option in ~/.moc/config. +# +# The format of this file is: +# +# - Lines beginning with # are comments. +# - Blank lines are ignored. +# - Every other line is expected to be in one of the formats: +# +# COMMAND = [KEY ...] +# COMMAND += KEY ... +# +# The KEY can be: +# +# - Just a char, like i, L, ", * +# - CTRL-KEY sequence: ^k (CTRL-k), ^4 +# - ALT-KEY (meta) sequence: M-j (ALT-j), M-/ +# - Special keys: DOWN, UP +# LEFT, RIGHT +# HOME, END +# BACKSPACE +# INS, DEL +# ENTER +# PAGE_UP, PAGE_DOWN +# SPACE, TAB +# KEYPAD_CENTER +# ESCAPE +# F1 - F12 +# +# Note that the use of a digit as a KEY is deprecated. +# +# Maximum number of KEYs for one COMMAND is 5. +# +# Omitting the KEY for a COMMAND will unbind all its default keys. They +# will also be automatically unbound when you bind new KEYs to it. Individual +# default KEYs will be automatically unbound when they are explicitly bound +# to some other COMMAND. +# +# Using the '+=' form will cause the KEYs to be appended to any existing +# (default or explicit) bindings for the COMMAND. Appending an existing +# default binding for the same COMMAND will cause MOC to think of that KEY +# as then being explicitly bound. +# +# Only one binding for any given COMMAND can appear in the keymap file. One +# exception to this is that if the default keys for a COMMAND are explicitly +# unbound then a subsequent binding may appear for it. A second exception +# is that multiple appending bindings may appear. +# +# Meta-key detection is sensitive to the ESCDELAY environment variable (see +# the manpage for ncurses(3)). In its absence, MOC resets the default +# delay to 25ms. If you need to emulate meta-key sequences using the ESC +# key, then you may need to set the value of ESCDELAY back to its ncurses +# default of 1000ms (but doing so will make the response to the ESC key +# sluggish). +# +# If MOC's keypresses are being filtered through some other program (in a +# GUI environment, for example) which also does meta-key detection, then +# MOC is at the mercy of the timings with which that program presents them. +# +# Default key configuration for MOC (and a list of all available commands): + +# MOC control keys: +quit_client = q z +quit = Q Z + +# Menu and interface control keys: +go = ENTER +menu_down = DOWN j +menu_up = UP k +menu_page_down = PAGE_DOWN d +menu_page_up = PAGE_UP u +menu_first_item = HOME g +menu_last_item = END G +search_menu = / +toggle_read_tags = f +toggle_show_time = ^t +toggle_show_format = ^f +toggle_menu = TAB +toggle_layout = ^l +toggle_hidden_files = ^' +next_search = N +show_lyrics = L +theme_menu = T +help = ? +refresh = ^r +reload = r + +# Audio playing and positioning keys: +seek_forward = RIGHT l +seek_backward = LEFT h +seek_forward_fast = ] +seek_backward_fast = [ +pause = p SPACE +stop = s +next = n +previous = b +toggle_shuffle = S +toggle_repeat = R +toggle_auto_next = X +toggle_mixer = t +go_url = o + +# Volume control keys: +volume_down_1 = < +volume_up_1 = > +volume_down_5 = , +volume_up_5 = . +volume_10 = M-1 +volume_20 = M-2 +volume_30 = M-3 +volume_40 = M-4 +volume_50 = M-5 +volume_60 = M-6 +volume_70 = M-7 +volume_80 = M-8 +volume_90 = M-9 + +# Directory navigation keys: defaults are Shift-number +# (i.e., 'shift 1' -> '!' -> 'Fastdir1'). +go_to_a_directory = i +go_to_music_directory = m +go_to_fast_dir1 = ! +go_to_fast_dir2 = @ +go_to_fast_dir3 = # +go_to_fast_dir4 = $ +go_to_fast_dir5 = % +go_to_fast_dir6 = ^ +go_to_fast_dir7 = & +go_to_fast_dir8 = * +go_to_fast_dir9 = ( +go_to_fast_dir10 = ) +go_to_playing_file = ^o +go_up = H + +# Playlist specific keys: +add_file = y +add_directory = Y +plist_add_stream = ^a +delete_from_playlist = x +playlist_full_paths = P +plist_move_up = J +plist_move_down = K +save_playlist = V +remove_dead_entries = ^x +clear_playlist = D + +# Queue manipulation keys: +enqueue_file = ^m +clear_queue = M-m + +# User interaction control: +history_up = UP +history_down = DOWN +delete_to_start = ^h +delete_to_end = ^l +cancel = ESCAPE +hide_message = ^; + +# Softmixer specific keys: +toggle_softmixer = w +toggle_make_mono = M + +# Equalizer specific keys: +toggle_equalizer = E +equalizer_refresh = e +equalizer_prev = ^d +equalizer_next = ^u + +# External commands: +mark_start = ' +mark_end = " +exec_command1 = F1 +exec_command2 = F2 +exec_command3 = F3 +exec_command4 = F4 +exec_command5 = F5 +exec_command6 = F6 +exec_command7 = F7 +exec_command8 = F8 +exec_command9 = F9 +exec_command10 = F10 + +# The following commands are available but not assigned to any keys by +# default: +# +# toggle_percent Switch on/off play progress bar time percentage +# diff --git a/moc/.config/moc/themes/laninpre_theme b/moc/.config/moc/themes/laninpre_theme new file mode 100644 index 0000000..0ed3aca --- /dev/null +++ b/moc/.config/moc/themes/laninpre_theme @@ -0,0 +1,38 @@ + +# Author: la-ninpre + +background = default default +frame = blue default dim +window_title = cyan default +directory = blue default bold +selected_directory = blue yellow dim,reverse +playlist = blue default bold,dim +selected_playlist = blue yellow dim,reverse +file = blue default bold +selected_file = blue yellow dim,reverse +marked_file = cyan default bold +marked_selected_file = yellow blue dim +info = cyan default +selected_info = blue default bold +marked_info = blue default bold +marked_selected_info = cyan default bold +status = blue default dim +title = yellow default bold +state = blue default +current_time = green default +time_left = default default dim +total_time = red default bold +time_total_frames = red default bold,dim +sound_parameters = yellow default dim +legend = yellow default dim +disabled = default default dim +enabled = green default bold +empty_mixer_bar = blue default bold +filled_mixer_bar = blue yellow dim,reverse +empty_time_bar = blue default bold +filled_time_bar = default blue dim +entry = cyan default bold +entry_title = cyan default bold +error = red default bold,standout +message = green default bold +plist_time = green default bold diff --git a/moc/.local/bin/mocpnotify b/moc/.local/bin/mocpnotify new file mode 100755 index 0000000..f3aa72c --- /dev/null +++ b/moc/.local/bin/mocpnotify @@ -0,0 +1,11 @@ +#!/bin/sh + +case $1 in + "next") + notify-send -a mocp -t 3000 "now playing" "$2 - $3 [$4]" + ;; + "stop") + notify-send -a mocp -t 3000 "mocp" "stopped playing" + ;; +esac + diff --git a/nvim/.config/nvim/after/ftplugin/python.vim b/nvim/.config/nvim/after/ftplugin/python.vim new file mode 100644 index 0000000..ef4d633 --- /dev/null +++ b/nvim/.config/nvim/after/ftplugin/python.vim @@ -0,0 +1,26 @@ +set shiftwidth=4 tabstop=4 softtabstop=4 expandtab autoindent smartindent + +setlocal path=.,** +setlocal wildignore=*/__pycache__/*,*.pyc + +set include=^\\s*\\(from\\\|import\\)\\s*\\zs\\(\\S\\+\\s\\{-}\\)*\\ze\\($\\\|\ as\\) + +function! PyInclude(fname) + let parts = split(a:fname, ' import ') + let l = parts[0] + if len(parts) > 1 + let r = parts[1] + let joined = join([l, r], '.') + let fp = substitute(joined, '\.', '/', 'g') . '.py' + let found = glob(fp, 1) + if len(found) + return substitute(joined, '\.', '/', 'g') . '.py' + endif + endif + return substitute(joined, '\.', '/', 'g') . '.py' +endfunction + +setlocal includeexpr=PyInclude(v:fname) +setlocal define=^\\s*\\<\\(def\\\|class\\)\\> + +nnoremap pp :!pycodestyle --first % diff --git a/nvim/.config/nvim/after/ftplugin/yaml.vim b/nvim/.config/nvim/after/ftplugin/yaml.vim new file mode 100644 index 0000000..42313c3 --- /dev/null +++ b/nvim/.config/nvim/after/ftplugin/yaml.vim @@ -0,0 +1 @@ +set shiftwidth=2 tabstop=2 softtabstop=2 expandtab diff --git a/nvim/.config/nvim/ftdetect/pikchr.vim b/nvim/.config/nvim/ftdetect/pikchr.vim new file mode 100644 index 0000000..ebd25b4 --- /dev/null +++ b/nvim/.config/nvim/ftdetect/pikchr.vim @@ -0,0 +1 @@ +autocmd BufRead,BufNewFile *.pikchr set filetype=pikchr diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim new file mode 100644 index 0000000..52d7176 --- /dev/null +++ b/nvim/.config/nvim/init.vim @@ -0,0 +1,156 @@ +" la-ninpre init.vim " + +" misc: {{{ + +" use space as leader key +let mapleader=" " + +" enter new era :D +set nocompatible +set encoding=utf-8 + +" enable 24-bit colors +set termguicolors + +" enable hybrid numbers +set nu rnu + +" mouse is bad, but sometimes is useful +set mouse=a + +" this is for better file searching +set path=.,** +set wildmenu + +" more intuitive splits +set splitbelow splitright + +" search options +set nohlsearch incsearch ignorecase smartcase showmatch + +" ruler +set rulerformat=%35(%{strftime('%F\ %H:%M')}%=%l/%L%=%c%V%=%p%%\ %) + +" expand tabs to spaces +set tabstop=4 softtabstop=4 +set shiftwidth=4 +set expandtab + +" use autoindents +set smartindent + +" replace default behaviour with undotree plugin +set noswapfile nobackup +set undodir=~/.local/share/nvim/undodir +set undofile + +" actually, i don't remember what is this... +set hidden + +" fix update time +set updatetime=50 + +" remind yourself about 80 column rule +set colorcolumn=81 + +" this could be used to show unprintable characters +set listchars=tab:>-,eol:$,space:•,trail:~ + +" }}} +" plugins: {{{ + +" pluggins are installed with vim plug +call plug#begin('~/.local/share/nvim/plugged') +Plug '~/.local/share/nvim/plugged/gruvbox', {'branch': 'la-ninpre/la-ninpre'} +Plug 'junegunn/goyo.vim' +Plug 'junegunn/limelight.vim' +Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } +Plug 'junegunn/fzf.vim' +Plug 'mattn/emmet-vim' +Plug 'ap/vim-css-color' +Plug 'preservim/nerdcommenter' +Plug 'tpope/vim-surround' +Plug 'mbbill/undotree' +Plug 'dense-analysis/ale' +Plug 'cespare/vim-toml' +Plug 'https://tildegit.org/sloum/gemini-vim-syntax' +call plug#end() +filetype plugin indent on + +" }}} +" colorscheme: {{{ +" colorscheme tweaks +if exists('+termguicolors') + let &t_8f = "\[38;2;%lu;%lu;%lum" + let &t_8b = "\[48;2;%lu;%lu;%lum" +endif + +let g:gruvbox_contrast_dark='hard' +let g:gruvbox_italic=1 +let g:gruvbox_transparent_bg=1 +let g:gruvbox_invert_selection='0' + +set background=dark +colorscheme gruvbox + +" }}} +" mappings: {{{ + +" easier navigation in splits +map +map +map +map + +" replace all occurencies of the word under the cursor +nnoremap su :%s/\<\>/ + +" show or hide undo tree +nnoremap u :UndotreeToggle + +" open helptags +nnoremap h :Helptags + +" open file with fzf +nnoremap o :Files + +" easy source init.vim +nnoremap :so ~/.config/nvim/init.vim +" easy open init.vim +nnoremap vc :e ~/.config/nvim/init.vim + +" show or hide unprintable characters +nnoremap sl :set list +nnoremap sn :set nolist + +" goyo +nnoremap go :Goyo + +" actually magick! +" this moves higlighted block up or down +vnoremap J :m '>+1gv=gv +vnoremap K :m '<-2gv=gv + +" alias for capturing group in command mode (for use with regexps) +cmap ;( \(\) + +" }}} +" autocommands: {{{ + +" limelight on when goyo +autocmd! User GoyoEnter Limelight +autocmd! User GoyoLeave Limelight! + +" fix wrong nvim size when starting in alacritty +autocmd VimEnter * :silent exec "!kill -s SIGWINCH $PPID" + +" enable insert mode when entering git commit message +autocmd VimEnter */COMMIT_EDITMSG startinsert + +" highlight yanked text (needs nvim 0.5.x) +augroup highlight_yank + autocmd! + autocmd TextYankPost * silent! lua require'vim.highlight'.on_yank({timeout = 40}) +augroup END + +" vim: ft=vim fdm=marker: diff --git a/nvim/.config/nvim/syntax/pikchr.vim b/nvim/.config/nvim/syntax/pikchr.vim new file mode 100644 index 0000000..52d4d59 --- /dev/null +++ b/nvim/.config/nvim/syntax/pikchr.vim @@ -0,0 +1,93 @@ +" Vim syntax file +" Language: Pikchr +" Mantainer: la-ninpre +" Latest Revision: 14 Dec 2020 + +" check if syntax highlighting is not in conflict +if exists("b:current_syntax") + finish +endif + +""" syntax block + +" keywords +syntax keyword PikchrStatement print assert +syntax keyword PikchrExprFunc abs cos dist int max min sin sqrt +syntax keyword PikchrObject arc arrow box circle cylinder dot ellipse file line +syntax keyword PikchrObject move oval spline text +syntax keyword PikchrDirection right down left up nextgroup=PikchrNumber +syntax keyword PikchrDirection n north ne e east se s south sw w west nw +syntax keyword PikchrPlace of in vertex +syntax keyword PikchrAttribute dashed dotted color fill behind cw ccw +syntax keyword PikchrAttribute thick thin solid chop fit +syntax keyword PikchrTextAttr above aligned below big small bold italic +syntax keyword PikchrTextAttr center ljust rjust +syntax keyword PikchrLocAttr at with +syntax keyword PikchrEdgename n north ne nw e east s south se sw w west +syntax keyword PikchrEdgename t top bot bottom c center start end left right +syntax keyword PikchrEdgename nextgroup=PikchrPlace +syntax keyword PikchrNumPropty diameter ht height rad radius thickness width wid +syntax keyword PikchrNthObj last previous +syntax keyword PikchrOperator + - * / + +" define stmt +syntax match PikchrDefineStmt "^define\s\i\+" contains=PikchrCustomObject +syntax keyword PikchrDefine define contained +syntax match PikchrCustomObject "\i\+" contained + +" literals +syntax match PikchrComment "\v(#.*$)|(/\*.*\*/)" +syntax match PikchrString "\".*\"" +syntax match PikchrVariable "\v\i+\s?(\*|\+|-|/)?\=" +syntax match PikchrDollVar "\$\i\+" +syntax match PikchrLabel "\u\w*" +syntax match PikchrNumber "\v\.?\d+(\.\d+)?(\%|in|cm|px|pt|pc|mm)?" +syntax match PikchrNumber "\v0x\x+" +syntax match PikchrOrdinal "\v([^0]\d+(st|nd|rd|th))|first" + +" matches +syntax match PikchrAttributeSup "\v" +syntax match PikchrAttributeSup "\v" +syntax match PikchrAttributeSup "\v\<-\>?|-\>" +syntax match PikchrPosition "\v(((of\sthe\s)?\sway\s)?between)|and" +syntax match PikchrDotEdgename "\v\.(n(e|w)?(orth)?|e(ast)?|s(e|w)?(outh)?|w(est)?)" +syntax match PikchrDotEdgename "\v\.(bot(tom)?|t(op)?|right|left|start|end|c(enter)?)" +syntax match PikchrDotPropty "\v\.(color|dashed|diameter|dotted|fill)" +syntax match PikchrDotPropty "\v\.(ht|height|rad(ius)?|thickness|wid(th)?)" +syntax match PikchrPathElem "\v<(from|then|go|to|(until\s)?even\swith|heading|close)>" nextgroup=PikchrDirection + +""" highlight block + +" keywords +hi def link PikchrStatement Statement +hi def link PikchrExprFunc Function +hi def link PikchrObject Type +hi def link PikchrDirection Function +hi def link PikchrLocAttr Tag +hi def link PikchrPlace Function +hi def link PikchrTextAttr Identifier +hi def link PikchrNumPropty Identifier +hi def link PikchrEdgename Identifier +hi def link PikchrNthObj Constant +hi def link PikchrOperator Operator + +" define stmt +hi def link PikchrDefine Define +hi def link PikchrCustomObject Type + +" literals +hi def link PikchrComment Comment +hi def link PikchrString String +hi def link PikchrVariable Identifier +hi def link PikchrDollVar Identifier +hi def link PikchrLabel Identifier +hi def link PikchrNumber Number +hi def link PikchrOrdinal Number + +" matches +hi def link PikchrAttribute Tag +hi def link PikchrAttributeSup Tag +hi def link PikchrPosition Function +hi def link PikchrDotEdgename Identifier +hi def link PikchrDotPropty Identifier +hi def link PikchrPathElem Statement diff --git a/starship/.config/starship.toml b/starship/.config/starship.toml new file mode 100644 index 0000000..15e7b98 --- /dev/null +++ b/starship/.config/starship.toml @@ -0,0 +1,16 @@ +# Don't print a new line at the start of the prompt +add_newline = false + +[line_break] +disabled = true + +[username] +show_always = true + +# Replace the "❯" symbol in the prompt with "➜" +#[character] # The name of the module we are configuring is "character" +#success_symbol = "[➜](bold green)" # The "success_symbol" segment is being set to "➜" with the color "bold green" + +# Disable the package module, hiding it from the prompt completely +#[package] +#disabled = true diff --git a/xmonad/.xmonad b/xmonad/.xmonad new file mode 160000 index 0000000..e743f35 --- /dev/null +++ b/xmonad/.xmonad @@ -0,0 +1 @@ +Subproject commit e743f357f27838e05bd3b20d6be9dcfcf0cde6d6 -- cgit v1.2.3