Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Daniel Flanagan 2019-03-13 07:38:08 -05:00
commit 0520e89785
14 changed files with 189 additions and 626 deletions

View file

@ -1,567 +0,0 @@
# Configuration for Alacritty, the GPU enhanced terminal emulator.
# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty itself.
#env:
# TERM variable
#
# This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will
# check the local terminfo database and use `alacritty` if it is
# available, otherwise `xterm-256color` is used.
#TERM: xterm-256color
window:
# Window dimensions (changes require restart)
#
# Specified in number of columns/lines, not pixels.
# If both are `0`, this setting is ignored.
dimensions:
columns: 0
lines: 0
# Window padding (changes require restart)
#
# Blank space added around the window in pixels. This padding is scaled
# by DPI and the specified value is always added at both opposing sides.
padding:
x: 10
y: 10
# Spread additional padding evenly around the terminal content.
dynamic_padding: 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: full
# When true, alacritty starts maximized.
start_maximized: false
scrolling:
# Maximum number of lines in the scrollback buffer.
# Specifying '0' will disable scrolling.
history: 10000
# Number of lines the viewport will move for every line scrolled when
# scrollback is enabled (history > 0).
multiplier: 3
# Faux Scrolling
#
# The `faux_multiplier` setting controls the number of lines the terminal
# should scroll when the alternate screen buffer is active. This is used
# to allow mouse scrolling for applications like `man`.
#
# Specifying `0` will disable faux scrolling.
faux_multiplier: 3
# Scroll to the bottom when new text is written to the terminal.
auto_scroll: false
# Spaces per Tab (changes require restart)
#
# This setting defines the width of a tab in cells.
#
# Some applications, like Emacs, rely on knowing about the width of a tab.
# To prevent unexpected behavior in these applications, it's also required to
# change the `it` value in terminfo when altering this setting.
tabspaces: 2
# Font configuration (changes require restart)
font:
# Normal (roman) font face
normal:
# Font family
#
# Default:
# - (macOS) Menlo
# - (Linux) monospace
# - (Windows) Consolas
family: Iosevka
# 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: Iosevka
# 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: Iosevka
# 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 upwards.
glyph_offset:
x: 0
y: 0
# Thin stroke font rendering (macOS only)
#
# Thin strokes are suitable for retina displays, but for non-retina screens
# it is recommended to set `use_thin_strokes` to `false`
#
# macOS >= 10.14.x:
#
# If the font quality on non-retina display looks bad then set
# `use_thin_strokes` to `true` and enable font smoothing by running the
# following command:
# `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
#
# This is a global setting and will require a log out or restart to take
# effect.
use_thin_strokes: true
# Display the time it takes to redraw each frame.
render_timer: false
# Keep the log file after quitting Alacritty.
persistent_logging: false
# If `true`, bold text is drawn using the bright color variants.
draw_bold_text_with_bright_colors: true
# Colors (Tomorrow Night Bright)
colors:
# Default colors
primary:
background: '0x000000'
foreground: '0xeaeaea'
# Bright and dim foreground colors
#
# The dimmed foreground color is calculated automatically if it is not present.
# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
# is `false`, the normal foreground color will be used.
#dim_foreground: '0x9a9a9a'
#bright_foreground: '0xffffff'
# Cursor colors
#
# Colors which should be used to draw the terminal cursor. If these are unset,
# the cursor color will be the inverse of the cell color.
#cursor:
# text: '0x000000'
# cursor: '0xffffff'
# Normal colors
normal:
black: '0x000000'
red: '0xd54e53'
green: '0xb9ca4a'
yellow: '0xe6c547'
blue: '0x7aa6da'
magenta: '0xc397d8'
cyan: '0x70c0ba'
white: '0xeaeaea'
# Bright colors
bright:
black: '0x666666'
red: '0xff3334'
green: '0x9ec400'
yellow: '0xe7c547'
blue: '0x7aa6da'
magenta: '0xb77ee0'
cyan: '0x54ced6'
white: '0xffffff'
# Dim colors
#
# If the dim colors are not set, they will be calculated automatically based
# on the `normal` colors.
#dim:
# black: '0x000000'
# red: '0x8c3336'
# green: '0x7a8530'
# yellow: '0x97822e'
# blue: '0x506d8f'
# magenta: '0x80638e'
# cyan: '0x497e7a'
# white: '0x9a9a9a'
# 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: '0xff00ff' }`
#
indexed_colors: []
# Visual Bell
#
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
# rung, the terminal background will be set to white and transition back to the
# default background color. You can control the rate of this transition by
# setting the `duration` property (represented in milliseconds). You can also
# configure the transition function by setting the `animation` property.
#
# Values for `animation`:
# - Ease
# - EaseOut
# - EaseOutSine
# - EaseOutQuad
# - EaseOutCubic
# - EaseOutQuart
# - EaseOutQuint
# - EaseOutExpo
# - EaseOutCirc
# - Linear
#
# Specifying a `duration` of `0` will disable the visual bell.
visual_bell:
animation: EaseOutExpo
duration: 0
color: '0xffffff'
# Background opacity
#
# Window opacity as a floating point number from `0.0` to `1.0`.
# The value `0.0` is completely transparent and `1.0` is opaque.
background_opacity: 1.0
# Mouse bindings
#
# Available fields:
# - mouse
# - action
# - mods (optional)
#
# Values for `mouse`:
# - Middle
# - Left
# - Right
# - Numeric identifier such as `5`
#
# All available `mods` and `action` values are documented in the key binding
# section.
mouse_bindings:
- { mouse: Middle, action: PasteSelection }
mouse:
# Click settings
#
# The `double_click` and `triple_click` settings control the time
# alacritty should wait for accepting multiple clicks as one double
# or triple click.
double_click: { threshold: 300 }
triple_click: { threshold: 300 }
# If this is `true`, the cursor is temporarily hidden when typing.
hide_when_typing: false
url:
# URL launcher
#
# This program is executed when clicking on a text which is recognized as a URL.
# The URL is always added to the command as the last parameter.
#
# When set to `None`, URL launching will be disabled completely.
#
# Default:
# - (macOS) open
# - (Linux) xdg-open
# - (Windows) explorer
#launcher: xdg-open
# URL modifiers
#
# These are the modifiers that need to be held down for opening URLs when clicking
# on them. The available modifiers are documented in the key binding section.
modifiers: None
selection:
semantic_escape_chars: ",│`|:\"' ()[]{}<>"
# When set to `true`, selected text will be copied to the primary clipboard.
save_to_clipboard: false
# Allow terminal applications to change Alacritty's window title.
dynamic_title: true
cursor:
# Cursor style
#
# Values for `style`:
# - ▇ Block
# - _ Underline
# - | Beam
style: Block
# If this is `true`, the cursor will be rendered as a hollow box when the
# window is not focused.
unfocused_hollow: true
# Live config reload (changes require restart)
live_config_reload: true
# Shell
#
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
# Entries in `shell.args` are passed unmodified as arguments to the shell.
#
# Default:
# - (Linux/macOS) /bin/bash --login
# - (Windows) powershell
#shell:
# program: /bin/bash
# args:
# - --login
# Windows 10 ConPTY backend (Windows only)
#
# This will enable better color support and may resolve other issues,
# however this API and its implementation is still young and so is
# disabled by default, as stability may not be as good as the winpty
# backend.
#
# Alacritty will fall back to the WinPTY automatically if the ConPTY
# backend cannot be initialized.
enable_experimental_conpty_backend: false
# Send ESC (\x1b) before characters when alt is pressed.
alt_send_esc: true
# Key bindings
#
# Key bindings are specified as a list of objects. Each binding will specify a
# key and modifiers required to trigger it, terminal modes where the binding is
# applicable, and what should be done when the key binding fires. It can either
# send a byte sequence to the running application (`chars`), execute a
# predefined action (`action`) or fork and execute a specified command plus
# arguments (`command`).
#
# Bindings are always filled by default, but will be replaced when a new binding
# with the same triggers is defined. To unset a default binding, it can be
# mapped to the `None` action.
#
# Example:
# `- { key: V, mods: Control|Shift, action: Paste }`
#
# Available fields:
# - key
# - mods (optional)
# - chars | action | command (exactly one required)
# - mode (optional)
#
# Values for `key`:
# - `A` -> `Z`
# - `F1` -> `F12`
# - `Key1` -> `Key0`
#
# A full list with available key codes can be found here:
# https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
#
# Instead of using the name of the keys, the `key` field also supports using
# the scancode of the desired key. Scancodes have to be specified as a
# decimal number.
# This command will allow you to display the hex scancodes for certain keys:
# `showkey --scancodes`
#
# Values for `mods`:
# - Command
# - Control
# - Super
# - Shift
# - Alt
#
# Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
# Whitespace and capitalization is relevant and must match the example.
#
# Values for `chars`:
# The `chars` field writes the specified string to the terminal. This makes
# it possible to pass escape sequences.
# To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
# the command `showkey -a` outside of tmux.
# Note that applications use terminfo to map escape sequences back to
# keys. It is therefore required to update the terminfo when
# changing an escape sequence.
#
# Values for `action`:
# - Paste
# - PasteSelection
# - Copy
# - IncreaseFontSize
# - DecreaseFontSize
# - ResetFontSize
# - ScrollPageUp
# - ScrollPageDown
# - ScrollToTop
# - ScrollToBottom
# - ClearHistory
# - Hide
# - Quit
# - ClearLogNotice
# - SpawnNewInstance
# - None
#
# Values for `command`:
# The `command` field must be a map containing a `program` string and
# an `args` array of command line parameter strings.
#
# Example:
# `command: { program: "alacritty", args: ["-e", "vttest"] }`
#
# Values for `mode`:
# - ~AppCursor
# - AppCursor
# - ~AppKeypad
# - AppKeypad
key_bindings:
# (Windows/Linux only)
#- { key: V, mods: Control|Shift, action: Paste }
#- { key: C, mods: Control|Shift, action: Copy }
#- { key: Insert, mods: Shift, action: PasteSelection }
#- { key: Key0, mods: Control, action: ResetFontSize }
#- { key: Equals, mods: Control, action: IncreaseFontSize }
#- { key: Subtract, mods: Control, action: DecreaseFontSize }
# (macOS only)
#- { key: Key0, mods: Command, action: ResetFontSize }
#- { key: Equals, mods: Command, action: IncreaseFontSize }
#- { key: Minus, mods: Command, action: DecreaseFontSize }
#- { key: K, mods: Command, action: ClearHistory }
#- { key: K, mods: Command, chars: "\x0c" }
#- { key: V, mods: Command, action: Paste }
#- { key: C, mods: Command, action: Copy }
#- { key: H, mods: Command, action: Hide }
#- { key: Q, mods: Command, action: Quit }
#- { key: W, mods: Command, action: Quit }
- { key: Paste, action: Paste }
- { key: Copy, action: Copy }
- { key: L, mods: Control, action: ClearLogNotice }
- { key: L, mods: Control, chars: "\x0c" }
- { key: Home, chars: "\x1bOH", mode: AppCursor }
- { key: Home, chars: "\x1b[H", mode: ~AppCursor }
- { key: End, chars: "\x1bOF", mode: AppCursor }
- { key: End, chars: "\x1b[F", mode: ~AppCursor }
- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
- { key: PageUp, mods: Shift, chars: "\x1b[5;2~", mode: Alt }
- { key: PageUp, mods: Control, chars: "\x1b[5;5~" }
- { key: PageUp, chars: "\x1b[5~" }
- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
- { key: PageDown, mods: Shift, chars: "\x1b[6;2~", mode: Alt }
- { key: PageDown, mods: Control, chars: "\x1b[6;5~" }
- { key: PageDown, chars: "\x1b[6~" }
- { key: Tab, mods: Shift, chars: "\x1b[Z" }
- { key: Back, chars: "\x7f" }
- { key: Back, mods: Alt, chars: "\x1b\x7f" }
- { key: Insert, chars: "\x1b[2~" }
- { key: Delete, chars: "\x1b[3~" }
- { key: Left, mods: Shift, chars: "\x1b[1;2D" }
- { key: Left, mods: Control, chars: "\x1b[1;5D" }
- { key: Left, mods: Alt, chars: "\x1b[1;3D" }
- { key: Left, chars: "\x1b[D", mode: ~AppCursor }
- { key: Left, chars: "\x1bOD", mode: AppCursor }
- { key: Right, mods: Shift, chars: "\x1b[1;2C" }
- { key: Right, mods: Control, chars: "\x1b[1;5C" }
- { key: Right, mods: Alt, chars: "\x1b[1;3C" }
- { key: Right, chars: "\x1b[C", mode: ~AppCursor }
- { key: Right, chars: "\x1bOC", mode: AppCursor }
- { key: Up, mods: Shift, chars: "\x1b[1;2A" }
- { key: Up, mods: Control, chars: "\x1b[1;5A" }
- { key: Up, mods: Alt, chars: "\x1b[1;3A" }
- { key: Up, chars: "\x1b[A", mode: ~AppCursor }
- { key: Up, chars: "\x1bOA", mode: AppCursor }
- { key: Down, mods: Shift, chars: "\x1b[1;2B" }
- { key: Down, mods: Control, chars: "\x1b[1;5B" }
- { key: Down, mods: Alt, chars: "\x1b[1;3B" }
- { key: Down, chars: "\x1b[B", mode: ~AppCursor }
- { key: Down, chars: "\x1bOB", mode: AppCursor }
- { key: F1, chars: "\x1bOP" }
- { key: F2, chars: "\x1bOQ" }
- { key: F3, chars: "\x1bOR" }
- { key: F4, chars: "\x1bOS" }
- { key: F5, chars: "\x1b[15~" }
- { key: F6, chars: "\x1b[17~" }
- { key: F7, chars: "\x1b[18~" }
- { key: F8, chars: "\x1b[19~" }
- { key: F9, chars: "\x1b[20~" }
- { key: F10, chars: "\x1b[21~" }
- { key: F11, chars: "\x1b[23~" }
- { key: F12, chars: "\x1b[24~" }
- { key: F1, mods: Shift, chars: "\x1b[1;2P" }
- { key: F2, mods: Shift, chars: "\x1b[1;2Q" }
- { key: F3, mods: Shift, chars: "\x1b[1;2R" }
- { key: F4, mods: Shift, chars: "\x1b[1;2S" }
- { key: F5, mods: Shift, chars: "\x1b[15;2~" }
- { key: F6, mods: Shift, chars: "\x1b[17;2~" }
- { key: F7, mods: Shift, chars: "\x1b[18;2~" }
- { key: F8, mods: Shift, chars: "\x1b[19;2~" }
- { key: F9, mods: Shift, chars: "\x1b[20;2~" }
- { key: F10, mods: Shift, chars: "\x1b[21;2~" }
- { key: F11, mods: Shift, chars: "\x1b[23;2~" }
- { key: F12, mods: Shift, chars: "\x1b[24;2~" }
- { key: F1, mods: Control, chars: "\x1b[1;5P" }
- { key: F2, mods: Control, chars: "\x1b[1;5Q" }
- { key: F3, mods: Control, chars: "\x1b[1;5R" }
- { key: F4, mods: Control, chars: "\x1b[1;5S" }
- { key: F5, mods: Control, chars: "\x1b[15;5~" }
- { key: F6, mods: Control, chars: "\x1b[17;5~" }
- { key: F7, mods: Control, chars: "\x1b[18;5~" }
- { key: F8, mods: Control, chars: "\x1b[19;5~" }
- { key: F9, mods: Control, chars: "\x1b[20;5~" }
- { key: F10, mods: Control, chars: "\x1b[21;5~" }
- { key: F11, mods: Control, chars: "\x1b[23;5~" }
- { key: F12, mods: Control, chars: "\x1b[24;5~" }
- { key: F1, mods: Alt, chars: "\x1b[1;6P" }
- { key: F2, mods: Alt, chars: "\x1b[1;6Q" }
- { key: F3, mods: Alt, chars: "\x1b[1;6R" }
- { key: F4, mods: Alt, chars: "\x1b[1;6S" }
- { key: F5, mods: Alt, chars: "\x1b[15;6~" }
- { key: F6, mods: Alt, chars: "\x1b[17;6~" }
- { key: F7, mods: Alt, chars: "\x1b[18;6~" }
- { key: F8, mods: Alt, chars: "\x1b[19;6~" }
- { key: F9, mods: Alt, chars: "\x1b[20;6~" }
- { key: F10, mods: Alt, chars: "\x1b[21;6~" }
- { key: F11, mods: Alt, chars: "\x1b[23;6~" }
- { key: F12, mods: Alt, chars: "\x1b[24;6~" }
- { key: F1, mods: Super, chars: "\x1b[1;3P" }
- { key: F2, mods: Super, chars: "\x1b[1;3Q" }
- { key: F3, mods: Super, chars: "\x1b[1;3R" }
- { key: F4, mods: Super, chars: "\x1b[1;3S" }
- { key: F5, mods: Super, chars: "\x1b[15;3~" }
- { key: F6, mods: Super, chars: "\x1b[17;3~" }
- { key: F7, mods: Super, chars: "\x1b[18;3~" }
- { key: F8, mods: Super, chars: "\x1b[19;3~" }
- { key: F9, mods: Super, chars: "\x1b[20;3~" }
- { key: F10, mods: Super, chars: "\x1b[21;3~" }
- { key: F11, mods: Super, chars: "\x1b[23;3~" }
- { key: F12, mods: Super, chars: "\x1b[24;3~" }
- { key: NumpadEnter, chars: "\n" }

13
apps/kitty/kitty.conf Normal file
View file

@ -0,0 +1,13 @@
font_family Iosevka Term
bold_font Iosevka Term Bold
italic_font Iosevka Term Italic
bold_italic_font Iosevka Term Bold Italic
# font_family Iosevka Medium Nerd Font Complete Mono
# bold_font Iosevka Bold Nerd Font Complete Mono
# italic_font Iosevka Italic Nerd Font Complete Mono
# bold_italic_font Iosevka Bold Italic Nerd Font Complete Mono
font_size 10.0
adjust_line_height 0
window_padding_width 8.0
window_margin_width 0.0

View file

@ -95,4 +95,6 @@ if has('autocmd')
" autocmd WinLeave * call CheckCloseDistractionFreeMode()
endif
" AddTabularPattern! ssv /\s/r0c0l0
command! DistractionFreeMode call DistractionFreeModeFunc()

View file

@ -1,2 +1,2 @@
set preview_images true
set preview_images_method urxvt
set preview_images_method kitty

95
apps/scim/lua/dice.lua Normal file
View file

@ -0,0 +1,95 @@
local os = require "os"
local math = require "math"
math.randomseed(os.clock())
function table.tostring(self, indent, done)
local result = ""
done = done or {}
indent = indent or 0
if type(self) == "table" then
for key, value in pairs(self) do
result = result .. string.rep(" ", indent)
if type(value) == "table" and not done[value] then
done[value] = true
result = result ..
string.format(
"[%s] => table\n",
tostring(key)
) ..
"{\n" ..
table.tostring(value, indent + 2, done) ..
"}\n"
else
result = result ..
string.format("[%s] => %s\n",
tostring(key),
tostring(value)
)
end
end
else
result = result .. self .. "\n"
end
return result
end
function log(s)
s = "[timestamp: " .. tostring(os.time()) .. "]\n" .. s
local out = s:gsub("\n", "\n ")
local file = io.open("/tmp/sc-im-dice.log", "a+")
file:write("\n")
file:write(out)
io.close(file)
end
local dstr_matcher = "(%d*)d(%d+)"
function dstr(n, s, fl)
n = tonumber(n) or 1
local sum = 0
for di = 1, n do
sum = sum + math.random(1, tonumber(s))
end
return sum
end
function rolls(s)
local pieces = {}
for nd, ds in s:gmatch(dstr_matcher) do
local sum = dstr(tonumber(nd), tonumber(ds))
pieces[#pieces+1] = {
tostring(nd) .. "d" .. tostring(ds),
tostring(sum)
}
end
return pieces
end
function replacerolls(s, rolls)
local result = s
for k, n in ipairs(rolls) do
result = result:gsub(n[1], n[2], 1)
end
return result
end
function evalreturn(s)
local f = loadstring("return " .. s)
return f()
end
function sc_parserollstr(s)
local r = rolls(s)
log(table.tostring(r))
return evalreturn(replacerolls(s, r))
end
function sc_rollres(c, r)
local os = require "os"
local seed = (os.time() + os.clock()) * 10000000
math.randomseed(seed)
log("Setting Seed: " .. tostring(seed))
local sum = sc_parserollstr(sc.lgetstr(c, r))
sc.lsetnum(c + 1, r, sum)
end

0
apps/scim/lua/h.lua Normal file
View file

13
apps/scim/rc Normal file
View file

@ -0,0 +1,13 @@
set autocalc
set numeric
set numeric_decimal=0
set overlap
set xlsx_readformulas
color "type=HEADINGS fg=WHITE bg=BLACK bold=0 dim=0 standout=0 reverse=0"
color "type=CELL_SELECTION_SC fg=WHITE bg=BLACK bold=1 dim=0 standout=1"
color "type=CELL_SELECTION fg=WHITE bg=BLACK bold=1 dim=0 standout=1"
color "type=STRG fg=WHITE bg=BLACK bold=0 dim=1"
color "type=NUMB fg=YELLOW bg=BLACK bold=0 dim=1"
nmap "J" "<C-j>"

View file

@ -164,7 +164,7 @@ super + shift + t
# spawn a terminal
super + Return
urxvtc
kitty
# spawn a floating terminal
super + shift + Return

View file

@ -6,8 +6,6 @@ This is a Mixon Hill Inc. employee specific version of my dotfiles from here:
# My Dotfiles
**NOTE**: Readme needs updating!!
This repository contains the majority of application or OS configuration files
I use on a daily basis. I keep the here and public in an effort to inform others
who may not know either how to go about organizing such files or to learn how to
@ -19,7 +17,7 @@ myself when setting up a new machine.
* Clone the repo into `~/.config/dotfiles`
* Run `~/.config/dotfiles/setup`
* Read the warning, obey it, backup your files, *then* agree
* Reboot once the script finishes.
* **Optional**: Reboot once the script finishes
## Priorities
@ -28,74 +26,57 @@ out in order of priority here:
* These files are primarily configured for Linux, (specifically, Arch Linux) but
I try to keep the OS-specific stuff in the `os-specific` directory.
* I am also primarily a Web Developer, so my configuration will reflect that.
* I rely heavily on Google's products and services. I know some are eager to
avoid that.
* I also prefer apps in my terminal. If I could, I would do everything that
makes sense to do so in a terminal using only my keyboard. **So if you know
about really cool and usable terminal-based software, let me know!**
* I prefer keeping my dotfiles as portable as possible (within reason).
* These dotfiles should be very quick to setup and get going.
* I prefer keeping my dotfiles as portable as possible (within reason) though
this is obviously very difficult since I only run one OS.
* Setup should be very quick (downloading and installing packages aside).
* I aim to keep the dotfiles flexible and extendible, as I usually use them on
multiple machines with specific use-cases. For example, a shared laptop should
allow for other non-technical users ease-of-access, while my workstation
should focus on being quick, powerful, and highly usable for me alone.
* The only dependencies should be `git` and `bash` for the very basics.
## Applications
There are several types of applications I use every day, some more than others,
and sometimes different applications that have the same purpose. Here are the
applications I use (the primary one is *italicized*, the one I would like to
become my primary or am very interested in using in more depth is in **bold**)
for various tasks:
applications I use:
* **Terminal Emulators**: *rxvt-unicode*
* **Text Editors**: **vim/Neovim**, Sublime Text
* **Terminal Multiplexers**: *tmux*
* **Web Browser**: *Google Chrome*, **qutebrowser**, luakit
* **Music**: *Google Play Music*
* **Email**: *Google Inbox*, Gmail, **mutt**
* **Image Editing**: *GIMP*, *Inkscape*, **Krita**
* **Documents**: *Google Drive*, though Dropbox's Paper looks neat and I've
heard too many good things about LaTeX.
* **Gaming**: *Steam*, *various emulators*
* **Terminal Emulator**: Kitty
* **Text Editor**: Neovim
* **Terminal Multiplexers**: tmux
* **Web Browser**: Firefox
* **Music**: Google Play Music
* **Email**: Google Inbox, mutt
* **Image Editing**: GIMP, Inkscape, Krita, Aseprite
* **Documents**: Neovim + Markdown, sc-im, LibreOffice
* **Gaming**: Steam, various emulators
## Workflow
Here are some bullet points on my workflow as a Web Developer:
Here are some bullet points on my workflow:
* **Text Editing**: I use `vim`/`Neovim` in my terminal as my primary text
editor. I usually run it in a `tmux` session alongside a few terminals to have
a very flexible IDE-like development environment. More on that in other bullet
points.
* **Version Control**: I use `git` in the terminal (sometimes I pop into
GitKraken if I need to do anything crazy) and commit often. I work in a branch
named "dev" until it's time to go live, then I merge into master. Other
branches beyond "dev" are used for trying crazy things or during large
refactors so I can very quickly jump back if needed.
* **Text Editing**: I use `Neovim` in my terminal as my primary text
editor. I usually run it in a `tmux` session alongside a few terminals to
have a very flexible IDE-like development environment. More on that in other
bullet points. I keep a `tmux` session for each project or group of
terminals concerning a similar mind-space.
* **Version Control**: I use `git` in the terminal and commit often. I work in
feature branches that go to a `dev` branch as sort of a staging area for
testing until it's time to go live, then I merge into master.
* **Compiler/Debugging**: I rely heavily on auto-reloading and
watch-and-test-and-compile features during development to iterate quickly.
Tools such as `webpack` and `webpack-dev-server` are amazing. If you try to do
anything to weird or crazy, though, configuring webpack properly can be
hazardous to the mind. Or I'm just doing things very wrong. Chrome's dev tools
are also killer in this department.
* **Testing**: I don't do much testing. This is bad and I'm working on it!
watch-and-test-and-compile features during development to iterate quickly.
Language servers, linters, and simple file watches to trigger your tests are
amazing tools to take care of the cruft of writing code and integrating them
heavily into Neovim is my current top need/priority.
## To Do and Improvements
* Add vim in the terminal as the handler for many MIME types (xdg-open and such)
for the rare time I'm in a file manager or for opening easily from
the browser.
* Unify all the common variables... somehow? (and use templates and `envsubst`?)
* Makefile as setup script
* Vim `<leader>m` binding should be able to run arbitrary commands, not just
`make`
* Dunst and notifications
* Vimux?
* terminal on-the-fly font resizing?
* terminal fontawesome/icons?
* Alacritty as terminal?
* Cloud IRC
* Some kind of notes wiki? (vimwiki with perfect markdown support?)
[xdg-user-dirs]: https://wiki.archlinux.org/index.php/XDG_user_directories
* Makefile instead of setup script
* [Vimux](https://github.com/benmills/vimux)?
* Nerd Fonts with ligatures and icons for Kitty

View file

@ -10,14 +10,12 @@ BACKGROUND_COLOR=$(xrdb -query | sed -ne 's/.*background:\s*\(.*\)$/\1
FOREGROUND_COLOR=$(xrdb -query | sed -ne 's/.*foreground:\s*\(.*\)$/\1/p' | head -n 1)
GAP=$(xrdb -query | sed -ne 's/.*internalBorder:\s*\(.*\)$/\1/p' | head -n 1)
echo "$@" >> "$HOME/.sxhkd.log"
rofi \
-combi-modi run,window \
-show combi \
-modi combi \
-font "$LAUNCHER_FONT $LAUNCHER_FONT_SIZE" \
-padding "$GAP" \
-padding $GAP \
-bw "$BORDER_WIDTH" \
-color-enabled \
-color-window "$BACKGROUND_COLOR","$HIGHLIGHT_COLOR","$FOREGROUND_COLOR","$BACKGROUND_COLOR" \

14
scripts/bin/b Executable file
View file

@ -0,0 +1,14 @@
#!/usr/bin/env bash
bbin="bible" # npm i -g bible
pbin="less"
# bible args
bargs=""
# pager args
pargs="-R"
[ $1 = "s" ] && bargs="$bargs --search" && shift
"${bbin}" $bargs "$*" | "${pbin}" $pargs

5
scripts/bin/scn Executable file
View file

@ -0,0 +1,5 @@
#!/usr/bin/env bash
SUBDIR="${2:-}"
mkdir -p "$NOTES_PATH/$SUBDIR"
sc-im "$NOTES_PATH/$SUBDIR/$(date +%Y-%m-%d)_$1.sc"

9
setup
View file

@ -44,12 +44,19 @@ links=(
"$dfp/apps/qutebrowser/qutebrowser.conf" "$XDG_CONFIG_HOME/qutebrowser/qutebrowser.conf"
"$dfp/apps/qutebrowser/keys.conf" "$XDG_CONFIG_HOME/qutebrowser/keys.conf"
# sc-im config files and scripts
"$dfp/apps/scim/rc" "$HOME/.scimrc"
"$dfp/apps/scim/lua" "$HOME/.scim/lua"
# document viewer
"$dfp/apps/zathura/" "$XDG_CONFIG_HOME/zathura"
# terminal emulator
"$dfp/apps/alacritty/" "$XDG_CONFIG_HOME/alacritty"
# kitty config
"$dfp/apps/kitty/" "$XDG_CONFIG_HOME/kitty"
# rofi config
"$dfp/apps/rofi/config" "$XDG_CONFIG_HOME/rofi/config"
@ -84,8 +91,6 @@ read -r -p " [y/N] " response
response=${response,,} # to lower case
if [[ $response =~ ^(yes|y)$ ]]; then
"$dfp/sudo_setup"
else
::
fi
echo -e "Dotfiles Installed! Running 'exec bash'...\n"

View file

@ -50,6 +50,7 @@ alias tu="tmux attach -t utils || tmux new -s utils"
alias tdf="tmux attach -t dotfiles || tmux new -s dotfiles -c \"\$DOTFILES_PATH\""
alias tmon="tmux attach -t monitoring || tmux new -s monitoring"
alias tcom="tmux attach -t comms || tmux new -s comms"
alias tn="tmux attach -t notes || tmux new -s notes"
# git aliases
# TODO: make these git aliases in the gitconfig?
@ -64,7 +65,7 @@ alias grbpf="git push --force-with-lease"
alias gac="git add -A && git commit"
alias gsur="git submodule update --remote"
alias glf="git ls-files"
alias gl="git log --graph --pretty=oneline --abbrev-commit --decorate"
alias gl="git log --pretty=format:\"%h %ad%x09%an%x09%s\" --date=short"
# docker aliases
alias dlf="docker logs --tail=500 -f"
@ -75,6 +76,7 @@ alias ctop="docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock qua
alias p="ping 8.8.8.8"
alias C="clear && clear"
alias r="ranger"
alias rn="/usr/bin/watch -n 1"
alias sctl="sudo systemctl"
alias btctl="sudo bluetoothctl"
alias pt="htop -t" # experimental htop tree-view-by-default
@ -82,6 +84,8 @@ alias resrc="source \$HOME/.bashrc"
alias redshift="redshift -r -l 39.0997:-94.5786 -t 6500K:2500K"
alias gpmdpe="electron --app=/usr/share/gpmdp/resources/app.asar"
alias t="task"
alias sc="sc-im"
alias scs="sc-im \"\$NOTES_PATH/_scratch.sc\""
# games aliases
# this sometimes fixes steam dynamic library issues?