From 2df1a4e92f158deab9eeec4ab1c10b91e40c5ee0 Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Thu, 27 Apr 2017 15:49:57 -0500 Subject: [PATCH] Fix compton, update colors in use, disable tmux status bar until it works properly --- apps/alacritty/alacritty.yml | 250 ++++++++++++++++++ apps/neovim/init.vim | 2 +- de/bar/polybar-config | 3 +- de/bspwm_config | 13 +- de/bspwmrc | 2 +- de/compton.conf | 38 +-- de/fontconfig/conf.d/01-emoji.conf | 9 + scripts/arch-linux/provisioning/3-extras.bash | 2 +- scripts/bin/git-authors | 4 + scripts/bin/tmux-session-list | 22 +- setup | 7 + shell/tmux.conf | 14 +- 12 files changed, 318 insertions(+), 48 deletions(-) create mode 100644 apps/alacritty/alacritty.yml create mode 100644 de/fontconfig/conf.d/01-emoji.conf create mode 100755 scripts/bin/git-authors diff --git a/apps/alacritty/alacritty.yml b/apps/alacritty/alacritty.yml new file mode 100644 index 0000000..fee522b --- /dev/null +++ b/apps/alacritty/alacritty.yml @@ -0,0 +1,250 @@ +# 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 it self. +env: + # TERM env customization. + # + # If this property is not set, alacritty will set it to xterm-256color. + # + # Note that some xterm terminfo databases don't declare support for italics. + # You can verify this by checking for the presence of `smso` and `sitm` in + # `infocmp xterm-256color`. + TERM: xterm-256color + +# Window dimensions in character columns and lines +# (changes require restart) +dimensions: + columns: 80 + lines: 24 + +# The FreeType rasterizer needs to know the device DPI for best results +# (changes require restart) +dpi: + x: 96.0 + y: 96.0 + +# Display tabs using this many cells (changes require restart) +tabspaces: 2 + +# When true, bold text is drawn using the bright variant of colors. +draw_bold_text_with_bright_colors: true + +# Font configuration (changes require restart) +font: + # The normal (roman) font face to use. + normal: + family: Monaco # should be "Menlo" or something on macOS. + # Style can be specified to pick a specific face. + # style: Regular + + # The bold font face + bold: + family: Monaco # should be "Menlo" or something on macOS. + # Style can be specified to pick a specific face. + # style: Bold + + # The italic font face + italic: + family: Monaco # should be "Menlo" or something on macOS. + # Style can be specified to pick a specific face. + # style: Italic + + # Point size of the font + size: 16.0 + # Offset is the extra space around each character. offset.y can be thought of + # as modifying the linespacing, and offset.x as modifying the letter spacing. + offset: + x: 0.0 + y: -12.0 + + # OS X only: use thin stroke font rendering. Thin strokes are suitable + # for retina displays, but for non-retina you probably want this set to + # false. + use_thin_strokes: true + +# Should display the render timer +render_timer: false + +# Use custom cursor colors. If true, display the cursor in the cursor.foreground +# and cursor.background colors, otherwise invert the colors of the cursor. +custom_cursor_colors: false + +# Colors (Tomorrow Night Bright) +colors: + # Default colors + primary: + background: '0x000000' + foreground: '0xeaeaea' + + # Colors the cursor will use if `custom_cursor_colors` is true + cursor: + text: '0x000000' + cursor: '0xffffff' + + # Normal colors + normal: + black: '0x000000' + red: '0xd54e53' + green: '0xb9ca4a' + yellow: '0xe6c547' + blue: '0x7aa6da' + magenta: '0xc397d8' + cyan: '0x70c0ba' + white: '0x424242' + + # Bright colors + bright: + black: '0x666666' + red: '0xff3334' + green: '0x9ec400' + yellow: '0xe7c547' + blue: '0x7aa6da' + magenta: '0xb77ee0' + cyan: '0x54ced6' + white: '0x2a2a2a' + +# 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. +# +# Possible values for `animation` +# `Ease` +# `EaseOut` +# `EaseOutSine` +# `EaseOutQuad` +# `EaseOutCubic` +# `EaseOutQuart` +# `EaseOutQuint` +# `EaseOutExpo` +# `EaseOutCirc` +# `Linear` +# +# To completely disable the visual bell, set its duration to 0. +# +visual_bell: + animation: EaseOutExpo + duration: 0 + +# Key bindings +# +# Each binding is defined as an object with some properties. Most of the +# properties are optional. All of the alphabetical keys should have a letter for +# the `key` value such as `V`. Function keys are probably what you would expect +# as well (F1, F2, ..). The number keys above the main keyboard are encoded as +# `Key1`, `Key2`, etc. Keys on the number pad are encoded `Number1`, `Number2`, +# etc. These all match the glutin::VirtualKeyCode variants. +# +# Possible values for `mods` +# `Command`, `Super` refer to the super/command/windows key +# `Control` for the control key +# `Shift` for the Shift key +# `Alt` and `Option` refer to alt/option +# +# mods may be combined with a `|`. For example, requiring control and shift +# looks like: +# +# mods: Control|Shift +# +# The parser is currently quite sensitive to whitespace and capitalization - +# capitalization must match exactly, and piped items must not have whitespace +# around them. +# +# Either an `action` or `chars` field must be present. `chars` writes the +# specified string every time that binding is activated. These should generally +# be escape sequences, but they can be configured to send arbitrary strings of +# bytes. Possible values of `action` include `Paste` and `PasteSelection`. +# +# Want to add a binding (e.g. "PageUp") but are unsure what the X sequence +# (e.g. "\x1b[5~") is? Open another terminal (like xterm) without tmux, +# then run `showkey -a` to get the sequence associated to a key combination. +key_bindings: + - { key: V, mods: Control|Shift, action: Paste } + - { key: C, mods: Control|Shift, action: Copy } + - { key: Q, mods: Command, action: Quit } + - { key: W, mods: Command, action: Quit } + - { key: Insert, mods: Shift, action: PasteSelection } + - { key: Home, chars: "\x1bOH", mode: AppCursor } + - { key: Home, chars: "\x1b[1~", mode: ~AppCursor } + - { key: End, chars: "\x1bOF", mode: AppCursor } + - { key: End, chars: "\x1b[4~", mode: ~AppCursor } + - { key: PageUp, chars: "\x1b[5~" } + - { key: PageDown, chars: "\x1b[6~" } + - { 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: Tab, mods: Shift, chars: "\x1b[Z" } + - { 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: Back, chars: "\x7f" } + - { key: Back, mods: Alt, chars: "\x1b\x7f" } + - { key: Insert, chars: "\x1b[2~" } + - { key: Delete, chars: "\x1b[3~" } + +# Mouse bindings +# +# Currently doesn't support modifiers. Both the `mouse` and `action` fields must +# be specified. +# +# Values for `mouse`: +# - Middle +# - Left +# - Right +# - Numeric identifier such as `5` +# +# Values for `action`: +# - Paste +# - PasteSelection +# - Copy (TODO) +mouse_bindings: + - { mouse: Middle, action: PasteSelection } + +mouse: + double_click: { threshold: 300 } + triple_click: { threshold: 300 } + +selection: + semantic_escape_chars: ",│`|:\"' ()[]{}<>" + +hide_cursor_when_typing: false + +# 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. +#shell: +# program: /bin/bash +# args: +# - --login diff --git a/apps/neovim/init.vim b/apps/neovim/init.vim index 7083482..27aeb2c 100644 --- a/apps/neovim/init.vim +++ b/apps/neovim/init.vim @@ -145,7 +145,7 @@ Plug 'mattn/emmet-vim', {'for': ['html']} Plug 'wavded/vim-stylus', {'for': ['styl', 'stylus', 'vue']} Plug 'rust-lang/rust.vim', {'for': ['rs', 'rust']} Plug 'mustache/vim-mustache-handlebars', {'for': ['html.handlebars', 'handlebars', 'hbs']} -" Plug 'plasticboy/vim-markdown', {'for': ['md', 'markdown']} +Plug 'plasticboy/vim-markdown', {'for': ['md', 'markdown']} " Plug 'euclio/vim-markdown-composer', { 'do': function('BuildComposer'), 'for': ['md', 'markdown'] } Plug 'digitaltoad/vim-jade', {'for': ['pug', 'jade', 'vue']} Plug 'leafo/moonscript-vim', {'for': ['moon', 'moonscript']} diff --git a/de/bar/polybar-config b/de/bar/polybar-config index 5796708..f5c5948 100644 --- a/de/bar/polybar-config +++ b/de/bar/polybar-config @@ -122,7 +122,8 @@ type = internal/bspwm pin-workspaces = false label-focused = %icon% -label-focused-background = ${xrdb:color1} +label-focused-background = ${xrdb:color4} +label-focused-foreground = ${colors.background} ; label-focused-underline= ${colors.primary} label-focused-padding = 2 diff --git a/de/bspwm_config b/de/bspwm_config index a51fe07..7074fe4 100755 --- a/de/bspwm_config +++ b/de/bspwm_config @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BORDER_WIDTH=0 # change in bspwmrc +BORDER_WIDTH=5 # change in bspwmrc export WINDOW_GAP=25 DESKTOPS=(dev web gfx env play out misc chat mon util) @@ -9,9 +9,6 @@ MONITOR_COUNT=$(echo "${BSPWM_MONITORS}" | wc -w | awk '{ printf $1 }') NUM_DESKTOPS=${#DESKTOPS[@]} PER_MONITOR=$((NUM_DESKTOPS / MONITOR_COUNT)) -source "$DOTFILES_PATH/scripts/get_color.sh" -source "$DOTFILES_PATH/scripts/get_x_fonts.sh" - # allow a per-device config to override options if [ -f "$HOME/.env_bspwm" ]; then source "$HOME/.env_bspwm" @@ -23,10 +20,10 @@ fi # bspc config active_border_color "#$(get_color 0D)" # bspc config presel_feedback_color "#$(get_color 0D)" -bspc config normal_border_color "#$(get_color 01)" -bspc config focused_border_color "#$(get_color 0D)" -bspc config active_border_color "#$(get_color 09)" -bspc config presel_feedback_color "#$(get_color 04)" +bspc config normal_border_color "$(xrdb -query | sed -ne 's/.*background:\s*//p')" +bspc config focused_border_color "$(xrdb -query | sed -ne 's/.*color0\?4:\s*//p')" +bspc config active_border_color "$(xrdb -query | sed -ne 's/.*color0\?4:\s*//p')" +bspc config presel_feedback_color "$(xrdb -query | sed -ne 's/.*color0\?4:\s*//p')" bspc config border_width "$BORDER_WIDTH" bspc config split_ratio 0.50 bspc config borderless_monocle true diff --git a/de/bspwmrc b/de/bspwmrc index d267d02..8290ae5 100755 --- a/de/bspwmrc +++ b/de/bspwmrc @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BORDER_WIDTH=0 # change in bspwm_config, here for launcher +BORDER_WIDTH=5 # change in bspwm_config, here for launcher START_BAR=1 BAR_COMMAND="$DOTFILES_PATH/de/bar/bar.bash" diff --git a/de/compton.conf b/de/compton.conf index 2d58c0c..c9929c7 100644 --- a/de/compton.conf +++ b/de/compton.conf @@ -9,39 +9,42 @@ shadow-opacity = 1.0; shadow-red = 0.0; shadow-green = 0.0; shadow-blue = 0.0; -shadow-exclude = [ "class_g = ''" ]; -shadow-ignore-shaped = true; +shadow-ignore-shaped = false; + menu-opacity = 1.0; inactive-opacity = 1.0; active-opacity = 1.0; frame-opacity = 1.0; inactive-opacity-override = false; -alpha-step = 0.1; -inactive-dim = 0.1; -blur-kern = "3x3box"; -blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ]; + fading = true; fade-in-step = 0.06; fade-out-step = 0.06; -fade-exclude = [ ]; -backend = "glx"; +alpha-step = 0.1; +inactive-dim = 0.5; + mark-wmwin-focused = true; -mark-ovredir-focused = true; +mark-ovredir-focused = false; detect-rounded-corners = true; detect-client-opacity = true; -refresh-rate = 0; + vsync = "opengl-swc"; -dbe = false; -paint-on-overlay = true; -focus-exclude = [ "class_g = 'Cairo-clock'" ]; -detect-transient = true; -detect-client-leader = true; -invert-color-include = [ ]; +backend = "glx"; +refresh-rate = 0; glx-no-stencil = true; glx-no-rebind-pixmap = true; glx-copy-from-front = false; xrender-sync-fence = true; glx-swap-method = "buffer-age"; + +dbe = false; +paint-on-overlay = true; +detect-transient = true; +detect-client-leader = true; +invert-color-include = [ ]; +blur-background = false; +blur-background-frame = false; + wintypes : { tooltip : @@ -52,5 +55,4 @@ wintypes : focus = true; }; }; -blur-background = false; -blur-background-frame = false; + diff --git a/de/fontconfig/conf.d/01-emoji.conf b/de/fontconfig/conf.d/01-emoji.conf new file mode 100644 index 0000000..5867948 --- /dev/null +++ b/de/fontconfig/conf.d/01-emoji.conf @@ -0,0 +1,9 @@ + + + + + + Segoe UI Emoji + Noto Color Emoji + + diff --git a/scripts/arch-linux/provisioning/3-extras.bash b/scripts/arch-linux/provisioning/3-extras.bash index 9d25b52..c59766b 100755 --- a/scripts/arch-linux/provisioning/3-extras.bash +++ b/scripts/arch-linux/provisioning/3-extras.bash @@ -26,6 +26,6 @@ pacaur -S \ neofetch \ cloc \ wine-staging lib32-libpulse \ - ttf-noto-fonts-simple ttf-noto-fonts-ib ttf-noto-fonts-emoji-ib \ + ttf-noto-fonts-simple ttf-noto-fonts-ib noto-fonts-emoji \ siji-git gohufont artwiz-fonts phallus-fonts-git \ --noconfirm --noedit diff --git a/scripts/bin/git-authors b/scripts/bin/git-authors new file mode 100755 index 0000000..d8e139c --- /dev/null +++ b/scripts/bin/git-authors @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +git ls-tree -r -z --name-only HEAD -- $1 | xargs -0 -n1 git blame \ + --line-porcelain HEAD | grep "^author "| sort | uniq -c | sort -nr diff --git a/scripts/bin/tmux-session-list b/scripts/bin/tmux-session-list index f459f72..e8e1455 100755 --- a/scripts/bin/tmux-session-list +++ b/scripts/bin/tmux-session-list @@ -1,24 +1,20 @@ #!/usr/bin/env bash -function debug_msg { - (>&2 echo "DEBUG: $1") -} - -export CUR_SESSION_PREFIX="#[bg=colour1] " -export CUR_SESSION_SUFFIX=" #[bg=default]" +CUR_SESSION_PREFIX="#[bg=colour1]" +CUR_SESSION_SUFFIX="#[bg=default]" +export CUR_TMUX_SESSION="$1" if [ -z "$1" ]; then export CUR_TMUX_SESSION="$(tmux display-message -p '#S')" -else - export CUR_TMUX_SESSION="$1" fi -export TMUX_SESSION_LIST=" $(tmux list-sessions | sed -ne 's/^\([^:]*\).*$/ \1 /p' | tr '\n' ' ' | xargs)" +TMUX_SESSION_LIST="$(tmux list-sessions | sed -ne 's/^\([^:]*\).*$/ \1 /p' | tr -d '\n')" +HIGHLIGHT_CUR_SESSION="${TMUX_SESSION_LIST/ $CUR_TMUX_SESSION /${CUR_SESSION_PREFIX} ${CUR_TMUX_SESSION} ${CUR_SESSION_SUFFIX}}" -HIGHLIGHT_CUR_SESSION="${TMUX_SESSION_LIST/ $CUR_TMUX_SESSION / ${CUR_SESSION_PREFIX}${CUR_TMUX_SESSION}${CUR_SESSION_SUFFIX} }" +# ADD_END_SPACE_IF_NECESSARY=$(echo "$HIGHLIGHT_CUR_SESSION" | sed -e 's/\([^]]\)$/\ /p') +REMOVE_START_SPACE_IF_NECESSARY=$(echo "$HIGHLIGHT_CUR_SESSION" | sed 's/^ #/#/') -ADD_END_SPACE_IF_NECESSARY=$(echo "$HIGHLIGHT_CUR_SESSION" | sed -e 's/\([^]]\)$/\ /p') -REMOVE_START_SPACE_IF_NECESSARY=$(echo "$ADD_END_SPACE_IF_NECESSARY" | sed 's/^ #/#/') +echo "cursess: $CUR_TMUX_SESSION -- sesslist: $TMUX_SESSION_LIST -- withhili: $HIGHLIGHT_CUR_SESSION -- cutspace: $REMOVE_START_SPACE_IF_NECESSARY -- argv1: $1 -- TMUX: $TMUX" >> ~/.tmux.log -echo "$REMOVE_START_SPACE_IF_NECESSARY" +echo "$REMOVE_START_SPACE_IF_NECESSARY -- $1" diff --git a/setup b/setup index d8dadeb..aa4cb34 100755 --- a/setup +++ b/setup @@ -38,6 +38,7 @@ links=( "$dfp/de/xprofile" "$HOME/.xprofile" "$dfp/de/xmodmap" "$HOME/.xmodmap" "$dfp/scripts/colors/xresources" "$HOME/.Xresources.colors" + "$dfp/de/compton.conf" "$XDG_CONFIG_HOME/compton.conf" # shell files "$dfp/shell/bashrc" "$HOME/.bashrc" @@ -60,6 +61,9 @@ links=( "$dfp/apps/irssi/" "$HOME/.irssi" "$dfp/apps/weechat/" "$HOME/.weechat" + # terminal emulator + "$dfp/apps/alacritty/" "$XDG_CONFIG_HOME/alacritty" + # bar files "$dfp/de/bar/polybar-config" "$XDG_CONFIG_HOME/polybar/config" @@ -68,6 +72,9 @@ links=( # git config "$dfp/apps/git/config" "$HOME/.gitconfig" + + # fontconfig + "$dfp/de/fontconfig/" "$XDG_CONFIG_HOME/fontconfig" ) source="" diff --git a/shell/tmux.conf b/shell/tmux.conf index 6d6bb46..70ae5bf 100644 --- a/shell/tmux.conf +++ b/shell/tmux.conf @@ -25,7 +25,7 @@ unbind r bind r source-file ~/.tmux.conf # hide tmux status bar by default (prefix H toggles) -# set -g status off +set -g status off # toggle status bar hotkey bind-key H set status @@ -47,7 +47,9 @@ set -g status-left '' set -g status-right '' set -g status-right-length 20 -set -g status-left '#(#{DOTFILES_PATH}/scripts/bin/tmux-session-list #S)' +set -g status-interval 1 +set status-interval 1 +# set -g status-left '#(#{DOTFILES_PATH}/scripts/bin/tmux-session-list #S)' set -g status-left-length 80 setw -g window-status-current-fg colour7 @@ -56,9 +58,7 @@ setw -g window-status-current-bg colour1 setw -g window-status-current-format '' # vim copying -setw -g mode-keys v -bind-key -t vi-copy 'v' begin-selection -bind-key -t vi-copy 'y' copy-selection +setw -g mode-keys vi # 1-based indexing for keystroke simplicity set -g base-index 1 @@ -75,6 +75,10 @@ bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" bind -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l" +set -g pane-border-fg colour18 +set -g pane-active-border-fg blue +set -g pane-active-border-bg default + # present a menu of urls to open from the visible pane bind-key u capture-pane \;\ save-buffer /tmp/tmux-buffer \;\