initial commit

This commit is contained in:
Cynthia Foxwell 2022-02-15 14:07:11 -07:00
commit 2564138cff
22 changed files with 2642 additions and 0 deletions

1
README.md Normal file
View file

@ -0,0 +1 @@
# dotfiles but public

96
common/.XCompose Normal file
View file

@ -0,0 +1,96 @@

<Multi_key> <^> <^> : "🥕"
<Multi_key> <z> <w> <s> <p> : ""
<Multi_key> <Multi_key> < > < > < > : ""
<Multi_key> <Multi_key> <3> <3> : "Ɛ"
<Multi_key> <Multi_key> <a> <m> <o> <g> <u> <s> : "ඞ"
<Multi_key> <Multi_key> <^> <w> <^> : "( ^•ω•^)"
####
# chine
<Multi_key> <Multi_key> <c> <n> <1> : "政府在追我"
<Multi_key> <Multi_key> <c> <n> <2> : "所有的希望都破灭了"
<Multi_key> <Multi_key> <c> <n> <3> : "我的灵魂没了"
<Multi_key> <Multi_key> <c> <n> <4> : "这些坚果"
<Multi_key> <Multi_key> <c> <n> <5> : "我的生命即将结束"
<Multi_key> <Multi_key> <c> <n> <6> : "动态网自由门 天安門 天安门 法輪功 李洪志 Free Tibet 六四天安門事件 The Tiananmen Square protests of 1989 天安門大屠殺 The Tiananmen Square Massacre 反右派鬥爭 The Anti-Rightist Struggle 大躍進政策 The Great Leap Forward 文化大革命 The Great Proletarian Cultural Revolution 人權 Human Rights 民運 Democratization 自由 Freedom 獨立 Independence 多黨制 Multi-party system 台灣 臺灣 Taiwan Formosa 中華民國 Republic of China 西藏 土伯特 唐古特 Tibet 達賴喇嘛 Dalai Lama 法輪功 Falun Dafa 新疆維吾爾自治區 The Xinjiang Uyghur Autonomous Region 諾貝爾和平獎 Nobel Peace Prize 劉暁波 Liu Xiaobo 民主 言論 思想 反共 反革命 抗議 運動 騷亂 暴亂 騷擾 擾亂 抗暴 平反 維權 示威游行 李洪志 法輪大法 大法弟子 強制斷種 強制堕胎 民族淨化 人體實驗 肅清 胡耀邦 趙紫陽 魏京生 王丹 還政於民 和平演變 激流中國 北京之春 大紀元時報 九評論共産黨 獨裁 專制 壓制 統一 監視 鎮壓 迫害 侵略 掠奪 破壞 拷問 屠殺 活摘器官 誘拐 買賣人口 遊進 走私 毒品 賣淫 春畫 賭博 六合彩 天安門 天安门 法輪功 李洪志 Winnie the Pooh 劉曉波动态网自由门"
<Multi_key> <Multi_key> <c> <n> <7> : "腾讯控股有限公司英語Tencent Holdings Limited简称腾讯是中华人民共和国一家跨国企业控股公司为中國大陸规模最大的互联网公司1998年11月由马化腾"
<Multi_key> <Multi_key> <c> <n> <8> : "暴雪娱乐英語Blizzard Entertainment, Inc.)是美国游戏开发商和发行商"
####
# the unicode shenanigans pack for XCompose, by zoeWhy (smooch.computer)
# for when you need obfuscation
# Please use these wisely, using them for everything everywhere is dumb and causes accessibility issues.
# If that for some reason isn't a good enough reason for you: using these excessively will cause them to lose their power.
# Don't be a dumbass.
# breakers
# used to break up text when lookalikes can't be used
<Multi_key> <a> <l> <m> : "؜" # arabic letter mark (U+061C) (never is a space, but can cause RTL)
<Multi_key> <h> <f> : "" # hangul filler (U+3164) (sometimes is a space and causes translation issues, but can't cause RTL)
<Multi_key> <h> <h> <f> : "" # half-width hangul filler (U+FFA0) (dubious, untested)
# lookalikes
# lookalikeness is not guaranteed, though:
# anything labeled "Cyrillic lookalike" is guaranteed to show up on basically anything that isn't WinXP, and usually looks like the imitated character
# Armenian and Cherokee lookalikes are more dubious
# Latin lookalikes probably work but may look weird
# Full-width lookalikes will always look weird, and are usually a last-resort
<Multi_key> <Down> <A> : "А" # Cyrillic lookalike U+0410
<Multi_key> <Down> <B> : "В" # Cyrillic lookalike U+0412
<Multi_key> <Down> <C> : "С" # Cyrillic lookalike U+0421
<Multi_key> <Down> <D> : "" # Cherokee lookalike U+13a0
<Multi_key> <Down> <E> : "Е" # Cyrillic lookalike U+0415
<Multi_key> <Down> <F> : "Ϝ" # Greek lookalike U+03dc
<Multi_key> <Down> <G> : "Ԍ" # Cyrillic (supplement) lookalike U+050c
<Multi_key> <Down> <H> : "Н" # Cyrillic lookalike U+041d
<Multi_key> <Down> <I> : "І" # Cyrillic lookalike U+0406
<Multi_key> <Down> <J> : "Ј" # Cyrillic lookalike U+0408
<Multi_key> <Down> <K> : "К" # Cyrillic lookalike U+041a
<Multi_key> <Down> <L> : "" # Cherokee lookalike U+13de
<Multi_key> <Down> <M> : "М" # Cyrillic lookalike U+041c
<Multi_key> <Down> <O> : "О" # Cyrillic lookalike U+041e
<Multi_key> <Down> <P> : "Р" # Cyrillic lookalike U+0420
<Multi_key> <Down> <Q> : "" # Full-width lookalike U+ff31 (nothing else has this)
<Multi_key> <Down> <R> : "" # Cherokee lookalike U+13a1
<Multi_key> <Down> <S> : "Ѕ" # Cyrillic lookalike U+0405
<Multi_key> <Down> <T> : "Т" # Cyrillic lookalike U+0422
<Multi_key> <Down> <U> : "Ս" # Armenian lookalike U+054d
<Multi_key> <Down> <V> : "Ѵ" # Cyrillic lookalike U+0474
<Multi_key> <Down> <W> : "Ԝ" # Cyrillic (supplement) lookalike U+051c
<Multi_key> <Down> <X> : "Х" # Cyrillic lookalike U+0425
<Multi_key> <Down> <Y> : "Ү" # Cyrillic lookalike U+04ae
<Multi_key> <Down> <Z> : "Ζ" # Greek lookalike U+0396
<Multi_key> <Down> <a> : "а" # Cyrillic lookalike U+0430
<Multi_key> <Down> <b> : "" # Canadian syllabic lookalike U+15af
<Multi_key> <Down> <c> : "с" # Cyrillic lookalike U+0441
<Multi_key> <Down> <d> : "ԁ" # Cyrillic (supplement) lookalike U+0501
<Multi_key> <Down> <e> : "е" # Cyrillic lookalike U+0435
<Multi_key> <Down> <f> : "ſ" # Latin lookalike U+017f
<Multi_key> <Down> <g> : "ɡ" # Latin smallcaps lookalike U+0261
<Multi_key> <Down> <h> : "հ" # Armenian lookalike U+0570
<Multi_key> <Down> <i> : "і" # Cyrillic lookalike U+0456
<Multi_key> <Down> <j> : "ј" # Cyrillic lookalike U+0458
<Multi_key> <Down> <k> : "" # Full-width lookalike U+ff4b (everything else looked like a capital letter)
<Multi_key> <Down> <l> : "Ɩ" # Latin lookalike U+0196 (only one that looks like an l in fonts that show the bars on capital I)
<Multi_key> <Down> <m> : "" # Full-width lookalike U+ff4d
<Multi_key> <Down> <n> : "ո" # Armenian lookalike U+0578
<Multi_key> <Down> <o> : "о" # Cyrillic lookalike U+043e
<Multi_key> <Down> <p> : "р" # Cyrillic lookalike U+0440
<Multi_key> <Down> <q> : "ԛ" # Cyrillic (supplement) lookalike U+051b
<Multi_key> <Down> <r> : "г" # Cyrillic lookalike U+0433 (only one that looks rounded is full-width)
<Multi_key> <Down> <s> : "ѕ" # Cyrillic lookalike U+0455
<Multi_key> <Down> <t> : "" # Full-width lookalike U+ff54 (everything else looked like a capital letter)
<Multi_key> <Down> <u> : "ս" # Armenian lookalike U+057d
<Multi_key> <Down> <v> : "ѵ" # Cyrillic lookalike U+0475
<Multi_key> <Down> <w> : "" # Latin smallcaps lookalike U+1d21
<Multi_key> <Down> <x> : "х" # Cyrillic lookalike U+0445
<Multi_key> <Down> <y> : "у" # Cyrillic lookalike U+0443
<Multi_key> <Down> <z> : "" # Latin smallcaps lookalike U+1d22

14
common/.eslintignore Normal file
View file

@ -0,0 +1,14 @@
pnpm-debug.log
dist
.cache
.tern-port
config.json
package-lock.json
README.html
*~
\#*\#
node_modules
yarn-error.log
npm-error.log
/.vscode
/.idea

30
common/.eslintrc.js Normal file
View file

@ -0,0 +1,30 @@
const OFF = 0;
// const WARN = 1;
const ERROR = 2;
module.exports = {
extends: ["eslint:recommended"],
parserOptions: {
ecmaVersion: 2020,
},
env: {
browser: true,
es6: true,
node: true,
},
rules: {
indent: OFF,
semi: ERROR,
quotes: [ERROR, "double", {avoidEscape: true, allowTemplateLiterals: true}],
"no-empty": ERROR,
"array-callback-return": ERROR,
"consistent-return": ERROR,
eqeqeq: OFF,
"prefer-const": ERROR,
"no-unused-vars": [ERROR, {args: "none", varsIgnorePattern: "^_"}],
"no-console": OFF,
"no-debugger": OFF,
"require-atomic-updates": OFF,
},
globals: {},
};

5
common/.prettierrc Normal file
View file

@ -0,0 +1,5 @@
{
"semi": true,
"bracketSpacing": false,
"endOfLine": "lf"
}

136
common/.zshrc Normal file
View file

@ -0,0 +1,136 @@
fpath=(~/.zsh $fpath)
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
# End of lines configured by zsh-newuser-install
####
#autoload -Uz vcs_info
#precmd_vcs_info() {
# vcs_info
# local STATUS=$(git status --porcelain 2> /dev/null | tail -1)
# if [[ -n $STATUS ]]; then
# zstyle ':vcs_info:git:*' formats '%F{cyan}%b%f %F{yellow}▲%f '
# else
# zstyle ':vcs_info:git:*' formats '%F{cyan}%b%f %F{green}▲%f '
# fi
#}
#precmd_functions+=( precmd_vcs_info )
#
#zstyle ':vcs_info:*' enable git
setopt prompt_subst
get_git_branch() {
git symbolic-ref --short HEAD 2> /dev/null
}
get_git_status() {
local STATUS=$(git status --porcelain 2> /dev/null | tail -1)
local BRANCH=$(get_git_branch)
if [[ -n $BRANCH ]]; then
if [[ -n $STATUS ]]; then
echo "%F{cyan}$BRANCH%f %F{yellow}▲%f "
else
echo "%F{cyan}$BRANCH%f %F{green}▲%f "
fi
fi
}
timer=0
timer_show=0
preexec_time() {
timer=${timer:-$SECONDS}
}
precmd_time() {
if [ $timer ]; then
timer_show=$(($SECONDS-$timer))
unset timer
fi
}
preexec_functions+=(preexec_time)
precmd_functions+=(precmd_time)
prompt_time() {
local out=""
if [ $timer_show -lt 3 ]; then
timer_display=$out
return
fi
if [ $timer_show -ge 3600 ]; then
out+="$(printf '%d' $(($timer_show/3600)))h"
fi
if [ $timer_show -ge 60 ]; then
out+="$(printf '%d' $(($timer_show%3600/60)))m"
fi
out+="$(printf '%d' $(($timer_show%60)))s"
timer_display=$out
}
precmd_functions+=(prompt_time)
binary_clock() {
local row0=("" "⠈" "⠐" "⠘" "⠠" "⠨" "⠰" "⠸" "⢀" "⢈")
local row1=("⠁" "⠉" "⠑" "⠙" "⠡" "⠩" "⠱" "⠹" "⢁" "⢉")
local row2=("⠂" "⠊" "⠒" "⠚" "⠢" "⠪" "⠲" "⠺" "⢂" "⢊")
local row3=("⠃" "⠋" "⠓" "⠛" "⠣" "⠫" "⠳" "⠻" "⢃" "⢋")
local row4=("⠄" "⠌" "⠔" "⠜" "⠤" "⠬" "⠴" "⠼" "⢄" "⢌")
local row5=("⠅" "⠍" "⠕" "⠝" "⠥" "⠭" "⠵" "⠽" "⢅" "⢍")
local chars=("${row0[@]}" "${row1[@]}" "${row2[@]}" "${row3[@]}" "${row4[@]}" "${row5[@]}")
local hour=$(date +"%H")
local minute=$(date +"%M")
local second=$(date +"%S")
[[ $hour = 0* ]] && hour=${hour:1:1}
[[ $minute = 0* ]] && minute=${minute:1:1}
[[ $second = 0* ]] && second=${second:1:1}
bclock="${chars[$hour+1]} ${chars[$minute+1]} ${chars[$second+1]}"
}
precmd_functions+=(binary_clock)
PROMPT=' %(?.%F{magenta}.%F{red})λ%f %1~ $(get_git_status) '
RPROMPT='%F{yellow}$timer_display%f %(?..%F{red}%?%f )%F{white}$bclock%f'
####
# keys
autoload -Uz up-line-or-beginning-search
autoload -Uz down-line-or-beginning-search
zle -N up-line-or-beginning-search
zle -N down-line-or-beginning-search
bindkey '^?' backward-delete-char # bs delete one char backward
bindkey '^[[3~' delete-char # delete delete one char forward
bindkey '^[[H' beginning-of-line # home go to the beginning of line
bindkey '^[[F' end-of-line # end go to the end of line
bindkey '^[[1~' beginning-of-line # home (2) go to the beginning of line
bindkey '^[[4~' end-of-line # end (2) go to the end of line
bindkey '^[[1;5C' forward-word # ctrl+right go forward one word
bindkey '^[[1;5D' backward-word # ctrl+left go backward one word
bindkey '^H' backward-kill-word # ctrl+bs delete previous word
bindkey '^[[3;5~' kill-word # ctrl+del delete next word
bindkey '^J' backward-kill-line # ctrl+j delete everything before cursor
bindkey '^[[D' backward-char # left move cursor one char backward
bindkey '^[[C' forward-char # right move cursor one char forward
bindkey '^[[A' up-line-or-beginning-search # up prev command in history
bindkey '^[[B' down-line-or-beginning-search # down next command in history
bindkey '^[[5~' history-search-backward # pgup prev in history no search
bindkey '^[[6~' history-search-forward # pgdn next in history no search
####
# hast =)
hast() { a=$(cat); curl -X POST -s -d "$a" https://haste.soulja-boy-told.me/documents | awk -F '"' '{print "https://haste.soulja-boy-told.me/"$4}'; }
####
export PATH=$PATH:$HOME/.local/bin

View file

@ -0,0 +1,865 @@
# Configuration for Alacritty, the GPU enhanced terminal emulator.
# Import additional configuration files
#
# Imports are loaded in order, skipping all missing files, with the importing
# file being loaded last. If a field is already present in a previous import, it
# will be replaced.
#
# All imports must either be absolute paths starting with `/`, or paths relative
# to the user's home directory starting with `~/`.
#import:
# - /path/to/alacritty.yml
# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty itself.
#env:
# TERM variable
#
# This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will
# check the local terminfo database and use `alacritty` if it is
# available, otherwise `xterm-256color` is used.
#TERM: alacritty
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: 84
lines: 24
# 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: 0
# y: 0
# Spread additional padding evenly around the terminal content.
#dynamic_padding: false
# Window decorations
#
# Values for `decorations`:
# - full: Borders and title bar
# - none: Neither borders nor title bar
#
# Values for `decorations` (macOS only):
# - transparent: Title bar, transparent background and title bar buttons
# - buttonless: Title bar, transparent background and no title bar buttons
#decorations: full
# 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.
#opacity: 1.0
# Startup Mode (changes require restart)
#
# Values for `startup_mode`:
# - Windowed
# - Maximized
# - Fullscreen
#
# Values for `startup_mode` (macOS only):
# - SimpleFullscreen
#startup_mode: Windowed
# Window title
#title: Alacritty
# Allow terminal applications to change Alacritty's window title.
#dynamic_title: true
# Window class (Linux/BSD only):
#class:
# Application instance name
#instance: Alacritty
# General application class
#general: Alacritty
# GTK theme variant (Linux/BSD only)
#
# Override the variant of the GTK theme. Commonly supported values are `dark`
# and `light`. Set this to `None` to use the default theme variant.
#gtk_theme_variant: None
#scrolling:
# Maximum number of lines in the scrollback buffer.
# Specifying '0' will disable scrolling.
#history: 10000
# Scrolling distance multiplier.
#multiplier: 3
# Font configuration
font:
# Normal (roman) font face
normal:
# Font family
#
# Default:
# - (macOS) Menlo
# - (Linux/BSD) monospace
# - (Windows) Consolas
family: Terminus
# The `style` can be specified to pick a specific face.
style: Regular
# Bold font face
#bold:
# Font family
#
# If the bold family is not specified, it will fall back to the
# value specified for the normal font.
#family: monospace
# The `style` can be specified to pick a specific face.
#style: Regular
# Italic font face
#italic:
# Font family
#
# If the italic family is not specified, it will fall back to the
# value specified for the normal font.
#family: monospace
# The `style` can be specified to pick a specific face.
#style: Italic
# Bold italic font face
#bold_italic:
# Font family
#
# If the bold italic family is not specified, it will fall back to the
# value specified for the normal font.
#family: monospace
# The `style` can be specified to pick a specific face.
#style: Italic
# Point size
size: 9.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: true
# Colors (Tomorrow Night)
colors:
# Default colors
primary:
background: '#2a2331'
foreground: '#dedbeb'
# Bright and dim foreground colors
#
# The dimmed foreground color is calculated automatically if it is not
# present. If the bright foreground color is not set, or
# `draw_bold_text_with_bright_colors` is `false`, the normal foreground
# color will be used.
#dim_foreground: '#828482'
#bright_foreground: '#eaeaea'
# Cursor colors
#
# Colors which should be used to draw the terminal cursor.
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#cursor:
# text: CellBackground
# cursor: CellForeground
# Vi mode cursor colors
#
# Colors for the cursor when the vi mode is active.
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#vi_mode_cursor:
# text: CellBackground
# cursor: CellForeground
# Search colors
#
# Colors used for the search bar and match highlighting.
#search:
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#matches:
# foreground: '#000000'
# background: '#ffffff'
#focused_match:
# foreground: '#ffffff'
# background: '#000000'
#bar:
# background: '#c5c8c6'
# foreground: '#1d1f21'
# Keyboard regex hints
#hints:
# First character in the hint label
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#start:
# foreground: '#1d1f21'
# background: '#e9ff5e'
# All characters after the first one in the hint label
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#end:
# foreground: '#e9ff5e'
# background: '#1d1f21'
# Line indicator
#
# Color used for the indicator displaying the position in history during
# search and vi mode.
#
# By default, these will use the opposing primary color.
#line_indicator:
# foreground: None
# background: None
# Selection colors
#
# Colors which should be used to draw the selection area.
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#selection:
# text: CellBackground
# background: '#634e75'
# Normal colors
normal:
black: '#231d29'
red: '#e83f80'
green: '#a2baa8'
yellow: '#eacac0'
blue: '#9985d1'
magenta: '#e68ac1'
cyan: '#aabae7'
white: '#dedbeb'
# Bright colors
bright:
black: '#302838'
red: '#f55d8f'
green: '#bfd1c3'
yellow: '#f0ddd8'
blue: '#b4a4de'
magenta: '#edabd2'
cyan: '#c4d1f5'
white: '#edebf7'
# 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: []
# Transparent cell backgrounds
#
# Whether or not `window.opacity` applies to all cell backgrounds or only to
# the default background. When set to `true` all cells will be transparent
# regardless of their background color.
#transparent_background_colors: false
# 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
#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
#style:
# Cursor shape
#
# Values for `shape`:
# - ▇ Block
# - _ Underline
# - | Beam
#shape: Block
# Cursor blinking state
#
# Values for `blinking`:
# - Never: Prevent the cursor from ever blinking
# - Off: Disable blinking by default
# - On: Enable blinking by default
# - Always: Force the cursor to always blink
#blinking: Off
# Vi mode cursor style
#
# If the vi mode cursor style is `None` or not specified, it will fall back to
# the style of the active value of the normal cursor.
#
# See `cursor.style` for available options.
#vi_mode_style: None
# Cursor blinking interval in milliseconds.
#blink_interval: 750
# If this is `true`, the cursor will be rendered as a hollow box when the
# window is not focused.
#unfocused_hollow: true
# Thickness of the cursor relative to the cell width as floating point number
# from `0.0` to `1.0`.
#thickness: 0.15
# Live config reload (changes require restart)
#live_config_reload: true
# Shell
#
# You can set `shell.program` to the path of your favorite shell, e.g.
# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the
# shell.
#
# Default:
# - (macOS) /bin/bash --login
# - (Linux/BSD) user login shell
# - (Windows) powershell
#shell:
# program: /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
# Send ESC (\x1b) before characters when alt is pressed.
#alt_send_esc: true
#mouse:
# Click settings
#
# The `double_click` and `triple_click` settings control the time
# alacritty should wait for accepting multiple clicks as one double
# or triple click.
#double_click: { threshold: 300 }
#triple_click: { threshold: 300 }
# If this is `true`, the cursor is temporarily hidden when typing.
#hide_when_typing: false
# Regex hints
#
# Terminal hints can be used to find text in the visible part of the terminal
# and pipe it to other applications.
#hints:
# Keys used for the hint labels.
#alphabet: "jfkdls;ahgurieowpq"
# List with all available hints
#
# Each hint must have a `regex` and either an `action` or a `command` field.
# The fields `mouse`, `binding` and `post_processing` are optional.
#
# The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and
# `mouse.mods` accept the same values as they do in the `key_bindings` section.
#
# The `mouse.enabled` field controls if the hint should be underlined while
# the mouse with all `mouse.mods` keys held or the vi mode cursor is above it.
#
# If the `post_processing` field is set to `true`, heuristics will be used to
# shorten the match if there are characters likely not to be part of the hint
# (e.g. a trailing `.`). This is most useful for URIs.
#
# Values for `action`:
# - Copy
# Copy the hint's text to the clipboard.
# - Paste
# Paste the hint's text to the terminal or search.
# - Select
# Select the hint's text.
# - MoveViModeCursor
# Move the vi mode cursor to the beginning of the hint.
#enabled:
# - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
# [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
# command: xdg-open
# post_processing: true
# mouse:
# enabled: true
# mods: None
# binding:
# key: U
# mods: Control|Shift
# Mouse bindings
#
# Mouse bindings are specified as a list of objects, much like the key
# bindings further below.
#
# To trigger mouse bindings when an application running within Alacritty
# captures the mouse, the `Shift` modifier is automatically added as a
# requirement.
#
# Each mouse binding will specify a:
#
# - `mouse`:
#
# - Middle
# - Left
# - Right
# - Numeric identifier such as `5`
#
# - `action` (see key bindings for actions not exclusive to mouse mode)
#
# - Mouse exclusive actions:
#
# - ExpandSelection
# Expand the selection to the current mouse cursor location.
#
# And optionally:
#
# - `mods` (see key bindings)
mouse_bindings:
# - { mouse: Right, action: ExpandSelection }
- { mouse: Middle, action: Paste }
# Key bindings
#
# Key bindings are specified as a list of objects. For example, this is the
# default paste binding:
#
# `- { key: V, mods: Control|Shift, action: Paste }`
#
# Each key binding will specify a:
#
# - `key`: Identifier of the key pressed
#
# - A-Z
# - F1-F24
# - Key0-Key9
#
# A full list with available key codes can be found here:
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
#
# Instead of using the name of the keys, the `key` field also supports using
# the scancode of the desired key. Scancodes have to be specified as a
# decimal number. This command will allow you to display the hex scancodes
# for certain keys:
#
# `showkey --scancodes`.
#
# Then exactly one of:
#
# - `chars`: Send a byte sequence to the running application
#
# The `chars` field writes the specified string to the terminal. This makes
# it possible to pass escape sequences. To find escape codes for bindings
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
# of tmux. Note that applications use terminfo to map escape sequences back
# to keys. It is therefore required to update the terminfo when changing an
# escape sequence.
#
# - `action`: Execute a predefined action
#
# - ToggleViMode
# - SearchForward
# Start searching toward the right of the search origin.
# - SearchBackward
# Start searching toward the left of the search origin.
# - Copy
# - Paste
# - IncreaseFontSize
# - DecreaseFontSize
# - ResetFontSize
# - ScrollPageUp
# - ScrollPageDown
# - ScrollHalfPageUp
# - ScrollHalfPageDown
# - ScrollLineUp
# - ScrollLineDown
# - ScrollToTop
# - ScrollToBottom
# - ClearHistory
# Remove the terminal's scrollback history.
# - Hide
# Hide the Alacritty window.
# - Minimize
# Minimize the Alacritty window.
# - Quit
# Quit Alacritty.
# - ToggleFullscreen
# - SpawnNewInstance
# Spawn a new instance of Alacritty.
# - ClearLogNotice
# Clear Alacritty's UI warning and error notice.
# - ClearSelection
# Remove the active selection.
# - ReceiveChar
# - None
#
# - Vi mode exclusive actions:
#
# - Open
# Perform the action of the first matching hint under the vi mode cursor
# with `mouse.enabled` set to `true`.
# - ToggleNormalSelection
# - ToggleLineSelection
# - ToggleBlockSelection
# - ToggleSemanticSelection
# Toggle semantic selection based on `selection.semantic_escape_chars`.
#
# - Vi mode exclusive cursor motion actions:
#
# - Up
# One line up.
# - Down
# One line down.
# - Left
# One character left.
# - Right
# One character right.
# - First
# First column, or beginning of the line when already at the first column.
# - Last
# Last column, or beginning of the line when already at the last column.
# - FirstOccupied
# First non-empty cell in this terminal row, or first non-empty cell of
# the line when already at the first cell of the row.
# - High
# Top of the screen.
# - Middle
# Center of the screen.
# - Low
# Bottom of the screen.
# - SemanticLeft
# Start of the previous semantically separated word.
# - SemanticRight
# Start of the next semantically separated word.
# - SemanticLeftEnd
# End of the previous semantically separated word.
# - SemanticRightEnd
# End of the next semantically separated word.
# - WordLeft
# Start of the previous whitespace separated word.
# - WordRight
# Start of the next whitespace separated word.
# - WordLeftEnd
# End of the previous whitespace separated word.
# - WordRightEnd
# End of the next whitespace separated word.
# - Bracket
# Character matching the bracket at the cursor's location.
# - SearchNext
# Beginning of the next match.
# - SearchPrevious
# Beginning of the previous match.
# - SearchStart
# Start of the match to the left of the vi mode cursor.
# - SearchEnd
# End of the match to the right of the vi mode cursor.
#
# - Search mode exclusive actions:
# - SearchFocusNext
# Move the focus to the next search match.
# - SearchFocusPrevious
# Move the focus to the previous search match.
# - SearchConfirm
# - SearchCancel
# - SearchClear
# Reset the search regex.
# - SearchDeleteWord
# Delete the last word in the search regex.
# - SearchHistoryPrevious
# Go to the previous regex in the search history.
# - SearchHistoryNext
# Go to the next regex in the search history.
#
# - macOS exclusive actions:
# - ToggleSimpleFullscreen
# Enter fullscreen without occupying another space.
#
# - Linux/BSD exclusive actions:
#
# - CopySelection
# Copy from the selection buffer.
# - PasteSelection
# Paste from the selection buffer.
#
# - `command`: Fork and execute a specified command plus arguments
#
# The `command` field must be a map containing a `program` string and an
# `args` array of command line parameter strings. For example:
# `{ program: "alacritty", args: ["-e", "vttest"] }`
#
# And optionally:
#
# - `mods`: Key modifiers to filter binding actions
#
# - Command
# - Control
# - Option
# - Super
# - Shift
# - Alt
#
# Multiple `mods` can be combined using `|` like this:
# `mods: Control|Shift`.
# Whitespace and capitalization are relevant and must match the example.
#
# - `mode`: Indicate a binding for only specific terminal reported modes
#
# This is mainly used to send applications the correct escape sequences
# when in different modes.
#
# - AppCursor
# - AppKeypad
# - Search
# - Alt
# - Vi
#
# A `~` operator can be used before a mode to apply the binding whenever
# the mode is *not* active, e.g. `~Alt`.
#
# Bindings are always filled by default, but will be replaced when a new
# binding with the same triggers is defined. To unset a default binding, it can
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
# a no-op if you do not wish to receive input characters for that binding.
#
# If the same trigger is assigned to multiple actions, all of them are executed
# in the order they were defined in.
key_bindings:
#- { key: Paste, action: Paste }
#- { key: Copy, action: Copy }
#- { key: L, mods: Control, action: ClearLogNotice }
#- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, }
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, }
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
# Vi Mode
#- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
#- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
#- { key: Escape, mode: Vi|~Search, action: ClearSelection }
#- { key: I, mode: Vi|~Search, action: ToggleViMode }
#- { key: I, mode: Vi|~Search, action: ScrollToBottom }
#- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode }
#- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp }
#- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown }
#- { key: G, mode: Vi|~Search, action: ScrollToTop }
#- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom }
#- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp }
#- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown }
#- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp }
#- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown }
#- { key: Y, mode: Vi|~Search, action: Copy }
#- { key: Y, mode: Vi|~Search, action: ClearSelection }
#- { key: Copy, mode: Vi|~Search, action: ClearSelection }
#- { key: V, mode: Vi|~Search, action: ToggleNormalSelection }
#- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection }
#- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection }
#- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection }
#- { key: Return, mode: Vi|~Search, action: Open }
#- { key: K, mode: Vi|~Search, action: Up }
#- { key: J, mode: Vi|~Search, action: Down }
#- { key: H, mode: Vi|~Search, action: Left }
#- { key: L, mode: Vi|~Search, action: Right }
#- { key: Up, mode: Vi|~Search, action: Up }
#- { key: Down, mode: Vi|~Search, action: Down }
#- { key: Left, mode: Vi|~Search, action: Left }
#- { key: Right, mode: Vi|~Search, action: Right }
#- { key: Key0, mode: Vi|~Search, action: First }
#- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last }
#- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied }
#- { key: H, mods: Shift, mode: Vi|~Search, action: High }
#- { key: M, mods: Shift, mode: Vi|~Search, action: Middle }
#- { key: L, mods: Shift, mode: Vi|~Search, action: Low }
#- { key: B, mode: Vi|~Search, action: SemanticLeft }
#- { key: W, mode: Vi|~Search, action: SemanticRight }
#- { key: E, mode: Vi|~Search, action: SemanticRightEnd }
#- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft }
#- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight }
#- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd }
#- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket }
#- { key: Slash, mode: Vi|~Search, action: SearchForward }
#- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward }
#- { key: N, mode: Vi|~Search, action: SearchNext }
#- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious }
# Search Mode
#- { key: Return, mode: Search|Vi, action: SearchConfirm }
#- { key: Escape, mode: Search, action: SearchCancel }
#- { key: C, mods: Control, mode: Search, action: SearchCancel }
#- { key: U, mods: Control, mode: Search, action: SearchClear }
#- { key: W, mods: Control, mode: Search, action: SearchDeleteWord }
#- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious }
#- { key: N, mods: Control, mode: Search, action: SearchHistoryNext }
#- { key: Up, mode: Search, action: SearchHistoryPrevious }
#- { key: Down, mode: Search, action: SearchHistoryNext }
#- { key: Return, mode: Search|~Vi, action: SearchFocusNext }
#- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
# (Windows, Linux, and BSD only)
- { key: V, mods: Control|Shift, action: Paste }
- { key: C, mods: Control|Shift, action: Copy }
#- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward }
#- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward }
#- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection }
#- { key: Insert, mods: Shift, action: PasteSelection }
#- { key: Key0, mods: Control, action: ResetFontSize }
#- { key: Equals, mods: Control, action: IncreaseFontSize }
#- { key: Plus, mods: Control, action: IncreaseFontSize }
#- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
#- { key: Minus, mods: Control, action: DecreaseFontSize }
#- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
# (Windows only)
#- { key: Return, mods: Alt, action: ToggleFullscreen }
# (macOS only)
#- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
#- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory }
#- { key: Key0, mods: Command, action: ResetFontSize }
#- { key: Equals, mods: Command, action: IncreaseFontSize }
#- { key: Plus, mods: Command, action: IncreaseFontSize }
#- { key: NumpadAdd, mods: Command, action: IncreaseFontSize }
#- { key: Minus, mods: Command, action: DecreaseFontSize }
#- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize }
#- { key: V, mods: Command, action: Paste }
#- { key: C, mods: Command, action: Copy }
#- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection }
#- { key: H, mods: Command, action: Hide }
#- { key: H, mods: Command|Alt, action: HideOtherApplications }
#- { key: M, mods: Command, action: Minimize }
#- { key: Q, mods: Command, action: Quit }
#- { key: W, mods: Command, action: Quit }
#- { key: N, mods: Command, action: SpawnNewInstance }
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
#- { key: F, mods: Command, mode: ~Search, action: SearchForward }
#- { key: B, mods: Command, mode: ~Search, action: SearchBackward }
#debug:
# Display the time it takes to redraw each frame.
#render_timer: false
# Keep the log file after quitting Alacritty.
#persistent_logging: false
# Log level
#
# Values for `log_level`:
# - Off
# - Error
# - Warn
# - Info
# - Debug
# - Trace
#log_level: Warn
# Print all received window events.
#print_events: false

26
common/glualint.json Normal file
View file

@ -0,0 +1,26 @@
{
"lint_maxScopeDepth": 10,
"lint_syntaxErrors": true,
"lint_syntaxInconsistencies": true,
"lint_deprecated": true,
"lint_whitespaceStyle": true,
"lint_beginnerMistakes": true,
"lint_emptyBlocks": true,
"lint_shadowing": true,
"lint_gotos": false,
"lint_doubleNegations": true,
"lint_duplicateTableKeys": true,
"lint_profanity": false,
"lint_unusedVars": true,
"lint_unusedParameters": false,
"lint_unusedLoopVars": false,
"prettyprint_spaceAfterParens": false,
"prettyprint_spaceAfterBrackets": false,
"prettyprint_spaceAfterBraces": false,
"prettyprint_spaceBeforeComma": false,
"prettyprint_spaceAfterComma": true,
"prettyprint_semicolons": false,
"prettyprint_cStyle": false,
"prettyprint_indentation": " "
}

310
common/nvim/init.vim Normal file
View file

@ -0,0 +1,310 @@
" plugins
call plug#begin(stdpath('data') . '/plugged')
" color scheme
Plug 'owozsh/amora'
" misc
Plug 'itchyny/vim-gitbranch'
Plug 'andweeb/presence.nvim'
Plug 'ntpeters/vim-better-whitespace'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
Plug 'airblade/vim-gitgutter'
Plug 'tpope/vim-fugitive'
Plug 'mg979/vim-visual-multi'
Plug 'rrethy/vim-hexokinase', { 'do': 'make hexokinase' }
Plug 'rhysd/committia.vim'
" interface
Plug 'romgrk/barbar.nvim'
Plug 'kyazdani42/nvim-tree.lua'
" language specific
Plug 'sheerun/vim-polyglot'
"Plug 'ruanyl/vim-fixmyjs'
"Plug 'prettier/vim-prettier', {'build': 'pnpm i'}
Plug 'dense-analysis/ale'
Plug 'neovim/nvim-lspconfig'
Plug 'nvim-lua/completion-nvim'
call plug#end()
" misc
let g:mode = "old_amora"
colorscheme amora
set termguicolors
set fileformat=unix
set fileformats=unix,dos
set number
set cul
set tabstop=2
set shiftwidth=2
set expandtab
set mouse+=nia
au WinEnter * set cul
au WinLeave * set nocul
let g:better_whitespace_enabled = 1
let bufferline = get(g:, 'bufferline', {})
let bufferline.icons = v:false
let bufferline.icon_separator_active = '▎'
let bufferline.icon_separator_inactive = '▎'
let bufferline.icon_close_tab = 'x'
let bufferline.icon_close_tab_modified = '●'
let bufferline.icon_pinned = '▲'
let g:presence_buttons = 0
let g:ale_fixers = {
\ '*': ['trim_whitespace'],
\ 'vim': [],
\ 'javascript': ['eslint', 'prettier'],
\ 'json': ['prettier'],
\ 'css': ['prettier'],
\}
let g:ale_fix_on_save = 1
let g:Hexokinase_highlighters = ['virtual']
set fillchars+=vert:▎
lua << EOF
local lspconfig = require("lspconfig")
local completion_callback = require("completion").on_attach
lspconfig.eslint.setup({on_attach = completion_callback})
lspconfig.tsserver.setup({on_attach = completion_callback})
EOF
set completeopt=menuone,noinsert,noselect
set shortmess+=c
let g:completion_enable_auto_popup = 1
" tre
let g:nvim_tree_git_hl = 1
let g:nvim_tree_symlink_arrow = ' >> '
let g:nvim_tree_icons = {
\ 'default': '',
\ 'symlink': '[S]',
\ 'git': {
\ 'unstaged': "U",
\ 'staged': "A",
\ 'unmerged': "M",
\ 'renamed': "R",
\ 'untracked': "",
\ 'deleted': "D",
\ 'ignored': "I"
\ },
\ 'folder': {
\ 'arrow_open': "-",
\ 'arrow_closed': "+",
\ 'default': "",
\ 'open': "",
\ 'empty': "[E]",
\ 'empty_open': "[E]",
\ 'symlink': "[S]",
\ 'symlink_open': "[S]",
\ }
\ }
let g:nvim_tree_show_icons = {
\ 'git': 1,
\ 'folders': 0,
\ 'files': 0,
\ 'folder_arrows': 1,
\ }
lua << EOF
require("nvim-tree").setup({
git = {
enable = true,
ignore = true,
timeout = 500,
},
})
EOF
" keys
tnoremap <Esc> <C-\><C-n>
nnoremap <S-Up> :m-2<CR>
nnoremap <S-Down> :m+<CR>
inoremap <S-Up> <Esc>:m-2<CR>
inoremap <S-Down> <Esc>:m+<CR>
nnoremap <silent> <C-b> :NvimTreeToggle<CR> :lua require'bufferline.state'.set_offset(require'nvim-tree.view'.win_open() and 30 or 0)<CR>
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>": "\<S-Tab>"
imap <tab> <Plug>(completion_smart_tab)
imap <s-tab> <Plug>(completion_smart_s_tab)
" barbar keys
" Move to previous/next
nnoremap <silent> <A-,> :BufferPrevious<CR>
nnoremap <silent> <A-.> :BufferNext<CR>
" Re-order to previous/next
nnoremap <silent> <A-<> :BufferMovePrevious<CR>
nnoremap <silent> <A->> :BufferMoveNext<CR>
" Goto buffer in position...
nnoremap <silent> <A-1> :BufferGoto 1<CR>
nnoremap <silent> <A-2> :BufferGoto 2<CR>
nnoremap <silent> <A-3> :BufferGoto 3<CR>
nnoremap <silent> <A-4> :BufferGoto 4<CR>
nnoremap <silent> <A-5> :BufferGoto 5<CR>
nnoremap <silent> <A-6> :BufferGoto 6<CR>
nnoremap <silent> <A-7> :BufferGoto 7<CR>
nnoremap <silent> <A-8> :BufferGoto 8<CR>
nnoremap <silent> <A-9> :BufferLast<CR>
" Pin/unpin buffer
nnoremap <silent> <A-p> :BufferPin<CR>
" Close buffer
nnoremap <silent> <A-c> :BufferClose<CR>
" Colors
function! s:h(scope, fg, ...) " bg, attr_list, special
let l:fg = copy(a:fg)
let l:bg = get(a:, 1, ['NONE', 'NONE'])
let l:attr_list = filter(get(a:, 2, ['NONE']), 'type(v:val) == 1')
let l:attrs = len(l:attr_list) > 0 ? join(l:attr_list, ',') : 'NONE'
" Falls back to coloring foreground group on terminals because
" nearly all do not support undercurl
let l:special = get(a:, 3, ['NONE', 'NONE'])
if l:special[0] !=# 'NONE' && l:fg[0] ==# 'NONE' && !has('gui_running')
let l:fg[0] = l:special[0]
let l:fg[1] = l:special[1]
endif
let l:hl_string = [
\ 'highlight', a:scope,
\ 'guifg=' . l:fg[0], 'ctermfg=' . l:fg[1],
\ 'guibg=' . l:bg[0], 'ctermbg=' . l:bg[1],
\ 'gui=' . l:attrs, 'cterm=' . l:attrs,
\ 'guisp=' . l:special[0],
\]
execute join(l:hl_string, ' ')
endfunction
hi Normal ctermbg=NONE
hi LineNr ctermfg=7
hi CursorLineNr ctermfg=1 ctermbg=8
hi CursorLine cterm=NONE ctermfg=NONE ctermbg=8
hi StatusLine ctermbg=2 ctermfg=0
hi StatusLineNC ctermbg=7 ctermfg=0
hi VertSplit ctermbg=0 ctermfg=0
hi ExtraWhitespace ctermbg=1
hi SignColumn ctermbg=8
hi BufferCurrent ctermfg=5 ctermbg=NONE
hi BufferCurrentIndex ctermfg=5 ctermbg=NONE
hi BufferCurrentMod ctermfg=9 ctermbg=NONE
hi BufferCurrentSign ctermfg=5 ctermbg=NONE
hi BufferCurrentTarget ctermfg=5 ctermbg=NONE
hi BufferVisible ctermfg=7 ctermbg=NONE
hi BufferVisibleIndex ctermfg=7 ctermbg=NONE
hi BufferVisibleMod ctermfg=9 ctermbg=NONE
hi BufferVisibleSign ctermfg=7 ctermbg=NONE
hi BufferVisibleTarget ctermfg=7 ctermbg=NONE
hi BufferInactive ctermfg=7 ctermbg=0
hi BufferInactiveIndex ctermfg=5 ctermbg=0
hi BufferInactiveMod ctermfg=1 ctermbg=0
hi BufferInactiveSign ctermfg=10 ctermbg=0
hi BufferInactiveTarget ctermfg=11 ctermbg=0
hi BufferTabpages ctermfg=7 ctermbg=0
hi BufferTabpageFill ctermfg=7 ctermbg=0
hi BufferOffset ctermfg=0 ctermbg=0
hi NvimTreeNormal ctermbg=0
call s:h('StatusLine', g:amora#palette.green, g:amora#palette.bgdark)
call s:h('StatusLineNC', g:amora#palette.fg, g:amora#palette.bgdark)
call s:h('VertSplit', g:amora#palette.bg, g:amora#palette.bgdarker)
call s:h('ExtraWhitespace', g:amora#palette.fg, g:amora#palette.red)
call s:h('BufferCurrent', g:amora#palette.pink, g:amora#palette.bg)
call s:h('BufferCurrentIndex', g:amora#palette.pink, g:amora#palette.bg)
call s:h('BufferCurrentSign', g:amora#palette.pink, g:amora#palette.bg)
call s:h('BufferCurrentTarget', g:amora#palette.pink, g:amora#palette.bg)
call s:h('BufferCurrentMod', g:amora#palette.red, g:amora#palette.bg)
call s:h('BufferVisible', g:amora#palette.fg, g:amora#palette.bg)
call s:h('BufferVisibleIndex', g:amora#palette.fg, g:amora#palette.bg)
call s:h('BufferVisibleSign', g:amora#palette.fg, g:amora#palette.bg)
call s:h('BufferVisibleTarget', g:amora#palette.fg, g:amora#palette.bg)
call s:h('BufferVisibleMod', g:amora#palette.pink, g:amora#palette.bg)
call s:h('BufferInactive', g:amora#palette.bglighter, g:amora#palette.bgdarker)
call s:h('BufferInactiveIndex', g:amora#palette.bglighter, g:amora#palette.bgdarker)
call s:h('BufferInactiveSign', g:amora#palette.bglighter, g:amora#palette.bgdarker)
call s:h('BufferInactiveTarget', g:amora#palette.bglighter, g:amora#palette.bgdarker)
call s:h('BufferInactiveMod', g:amora#palette.red, g:amora#palette.bgdarker)
call s:h('BufferTabpages', g:amora#palette.bglighter, g:amora#palette.bgdarker)
call s:h('BufferTabpagesFill', g:amora#palette.bglighter, g:amora#palette.bgdarker)
call s:h('BufferOffset', g:amora#palette.bgdarker, g:amora#palette.bgdarker)
call s:h('NvimTreeNormal', g:amora#palette.fg, g:amora#palette.bgdarker)
" statusline hell
hi StatusLineMode ctermbg=1 ctermfg=0
hi StatusLineGitBranch ctermbg=5 ctermfg=0
hi StatusLineChar ctermbg=4 ctermfg=0
hi StatusLineFormat ctermbg=3 ctermfg=0
hi StatusLineFileType ctermbg=7 ctermfg=0
call s:h('StatusLineMode', g:amora#palette.bgdark, g:amora#palette.red)
call s:h('StatusLineGitBranch', g:amora#palette.bgdark, g:amora#palette.pink)
call s:h('StatusLineChar', g:amora#palette.bgdark, g:amora#palette.purple)
call s:h('StatusLineFormat', g:amora#palette.bgdark, g:amora#palette.yellow)
call s:h('StatusLineFileType', g:amora#palette.bgdark, g:amora#palette.fg)
function! GetMode()
let l:m = mode(1)
if l:m ==# "i"
let l:mode = "INS"
elseif l:m ==# "c"
let l:mode = "CMD"
elseif l:m[0] ==# "R"
let l:mode = "REP"
elseif l:m ==# "Rv"
let l:mode = "REP"
elseif l:m =~# '\v(v|V| |s|S| )'
let l:mode = "VIS"
else
return ""
endif
return ' '.l:mode.' '
endfunction
function! GitBranch()
let l:branch = gitbranch#name()
return strlen(l:branch) ? ' ' . l:branch . ' ' : ''
endfunction
set statusline=
set statusline+=%#StatusLineMode#
set statusline+=%{GetMode()}
set statusline+=%#StatusLineGitBranch#
set statusline+=%{GitBranch()}
set statusline+=%*
set statusline+=\ %f
set statusline+=\ %m%r
set statusline+=%=
set statusline+=%#StatusLineChar#
set statusline+=\ %l,\ %c\
set statusline+=%#StatusLineFormat#
set statusline+=\ %{&fileencoding?&fileencoding:&encoding}\ %{&fileformat}\
set statusline+=%#StatusLineFileType#
set statusline+=\ %{&filetype}\

32
linux/.Xresources Normal file
View file

@ -0,0 +1,32 @@
! special
*.foreground: #dedbeb
*.background: #2a2331
*.cursorColor: #dedbeb
*.cursorColor2: #634e75
! colors
*.color0: #231d29
*.color1: #e83f80
*.color2: #a2baa8
*.color3: #eacac0
*.color4: #9985d1
*.color5: #e68ac1
*.color6: #aabae7
*.color7: #dedbeb
*.color8: #302838
*.color9: #f55d8f
*.color10: #bfd1c3
*.color11: #f0ddd8
*.color12: #b4a4de
*.color13: #edabd2
*.color14: #c4d1f5
*.color15: #edebf7
! urxvt
URxvt.font: xft:Terminus:size=9
URxvt.perl-ext-common: clipboard
URxvt.clipboard.autocopy: false
URxvt.keysym.C-S-c: perl:clipboard:copy
URxvt.keysym.C-S-v: perl:clipboard:paste

View file

@ -0,0 +1,23 @@
#! /bin/sh
picom &
vmware-user-suid-wrapper &
pgrep -f xmousepasteblock > /dev/null || xmousepasteblock &
~/.fehbg &
~/.local/bin/polybar.sh &
pgrep -x sxhkd > /dev/null || sxhkd &
bspc monitor -d I II III IV V VI VII VIII
bspc config border_width 2
bspc config window_gap 8
bspc config top_padding 16
bspc config normal_border_color $(xrdb -query | awk '/*.background:/ { print substr($2,1) }')
bspc config focused_border_color $(xrdb -query | awk '/*.color5:/ { print substr($2,1) }')
bspc config presel_feedback_color $(xrdb -query | awk '/*.color1:/ { print substr($2,1) }')
bspc config split_ratio 0.52
bspc config borderless_monocle true
bspc config gapless_monocle true

View file

@ -0,0 +1,160 @@
[colors]
bg = ${xrdb:background:#2a2331}
fg = ${xrdb:foreground:#dedbeb}
hi = ${xrdb:cursorColor2:#634e75}
tr = #00000000
0 = ${xrdb:color0:#231d29}
1 = ${xrdb:color1:#e83f80}
2 = ${xrdb:color2:#a2baa8}
3 = ${xrdb:color3:#eacac0}
4 = ${xrdb:color4:#9985d1}
5 = ${xrdb:color5:#e68ac1}
6 = ${xrdb:color6:#aabae7}
7 = ${xrdb:color7:#dedbeb}
8 = ${xrdb:color8:#302838}
9 = ${xrdb:color9:#f55d8f}
10 = ${xrdb:color10:#bfd1c3}
11 = ${xrdb:color11:#f0ddd8}
12 = ${xrdb:color12:#b4a4de}
13 = ${xrdb:color13:#edabd2}
14 = ${xrdb:color14:#c4d1f5}
15 = ${xrdb:color15:#edebf7}
[bar/bar]
width = 100%
height = 16
bottom = false
background = ${colors.bg}
foreground = ${colors.fg}
line-size = 0
border-size = 0
border-color = ${colors.tr}
font-0 = terminus:pixelsize=8;1
font-1 = siji:pixelsize=8;1
font-2 = unifont:size=8;1
modules-left = workspace
modules-center = polywins
modules-right = music cpu ram volume bclock
tray-position = right
tray-padding = 1
tray-background = ${colors.bg}
override-redirect = true
[global/wm]
margin-top = 16
[settings]
format-background = ${colors.bg}
format-foreground = ${colors.fg}
format-padding = 1
[module/date]
type = internal/date
interval = 1.0
time =  %H:%M:%S
time-alt =  %a, %m/%d/%Y
label = %time%
label-foreground = ${colors.6}
[module/bclock]
type = custom/script
exec = ~/.config/polybar/scripts/binaryclock-polybar.sh
tail = true
click-left = "kill -USR1 $(pgrep --oldest --parent %pid%)"
label-foreground = ${colors.6}
[module/volume]
type = internal/alsa
format-volume = <ramp-volume> <label-volume>
label-volume = %percentage%%
format-volume-foreground = ${colors.4}
label-muted =  0%
label-muted-foreground = ${colors.1}
ramp-volume-0 = 
ramp-volume-1 = 
ramp-volume-2 = 
[module/ram]
type = internal/memory
format = <label>
label =  %mb_used%  %mb_swap_used%
label-foreground = ${colors.2}
[module/cpu]
type = internal/cpu
interval = 0.5
format = <label>
label =  %percentage-cores%
label-foreground = ${colors.3}
[module/music]
type = custom/script
exec = ~/.config/polybar/scripts/cmus-polybar.sh
exec-if = pgrep -x cmus
tail = true
interval = 0.5
label-foreground = ${colors.5}
[module/window]
type = internal/xwindow
label =  %title%
label-empty =
[module/workspace]
type = internal/bspwm
enable-click = true
enable-scroll = true
reverse-scroll = false
format = <label-state>
format-padding = 0
label-focused = %name%
label-focused-foreground = ${colors.5}
label-focused-padding = 1
label-occupied = %name%
label-occupied-foreground = ${colors.hi}
label-occupied-padding = 1
label-urgent = %name%
label-urgent-foreground = ${colors.1}
label-urgent-padding = 1
label-empty = %name%
label-empty-foreground = ${colors.fg}
label-empty-padding = 1
[module/polywins]
type = custom/script
exec = ~/.config/polybar/scripts/polywins.sh 2>/dev/null
format = <label>
label = %output%
tail = true
; vim: ft=dosini

View file

@ -0,0 +1,46 @@
#!/bin/bash
state=0
sleep_pid=0
function toggle() {
state=$(((state+1)%3))
if [ "$sleep_pid" -ne 0 ]; then
kill $sleep_pid >/dev/null 2>&1
fi
}
trap "toggle" USR1
function bclock() {
local row0=("" "⠈" "⠐" "⠘" "⠠" "⠨" "⠰" "⠸" "⢀" "⢈")
local row1=("⠁" "⠉" "⠑" "⠙" "⠡" "⠩" "⠱" "⠹" "⢁" "⢉")
local row2=("⠂" "⠊" "⠒" "⠚" "⠢" "⠪" "⠲" "⠺" "⢂" "⢊")
local row3=("⠃" "⠋" "⠓" "⠛" "⠣" "⠫" "⠳" "⠻" "⢃" "⢋")
local row4=("⠄" "⠌" "⠔" "⠜" "⠤" "⠬" "⠴" "⠼" "⢄" "⢌")
local row5=("⠅" "⠍" "⠕" "⠝" "⠥" "⠭" "⠵" "⠽" "⢅" "⢍")
local chars=("${row0[@]}" "${row1[@]}" "${row2[@]}" "${row3[@]}" "${row4[@]}" "${row5[@]}")
local hour=$(date +"%H")
local minute=$(date +"%M")
local second=$(date +"%S")
[[ $hour = 0* ]] && hour=${hour:1:1}
[[ $minute = 0* ]] && minute=${minute:1:1}
[[ $second = 0* ]] && second=${second:1:1}
echo "${chars[$hour]} ${chars[$minute]} ${chars[$second]}"
}
while true; do
if [ $state -eq 0 ]; then
bclock
elif [ $state -eq 1 ]; then
echo "$(date +'%H:%M:%S')"
else
echo "$(date +'%a, %m/%d/%Y')"
fi
sleep 1 &
sleep_pid=$!
wait
done

View file

@ -0,0 +1,47 @@
#!/bin/bash
status=$(cmus-remote -Q | awk '/status / {print $2}')
albumartist=$(cmus-remote -Q | awk '/tag albumartist / {$1="";$2="";print substr($0,3)}')
artist=$(cmus-remote -Q | awk '/tag artist / {$1="";$2="";print substr($0,3)}')
title=$(cmus-remote -Q | awk '/tag title / {$1="";$2="";print substr($0,3)}')
duration=$(cmus-remote -Q | awk '/duration/ {print $2}')
position=$(cmus-remote -Q | awk '/position/ {print $2}')
nowplaying=""
if [ "$status" == "paused" ]; then
nowplaying+="$(printf '\ue09b')"
elif [ "$status" == "stopped" ]; then
nowplaying+="$(printf '\ue099')"
else
nowplaying+="$(printf '\ue0fe')"
fi
nowplaying+=" "
if [ "$albumartist" != "" ]; then
nowplaying+="$albumartist"
else
nowplaying+="$artist"
fi
nowplaying+=" - $title"
if [ "$albumartist" != "" && "$albumartist" != "$artist" ]; then
nowplaying+=" // $artist"
fi
position_formatted=""
duration_formatted=""
if [ $position -ge 3600 ]; then
position_formatted+=$(printf '%02d:' $(($position/3600)))
fi
position_formatted+=$(printf '%02d:%02d' $(($position%3600/60)) $(($position%60)))
if [ $duration -ge 3600 ]; then
duration_formatted+=$(printf '%02d:' $(($duration/3600)))
fi
duration_formatted+=$(printf '%02d:%02d' $(($duration%3600/60)) $(($duration%60)))
nowplaying+=" [$position_formatted/$duration_formatted]"
echo $nowplaying

View file

@ -0,0 +1,242 @@
#!/bin/sh
# POLYWINS
# SETTINGS {{{ ---
active_text_color="$(xrdb -query | awk '/*.color7:/ { print substr($2,1) }')"
active_bg=
active_underline=
inactive_text_color="$(xrdb -query | awk '/*.cursorColor2:/ { print substr($2,1) }')"
inactive_bg=
inactive_underline=
separator=""
show="window_title" # options: window_title, window_class, window_classname
forbidden_classes="Polybar Conky Gmrun"
empty_desktop_message=""
char_limit=10
max_windows=15
char_case="normal" # normal, upper, lower
add_spaces="true"
resize_increment=16
wm_border_width=1 # setting this might be required for accurate resize position
# --- }}}
main() {
# If no argument passed...
if [ -z "$2" ]; then
# ...print new window list every time
# the active window changes or
# a window is opened or closed
xprop -root -spy _NET_CLIENT_LIST _NET_ACTIVE_WINDOW |
while IFS= read -r _; do
generate_window_list
done
# If arguments are passed, run requested on-click function
else
"$@"
fi
}
# ON-CLICK FUNCTIONS {{{ ---
raise_or_minimize() {
if [ "$(get_active_wid)" = "$1" ]; then
wmctrl -ir "$1" -b toggle,hidden
else
wmctrl -ir "$1" -b remove,hidden; wmctrl -ia "$1"
fi
}
close() {
wmctrl -ic "$1"
}
slop_resize() {
wmctrl -ia "$1"
wmctrl -ir "$1" -e "$(slop -f 0,%x,%y,%w,%h)"
}
increment_size() {
while IFS="[ .]" read -r wid ws wx wy ww wh _; do
test "$wid" != "$1" && continue
x=$(( wx - wm_border_width * 2 - resize_increment / 2 ))
y=$(( wy - wm_border_width * 2 - resize_increment / 2 ))
w=$(( ww + resize_increment ))
h=$(( wh + resize_increment ))
done <<-EOF
$(wmctrl -lG)
EOF
wmctrl -ir "$1" -e "0,$x,$y,$w,$h"
}
decrement_size() {
while IFS="[ .]" read -r wid ws wx wy ww wh _; do
test "$wid" != "$1" && continue
x=$(( wx - wm_border_width * 2 + resize_increment / 2 ))
y=$(( wy - wm_border_width * 2 + resize_increment / 2 ))
w=$(( ww - resize_increment ))
h=$(( wh - resize_increment ))
done <<-EOF
$(wmctrl -lG)
EOF
wmctrl -ir "$1" -e "0,$x,$y,$w,$h"
}
# --- }}}
# WINDOW LIST SETUP {{{ ---
active_left="%{F$active_text_color}"
active_right="%{F-}"
inactive_left="%{F$inactive_text_color}"
inactive_right="%{F-}"
separator="%{F$inactive_text_color}$separator%{F-}"
if [ -n "$active_underline" ]; then
active_left="${active_left}%{+u}%{u$active_underline}"
active_right="%{-u}${active_right}"
fi
if [ -n "$active_bg" ]; then
active_left="${active_left}%{B$active_bg}"
active_right="%{B-}${active_right}"
fi
if [ -n "$inactive_underline" ]; then
inactive_left="${inactive_left}%{+u}%{u$inactive_underline}"
inactive_right="%{-u}${inactive_right}"
fi
if [ -n "$inactive_bg" ]; then
inactive_left="${inactive_left}%{B$inactive_bg}"
inactive_right="%{B-}${inactive_right}"
fi
get_active_wid() {
active_wid=$(xprop -root _NET_ACTIVE_WINDOW)
active_wid="${active_wid#*\# }"
active_wid="${active_wid%,*}" # Necessary for XFCE
while [ ${#active_wid} -lt 10 ]; do
active_wid="0x0${active_wid#*x}"
done
echo "$active_wid"
}
get_active_workspace() {
wmctrl -d |
while IFS="[ .]" read -r number active_status _; do
test "$active_status" = "*" && echo "$number" && break
done
}
generate_window_list() {
active_workspace=$(get_active_workspace)
active_wid=$(get_active_wid)
window_count=0
on_click="$0"
# Format each window name one by one
# Space and . are both used as IFS,
# because classname and class are separated by '.'
while IFS="[ .\.]" read -r wid ws cname cls host title; do
# Don't show the window if on another workspace (-1 = sticky)
if [ "$ws" != "$active_workspace" ] && [ "$ws" != "-1" ]; then
continue
fi
# Don't show the window if its class is forbidden
case "$forbidden_classes" in
*$cls*) continue ;;
esac
# If max number of windows reached, just increment
# the windows counter
if [ "$window_count" -ge "$max_windows" ]; then
window_count=$(( window_count + 1 ))
continue
fi
# Show the user-selected window property
case "$show" in
"window_class") w_name="$cls" ;;
"window_classname") w_name="$cname" ;;
"window_title") w_name="$title" ;;
esac
# Use user-selected character case
case "$char_case" in
"lower") w_name=$(
echo "$w_name" | tr '[:upper:]' '[:lower:]'
) ;;
"upper") w_name=$(
echo "$w_name" | tr '[:lower:]' '[:upper:]'
) ;;
esac
# Truncate displayed name to user-selected limit
if [ "${#w_name}" -gt "$char_limit" ]; then
w_name="$(echo "$w_name" | cut -c1-$((char_limit-1)))"
fi
# Apply add-spaces setting
if [ "$add_spaces" = "true" ]; then
w_name=" $w_name "
fi
# Add left and right formatting to displayed name
if [ "$wid" = "$active_wid" ]; then
w_name="${active_left}${w_name}${active_right}"
else
w_name="${inactive_left}${w_name}${inactive_right}"
fi
# Add separator unless the window is first in list
if [ "$window_count" != 0 ]; then
printf "%s" "$separator"
fi
# Add on-click action Polybar formatting
printf "%s" "%{A1:$on_click raise_or_minimize $wid:}"
printf "%s" "%{A2:$on_click close $wid:}"
printf "%s" "%{A3:$on_click slop_resize $wid:}"
printf "%s" "%{A4:$on_click increment_size $wid:}"
printf "%s" "%{A5:$on_click decrement_size $wid:}"
# Print the final window name
printf "%s" "$w_name"
printf "%s" "%{A}%{A}%{A}%{A}%{A}"
window_count=$(( window_count + 1 ))
done <<-EOF
$(wmctrl -lx)
EOF
# After printing all the windows,
# print number of hidden windows
if [ "$window_count" -gt "$max_windows" ]; then
printf "%s" "+$(( window_count - max_windows ))"
fi
# Print empty desktop message if no windows are open
if [ "$window_count" = 0 ]; then
printf "%s" "$empty_desktop_message"
fi
# Print newline
echo ""
}
# --- }}}
main "$@"

View file

@ -0,0 +1,66 @@
/* ==========================================================================
Rofi color theme
Based on the Gruvbox color scheme for Vim by morhetz
https://github.com/morhetz/gruvbox
File: gruvbox-dark.rasi
Desc: Gruvbox dark color theme for Rofi
Author: bardisty <b@bah.im>
Source: https://github.com/bardisty/gruvbox-rofi
Modified: Mon Feb 12 2018 04:08:43 PST -0800
========================================================================== */
* {
/* Theme settings */
highlight: bold italic;
scrollbar: true;
/* Gruvbox dark colors */
gruvbox-dark-bg0: #2a2331;
gruvbox-dark-bg0-soft: #2a2331;
gruvbox-dark-bg3: #e83f80;
gruvbox-dark-fg0: #dedbeb;
gruvbox-dark-fg1: #dedbeb;
gruvbox-dark-red-dark: #cc241d;
gruvbox-dark-red-light: #fb4934;
gruvbox-dark-yellow-dark: #d79921;
gruvbox-dark-yellow-light: #fabd2f;
gruvbox-dark-gray: #634e75;
/* Theme colors */
background: @gruvbox-dark-bg0;
background-color: @background;
foreground: @gruvbox-dark-fg1;
border-color: @gruvbox-dark-gray;
separatorcolor: @border-color;
scrollbar-handle: @border-color;
normal-background: @background;
normal-foreground: @foreground;
alternate-normal-background: @gruvbox-dark-bg0-soft;
alternate-normal-foreground: @foreground;
selected-normal-background: @gruvbox-dark-bg3;
selected-normal-foreground: @gruvbox-dark-fg0;
active-background: @gruvbox-dark-yellow-dark;
active-foreground: @background;
alternate-active-background: @active-background;
alternate-active-foreground: @active-foreground;
selected-active-background: @gruvbox-dark-yellow-light;
selected-active-foreground: @active-foreground;
urgent-background: @gruvbox-dark-red-dark;
urgent-foreground: @background;
alternate-urgent-background: @urgent-background;
alternate-urgent-foreground: @urgent-foreground;
selected-urgent-background: @gruvbox-dark-red-light;
selected-urgent-foreground: @urgent-foreground;
}
@import "gruvbox-common.rasi"
window {
width: 512px;
height: 384px;
}

View file

@ -0,0 +1,148 @@
configuration {
modi: "drun,run,combi";
font: "Terminus 9";
/* location: 0;*/
/* yoffset: 0;*/
/* xoffset: 0;*/
/* fixed-num-lines: true;*/
show-icons: true;
/* terminal: "rofi-sensible-terminal";*/
/* ssh-client: "ssh";*/
/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
/* run-command: "{cmd}";*/
/* run-list-command: "";*/
/* run-shell-command: "{terminal} -e {cmd}";*/
/* window-command: "wmctrl -i -R {window}";*/
/* window-match-fields: "all";*/
icon-theme: "Chicago95-tux";
/* drun-match-fields: "name,generic,exec,categories,keywords";*/
/* drun-categories: ;*/
/* drun-show-actions: false;*/
/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
/* drun-url-launcher: "xdg-open";*/
/* disable-history: false;*/
/* ignored-prefixes: "";*/
/* sort: false;*/
/* sorting-method: "normal";*/
/* case-sensitive: false;*/
/* cycle: true;*/
/* sidebar-mode: false;*/
/* hover-select: false;*/
/* eh: 1;*/
/* auto-select: false;*/
/* parse-hosts: false;*/
/* parse-known-hosts: true;*/
combi-modi: "drun,run";
/* matching: "normal";*/
/* tokenize: true;*/
/* m: "-5";*/
/* filter: ;*/
/* dpi: -1;*/
/* threads: 0;*/
/* scroll-method: 0;*/
/* window-format: "{w} {c} {t}";*/
/* click-to-exit: true;*/
/* theme: "amora";*/
/* max-history-size: 25;*/
/* combi-hide-mode-prefix: false;*/
/* matching-negate-char: '-' /* unsupported */;*/
/* cache-dir: ;*/
/* window-thumbnail: false;*/
/* drun-use-desktop-cache: false;*/
/* drun-reload-desktop-cache: false;*/
/* normalize-match: false;*/
/* steal-focus: false;*/
application-fallback-icon: "application-default-icon";
/* pid: "/run/user/1000/rofi.pid";*/
/* display-window: ;*/
/* display-windowcd: ;*/
/* display-run: ;*/
/* display-ssh: ;*/
/* display-drun: ;*/
/* display-combi: ;*/
/* display-keys: ;*/
/* display-filebrowser: ;*/
/* kb-primary-paste: "Control+V,Shift+Insert";*/
/* kb-secondary-paste: "Control+v,Insert";*/
/* kb-clear-line: "Control+w";*/
/* kb-move-front: "Control+a";*/
/* kb-move-end: "Control+e";*/
/* kb-move-word-back: "Alt+b,Control+Left";*/
/* kb-move-word-forward: "Alt+f,Control+Right";*/
/* kb-move-char-back: "Left,Control+b";*/
/* kb-move-char-forward: "Right,Control+f";*/
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
/* kb-remove-word-forward: "Control+Alt+d";*/
/* kb-remove-char-forward: "Delete,Control+d";*/
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
/* kb-remove-to-eol: "Control+k";*/
/* kb-remove-to-sol: "Control+u";*/
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
/* kb-accept-custom: "Control+Return";*/
/* kb-accept-custom-alt: "Control+Shift+Return";*/
/* kb-accept-alt: "Shift+Return";*/
/* kb-delete-entry: "Shift+Delete";*/
/* kb-mode-next: "Shift+Right,Control+Tab";*/
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
/* kb-mode-complete: "Control+l";*/
/* kb-row-left: "Control+Page_Up";*/
/* kb-row-right: "Control+Page_Down";*/
/* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/
/* kb-row-down: "Down,Control+n";*/
/* kb-row-tab: "Tab";*/
/* kb-page-prev: "Page_Up";*/
/* kb-page-next: "Page_Down";*/
/* kb-row-first: "Home,KP_Home";*/
/* kb-row-last: "End,KP_End";*/
/* kb-row-select: "Control+space";*/
/* kb-screenshot: "Alt+S";*/
/* kb-ellipsize: "Alt+period";*/
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
/* kb-toggle-sort: "Alt+grave";*/
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
/* kb-custom-1: "Alt+1";*/
/* kb-custom-2: "Alt+2";*/
/* kb-custom-3: "Alt+3";*/
/* kb-custom-4: "Alt+4";*/
/* kb-custom-5: "Alt+5";*/
/* kb-custom-6: "Alt+6";*/
/* kb-custom-7: "Alt+7";*/
/* kb-custom-8: "Alt+8";*/
/* kb-custom-9: "Alt+9";*/
/* kb-custom-10: "Alt+0";*/
/* kb-custom-11: "Alt+exclam";*/
/* kb-custom-12: "Alt+at";*/
/* kb-custom-13: "Alt+numbersign";*/
/* kb-custom-14: "Alt+dollar";*/
/* kb-custom-15: "Alt+percent";*/
/* kb-custom-16: "Alt+dead_circumflex";*/
/* kb-custom-17: "Alt+ampersand";*/
/* kb-custom-18: "Alt+asterisk";*/
/* kb-custom-19: "Alt+parenleft";*/
/* kb-select-1: "Super+1";*/
/* kb-select-2: "Super+2";*/
/* kb-select-3: "Super+3";*/
/* kb-select-4: "Super+4";*/
/* kb-select-5: "Super+5";*/
/* kb-select-6: "Super+6";*/
/* kb-select-7: "Super+7";*/
/* kb-select-8: "Super+8";*/
/* kb-select-9: "Super+9";*/
/* kb-select-10: "Super+0";*/
/* ml-row-left: "ScrollLeft";*/
/* ml-row-right: "ScrollRight";*/
/* ml-row-up: "ScrollUp";*/
/* ml-row-down: "ScrollDown";*/
/* me-select-entry: "MousePrimary";*/
/* me-accept-entry: "MouseDPrimary";*/
/* me-accept-custom: "Control+MouseDPrimary";*/
timeout {
action: "kb-cancel";
delay: 0;
}
filebrowser {
directories-first: true;
sorting-method: "name";
}
}
@theme "amora"

108
linux/.config/sxhkd/sxhkdrc Normal file
View file

@ -0,0 +1,108 @@
#
# wm independent hotkeys
#
# terminal emulator
super + Return
alacritty
# program launcher
super + @space
rofi -show combi
# make sxhkd reload its configuration files:
super + Escape
pkill -USR1 -x sxhkd
#
# bspwm hotkeys
#
# quit/restart bspwm
super + alt + {q,r}
bspc {quit,wm -r}
# close and kill
super + {_,shift + }q
bspc node -{c,k}
# alternate between the tiled and monocle layout
super + m
bspc desktop -l next
# send the newest marked node to the newest preselected node
super + y
bspc node newest.marked.local -n newest.!automatic.local
# swap the current node and the biggest window
super + g
bspc node -s biggest.window
#
# state/flags
#
# set the window state
super + {t,shift + t,f,shift + f}
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
# set the node flags
super + ctrl + {m,x,y,z}
bspc node -g {marked,locked,sticky,private}
#
# focus/swap
#
# focus the node in the given direction
super + {_,shift + }{a,s,w,d}
bspc node -{f,s} {west,south,north,east}
# focus the node for the given path jump
super + {p,b,comma,period}
bspc node -f @{parent,brother,first,second}
# focus the next/previous window in the current desktop
super + {_,shift + }c
bspc node -f {next,prev}.local.!hidden.window
# focus the next/previous desktop in the current monitor
super + bracket{left,right}
bspc desktop -f {prev,next}.local
# focus the last node/desktop
super + {grave,Tab}
bspc {node,desktop} -f last
# focus the older or newer node in the focus history
super + {o,i}
bspc wm -h off; \
bspc node {older,newer} -f; \
bspc wm -h on
# focus or send to the given desktop
super + {_,shift + }{1-9,0}
bspc {desktop -f,node -d} '^{1-9,10}'
#
# move desktops
#
super + ctrl + {a,s,w,d}
bspc {desktop -f prev,node -d prev,node -d next,desktop -f next}
#
# move/resize
#
# expand a window by moving one of its side outward
super + alt + {a,s,w,d}
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
# contract a window by moving one of its side inward
super + alt + shift + {a,s,w,d}
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
# move a floating window
#super + {Left,Down,Up,Right}
# bspc node -v {-20 0,0 20,0 -20,20 0}

View file

@ -0,0 +1,18 @@
#!/bin/bash
row0=("" "⠈" "⠐" "⠘" "⠠" "⠨" "⠰" "⠸" "⢀" "⢈")
row1=("⠁" "⠉" "⠑" "⠙" "⠡" "⠩" "⠱" "⠹" "⢁" "⢉")
row2=("⠂" "⠊" "⠒" "⠚" "⠢" "⠪" "⠲" "⠺" "⢂" "⢊")
row3=("⠃" "⠋" "⠓" "⠛" "⠣" "⠫" "⠳" "⠻" "⢃" "⢋")
row4=("⠄" "⠌" "⠔" "⠜" "⠤" "⠬" "⠴" "⠼" "⢄" "⢌")
row5=("⠅" "⠍" "⠕" "⠝" "⠥" "⠭" "⠵" "⠽" "⢅" "⢍")
chars=("${row0[@]}" "${row1[@]}" "${row2[@]}" "${row3[@]}" "${row4[@]}" "${row5[@]}")
hour=$(date +"%H")
minute=$(date +"%M")
second=$(date +"%S")
[[ $hour = 0* ]] && hour=${hour:1:1}
[[ $minute = 0* ]] && minute=${minute:1:1}
[[ $second = 0* ]] && second=${second:1:1}
echo "${chars[$hour]} ${chars[$minute]} ${chars[$second]}"

View file

@ -0,0 +1,7 @@
#!/usr/bin/env sh
pkill polybar
while pgrep -x polybar > /dev/null; do sleep 1; done
polybar bar >> /dev/null 2>&1 &

262
windows/bug.n/Config.ini Normal file
View file

@ -0,0 +1,262 @@
; bug.n - tiling window management
; @version 9.0.0
;; Status bar
Config_showBar=1
Config_horizontalBarPos=left
Config_verticalBarPos=top
Config_barWidth=100%
Config_singleRowBar=1
Config_spaciousBar=1
Config_fontName=Terminus (TTF) for Windows
Config_fontSize=9
Config_largeFontSize=12
;; <view>;<layout>;<title>;<time>;<date>;<ram>;<cpu>;<battery>;<volume>;<music>
; Amora
Config_backColor_#1=2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331
Config_backColor_#2=2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331
Config_backColor_#3=2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331
Config_foreColor_#1=2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331
Config_foreColor_#2=2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331
Config_foreColor_#3=2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331;2a2331
Config_fontColor_#1=dedbeb;dedbeb;dedbeb;aabae7;aabae7;a2baa8;eacac0;e83f80;9985d1;e68ac1
Config_fontColor_#2=e68ac1;dedbeb;dedbeb;dedbeb;dedbeb;dedbeb;dedbeb;dedbeb;e83f80;dedbeb
Config_fontColor_#3=a2baa8;dedbeb;dedbeb;dedbeb;dedbeb;dedbeb;dedbeb;dedbeb;dedbeb;dedbeb
;lovelace
;Config_backColor_#1=1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28
;Config_backColor_#2=1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28
;Config_backColor_#3=1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28
;Config_foreColor_#1=1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28
;Config_foreColor_#2=1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28
;Config_foreColor_#3=1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28;1D1F28
;Config_fontColor_#1=FDFDFD;FDFDFD;FDFDFD;79E6F3;79E6F3;5ADECD;F2A272;F37F97;8897F4;C574DD
;Config_fontColor_#2=C574DD;FDFDFD;FDFDFD;FDFDFD;FDFDFD;FDFDFD;FDFDFD;FDFDFD;F37F97;FDFDFD
;Config_fontColor_#3=5ADECD;FDFDFD;FDFDFD;FDFDFD;FDFDFD;FDFDFD;FDFDFD;FDFDFD;FDFDFD;FDFDFD
Config_barTransparency=off
Config_barCommands=
Config_readinBat=0
Config_readinCpu=1
Config_readinDate=1
Config_readinDateFormat=ddd, MM/dd/yyyy
Config_readinDiskLoad=0
Config_readinMemoryUsage=0
Config_readinMusic=1
Config_readinNetworkLoad=0
Config_readinRam=1
Config_readinTime=1
Config_readinTimeBinary=0
Config_readinTimeFormat=HH:mm:ss
Config_readinVolume=1
Config_readinInterval=1000
Config_barItemSpacing=8
Config_barIconSpacing=4
Config_iconFontName=SijiNGWindows
Config_iconFontSize=9
Config_iconFontYOffset=0
;; <time>;<date>;<ram>;<cpu>;<battery>;<volume>;<music>
Config_barIcons=;̅;;;;;
Config_combineDateAndTime=1
;; Windows ui elements
Config_bbCompatibility=0
Config_borderWidth=1
Config_borderPadding=-1
Config_showTaskBar=1
Config_showBorder=1
Config_selBorderColor=e68ac1
;Config_selBorderColor=F37F97
;; Window arrangement
Config_viewNames=⠈;⠐;⠘;⠠;⠨;⠰;⠸;⢀;⢈
Config_layout_#1=[]=;tile
Config_layout_#2=[M];monocle
Config_layout_#3=><>;
Config_layoutCount=3
Config_layoutAxis_#1=1
Config_layoutAxis_#2=2
Config_layoutAxis_#3=2
Config_layoutGapWidth=8
Config_layoutMFactor=0.6
Config_areaTraceTimeout=1000
Config_continuouslyTraceAreas=0
Config_dynamicTiling=1
Config_ghostWndSubString= (Not Responding)
Config_mFactCallInterval=700
Config_mouseFollowsFocus=0
Config_newWndPosition=top
Config_onActiveHiddenWnds=view
Config_shellMsgDelay=350
Config_syncMonitorViews=0
Config_viewFollowsTagged=0
Config_viewMargins=0;0;0;0
;; Config_rule_#<i> := '<class>;<title>;<function name>;<is managed>;<m>;<tags>;<is floating>;<is decorated>;<hide title>;<action>'
;Config_rule_#1=.*;.*;;1;0;0;0;0;0;
;Config_rule_#2=.*;.*;Window_isChild;0;0;0;1;1;1;
;Config_rule_#3=.*;.*;Window_isPopup;0;0;0;1;1;1;
;Config_rule_#4=QWidget;.*;;1;0;0;0;0;0;
;Config_rule_#5=SWT_Window0;.*;;1;0;0;0;0;0;
;Config_rule_#6=Xming;.*;;1;0;0;0;0;0;
;Config_rule_#7=MsiDialog(No)?CloseClass;.*;;1;0;0;1;1;0;
;Config_rule_#8=AdobeFlashPlayerInstaller;.*;;1;0;0;1;0;0;
;Config_rule_#9=CalcFrame;.*;;1;0;0;1;1;0;
;Config_rule_#10=CabinetWClass;.*;;1;0;0;0;1;0;
;Config_rule_#11=OperationStatusWindow;.*;;0;0;0;1;1;0;
;Config_rule_#12=Chrome_WidgetWin_1;.*;;1;0;0;0;1;0;
;Config_rule_#13=Chrome_WidgetWin_1;.*;Window_isPopup;0;0;0;1;1;1;
;Config_rule_#14=Chrome_RenderWidgetHostHWND;.*;;0;0;0;1;1;0;
;Config_rule_#15=IEFrame;.*Internet Explorer;;1;0;0;0;1;0;
;Config_rule_#16=MozillaWindowClass;.*Mozilla Firefox;;1;0;0;0;1;0;
;Config_rule_#17=MozillaDialogClass;.*;;1;0;0;1;1;0;
;Config_rule_#18=ApplicationFrameWindow;.*Edge;;1;0;0;0;1;0;
Config_rule=WindowsForms10.Window.8.app.0.3bd0390_r6_ad1;ShareX - Region capture;;0;1;;0;0;0;
Config_rule=WindowsForms10.Window.8.app.0.3bd0390_r6_ad1;ShareX - Editor menu;;0;1;;0;0;0;
Config_rule=WindowsForms10.Window.8.app.0.3bd0390_r6_ad1;ShareX - Screen recording;;0;1;;0;0;0;
Config_rule=WindowsForms10.Window.8.app.0.3bd0390_r6_ad1;NotificationForm;;0;1;;0;0;0;
Config_rule=WindowsForms10.Window.8.app.0.3bd0390_r6_ad1;ShareX - Image viewer;;0;1;;0;0;0;
Config_rule=WindowsForms10.Window.8.app.0.2bf8098_r7_ad1;.*;;0;0;0;1;1;0;
Config_rule=WindowsForms10.Window.8.app.0.2bf8098_r7_ad1;.+;;1;0;0;0;0;0;
Config_rule=Qt5.*QWindowIcon;.*;;1;0;0;0;0;0;
Config_rule=Valve001;.*;;0;0;5;1;1;1;
Config_rule=Chrome_WidgetWin_1;.*;;1;0;0;0;1;0;
Config_rule=Chrome_WidgetWin_1;.*;Window_isPopup;0;0;0;1;1;1;
Config_rule=Chrome_WidgetWin_1;Developer Tools - .*;;0;0;0;1;1;1;
Config_rule=NarratorHelperWindow;.*;;0;
Config_rule=Windows.UI.Core.CoreWindow;Search;;0;;;;;0;
Config_rule=;Wox;;0;;;;;0;
Config_rule=WindowsForms10.Window.8.app.0.1a8c1fa_r7_ad1;;;0;1;;0;0;0;
Config_rule=WindowsForms10.Window.8.app.0.21f09eb_r3_ad1;.*;;0;0;0;1;1;1;
Config_rule=Qt5152QWindowIcon;Media viewer;;0;1;;0;0;0;
Config_rule=GLFW30;;;0;1;;0;0;0;
Config_rule=LWJGL;;;0;1;;0;0;0;
Config_rule=SunAwtFrame;;;0;1;;0;0;0;
Config_rule=TWizardForm;;;0;1;;0;0;0;
Config_rule=Winamp.*;;;0;1;;0;0;0;
Config_rule=UnityWndClass;;;0;1;;0;0;0;
Config_rule=SDL_app;Starbound;;0;1;;0;0;0;
Config_rule=WindowsForms10.Window.8.app.0.1e3b723_r11_ad1;Terraria.*;;0;1;;0;0;0;
;
;; Configuration management
Config_autoSaveSession=auto
Config_maintenanceInterval=5000
;; Key definitions
;; Window management
Config_hotkey=#Down::View_activateWindow(0, +1)
Config_hotkey=#Up::View_activateWindow(0, -1)
Config_hotkey=#+Down::View_shuffleWindow(0, +1)
Config_hotkey=#+Up::View_shuffleWindow(0, -1)
Config_hotkey=#+Enter::
Config_hotkey=#c::
Config_hotkey=#+f::
Config_hotkey=#+m::
Config_hotkey=#+s::
Config_hotkey=#+x::
Config_hotkey=#i::Manager_getWindowInfo()
Config_hotkey=#+i::Manager_getWindowList()
Config_hotkey=!Down::View_moveWindow(0, +1)
Config_hotkey=!Up::View_moveWindow(0, -1)
Config_hotkey=!1::
Config_hotkey=!2::
Config_hotkey=!3::
Config_hotkey=!4::
Config_hotkey=!5::
Config_hotkey=!6::
Config_hotkey=!7::
Config_hotkey=!8::
Config_hotkey=!9::
Config_hotkey=!0::
Config_hotkey=!BackSpace::
;; Window debugging
Config_hotkey=#^i::Debug_logViewWindowList()
Config_hotkey=#+^i::Debug_logManagedWindowList()
Config_hotkey=#^h::Debug_logHelp()
Config_hotkey=#^d::Debug_setLogLevel(0, -1)
Config_hotkey=#^+d::Debug_setLogLevel(0, +1)
;; Layout management
Config_hotkey=#Tab::
Config_hotkey=#m::
Config_hotkey=#Left::View_setLayoutProperty(MFactor, 0, -0.05)
Config_hotkey=#Right::View_setLayoutProperty(MFactor, 0, +0.05)
Config_hotkey=#^t::View_setLayoutProperty(Axis, 0, +1, 1)
Config_hotkey=#^Enter::View_setLayoutProperty(Axis, 0, +2, 1)
Config_hotkey=#^Tab::View_setLayoutProperty(Axis, 0, +1, 2)
Config_hotkey=#^+Tab::View_setLayoutProperty(Axis, 0, +1, 3)
Config_hotkey=#^Up::View_setLayoutProperty(MY, 0, +1)
Config_hotkey=#^Down::View_setLayoutProperty(MY, 0, -1)
Config_hotkey=#^Right::View_setLayoutProperty(MX, 0, +1)
Config_hotkey=#^Left::View_setLayoutProperty(MX, 0, -1)
Config_hotkey=#+Left::
Config_hotkey=#+Right::
;; View/Tag management
;Config_hotkey=#+n::View_toggleMargins()
;Config_hotkey=#BackSpace::Monitor_activateView(-1)
;; Monitor management
Config_hotkey=#.::Manager_activateMonitor(0, +1)
Config_hotkey=#,::Manager_activateMonitor(0, -1)
Config_hotkey=#+.::Manager_setWindowMonitor(0, +1)
Config_hotkey=#+,::Manager_setWindowMonitor(0, -1)
Config_hotkey=#^+.::Manager_setViewMonitor(0, +1)
Config_hotkey=#^+,::Manager_setViewMonitor(0, -1)
;; GUI management
Config_hotkey=#Space::
Config_hotkey=#y::
Config_hotkey=#+y::
Config_hotkey=!+y::
;; Administration
Config_hotkey=#^e::
Config_hotkey=#^s::
Config_hotkey=#^r::Main_reload()
Config_hotkey=#^q::ExitApp
;; Our Hotkeys
Config_hotkey=#!r::Reload
Config_hotkey=#Enter::Run, shell:AppsFolder\Microsoft.WindowsTerminalPreview_8wekyb3d8bbwe!App
Config_hotkey=#+Space::Monitor_toggleBar()
Config_hotkey=#q::Manager_closeWindow()
Config_hotkey=#+d::Window_toggleDecor()
Config_hotkey=#f::View_toggleFloatingWindow()
Config_hotkey=#t::View_setLayout(1)
Config_hotkey=!+Enter::Manager_maximizeWindow()
Config_hotkey=#+0::
Config_hotkey=#^1::
Config_hotkey=#^2::
Config_hotkey=#^3::
Config_hotkey=#^4::
Config_hotkey=#^5::
Config_hotkey=#^6::
Config_hotkey=#^7::
Config_hotkey=#^8::
Config_hotkey=#^9::
Config_hotkey=#1::Monitor_activateView(1)
Config_hotkey=#+1::Monitor_setWindowTag(1)
Config_hotkey=#2::Monitor_activateView(2)
Config_hotkey=#+2::Monitor_setWindowTag(2)
Config_hotkey=#3::Monitor_activateView(3)
Config_hotkey=#+3::Monitor_setWindowTag(3)
Config_hotkey=#4::Monitor_activateView(4)
Config_hotkey=#+4::Monitor_setWindowTag(4)
Config_hotkey=#5::Monitor_activateView(5)
Config_hotkey=#+5::Monitor_setWindowTag(5)
Config_hotkey=#6::Monitor_activateView(6)
Config_hotkey=#+6::Monitor_setWindowTag(6)
Config_hotkey=#7::Monitor_activateView(7)
Config_hotkey=#+7::Monitor_setWindowTag(7)
Config_hotkey=#8::Monitor_activateView(8)
Config_hotkey=#+8::Monitor_setWindowTag(8)
Config_hotkey=#9::Monitor_activateView(9)
Config_hotkey=#+9::Monitor_setWindowTag(9)

Binary file not shown.