From ee81863a065dd4bfe4e354a198684df889a10651 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Fri, 24 May 2019 07:43:19 -0400 Subject: [PATCH 01/17] Making a mess of alacritty settings --- config/alacritty/alacritty.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/alacritty/alacritty.yml b/config/alacritty/alacritty.yml index 6dd40ca..9c1a802 100644 --- a/config/alacritty/alacritty.yml +++ b/config/alacritty/alacritty.yml @@ -34,8 +34,8 @@ window: # 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: 2 - y: 2 + x: 0 + y: 0 # Spread additional padding evenly around the terminal content. dynamic_padding: false @@ -49,10 +49,10 @@ window: # 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 + decorations: none # When true, alacritty starts maximized. - start_maximized: false + start_maximized: true scrolling: # Maximum number of lines in the scrollback buffer. @@ -122,7 +122,7 @@ font: #style: Italic # Point size - size: 11.0 + size: 8.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. From aadcd06a1de6ad3bdb81b1aa1aecb494ca4cabad Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sun, 30 Jun 2019 10:38:51 -0400 Subject: [PATCH 02/17] Use alacritty as default term in i3 --- config/i3/config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/i3/config b/config/i3/config index b724a09..d579737 100644 --- a/config/i3/config +++ b/config/i3/config @@ -8,7 +8,7 @@ exec "setxkbmap -layout dvorak" floating_modifier $mod # start a terminal -bindsym $mod+Return exec xfce4-terminal +bindsym $mod+Return exec alacritty # kill focused window bindsym $mod+Shift+q kill From e4682b0978eb731c053859a4f6ad84ffac198653 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Thu, 25 Jul 2019 23:10:35 -0400 Subject: [PATCH 03/17] Use Comic Code fonts --- config/alacritty/alacritty.yml | 18 +++++++++--------- config/i3/config | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/alacritty/alacritty.yml b/config/alacritty/alacritty.yml index 9c1a802..c6fabef 100644 --- a/config/alacritty/alacritty.yml +++ b/config/alacritty/alacritty.yml @@ -87,42 +87,42 @@ tabspaces: 8 # Font configuration (changes require restart) font: # Normal (roman) font face - #normal: + normal: # Font family # # Default: # - (macOS) Menlo # - (Linux) monospace # - (Windows) Consolas - #family: monospace + family: Comic Code # The `style` can be specified to pick a specific face. #style: Regular # Bold font face - #bold: + bold: # Font family # # If the bold family is not specified, it will fall back to the # value specified for the normal font. - #family: monospace + family: Comic Code # The `style` can be specified to pick a specific face. - #style: Bold + style: Bold # Italic font face - #italic: + italic: # Font family # # If the italic family is not specified, it will fall back to the # value specified for the normal font. - #family: monospace + family: Comic Code # The `style` can be specified to pick a specific face. - #style: Italic + style: Italic # Point size - size: 8.0 + size: 6.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. diff --git a/config/i3/config b/config/i3/config index d579737..8f8efc3 100644 --- a/config/i3/config +++ b/config/i3/config @@ -1,6 +1,6 @@ set $mod Mod4 -font pango:DejaVu Sans Mono 12 +font pango:Comic Code Bold 13 exec "setxkbmap -layout dvorak" From 55415a898669b22e21f991de7b4b8d5ea803bfc9 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Fri, 23 Aug 2019 12:54:09 -0400 Subject: [PATCH 04/17] Update all the alacritty config --- config/alacritty/alacritty.yml | 809 +++++++++++++-------------------- 1 file changed, 328 insertions(+), 481 deletions(-) diff --git a/config/alacritty/alacritty.yml b/config/alacritty/alacritty.yml index c6fabef..663d2c5 100644 --- a/config/alacritty/alacritty.yml +++ b/config/alacritty/alacritty.yml @@ -1,542 +1,389 @@ -# 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 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, but no title bar buttons decorations: none - - # When true, alacritty starts maximized. - start_maximized: true - + startup_mode: Maximized 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: 8 - -# Font configuration (changes require restart) font: - # Normal (roman) font face normal: - # Font family - # - # Default: - # - (macOS) Menlo - # - (Linux) monospace - # - (Windows) Consolas family: Comic Code - - # 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: Comic Code - - # 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: Comic Code - - # The `style` can be specified to pick a specific face. style: Italic - - # Point size size: 6.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. +debug: + render_timer: false + persistent_logging: false draw_bold_text_with_bright_colors: true - -# Colors (Dracula) colors: - # Default colors primary: background: '0x282a36' foreground: '0xf8f8f2' - - # Normal colors normal: - black: '0x000000' - red: '0xff5555' - green: '0x50fa7b' - yellow: '0xf1fa8c' - blue: '0xcaa9fa' + black: '0x000000' + red: '0xff5555' + green: '0x50fa7b' + yellow: '0xf1fa8c' + blue: '0xcaa9fa' magenta: '0xff79c6' - cyan: '0x8be9fd' - white: '0xbfbfbf' - - # Bright colors + cyan: '0x8be9fd' + white: '0xbfbfbf' bright: - black: '0x575b70' - red: '0xff6e67' - green: '0x5af78e' - yellow: '0xf4f99d' - blue: '0xcaa9fa' + black: '0x575b70' + red: '0xff6e67' + green: '0x5af78e' + yellow: '0xf4f99d' + blue: '0xcaa9fa' magenta: '0xff92d0' - cyan: '0x9aedfe' - white: '0xe6e6e6' - -# 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. + cyan: '0x9aedfe' + white: '0xe6e6e6' 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: 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. + double_click: + threshold: 300 + triple_click: + threshold: 300 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. + semantic_escape_chars: ',│`|:"'' ()[]{}<>' 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: Add, mods: Control, action: IncreaseFontSize } - #- { key: Subtract, mods: Control, action: DecreaseFontSize } - #- { key: Minus, mods: Control, action: DecreaseFontSize } - - # (macOS only) - #- { key: Key0, mods: Command, action: ResetFontSize } - #- { key: Equals, mods: Command, action: IncreaseFontSize } - #- { key: Add, mods: Command, action: IncreaseFontSize } - #- { key: Minus, mods: Command, action: DecreaseFontSize } - #- { key: K, mods: Command, action: ClearHistory } - #- { key: K, mods: Command, chars: "\x0c" } - #- { key: V, mods: Command, action: Paste } - #- { key: C, mods: Command, action: Copy } - #- { key: H, mods: Command, action: Hide } - #- { key: Q, mods: Command, action: Quit } - #- { key: W, mods: Command, action: Quit } - - - { key: Paste, action: Paste } - - { key: Copy, action: Copy } - - { key: L, mods: Control, action: ClearLogNotice } - - { key: L, mods: Control, chars: "\x0c" } - - { key: Home, mods: Alt, chars: "\x1b[1;3H" } - - { key: Home, chars: "\x1bOH", mode: AppCursor } - - { key: Home, chars: "\x1b[H", mode: ~AppCursor } - - { key: End, mods: Alt, chars: "\x1b[1;3F" } - - { key: End, chars: "\x1bOF", mode: AppCursor } - - { key: End, chars: "\x1b[F", mode: ~AppCursor } - - { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt } - - { key: PageUp, mods: Shift, chars: "\x1b[5;2~", mode: Alt } - - { key: PageUp, mods: Control, chars: "\x1b[5;5~" } - - { key: PageUp, mods: Alt, chars: "\x1b[5;3~" } - - { key: PageUp, chars: "\x1b[5~" } - - { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt } - - { key: PageDown, mods: Shift, chars: "\x1b[6;2~", mode: Alt } - - { key: PageDown, mods: Control, chars: "\x1b[6;5~" } - - { key: PageDown, mods: Alt, chars: "\x1b[6;3~" } - - { key: PageDown, chars: "\x1b[6~" } - - { key: Tab, mods: Shift, chars: "\x1b[Z" } - - { key: Back, chars: "\x7f" } - - { key: Back, mods: Alt, chars: "\x1b\x7f" } - - { key: Insert, chars: "\x1b[2~" } - - { key: Delete, chars: "\x1b[3~" } - - { key: Left, mods: Shift, chars: "\x1b[1;2D" } - - { key: Left, mods: Control, chars: "\x1b[1;5D" } - - { key: Left, mods: Alt, chars: "\x1b[1;3D" } - - { key: Left, chars: "\x1b[D", mode: ~AppCursor } - - { key: Left, chars: "\x1bOD", mode: AppCursor } - - { key: Right, mods: Shift, chars: "\x1b[1;2C" } - - { key: Right, mods: Control, chars: "\x1b[1;5C" } - - { key: Right, mods: Alt, chars: "\x1b[1;3C" } - - { key: Right, chars: "\x1b[C", mode: ~AppCursor } - - { key: Right, chars: "\x1bOC", mode: AppCursor } - - { key: Up, mods: Shift, chars: "\x1b[1;2A" } - - { key: Up, mods: Control, chars: "\x1b[1;5A" } - - { key: Up, mods: Alt, chars: "\x1b[1;3A" } - - { key: Up, chars: "\x1b[A", mode: ~AppCursor } - - { key: Up, chars: "\x1bOA", mode: AppCursor } - - { key: Down, mods: Shift, chars: "\x1b[1;2B" } - - { key: Down, mods: Control, chars: "\x1b[1;5B" } - - { key: Down, mods: Alt, chars: "\x1b[1;3B" } - - { key: Down, chars: "\x1b[B", mode: ~AppCursor } - - { key: Down, chars: "\x1bOB", mode: AppCursor } - - { key: F1, chars: "\x1bOP" } - - { key: F2, chars: "\x1bOQ" } - - { key: F3, chars: "\x1bOR" } - - { key: F4, chars: "\x1bOS" } - - { key: F5, chars: "\x1b[15~" } - - { key: F6, chars: "\x1b[17~" } - - { key: F7, chars: "\x1b[18~" } - - { key: F8, chars: "\x1b[19~" } - - { key: F9, chars: "\x1b[20~" } - - { key: F10, chars: "\x1b[21~" } - - { key: F11, chars: "\x1b[23~" } - - { key: F12, chars: "\x1b[24~" } - - { key: F1, mods: Shift, chars: "\x1b[1;2P" } - - { key: F2, mods: Shift, chars: "\x1b[1;2Q" } - - { key: F3, mods: Shift, chars: "\x1b[1;2R" } - - { key: F4, mods: Shift, chars: "\x1b[1;2S" } - - { key: F5, mods: Shift, chars: "\x1b[15;2~" } - - { key: F6, mods: Shift, chars: "\x1b[17;2~" } - - { key: F7, mods: Shift, chars: "\x1b[18;2~" } - - { key: F8, mods: Shift, chars: "\x1b[19;2~" } - - { key: F9, mods: Shift, chars: "\x1b[20;2~" } - - { key: F10, mods: Shift, chars: "\x1b[21;2~" } - - { key: F11, mods: Shift, chars: "\x1b[23;2~" } - - { key: F12, mods: Shift, chars: "\x1b[24;2~" } - - { key: F1, mods: Control, chars: "\x1b[1;5P" } - - { key: F2, mods: Control, chars: "\x1b[1;5Q" } - - { key: F3, mods: Control, chars: "\x1b[1;5R" } - - { key: F4, mods: Control, chars: "\x1b[1;5S" } - - { key: F5, mods: Control, chars: "\x1b[15;5~" } - - { key: F6, mods: Control, chars: "\x1b[17;5~" } - - { key: F7, mods: Control, chars: "\x1b[18;5~" } - - { key: F8, mods: Control, chars: "\x1b[19;5~" } - - { key: F9, mods: Control, chars: "\x1b[20;5~" } - - { key: F10, mods: Control, chars: "\x1b[21;5~" } - - { key: F11, mods: Control, chars: "\x1b[23;5~" } - - { key: F12, mods: Control, chars: "\x1b[24;5~" } - - { key: F1, mods: Alt, chars: "\x1b[1;6P" } - - { key: F2, mods: Alt, chars: "\x1b[1;6Q" } - - { key: F3, mods: Alt, chars: "\x1b[1;6R" } - - { key: F4, mods: Alt, chars: "\x1b[1;6S" } - - { key: F5, mods: Alt, chars: "\x1b[15;6~" } - - { key: F6, mods: Alt, chars: "\x1b[17;6~" } - - { key: F7, mods: Alt, chars: "\x1b[18;6~" } - - { key: F8, mods: Alt, chars: "\x1b[19;6~" } - - { key: F9, mods: Alt, chars: "\x1b[20;6~" } - - { key: F10, mods: Alt, chars: "\x1b[21;6~" } - - { key: F11, mods: Alt, chars: "\x1b[23;6~" } - - { key: F12, mods: Alt, chars: "\x1b[24;6~" } - - { key: F1, mods: Super, chars: "\x1b[1;3P" } - - { key: F2, mods: Super, chars: "\x1b[1;3Q" } - - { key: F3, mods: Super, chars: "\x1b[1;3R" } - - { key: F4, mods: Super, chars: "\x1b[1;3S" } - - { key: F5, mods: Super, chars: "\x1b[15;3~" } - - { key: F6, mods: Super, chars: "\x1b[17;3~" } - - { key: F7, mods: Super, chars: "\x1b[18;3~" } - - { key: F8, mods: Super, chars: "\x1b[19;3~" } - - { key: F9, mods: Super, chars: "\x1b[20;3~" } - - { key: F10, mods: Super, chars: "\x1b[21;3~" } - - { key: F11, mods: Super, chars: "\x1b[23;3~" } - - { key: F12, mods: Super, chars: "\x1b[24;3~" } - - { key: NumpadEnter, chars: "\n" } +- key: Paste + action: Paste +- key: Copy + action: Copy +- key: L + mods: Control + action: ClearLogNotice +- key: L + mods: Control + chars: "\f" +- key: Home + mods: Alt + chars: "\e[1;3H" +- key: Home + chars: "\eOH" + mode: AppCursor +- key: Home + chars: "\e[H" + mode: "~AppCursor" +- key: End + mods: Alt + chars: "\e[1;3F" +- key: End + chars: "\eOF" + mode: AppCursor +- key: End + chars: "\e[F" + mode: "~AppCursor" +- key: PageUp + mods: Shift + action: ScrollPageUp + mode: "~Alt" +- key: PageUp + mods: Shift + chars: "\e[5;2~" + mode: Alt +- key: PageUp + mods: Control + chars: "\e[5;5~" +- key: PageUp + mods: Alt + chars: "\e[5;3~" +- key: PageUp + chars: "\e[5~" +- key: PageDown + mods: Shift + action: ScrollPageDown + mode: "~Alt" +- key: PageDown + mods: Shift + chars: "\e[6;2~" + mode: Alt +- key: PageDown + mods: Control + chars: "\e[6;5~" +- key: PageDown + mods: Alt + chars: "\e[6;3~" +- key: PageDown + chars: "\e[6~" +- key: Tab + mods: Shift + chars: "\e[Z" +- key: Back + chars: "\x7F" +- key: Back + mods: Alt + chars: "\e\x7F" +- key: Insert + chars: "\e[2~" +- key: Delete + chars: "\e[3~" +- key: Left + mods: Shift + chars: "\e[1;2D" +- key: Left + mods: Control + chars: "\e[1;5D" +- key: Left + mods: Alt + chars: "\e[1;3D" +- key: Left + chars: "\e[D" + mode: "~AppCursor" +- key: Left + chars: "\eOD" + mode: AppCursor +- key: Right + mods: Shift + chars: "\e[1;2C" +- key: Right + mods: Control + chars: "\e[1;5C" +- key: Right + mods: Alt + chars: "\e[1;3C" +- key: Right + chars: "\e[C" + mode: "~AppCursor" +- key: Right + chars: "\eOC" + mode: AppCursor +- key: Up + mods: Shift + chars: "\e[1;2A" +- key: Up + mods: Control + chars: "\e[1;5A" +- key: Up + mods: Alt + chars: "\e[1;3A" +- key: Up + chars: "\e[A" + mode: "~AppCursor" +- key: Up + chars: "\eOA" + mode: AppCursor +- key: Down + mods: Shift + chars: "\e[1;2B" +- key: Down + mods: Control + chars: "\e[1;5B" +- key: Down + mods: Alt + chars: "\e[1;3B" +- key: Down + chars: "\e[B" + mode: "~AppCursor" +- key: Down + chars: "\eOB" + mode: AppCursor +- key: F1 + chars: "\eOP" +- key: F2 + chars: "\eOQ" +- key: F3 + chars: "\eOR" +- key: F4 + chars: "\eOS" +- key: F5 + chars: "\e[15~" +- key: F6 + chars: "\e[17~" +- key: F7 + chars: "\e[18~" +- key: F8 + chars: "\e[19~" +- key: F9 + chars: "\e[20~" +- key: F10 + chars: "\e[21~" +- key: F11 + chars: "\e[23~" +- key: F12 + chars: "\e[24~" +- key: F1 + mods: Shift + chars: "\e[1;2P" +- key: F2 + mods: Shift + chars: "\e[1;2Q" +- key: F3 + mods: Shift + chars: "\e[1;2R" +- key: F4 + mods: Shift + chars: "\e[1;2S" +- key: F5 + mods: Shift + chars: "\e[15;2~" +- key: F6 + mods: Shift + chars: "\e[17;2~" +- key: F7 + mods: Shift + chars: "\e[18;2~" +- key: F8 + mods: Shift + chars: "\e[19;2~" +- key: F9 + mods: Shift + chars: "\e[20;2~" +- key: F10 + mods: Shift + chars: "\e[21;2~" +- key: F11 + mods: Shift + chars: "\e[23;2~" +- key: F12 + mods: Shift + chars: "\e[24;2~" +- key: F1 + mods: Control + chars: "\e[1;5P" +- key: F2 + mods: Control + chars: "\e[1;5Q" +- key: F3 + mods: Control + chars: "\e[1;5R" +- key: F4 + mods: Control + chars: "\e[1;5S" +- key: F5 + mods: Control + chars: "\e[15;5~" +- key: F6 + mods: Control + chars: "\e[17;5~" +- key: F7 + mods: Control + chars: "\e[18;5~" +- key: F8 + mods: Control + chars: "\e[19;5~" +- key: F9 + mods: Control + chars: "\e[20;5~" +- key: F10 + mods: Control + chars: "\e[21;5~" +- key: F11 + mods: Control + chars: "\e[23;5~" +- key: F12 + mods: Control + chars: "\e[24;5~" +- key: F1 + mods: Alt + chars: "\e[1;6P" +- key: F2 + mods: Alt + chars: "\e[1;6Q" +- key: F3 + mods: Alt + chars: "\e[1;6R" +- key: F4 + mods: Alt + chars: "\e[1;6S" +- key: F5 + mods: Alt + chars: "\e[15;6~" +- key: F6 + mods: Alt + chars: "\e[17;6~" +- key: F7 + mods: Alt + chars: "\e[18;6~" +- key: F8 + mods: Alt + chars: "\e[19;6~" +- key: F9 + mods: Alt + chars: "\e[20;6~" +- key: F10 + mods: Alt + chars: "\e[21;6~" +- key: F11 + mods: Alt + chars: "\e[23;6~" +- key: F12 + mods: Alt + chars: "\e[24;6~" +- key: F1 + mods: Super + chars: "\e[1;3P" +- key: F2 + mods: Super + chars: "\e[1;3Q" +- key: F3 + mods: Super + chars: "\e[1;3R" +- key: F4 + mods: Super + chars: "\e[1;3S" +- key: F5 + mods: Super + chars: "\e[15;3~" +- key: F6 + mods: Super + chars: "\e[17;3~" +- key: F7 + mods: Super + chars: "\e[18;3~" +- key: F8 + mods: Super + chars: "\e[19;3~" +- key: F9 + mods: Super + chars: "\e[20;3~" +- key: F10 + mods: Super + chars: "\e[21;3~" +- key: F11 + mods: Super + chars: "\e[23;3~" +- key: F12 + mods: Super + chars: "\e[24;3~" +- key: NumpadEnter + chars: "\n" From c4c4d338f32c57a5c949c95a79ac02cc77d80bbc Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sat, 7 Dec 2019 20:43:20 -0500 Subject: [PATCH 05/17] Bump go version --- zshrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zshrc b/zshrc index a80dd3d..2336c88 100644 --- a/zshrc +++ b/zshrc @@ -120,7 +120,7 @@ if [[ -f ~/.cargo/env ]]; then fi if gimme --version &>/dev/null; then - eval "$(gimme '1.12.x')" 2>/dev/null + eval "$(gimme '1.13.x')" 2>/dev/null export GOPATH="$HOME/go" fi From 7c5a84ad72e6adb3000fc8cef6a1f268d7403328 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sun, 12 Jan 2020 20:39:17 -0500 Subject: [PATCH 06/17] Don't add thinkpad_hwmon sources for thinkfan --- thinkfan-confgen | 3 +++ 1 file changed, 3 insertions(+) diff --git a/thinkfan-confgen b/thinkfan-confgen index bc24bf5..e2d2981 100755 --- a/thinkfan-confgen +++ b/thinkfan-confgen @@ -20,6 +20,9 @@ main() { printf '# THINKFAN_STEP=%s\n\n' "${THINKFAN_STEP}" find /sys -type f -name 'temp*_input' | while read -r line; do + if [[ "${line}" =~ thinkpad_hwmon ]]; then + continue + fi printf 'hwmon %s\n' "${line}" done From 6db60f782a0ecc1f5aecfab8d1671f9e8297ac09 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sun, 12 Jan 2020 20:39:35 -0500 Subject: [PATCH 07/17] Remove deprecated alacritty config bit --- config/alacritty/alacritty.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/config/alacritty/alacritty.yml b/config/alacritty/alacritty.yml index 663d2c5..db37a1d 100644 --- a/config/alacritty/alacritty.yml +++ b/config/alacritty/alacritty.yml @@ -12,7 +12,6 @@ window: scrolling: history: 10000 multiplier: 3 - faux_multiplier: 3 auto_scroll: false tabspaces: 8 font: From 696f2846b96e824b5ed7fc4ade80273b73a5597d Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Thu, 16 Jan 2020 19:56:48 -0500 Subject: [PATCH 08/17] Why Do I Fight With ssh-agent --- zshrc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/zshrc b/zshrc index 2336c88..27c95be 100644 --- a/zshrc +++ b/zshrc @@ -147,6 +147,10 @@ function start-ssh-agent() { ssh-agent >~/.ssh/agent.out } +function setup-ssh-agent() { + start-ssh-agent && load-ssh-agent +} + function __maybesource() { if [[ -f "${1}" ]]; then if [[ "${2}" == silent ]]; then From 653fcd353558159fcb072a5f4af38ea3fec73452 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Tue, 18 Feb 2020 22:37:49 -0500 Subject: [PATCH 09/17] Playing with a kitty --- config/kitty/kitty.conf | 32 ++++++++++++++++++++++++++++++++ zshrc | 6 ++++++ 2 files changed, 38 insertions(+) create mode 100644 config/kitty/kitty.conf diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf new file mode 100644 index 0000000..d3ca4cd --- /dev/null +++ b/config/kitty/kitty.conf @@ -0,0 +1,32 @@ +font_family Comic Code +bold_font_family Comic Code Bold +italic_font Comic Code Italic +bold_italic_font Comic Code Bold Italic + +font_size 11.0 + +color0 #000000 +color8 #575b70 + +color1 #ff5555 +color9 #ff6e67 + +color2 #50fa7b +color10 #5af78e + +color3 #f1fa8c +color11 #f4f99d + +color4 #caa9fa +color12 #cab9fb + +color5 #ff79c6 +color13 #ff92d0 + +color6 #8be9fd +color14 #9aedfe + +color7 #bfbfbf +color15 #e6e6e6 + +hide_window_decorations yes diff --git a/zshrc b/zshrc index 27c95be..77935d8 100644 --- a/zshrc +++ b/zshrc @@ -178,4 +178,10 @@ if nvm &>/dev/null; then nvm use --delete-prefix lts/dubnium --silent fi +if kitty --version &>/dev/null; then + autoload -Uz compinit + compinit + kitty + complete setup zsh | source /dev/stdin +fi + true From 1757f0a64325aa37b6bc8dd91390e44479856520 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sat, 7 Mar 2020 23:30:26 -0500 Subject: [PATCH 10/17] zsh and vim thingsss --- vimrc | 3 +++ zshrc | 1 + 2 files changed, 4 insertions(+) diff --git a/vimrc b/vimrc index f29f767..545c110 100644 --- a/vimrc +++ b/vimrc @@ -22,6 +22,7 @@ set smartcase set tabstop=4 set textwidth=67 +au BufRead,BufNewFile Pipfile setfiletype toml au BufRead,BufNewFile *.gcfg setfiletype gitconfig au QuickFixCmdPost *grep* cwindow @@ -33,6 +34,8 @@ let g:airline_powerline_fonts = 1 let g:go_fmt_command = "goimports" let g:python_highlight_all = 1 let g:rustfmt_autosave = 1 +let g:shfmt_extra_args = '-i 2' +let g:shfmt_fmt_on_save = 1 let g:terraform_align = 1 let g:terraform_fmt_on_save = 1 let g:vim_markdown_folding_disabled = 1 diff --git a/zshrc b/zshrc index 77935d8..f21c4ef 100644 --- a/zshrc +++ b/zshrc @@ -80,6 +80,7 @@ plugins=( ruby tmux vagrant + vault vi-mode ) From f7ff90bdd638d5ac11ec51cf8236592d6ec4e5cc Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sat, 21 Mar 2020 10:05:58 -0400 Subject: [PATCH 11/17] Use an IP lookup that exists --- redshift-wrapper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redshift-wrapper b/redshift-wrapper index afc5d19..cd19ff5 100755 --- a/redshift-wrapper +++ b/redshift-wrapper @@ -6,7 +6,7 @@ main() { } __get_lat_lon() { - : "${IP_LOOKUP_URL:=https://eeloo.humans.rip/ip}" + : "${IP_LOOKUP_URL:=https://ifconfig.co/ip}" : "${GEOIP_LOOKUP_HOST:=http://api.geoiplookup.net}" local ipaddr From c118c7fed2eb1750e2f388fa2603ea6c6ffc9394 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sat, 21 Mar 2020 10:06:33 -0400 Subject: [PATCH 12/17] Fun with python syntaxes --- vimrc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/vimrc b/vimrc index 545c110..a203346 100644 --- a/vimrc +++ b/vimrc @@ -22,8 +22,9 @@ set smartcase set tabstop=4 set textwidth=67 -au BufRead,BufNewFile Pipfile setfiletype toml au BufRead,BufNewFile *.gcfg setfiletype gitconfig +au BufRead,BufNewFile Pipfile setfiletype toml +au BufWritePre *.py execute ':Black' au QuickFixCmdPost *grep* cwindow map ,t :w @@ -36,6 +37,11 @@ let g:python_highlight_all = 1 let g:rustfmt_autosave = 1 let g:shfmt_extra_args = '-i 2' let g:shfmt_fmt_on_save = 1 +let g:syntastic_always_populate_loc_list = 1 +let g:syntastic_auto_loc_list = 1 +let g:syntastic_check_on_open = 1 +let g:syntastic_check_on_wq = 0 +let g:syntastic_python_checkers = ['flake8'] let g:terraform_align = 1 let g:terraform_fmt_on_save = 1 let g:vim_markdown_folding_disabled = 1 From f190cf77f9a5c28c20730126a1e7d0bda5b75dca Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sat, 21 Mar 2020 10:06:50 -0400 Subject: [PATCH 13/17] Bump to go 1.14 --- zshrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zshrc b/zshrc index f21c4ef..8a2fedf 100644 --- a/zshrc +++ b/zshrc @@ -121,7 +121,7 @@ if [[ -f ~/.cargo/env ]]; then fi if gimme --version &>/dev/null; then - eval "$(gimme '1.13.x')" 2>/dev/null + eval "$(gimme '1.14.x')" 2>/dev/null export GOPATH="$HOME/go" fi From 05e410f6f9ce717c97af33c5bc2a2624f7d2e130 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sat, 21 Mar 2020 10:11:59 -0400 Subject: [PATCH 14/17] The hook is bash OK --- config/redshift/hooks/{brightness.sh => brightness.bash} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename config/redshift/hooks/{brightness.sh => brightness.bash} (95%) diff --git a/config/redshift/hooks/brightness.sh b/config/redshift/hooks/brightness.bash similarity index 95% rename from config/redshift/hooks/brightness.sh rename to config/redshift/hooks/brightness.bash index 431b75f..d17936c 100755 --- a/config/redshift/hooks/brightness.sh +++ b/config/redshift/hooks/brightness.bash @@ -1,4 +1,4 @@ -#!/bin/sh +#!/usr/bin/env bash main() { : "${BRIGHTNESS_DAY:=100}" From 295b37742efb8be256843afbe909a2124aa3275f Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sat, 21 Mar 2020 10:12:47 -0400 Subject: [PATCH 15/17] Add a modeline for cOlOrS --- config/redshift.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/redshift.conf b/config/redshift.conf index d4f0229..8965c6c 100644 --- a/config/redshift.conf +++ b/config/redshift.conf @@ -4,3 +4,5 @@ temp-night=3000 transition=1 brightness-day=1.0 brightness-night=0.8 + +# vim:filetype=cfg From caea8cab1192488be9e45b6ac2e5623dbfa937fd Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Thu, 26 Mar 2020 09:29:31 -0400 Subject: [PATCH 16/17] Extracting coords script, fall back to known --- get-coords | 37 +++++++++++++++++++++++++++++++++++++ redshift-wrapper | 31 +++++-------------------------- 2 files changed, 42 insertions(+), 26 deletions(-) create mode 100755 get-coords diff --git a/get-coords b/get-coords new file mode 100755 index 0000000..42e69e1 --- /dev/null +++ b/get-coords @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +set -o errexit +set -o pipefail + +main() { + if [[ "${DEBUG}" ]]; then + set -o xtrace + fi + _get_lat_lon +} + +_get_lat_lon() { + : "${IP_LOOKUP_URL:=https://ifconfig.co/ip}" + : "${GEOIP_LOOKUP_HOST:=http://api.geoiplookup.net}" + + local ipaddr + ipaddr="$(curl -fsSL "${IP_LOOKUP_URL}")" + + local geoip_xml + geoip_xml="$(curl -fsSL "${GEOIP_LOOKUP_HOST}?query=${ipaddr}")" + + _extract_lat_long "${geoip_xml}" +} + +_extract_lat_long() { + python < Date: Thu, 26 Mar 2020 09:46:11 -0400 Subject: [PATCH 17/17] Move executables into local/bin and fix known bustedness --- Makefile | 8 +++++++- config/i3/config | 8 ++++---- config/systemd/user/redshift-gtk.service.d/override.conf | 2 +- config/systemd/user/redshift.service.d/override.conf | 2 +- .../bin/i3-screenlayout-toggle | 0 i3status-update-do => local/bin/i3status-update-do | 0 i3wrapper.py => local/bin/i3wrapper.py | 0 get-coords => local/bin/latlon | 0 redshift-gtk-wrapper => local/bin/redshift-gtk-wrapper | 2 +- redshift-wrapper => local/bin/redshift-wrapper | 2 +- thinkfan-confgen => local/bin/thinkfan-confgen | 0 11 files changed, 15 insertions(+), 9 deletions(-) rename i3-screenlayout-toggle => local/bin/i3-screenlayout-toggle (100%) rename i3status-update-do => local/bin/i3status-update-do (100%) rename i3wrapper.py => local/bin/i3wrapper.py (100%) rename get-coords => local/bin/latlon (100%) rename redshift-gtk-wrapper => local/bin/redshift-gtk-wrapper (68%) rename redshift-wrapper => local/bin/redshift-wrapper (71%) rename thinkfan-confgen => local/bin/thinkfan-confgen (100%) diff --git a/Makefile b/Makefile index 9f5e81a..2a14c7d 100644 --- a/Makefile +++ b/Makefile @@ -1,21 +1,27 @@ TOP_SOURCES := $(shell git ls-files | grep -vE 'README|Makefile|^config|^\.git|^\.travis' | grep -v /) CONFIG_SOURCES := $(shell git ls-files config) +LOCAL_BIN_SOURCES := $(shell git ls-files local/bin) TARGETS := \ $(patsubst %,$(HOME)/.%,$(TOP_SOURCES)) \ $(patsubst %,$(HOME)/.%,$(CONFIG_SOURCES)) \ + $(patsubst %,$(HOME)/.%,$(LOCAL_BIN_SOURCES)) \ $(HOME)/.config/i3/config $(HOME)/.%: % $(RM) '$@' && mkdir -p $(dir $@) && ln -svf '$(PWD)/$^' '$@' .PHONY: all -all: $(HOME)/.config $(TARGETS) +all: $(HOME)/.config $(HOME)/.local/bin $(TARGETS) $(HOME)/.config: mkdir -p $@ +$(HOME)/.local/bin: + mkdir -p $@ + .PHONY: echo echo: @echo TOP_SOURCES=$(TOP_SOURCES) @echo CONFIG_SOURCES=$(CONFIG_SOURCES) + @echo LOCAL_BIN_SOURCES=$(LOCAL_BIN_SOURCES) @echo TARGETS=$(TARGETS) diff --git a/config/i3/config b/config/i3/config index 8f8efc3..c5b0688 100644 --- a/config/i3/config +++ b/config/i3/config @@ -102,12 +102,12 @@ bindsym XF86AudioLowerVolume exec pactl set-sink-volume 0 -1000 bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 0 +1000 bindsym XF86AudioMute exec pactl set-sink-mute 0 toggle -bindsym XF86MonBrightnessDown exec ~/.i3status-update-do xbacklight -5 -bindsym XF86MonBrightnessUp exec ~/.i3status-update-do xbacklight +5 +bindsym XF86MonBrightnessDown exec ~/.local/bin/i3status-update-do xbacklight -5 +bindsym XF86MonBrightnessUp exec ~/.local/bin/i3status-update-do xbacklight +5 bindsym XF86Tools exec i3lock -c ed1c24 bindsym XF86Calculator exec xcalc -bindsym XF86Display exec ~/.i3-screenlayout-toggle +bindsym XF86Display exec ~/.local/bin/i3-screenlayout-toggle bindsym Print exec xfce4-screenshooter # resize window (you can also use the mouse for that) @@ -139,5 +139,5 @@ bindsym $mod+r mode "resize" # Start i3bar to display a workspace bar (plus the system information i3status # finds out, if available) bar { - status_command "i3status | python ~/.i3wrapper.py" + status_command "i3status | python ~/.local/bin/i3wrapper.py" } diff --git a/config/systemd/user/redshift-gtk.service.d/override.conf b/config/systemd/user/redshift-gtk.service.d/override.conf index 06ebab8..dcca617 100644 --- a/config/systemd/user/redshift-gtk.service.d/override.conf +++ b/config/systemd/user/redshift-gtk.service.d/override.conf @@ -1,5 +1,5 @@ [Service] ExecStart= -ExecStart=/home/me/.redshift-gtk-wrapper +ExecStart=/home/me/.local/bin/redshift-gtk-wrapper SyslogIdentifier= SyslogIdentifier=redshift-gtk diff --git a/config/systemd/user/redshift.service.d/override.conf b/config/systemd/user/redshift.service.d/override.conf index f00a373..6353af5 100644 --- a/config/systemd/user/redshift.service.d/override.conf +++ b/config/systemd/user/redshift.service.d/override.conf @@ -1,5 +1,5 @@ [Service] ExecStart= -ExecStart=/home/me/.redshift-wrapper +ExecStart=/home/me/.local/bin/redshift-wrapper SyslogIdentifier= SyslogIdentifier=redshift diff --git a/i3-screenlayout-toggle b/local/bin/i3-screenlayout-toggle similarity index 100% rename from i3-screenlayout-toggle rename to local/bin/i3-screenlayout-toggle diff --git a/i3status-update-do b/local/bin/i3status-update-do similarity index 100% rename from i3status-update-do rename to local/bin/i3status-update-do diff --git a/i3wrapper.py b/local/bin/i3wrapper.py similarity index 100% rename from i3wrapper.py rename to local/bin/i3wrapper.py diff --git a/get-coords b/local/bin/latlon similarity index 100% rename from get-coords rename to local/bin/latlon diff --git a/redshift-gtk-wrapper b/local/bin/redshift-gtk-wrapper similarity index 68% rename from redshift-gtk-wrapper rename to local/bin/redshift-gtk-wrapper index 33de50f..080b031 100755 --- a/redshift-gtk-wrapper +++ b/local/bin/redshift-gtk-wrapper @@ -3,7 +3,7 @@ set -o errexit main() { export REDSHIFT_EXE=redshift-gtk - exec ~/.redshift-wrapper "${@}" + exec ~/.local/bin/redshift-wrapper "${@}" } main "${@}" diff --git a/redshift-wrapper b/local/bin/redshift-wrapper similarity index 71% rename from redshift-wrapper rename to local/bin/redshift-wrapper index f8b261e..efdffb5 100755 --- a/redshift-wrapper +++ b/local/bin/redshift-wrapper @@ -5,7 +5,7 @@ set -o pipefail main() { : "${FALLBACK_COORDS:=40.4325:-79.863}" local coords - coords="$(~/.get-coords 2>/dev/null || echo "${FALLBACK_COORDS}")" + coords="$(~/.local/bin/latlon 2>/dev/null || echo "${FALLBACK_COORDS}")" exec "${REDSHIFT_EXE:-redshift}" -l "${coords}" -v } diff --git a/thinkfan-confgen b/local/bin/thinkfan-confgen similarity index 100% rename from thinkfan-confgen rename to local/bin/thinkfan-confgen