Compare commits

...

73 Commits

Author SHA1 Message Date
Sebastian Schulze 1735f9cbec
[sway] Add workspace_auto_back_and_forth toogle + smart gaps 2020-01-06 16:07:21 +01:00
Sebastian Schulze 7d64c504a5
[sway] Add shortcut to focus child container (going back from mod+a) 2020-01-06 16:06:57 +01:00
Sebastian Schulze 84f0f64886
[sway] It's winter. Time for some snowy mountains 2020-01-06 16:06:35 +01:00
Sebastian Schulze d323fcd97f
[bin] Remove version-argument from uni. It's at 1.0.0 and knows shit 2020-01-06 16:06:09 +01:00
Sebastian Schulze 179243dc71
[bin] Extract simple .gz archives via `gunzip`
Acked-by: Sebastian Schulze <github.com@bascht.com>
2020-01-06 16:04:39 +01:00
Sebastian Schulze 75be5d032f
[bin] Bump helm to 3.0.2 und use new version --short argument 2020-01-06 16:03:09 +01:00
Sebastian Schulze 788a29fef0
[alacritty] Remove obsolete faux_multiplier option 2020-01-03 22:03:22 +01:00
Sebastian Schulze 6c1dc805e4
[bin] Bump helm to 3.0.1 and add uni 2020-01-03 22:02:47 +01:00
Sebastian Schulze a0ce3c5e30
[zsh] Fixup the Alt-v vm starter command 2020-01-03 22:02:21 +01:00
Sebastian Schulze 095b2a56c2
[emacs] Use enh-ruby-mode 2019-12-30 16:44:10 +01:00
Sebastian Schulze d7d6d54ac0
[git] Remove remnants of old vundle path 2019-12-04 20:47:28 +01:00
Sebastian Schulze 618718d664
[git] Fixup vundle submodule path 2019-12-04 20:42:02 +01:00
Sebastian Schulze 2c7722ca4f
[git] Switch all submodules to https:// URIs 2019-12-04 20:33:56 +01:00
Sebastian Schulze 81cd5ea099
[systemd] Move stuff from .zprofile into my environment.d 2019-12-04 20:31:34 +01:00
Sebastian Schulze 583a477deb
[bin] Bump Hugo to 0.59.1 2019-12-04 20:30:45 +01:00
Sebastian Schulze 84fb1ac236
[bin] Display last worklogger times and current time in the title 2019-12-04 20:30:24 +01:00
Sebastian Schulze 5d9b50e60b
[zsh] Remove a few more unnecessary zprofile settings 2019-12-04 20:30:05 +01:00
Sebastian Schulze f5824ae53c
[emacs] Tweak super-agenda and add neat little icons 2019-12-04 20:29:25 +01:00
Sebastian Schulze 62081a7710
[sway] Fixup a few matchers and the lid closes / open event 2019-12-04 20:28:54 +01:00
Sebastian Schulze 937498bedb
[vim] Add sir's vimrc for the occasional vimming on remote boxes 2019-12-04 20:28:23 +01:00
Sebastian Schulze 99d6cbd076
[emacs] Add new semi-formal greeting to message-mode 2019-10-25 22:33:10 +02:00
Sebastian Schulze 06e0c9d618
[org] Add personal agenda view shortcut & save on org statechange 2019-10-25 22:32:18 +02:00
Sebastian Schulze 9a2691f413
[emacs] Use multidict de_DE & en_GB and start org-capture in i-mode 2019-10-25 22:30:57 +02:00
Sebastian Schulze 7d632f7584
[emacs] Remap oa and ob to more sensible leaders 2019-10-25 22:30:15 +02:00
Sebastian Schulze 619b26b7d0
[sway] Remove clipman from autostart - it's broken 2019-10-25 22:27:22 +02:00
Sebastian Schulze f776ced6cf
[emacs] Rename emacs service to override the system service
I used to have both "emacsd.service" and "emacs.service"
2019-10-25 22:23:38 +02:00
Sebastian Schulze 11dec5c8e6
[zsh] Use a bright fzf theme 2019-10-25 22:23:06 +02:00
Sebastian Schulze cb61fb2a28
[sway] Clean up config and refine a few floating details 2019-10-25 22:22:31 +02:00
Sebastian Schulze 12faf1d4b0
[bat] Use a bright bat theme 2019-10-25 22:20:51 +02:00
Sebastian Schulze e99d9480dd
[alacritty] Rework alacritty config & use new bright one theme 2019-10-25 22:20:20 +02:00
Sebastian Schulze 9a2573fd35
[zsh] Alias ssh to a compatible 256color terminal 2019-10-25 17:16:39 +02:00
Sebastian Schulze 3f2063d8db
[zshr] Fix weather display & add termbin paste-bucket 2019-10-25 17:16:11 +02:00
Sebastian Schulze a5aaf0a7c8
[tmux] Use :Tc for xterm-24bit 2019-10-25 17:01:58 +02:00
Sebastian Schulze e63bd1edc9
[tmux] Try to work around alacritty & 24bit terminfo 2019-10-25 16:44:43 +02:00
Sebastian Schulze f2f7751cb0
[tmux] Set tmux 24bit overrides 2019-10-25 15:29:58 +02:00
Sebastian Schulze 92542b5675
[term] Add xterm 24bit terminfo 2019-10-25 14:45:39 +02:00
Sebastian Schulze 87d34832ab
[term] Nudged by @code-later back to bight colours 2019-10-25 14:40:33 +02:00
Sebastian Schulze fcb9c33587
[bin] Upgrade helm to 3.0.0 (beta5)
Let's see this Cluster burn.
2019-10-24 15:01:08 +02:00
Sebastian Schulze 8c65669340
[sway] Increase the border-width to 2px 2019-10-18 16:48:58 +02:00
Sebastian Schulze 840c1a1512
[sway] Clean up the status bar section 2019-10-18 16:48:46 +02:00
Sebastian Schulze 33800bcf7e
[sway] Pin Wire and Signal to desk 3 2019-10-18 16:46:40 +02:00
Sebastian Schulze a0ebef017e
[sway] Add new run mode to launch all shortcuts 2019-10-18 16:46:27 +02:00
Sebastian Schulze 4c0c31d72e
[sway] Cleanup shortcuts and launchers 2019-10-18 16:46:06 +02:00
Sebastian Schulze b32865e311
[sway] Listen to lid-events 2019-10-18 16:45:27 +02:00
Sebastian Schulze f1b8212ec6
[sway] Clean up the outputs and aliases 2019-10-18 16:45:05 +02:00
Sebastian Schulze 1fafcf530b
[i3blocks] Clean up the config and labels 2019-10-18 16:44:29 +02:00
Sebastian Schulze a4c1e62357
[emacs] Add new helper shortcut to directly select a Org file 2019-10-18 16:44:02 +02:00
Sebastian Schulze 8187dcd10f
[zsh] Fix path to new sway-run helper 2019-10-18 16:43:44 +02:00
Sebastian Schulze 20755c5a24
[zsh] Fix tmux Auth socket reparation "helper" 2019-10-18 16:43:09 +02:00
Sebastian Schulze e61cd83fa3
[zsh] Fix $KUBECONFIG file detection 2019-10-18 16:42:58 +02:00
Sebastian Schulze 987367ad05
[zsh] Brighten up the fzf prompt a bit 2019-10-18 16:42:45 +02:00
Sebastian Schulze 13faf0ad65
[tmux] Bind swap-window to a shortcut that works via prefix 2019-10-18 12:17:59 +02:00
Sebastian Schulze 80a03719dd
[tmux] Add shortcut to toggle between last & first window 2019-10-17 12:49:00 +02:00
Sebastian Schulze c7640e4317
[zsh] Alias docker run --rm -ti – I am getting too old for this 2019-10-15 22:13:35 +02:00
Sebastian Schulze 87a517b471
[zsh] Optionally load kubectl completion 2019-10-15 20:28:49 +02:00
Sebastian Schulze 91f922370d
[bat] Add bat config 2019-10-15 20:12:43 +02:00
Sebastian Schulze f1233020fa
Bump Rancher CLI to 2.3.0 – I picked up the wrong one 2019-10-15 10:54:25 +02:00
Sebastian Schulze f2e680de25
Install Rancher CLI v0.6.4 2019-10-15 10:52:13 +02:00
Sebastian Schulze 88f0a2adae
[emacs] Directly jump to the inbox on "om" 2019-10-14 17:31:10 +02:00
Sebastian Schulze 5bc4f0c181
[emacs] Store one recentf file per VM and session name 2019-10-14 17:30:53 +02:00
Sebastian Schulze 5eb5a62b0b
[zsh] Add weather-shenanigans, and directly start Sway 2019-10-14 17:30:02 +02:00
Sebastian Schulze 375e763e1e
[emacs] Store running timers across emacs sessions 2019-10-14 17:29:40 +02:00
Sebastian Schulze 27905eab84
[bin] Reorder start sequence and start wl-paste for clipman 2019-10-14 17:29:36 +02:00
Sebastian Schulze dedee63ed3
[bin] The big YAML-reckoning + more debug output when needed 2019-10-14 17:26:57 +02:00
Sebastian Schulze b3254ce91d
[tmux] Set escape-time globally 2019-10-02 17:14:29 +02:00
Sebastian Schulze 3cceb24c9c
[bin] Bump oh-my-zsh and spacemacs versions 2019-10-02 16:58:22 +02:00
Sebastian Schulze 22ec4c1190
[emacs] Fix location of recentf files 2019-10-02 16:55:35 +02:00
Sebastian Schulze b3eae34fa8
[tmux] Reduce escape time to 0 to not catch evils <esc> 2019-10-02 16:10:08 +02:00
Sebastian Schulze e2d1e75de6
[fzf] Use $HOST instead of $HOSTNAME for local fzf files 2019-10-02 13:48:00 +02:00
Sebastian Schulze 1f95cd68d7
[fzf] Add fzf as a submodule to get full completion 2019-07-31 13:18:47 +02:00
Sebastian Schulze b6e901d16e
[emacs] Store recentf per machine to not interfere with VMs 2019-07-31 13:15:19 +02:00
Sebastian Schulze a667e614eb
[zsh] Add correct base path to fzf installation 2019-07-31 13:04:29 +02:00
Sebastian Schulze 31feace4e6
[maid] Add maid to the systemd timers 2019-07-31 12:42:50 +02:00
28 changed files with 640 additions and 549 deletions

11
.gitmodules vendored
View File

@ -12,4 +12,13 @@
url = https://github.com/romkatv/powerlevel10k.git url = https://github.com/romkatv/powerlevel10k.git
[submodule "home/.zsh-custom/plugins/fzf-marks"] [submodule "home/.zsh-custom/plugins/fzf-marks"]
path = home/.zsh-custom/plugins/fzf-marks path = home/.zsh-custom/plugins/fzf-marks
url = git@github.com:urbainvaes/fzf-marks.git url = https://github.com/urbainvaes/fzf-marks.git
[submodule "home/.fzf"]
path = home/.fzf
url = https://github.com/junegunn/fzf.git
[submodule "home/.config/base16-shell"]
path = home/.config/base16-shell
url = https://github.com/chriskempson/base16-shell.git
[submodule "home/.vim/bundle/Vundle.vim"]
path = home/.vim/bundle/Vundle.vim
url = https://github.com/VundleVim/Vundle.vim.git

View File

@ -1,364 +1,64 @@
# 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: env:
# TERM variable TERM: xterm-24bit
#
# 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:
# Window dimensions (changes require restart)
#
# Specified in number of columns/lines, not pixels.
# If both are `0`, this setting is ignored.
dimensions: dimensions:
columns: 80 columns: 80
lines: 24 lines: 24
# 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: padding:
x: 10 x: 12
y: 10 y: 12
decorations: none
# Window decorations
#
# Values for `decorations`:
# - full: Borders and title bar
# - none: Neither borders nor title bar
decorations: full
scrolling: scrolling:
# Maximum number of lines in the scrollback buffer.
# Specifying '0' will disable scrolling.
history: 10000 history: 10000
# Number of lines the viewport will move for every line scrolled when
# scrollback is enabled (history > 0).
multiplier: 3 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 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 tabspaces: 8
# Font configuration (changes require restart) draw_bold_text_with_bright_colors: true
#
# Important font attributes like antialiasing, subpixel aa, and hinting can be
# controlled through fontconfig. Specifically, the following attributes should
# have an effect:
# - hintstyle
# - antialias
# - lcdfilter
# - rgba
#
# For instance, if you wish to disable subpixel antialiasing, you might set the
# rgba property to `none`. If you wish to completely disable antialiasing, you
# can set antialias to `false`.
#
# Please see these resources for more information on how to use fontconfig:
# - https://wiki.archlinux.org/index.php/font_configuration#Fontconfig_configuration
# - file:///usr/share/doc/fontconfig/fontconfig-user.html
font: font:
# Normal (roman) font face
normal: normal:
family: FuraMono Nerd Font family: FuraMono NerdFont
# The `style` can be specified to pick a specific face.
style: Regular
# Bold font face
bold: bold:
family: FuraMono Nerd Font family: monospace
# The `style` can be specified to pick a specific face.
style: Bold
# Italic font face
italic: italic:
family: FuraMono Nerd Font family: monospace
# The `style` can be specified to pick a specific face. size: 12.0
style: Italic
# Point size
size: 12
# 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: offset:
x: 0 x: 0
y: 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: glyph_offset:
x: 0 x: 0
y: 0 y: 0
# Scale the font size based on the monitor's DPI. This will lead to bigger text on HiDPI
# screens and make reading text a little easier.
# On X11 it is possible to change the DPI for each instance of alacritty by using
# `WINIT_HIDPI_FACTOR=1.0 alacritty` to scale the font.
# scale_with_dpi: true
# Display the time it takes to redraw each frame.
# If `true`, bold text is drawn using the bright color variants.
draw_bold_text_with_bright_colors: true
# Base16 iA Light 256 - alacritty color config
# iA Inc. (modified by aramisgithub)
colors:
# Default colors
primary:
background: '0xf6f6f6'
foreground: '0x181818'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '0xf6f6f6'
cursor: '0x181818'
# Normal colors
normal:
black: '0xf6f6f6'
red: '0x9c5a02'
green: '0x38781c'
yellow: '0xc48218'
blue: '0x48bac2'
magenta: '0xa94598'
cyan: '0x2d6bb1'
white: '0x181818'
# Bright colors
bright:
black: '0x898989'
red: '0x9c5a02'
green: '0x38781c'
yellow: '0xc48218'
blue: '0x48bac2'
magenta: '0xa94598'
cyan: '0x2d6bb1'
white: '0xf8f8f8'
indexed_colors:
- { index: 16, color: '0xc43e18' }
- { index: 17, color: '0x8b6c37' }
- { index: 18, color: '0xdedede' }
- { index: 19, color: '0xbde5f2' }
- { index: 20, color: '0x767676' }
- { index: 21, color: '0xe8e8e8' }
# 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: visual_bell:
animation: EaseOutExpo animation: EaseOutExpo
duration: 100 duration: 0 # disabled
# 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 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_bindings:
- { mouse: Middle, action: PasteSelection } - { mouse: Middle, action: PasteSelection }
mouse: 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 } double_click: { threshold: 300 }
triple_click: { threshold: 300 } triple_click: { threshold: 300 }
# If this is `true`, the cursor is temporarily hidden when typing.
hide_when_typing: false
url: url:
# URL launcher launcher: firefox
# modifiers: Control
# 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.
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: Control|Shift
selection: selection:
semantic_escape_chars: ",│`|:\"' ()[]{}<>" semantic_escape_chars: ",│`|:\"' ()[]{}<>"
# When set to `true`, selected text will be copied to both the primary and
# the selection clipboard. Otherwise, it will only be copied to the selection
# clipboard.
save_to_clipboard: false
dynamic_title: true 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 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.
#shell:
# program: /bin/bash
# args:
# - --login
# 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 sequnce to the running application (`chars`), execute
# a predefined action (`action`) or fork and execute a specified command plus
# arguments (`command`).
#
# Example:
# `- { key: V, mods: Command, 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
# - 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
#
# 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: key_bindings:
- { key: V, mods: Control|Shift, action: Paste } - { key: V, mods: Control|Shift, action: Paste }
- { key: C, mods: Control|Shift, action: Copy } - { key: C, mods: Control|Shift, action: Copy }
@ -368,7 +68,7 @@ key_bindings:
- { key: W, mods: Command, action: Quit } - { key: W, mods: Command, action: Quit }
- { key: Insert, mods: Shift, action: PasteSelection } - { key: Insert, mods: Shift, action: PasteSelection }
- { key: Key0, mods: Control, action: ResetFontSize } - { key: Key0, mods: Control, action: ResetFontSize }
- { key: Add, mods: Control, action: IncreaseFontSize } - { key: Equals, mods: Control, action: IncreaseFontSize }
- { key: Subtract, mods: Control, action: DecreaseFontSize } - { key: Subtract, mods: Control, action: DecreaseFontSize }
- { key: Home, chars: "\x1bOH", mode: AppCursor } - { key: Home, chars: "\x1bOH", mode: AppCursor }
- { key: Home, chars: "\x1b[H", mode: ~AppCursor } - { key: Home, chars: "\x1b[H", mode: ~AppCursor }
@ -465,3 +165,46 @@ key_bindings:
- { key: F10, mods: Super, chars: "\x1b[21;3~" } - { key: F10, mods: Super, chars: "\x1b[21;3~" }
- { key: F11, mods: Super, chars: "\x1b[23;3~" } - { key: F11, mods: Super, chars: "\x1b[23;3~" }
- { key: F12, mods: Super, chars: "\x1b[24;3~" } - { key: F12, mods: Super, chars: "\x1b[24;3~" }
# Base16 One Light 256 - alacritty color config
# Daniel Pfeifer (http://github.com/purpleKarrot)
colors:
# Default colors
primary:
background: '0xfafafa'
foreground: '0x383a42'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '0xfafafa'
cursor: '0x383a42'
# Normal colors
normal:
black: '0xfafafa'
red: '0xca1243'
green: '0x50a14f'
yellow: '0xc18401'
blue: '0x4078f2'
magenta: '0xa626a4'
cyan: '0x0184bc'
white: '0x383a42'
# Bright colors
bright:
black: '0xa0a1a7'
red: '0xca1243'
green: '0x50a14f'
yellow: '0xc18401'
blue: '0x4078f2'
magenta: '0xa626a4'
cyan: '0x0184bc'
white: '0x090a0b'
indexed_colors:
- { index: 16, color: '0xd75f00' }
- { index: 17, color: '0x986801' }
- { index: 18, color: '0xf0f0f1' }
- { index: 19, color: '0xe5e5e6' }
- { index: 20, color: '0x696c77' }
- { index: 21, color: '0x202227' }

@ -0,0 +1 @@
Subproject commit ce8e1e540367ea83cc3e01eec7b2a11783b3f9e1

1
home/.config/bat/config Normal file
View File

@ -0,0 +1 @@
--theme="base16"

View File

@ -0,0 +1,6 @@
PATH=$HOME/.local/bin:$HOME/bin:$HOME/bin/go/bin:$HOME/.cargo/bin:$PATH
DICPATH="${HOME}/.local/share/hunspell"
XDG_CURRENT_DESKTOP=GNOME
PASSWORD_STORE_DIR="${HOME}/Documents/Passwords/.password-store"
MOZ_ENABLE_WAYLAND=1
MOZ_USE_XINPUT2=1

View File

@ -1,11 +1,11 @@
command=/usr/local/libexec/i3blocks/$BLOCK_NAME command=/usr/libexec/i3blocks/$BLOCK_NAME
separator=true separator=true
separator_block_width=12 separator_block_width=20
markup=pango markup=pango
border_top=0 # border_top=0
border_left=0 # border_left=30
border_right=0 # border_right=25
border_bottom=0 # border_bottom=0
[mail] [mail]
command=i3-mail command=i3-mail
@ -13,10 +13,14 @@ interval=10
label= label=
border=#f5f5f5 border=#f5f5f5
[memory-label]
separator_block_width=0
separator=false
full_text=
[memory] [memory]
label=
interval=30 interval=30
border=#d79921 # border=#d79921
[memory] [memory]
label= label=
@ -33,11 +37,10 @@ interval=10
label= label=
[openvpn] [openvpn]
command= /usr/local/share/doc/i3blocks/contrib/openvpn
interval=10 interval=10
[mediaplayer] [mediaplayer]
command= /usr/local/share/doc/i3blocks/contrib/mediaplayer command=mpc status|head -1
interval=5 interval=5
signal=10 signal=10
label= label=

View File

@ -37,16 +37,17 @@ set $term alacritty
# Your preferred application launcher # Your preferred application launcher
# Note: it's recommended that you pass the final command to sway # Note: it's recommended that you pass the final command to sway
set $menu dmenu_path | i3-rofi | xargs swaymsg exec set $menu dmenu_path | i3-rofi | xargs swaymsg exec
set $display_laptop eDP-1
set $display_dell "Dell Inc. DELL U2415 7MT018BM1PGU"
set $display_lg "Goldstar Company Ltd 34UM95 0x00000101"
set $display_coworking "Dell Inc. DELL U2713H C6F0K34O095L"
### Output configuration ### Output configuration
# #
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) # Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
output * bg ~/Pictures/Wallpapers/mountains-blue.jpg fill output * bg ~/Pictures/Wallpapers/scheidegg-mountains.jpg fill
output "Dell Inc. DELL U2415 7MT018BM1PGU" transform 270 pos 0 0 output $display_dell transform 270 pos 0 0
#output eDP-1 scale 1 pos 1440 500 output $display_lg mode 3440x1440@49.987000Hz pos 1200 290
output "Goldstar Company Ltd 34UM95 0x00000101" mode 3440x1440@49.987000Hz pos 1200 290 output $display_coworking pos 2560 0
# output "Dell Inc. DELL U2713H C6F0K34O095L" transform 270 pos 0 0
# #
# Example configuration: # Example configuration:
# #
@ -103,6 +104,8 @@ input "2:10:TPPS/2_IBM_TrackPoint" {
input "1390:269:ELECOM_TrackBall_Mouse_HUGE_TrackBall" { input "1390:269:ELECOM_TrackBall_Mouse_HUGE_TrackBall" {
natural_scroll enabled natural_scroll enabled
scroll_button 279
scroll_method on_button_down
} }
input "65261:4871:ErgoDox_EZ_ErgoDox_EZ_Keyboard" { input "65261:4871:ErgoDox_EZ_ErgoDox_EZ_Keyboard" {
@ -117,6 +120,9 @@ input "1:1:AT_Translated_Set_2_keyboard" {
input * xkb_layout "de" input * xkb_layout "de"
bindswitch --locked lid:on output $display_laptop disable
bindswitch --locked lid:off output $display_laptop enable
bindsym $mod+shift+b border toggle bindsym $mod+shift+b border toggle
@ -142,17 +148,8 @@ bindsym shift+Print exec i3-screenshot -s
bindsym control+shift+Print exec i3-dropshot bindsym control+shift+Print exec i3-dropshot
bindsym control+alt+l exec i3-blur-lock bindsym control+alt+l exec i3-blur-lock
bindsym $mod+shift+m exec em bindsym $mod+shift+o move workspace to output right
bindsym $mod+shift+v exec rofi-pass bindsym $mod+o focus output right
bindsym $mod+shift+o exec nautilus
bindsym $mod+shift+x exec rofi-clipboard
bindsym $mod+shift+a exec rofi-marks
bindsym control+shift+Space exec makoctl dismiss
bindsym $mod+o move workspace to output right
# Basics: # Basics:
# #
@ -162,11 +159,9 @@ bindsym $mod+Return exec $term
# kill focused window # kill focused window
bindsym $mod+q kill bindsym $mod+q kill
# start your launcher
bindsym $mod+d exec $menu
bindsym $mod+shift+d exec alacritty --class 'launcher' --command bash -c 'compgen -c | sort -u | fzf | xargs -r swaymsg -t command exec' bindsym $mod+shift+d exec alacritty --class 'launcher' --command bash -c 'compgen -c | sort -u | fzf | xargs -r swaymsg -t command exec'
for_window [app_id="^launcher$"] floating enable, border none, resize set width 25 ppt height 100 ppt, move position 0 px 0 px for_window [app_id="^launcher$"] floating enable, border pixel 4, resize set width 25 ppt height 100 ppt, move position center
# Drag floating windows by holding down $mod and left mouse button. # Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod. # Resize them with right mouse button + $mod.
@ -255,10 +250,11 @@ bindsym $mod+f fullscreen
bindsym $mod+Shift+space floating toggle bindsym $mod+Shift+space floating toggle
# Swap focus between the tiling area and the floating area # Swap focus between the tiling area and the floating area
bindsym $mod+space focus mode_toggle bindsym $mod+alt+space focus mode_toggle
# move focus to the parent container # move focus to the parent container
bindsym $mod+a focus parent bindsym $mod+a focus parent
bindsym $mod+shift+a focus child
# #
# Scratchpad: # Scratchpad:
# #
@ -274,51 +270,88 @@ bindsym $mod+minus scratchpad show
bindsym $mod+t scratchpad toggle bindsym $mod+t scratchpad toggle
for_window [title="terminal_scratchpad"] move scratchpad for_window [title="terminal_scratchpad"] move scratchpad, fullscreen disable, border pixel 4, move position center
for_window [title="terminal_scratchpad"] fullscreen enable
bindsym $mod+u exec swaymsg [title="terminal_scratchpad"] scratchpad show bindsym $mod+u exec swaymsg [title="terminal_scratchpad"] scratchpad show
exec alacritty --title terminal_scratchpad exec alacritty --title terminal_scratchpad
for_window [title="worklogger"] floating enable # mako
bindsym $mod+n exec makoctl dismiss
bindsym $mod+Shift+n exec makoctl dismiss -a
for_window [title="^worklogger.*$"] floating enable, border pixel 4, move position center
for_window [title="nm-tray"] floating enable
for_window [app_id="org.gnome.Nautilus"] floating enable
for_window [title="Firefox - Sharing Indicator"] floating enable
assign [instance="^.*\.yakshed\.org$"] "3: Comms" assign [instance="^.*\.yakshed\.org$"] "3: Comms"
assign [instance="^.*\.slack\.com$"] "3: Comms" assign [instance="^.*\.slack\.com$"] "3: Comms"
assign [instance="web.whatsapp.com"] "3: Comms" assign [instance="web.whatsapp.com"] "3: Comms"
assign [instance="inoreader.com"] "3: Comms" assign [instance="inoreader.com"] "3: Comms"
assign [title="^.*qutebrowser-comms$"] "3: Comms"
assign [title="Wire"] "3: Comms"
assign [title="Signal"] "3: Comms"
# #
# Resizing containers: # Resizing containers:
# #
mode "resize" { mode "resize" {
# left will shrink the containers width # left will shrink the containers width
# right will grow the containers width # right will grow the containers width
# up will shrink the containers height # up will shrink the containers height
# down will grow the containers height # down will grow the containers height
bindsym $left resize shrink width 10px bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px bindsym $right resize grow width 10px
# ditto, with arrow keys # ditto, with arrow keys
bindsym Left resize shrink width 10px bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px bindsym Up resize shrink height 10px
bindsym Right resize grow width 10px bindsym Right resize grow width 10px
# return to default mode # return to default mode
bindsym Return mode "default" bindsym Return mode "default"
bindsym Escape mode "default" bindsym Escape mode "default"
} }
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"
mode "run" {
# start your launcher
bindsym $mod+d exec $menu; mode "default";
bindsym d exec $menu; mode "default";
bindsym r exec i3-rofi; mode "default";
bindsym p exec rofi-pass; mode "default";
bindsym w exec qutebrowser; mode "default";
bindsym e exec em; mode "default"
bindsym f exec nautilus; mode "default"
bindsym c exec clipman pick --tool=rofi; mode "default"
bindsym b exec rofi-marks; mode "default"
bindsym o exec pavucontrol; mode "default"
bindsym v exec alacritty --class 'vm' --command zsh -c 'vm'
# return to default mode
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+d mode "run"
set $font_family FuraMono Nerd Font set $font_family FuraMono Nerd Font
set $font_size 10 set $font_size 10
font pango:$font_family $font_size font pango:$font_family $font_size
default_border pixel 1 default_border pixel 2
workspace_auto_back_and_forth yes
smart_gaps on
smart_borders on
# class border backgr. text indic. child_border # class border backgr. text indic. child_border
@ -330,33 +363,30 @@ client.urgent $base08 $base08 $base00 $base08 $base08
client.placeholder $base00 $base00 $base05 $base00 $base00 client.placeholder $base00 $base00 $base05 $base00 $base00
client.background $base07 client.background $base07
#
# Status Bar:
#
# Read `man 5 sway-bar` for more information about this section.
bar { bar {
position top position top
status_command i3status-rs ~/.config/i3status-rs.toml
font pango:FuraMono Nerd Font, FontAwesome 12
colors {
background $base00
separator $base01
statusline $base04
# When the status_command prints a new line to stdout, swaybar updates. # State Border BG Text
# The default just shows the current date and time. focused_workspace $base05 $base0D $base00
# swaybar_command waybar active_workspace $base05 $base03 $base00
status_command i3status inactive_workspace $base03 $base01 $base05
urgent_workspace $base08 $base08 $base00
binding_mode $base00 $base0A $base00
colors { }
background $base00
separator $base01
statusline $base04
# State Border BG Text
focused_workspace $base05 $base0D $base00
active_workspace $base05 $base03 $base00
inactive_workspace $base03 $base01 $base05
urgent_workspace $base08 $base08 $base00
binding_mode $base00 $base0A $base00
}
} }
include /etc/sway/config.d/* include /etc/sway/config.d/*
# Currently inactive see https://github.com/swaywm/sway/issues/4649
#exec wl-paste -t text --watch clipman store
# See https://github.com/swaywm/sway/wiki#after-unplugging-an-external-display-some-applications-appear-too-large-on-my-hidpi-screen
exec xrdb -load ~/.Xresources
exec i3-autostart exec i3-autostart

View File

@ -0,0 +1 @@
/home/bascht/.config/systemd/user/emacs.service

View File

@ -4,8 +4,8 @@ Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
[Service] [Service]
Type=forking Type=forking
ExecStart=/usr/bin/emacs --daemon ExecStart=/usr/bin/emacs --bg-daemon=daemacs
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)" ExecStop=/usr/bin/emacsclient -s daemacs --eval "(save-buffers-kill-emacs)"
Environment=SSH_AUTH_SOCK=%t/keyring/ssh Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=on-failure Restart=on-failure

View File

@ -0,0 +1,6 @@
[Unit]
Description=Run maid cleanup
[Service]
Type=oneshot
ExecStart=maid clean --force

View File

@ -0,0 +1,10 @@
[Unit]
Description=Run maid timer
[Timer]
OnActiveSec=30s
OnUnitActiveSec=120m
Unit=maid.service
[Install]
WantedBy=timers.target

View File

@ -0,0 +1 @@
/home/bascht/.config/systemd/user/maid.timer

@ -1 +1 @@
Subproject commit 0e0319968db33a0846252d4cc42b96e1f0d46617 Subproject commit fdd38eec9b7bcb5ed92404d3c30401791808e968

1
home/.fzf Submodule

@ -0,0 +1 @@
Subproject commit ff951341c993ed84ad65344e496e122ee3dddf67

@ -1 +1 @@
Subproject commit 9817e1e7ff62494abf9d7c78870e92908567e8f4 Subproject commit e38099de96e8b62976354b468da1b21ec2d57f68

View File

@ -90,6 +90,7 @@ values."
flycheck-plantuml flycheck-plantuml
backline backline
magit-todos magit-todos
enh-ruby-mode
) )
;; A list of packages that cannot be updated. ;; A list of packages that cannot be updated.
dotspacemacs-frozen-packages '() dotspacemacs-frozen-packages '()
@ -167,15 +168,15 @@ values."
;; Press <SPC> T n to cycle to the next theme in the list (works great ;; Press <SPC> T n to cycle to the next theme in the list (works great
;; with 2 themes variants, one dark and one light) ;; with 2 themes variants, one dark and one light)
dotspacemacs-themes '(doom-one-light dotspacemacs-themes '(doom-one-light
spacemacs-light
doom-nord-light
doom-opera-light doom-opera-light
doom-solarized-light doom-solarized-light
doom-nord-light doom-one-light
doom-nord
doom-dracula doom-dracula
doom-spacegrey doom-spacegrey
doom-one-light
doom-one doom-one
doom-nord
spacemacs-light
spacemacs-dark) spacemacs-dark)
;; If non nil the cursor color matches the state color in GUI Emacs. ;; If non nil the cursor color matches the state color in GUI Emacs.
dotspacemacs-colorize-cursor-according-to-state t dotspacemacs-colorize-cursor-according-to-state t
@ -344,7 +345,8 @@ values."
;; delete only whitespace for changed lines or `nil' to disable cleanup. ;; delete only whitespace for changed lines or `nil' to disable cleanup.
;; (default nil) ;; (default nil)
dotspacemacs-whitespace-cleanup nil dotspacemacs-whitespace-cleanup nil
)) )
)
(defun dotspacemacs/user-init () (defun dotspacemacs/user-init ()
"Initialization function for user code. "Initialization function for user code.
@ -377,19 +379,24 @@ you should place your code here."
(global-set-key (kbd "C->") 'mc/mark-next-like-this) (global-set-key (kbd "C->") 'mc/mark-next-like-this)
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this) (global-set-key (kbd "C-<") 'mc/mark-previous-like-this)
(spacemacs/set-leader-keys "oa" 'org-agenda) (spacemacs/set-leader-keys "oa" 'my-org-agenda)
(spacemacs/set-leader-keys "om" 'mu4e) (spacemacs/set-leader-keys "om" 'bascht/mu4e-inbox)
(spacemacs/set-leader-keys "oo" 'helm-org-rifle-agenda-files) (spacemacs/set-leader-keys "oo" 'helm-org-rifle-agenda-files)
(spacemacs/set-leader-keys "oc" 'org-mru-clock-in) (spacemacs/set-leader-keys "oc" 'org-mru-clock-in)
(spacemacs/set-leader-keys "ok" 'org-clock-goto) (spacemacs/set-leader-keys "ok" 'org-clock-goto)
(spacemacs/set-leader-keys "or" 'org-refile-goto-last-stored) (spacemacs/set-leader-keys "or" 'org-refile-goto-last-stored)
(spacemacs/set-leader-keys "od" 'my-daily-review) (spacemacs/set-leader-keys "od" 'my-daily-review)
(spacemacs/set-leader-keys "og" 'bascht/go-to-org-file)
(spacemacs/set-leader-keys "glu" 'mu4e-view-go-to-url) (spacemacs/set-leader-keys "glu" 'mu4e-view-go-to-url)
(spacemacs/set-leader-keys "drr" 'rake) (spacemacs/set-leader-keys "drr" 'rake)
(spacemacs/set-leader-keys "drl" 'rake-rerun) (spacemacs/set-leader-keys "drl" 'rake-rerun)
(spacemacs/toggle-hungry-delete-on) (spacemacs/toggle-hungry-delete-on)
(defun bascht/go-to-org-file ()
"Jump to one of my Agenda files via helm"
(interactive)
(helm-find-files-1 "~/Documents/Zettelkasten/"))
(with-eval-after-load 'org (with-eval-after-load 'org
(if (if
(or (s-starts-with? "zog" system-name) (s-starts-with? "kandalingo" system-name)) (or (s-starts-with? "zog" system-name) (s-starts-with? "kandalingo" system-name))
@ -399,6 +406,9 @@ you should place your code here."
(load-file "~/.spacemacs.d/private/org-config.el"))) (load-file "~/.spacemacs.d/private/org-config.el")))
) )
;; Don't litter. Use one file per VM.
(setq recentf-save-file (format "%s.%s.%s" recentf-save-file system-name server-name))
;; Tramp speed up ;; Tramp speed up
(setq remote-file-name-inhibit-cache nil) (setq remote-file-name-inhibit-cache nil)
(setq vc-ignore-dir-regexp (setq vc-ignore-dir-regexp
@ -444,7 +454,16 @@ you should place your code here."
(flycheck-yamllint-setup) (flycheck-yamllint-setup)
)) ))
(with-eval-after-load "ispell"
(setq ispell-program-name "hunspell")
;; ispell-set-spellchecker-params has to be called
;; before ispell-hunspell-add-multi-dic will work
(ispell-set-spellchecker-params)
(ispell-hunspell-add-multi-dic "de_DE,en_GB")
(setq ispell-dictionary "de_DE,en_GB"))
(add-hook 'git-commit-mode-hook 'evil-insert-state) (add-hook 'git-commit-mode-hook 'evil-insert-state)
(add-hook 'org-capture-mode-hook 'evil-insert-state)
(setq delete-selection-mode nil) (setq delete-selection-mode nil)
(setq hledger-currency-string "EUR") (setq hledger-currency-string "EUR")
@ -463,7 +482,6 @@ you should place your code here."
(setq atomic-chrome-default-major-mode 'markdown-mode) (setq atomic-chrome-default-major-mode 'markdown-mode)
(setq web-mode-engines-alist (setq web-mode-engines-alist
'(("go" . "\\.phtml\\'"))) '(("go" . "\\.phtml\\'")))
(setq recentf-save-file "~/.emacs.d.recentf")
) )
;; Do not write anything past this comment. This is where Emacs will ;; Do not write anything past this comment. This is where Emacs will

View File

@ -56,7 +56,14 @@
(setq org-refile-allow-creating-parent-nodes 'confirm) (setq org-refile-allow-creating-parent-nodes 'confirm)
(setq org-clock-sound t) (setq org-clock-sound t)
(setq org-clock-out-remove-zero-time-clocks t) (setq org-clock-out-remove-zero-time-clocks t)
;; Resume clocking task when emacs is restarted
(org-clock-persistence-insinuate)
;; Save the running clock and all clock history when exiting Emacs, load it on startup
(setq org-clock-persist t) (setq org-clock-persist t)
;; Resume clocking task on clock-in if the clock is open
(setq org-clock-in-resume t)
;; Do not prompt to resume an active clock, just resume it
(setq org-clock-persist-query-resume nil)
(setq org-agenda-start-with-clockreport-mode t) (setq org-agenda-start-with-clockreport-mode t)
(setq org-clock-report-include-clocking-task t) (setq org-clock-report-include-clocking-task t)
@ -154,7 +161,7 @@
:time-grid t))))) :time-grid t)))))
(todo "" ((org-agenda-overriding-header "Other") (todo "" ((org-agenda-overriding-header "Other")
(org-super-agenda-groups (org-super-agenda-groups
'((auto-category t)) ))) '((:auto-category t)) )))
(todo "" ((org-agenda-overriding-header "Grouped") (todo "" ((org-agenda-overriding-header "Grouped")
(org-super-agenda-groups (org-super-agenda-groups
'((:name none ; Disable super group header '((:name none ; Disable super group header
@ -173,6 +180,9 @@
(:name "Process + Shallow" (:name "Process + Shallow"
:time-grid t :time-grid t
:tag ("@process" "@shallow")) :tag ("@process" "@shallow"))
(:name "Customer Projects"
:file-path "Customer"
)
(:name "Quick Picks" (:name "Quick Picks"
:effort< "0:30" :effort< "0:30"
) )
@ -185,6 +195,9 @@
(setq org-agenda-span 1) (setq org-agenda-span 1)
((org-super-agenda-groups ((org-super-agenda-groups
'( '(
(:name "Quick Picks"
:effort< "0:30"
)
(:name "Immersive + Deep" (:name "Immersive + Deep"
:tag ("@immersive" "@deep")) :tag ("@immersive" "@deep"))
(:name "Immersive + Shallow" (:name "Immersive + Shallow"
@ -193,10 +206,11 @@
:tag ("@process" "@deep")) :tag ("@process" "@deep"))
(:name "Process + Shallow" (:name "Process + Shallow"
:tag ("@process" "@shallow")) :tag ("@process" "@shallow"))
(:name "Quick Picks" (:name "Customer Projects"
:effort< "0:30" :file-path "Customer"
) )
(:priority<= "B" (:name "Low Prio and future"
:priority<= "B"
:scheduled future :scheduled future
:order 1)))) :order 1))))
(org-agenda nil "a")) (org-agenda nil "a"))
@ -234,6 +248,15 @@
(org-cycle-hide-drawers 'all) (org-cycle-hide-drawers 'all)
(search-forward "[ ]")) (search-forward "[ ]"))
(defun my-org-agenda ()
(interactive)
(let ((org-agenda-start-with-log-mode 'nil)
(org-agenda-show-log 'nil)
(org-agenda-span 'day)
(org-agenda-use-time-grid t))
(org-agenda nil "c")
(org-agenda-redo)
))
; Recent loops callable for daily review ; Recent loops callable for daily review
(defun my-org-agenda-recent-open-loops () (defun my-org-agenda-recent-open-loops ()
(interactive) (interactive)
@ -246,6 +269,19 @@
(add-to-list 'org-global-properties (add-to-list 'org-global-properties
'("Effort_ALL". "0:05 0:10 0:15 0:30 1:00 2:00 3:00 4:00")) '("Effort_ALL". "0:05 0:10 0:15 0:30 1:00 2:00 3:00 4:00"))
(setq org-agenda-category-icon-alist
'(("Todo" "~/.icons/emacs/todo-16x16.png" nil nil :ascent center)
("Personal.*" "~/.icons/emacs/person-16x16.png" nil nil :ascent center)
("Customer.*" "~/.icons/emacs/briefcase-16x16.png" nil nil :ascent center)
("Project.*" "~/.icons/emacs/generic-folder-16x16.png" nil nil :ascent center)
("\\(ROPrivat\\|ROArbeit\\)" "~/.icons/emacs/calendar-16x16.png" nil nil :ascent center)
(".*" '(space . (:width (16))))))
; Save file on every state change
(add-hook 'org-trigger-hook 'save-buffer)
(add-hook 'org-clock-in-hook 'save-buffer)
(add-hook 'org-clock-out-hook 'save-buffer)
(provide 'org-config) (provide 'org-config)
;;; org-config.el ends here ;;; org-config.el ends here
;; Local Variables: ;; Local Variables:

View File

@ -0,0 +1,6 @@
# -*- mode: snippet -*-
# name: lgs
# key: lgs
# --
Liebe Grüße,
Sebastian

Binary file not shown.

View File

@ -2,7 +2,8 @@ unbind C-b
set-option -g prefix C-o set-option -g prefix C-o
bind-key C-o send-prefix bind-key C-o send-prefix
set -g default-terminal "screen-256color" set -g default-terminal "xterm-24bit"
set -ag terminal-overrides ",xterm-24bit:Tc"
bind s split-window -v bind s split-window -v
bind v split-window -h bind v split-window -h
@ -19,12 +20,16 @@ bind > resize-pane -R 1
bind - resize-pane -D 1 bind - resize-pane -D 1
bind + resize-pane -U 1 bind + resize-pane -U 1
bind-key C-Tab next-window bind-key -n C-Tab next-window
bind-key C-S-Tab previous-window bind-key -n C-S-Tab previous-window
bind-key C-l last-window
bind-key -n C-S-Left swap-window -t -1 bind-key -n C-S-Left swap-window -t -1
bind-key -n C-S-Right swap-window -t +1 bind-key -n C-S-Right swap-window -t +1
bind-key S-Left swap-window -t -1
bind-key S-Right swap-window -t +1
bind-key -n C-S-Up switch-client -p bind-key -n C-S-Up switch-client -p
bind-key -n C-S-Down switch-client -n bind-key -n C-S-Down switch-client -n
@ -64,5 +69,6 @@ set-option -g display-panes-active-colour colour33
set-option -g display-panes-colour colour166 set-option -g display-panes-colour colour166
set-window-option -g clock-mode-colour colour64 set-window-option -g clock-mode-colour colour64
set-window-option -g window-status-bell-style fg=colour235,bg=colour160 set-window-option -g window-status-bell-style fg=colour235,bg=colour160
set -g escape-time 0
run-shell "~/bin/tmux-statusline" run-shell "~/bin/tmux-statusline"

@ -0,0 +1 @@
Subproject commit b255382d6242d7ea3877bf059d2934125e0c4d95

161
home/.vimrc Normal file
View File

@ -0,0 +1,161 @@
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" Bundles
" Actual plugins
Plugin 'VundleVim/Vundle.vim'
Plugin 'tpope/vim-fugitive'
Plugin 'kien/ctrlp.vim'
Plugin 'tpope/vim-surround'
Plugin 'tpope/vim-repeat'
Plugin 'editorconfig/editorconfig-vim'
Plugin 'gerw/vim-HiLinkTrace'
" Meta plugins
Plugin 'vim-scripts/ingo-library'
Plugin 'vim-scripts/SyntaxRange'
" Syntax highlighting
Plugin 'plasticboy/vim-markdown'
Plugin 'cespare/vim-toml'
Plugin 'rust-lang/rust.vim'
Plugin 'mxw/vim-jsx'
Plugin 'pangloss/vim-javascript'
Plugin 'kchmck/vim-coffee-script'
Plugin 'google/vim-jsonnet'
Plugin 'sirtaj/vim-openscad'
Plugin 'leafgarland/typescript-vim'
Plugin 'beyondmarc/glsl.vim'
Plugin 'vim-scripts/scons.vim'
Plugin 'calviken/vim-gdscript3'
Plugin 'wannesm/wmgraphviz.vim'
Plugin 'sotte/presenting.vim'
Plugin 'ziglang/zig.vim'
Plugin 'dracula/vim', { 'name': 'dracula' }
" /Bundles
call vundle#end()
filetype plugin indent on
set laststatus=2
set t_Co=256
let g:vim_markdown_folding_disabled=1
let g:vim_markdown_frontmatter=1
let g:jsx_ext_required = 0
set encoding=utf-8
set tabstop=4
set shiftwidth=4
set autoindent
set magic " unbreak vim's regex implementation
set number
set scrolloff=3
set sidescroll=3
set ruler
set cc=80
set nowrap
set ignorecase
set smartcase
set splitbelow
set hidden
set notimeout
" Search as you type, highlight results
set incsearch
set showmatch
set hlsearch
" Resize windows and move tabs and such with the mouse
set mouse=a
" Don't litter swp files everywhere
set backupdir=~/.cache
set directory=~/.cache
set nofoldenable
set lazyredraw
set tags=./tags;
set printheader=\
syntax on
let mapleader = "\<space>"
nnoremap \\ :noh<cr> " Clear higlighting
nnoremap <silent> <F5> :let _s=@/<Bar>:%s/\s\+$//e<Bar>:let @/=_s<Bar>:nohl<CR> " Trim trailing spaces
nnoremap Y y$
nnoremap cc :center<cr>
inoremap <C-c> <ESC>
" Ex mode is fucking dumb
nnoremap Q <Nop>
command Jp e ++enc=euc-jp
" Preferences for various file formats
autocmd FileType c setlocal noet ts=4 sw=4 tw=80
autocmd FileType h setlocal noet ts=4 sw=4 tw=80
autocmd FileType cpp setlocal noet ts=4 sw=4 tw=80
autocmd FileType s setlocal noet ts=4 sw=4
autocmd FileType go setlocal noet ts=4 sw=4
autocmd FileType hy setlocal filetype=lisp
autocmd FileType sh setlocal noet ts=4 sw=4
autocmd BufRead,BufNewFile *.js setlocal et ts=2 sw=2
autocmd FileType html setlocal et ts=2 sw=2
autocmd FileType htmldjango setlocal et ts=2 sw=2
autocmd FileType ruby setlocal et ts=2 sw=2
autocmd FileType scss setlocal et ts=2 sw=2
autocmd FileType yaml setlocal et ts=2 sw=2
autocmd FileType markdown setlocal tw=80 et ts=2 sw=2
autocmd FileType text setlocal tw=80
autocmd FileType meson setlocal noet ts=2 sw=2
autocmd FileType bzl setlocal et ts=2 sw=2
autocmd FileType typescript setlocal et ts=2 sw=2
autocmd FileType python setlocal et ts=4 sw=4
autocmd BufNewFile,BufRead *.ms set syntax=python ts=4 sw=4 noet
autocmd BufNewFile,BufRead *.scd set ts=4 sw=4 noet
autocmd FileType tex hi Error ctermbg=NONE
autocmd FileType mail setlocal noautoindent
augroup filetypedetect
autocmd BufRead,BufNewFile *mutt-* setfiletype mail
augroup filetypedetect
autocmd BufRead,BufNewFile *qutebrowser-editor-* set ts=4 sw=4 et
autocmd BufNewFile,BufRead * if expand('%:t') == 'APKBUILD' | set ft=sh | endif
autocmd BufNewFile,BufRead * if expand('%:t') == 'PKGBUILD' | set ft=sh | endif
set guioptions-=m
set guioptions-=T
set guioptions-=r
set guioptions-=e
nmap <leader>l :set list!<CR>
set listchars=tab:▸\ ,eol,space:.
syntax enable
" Transparent editing of gpg encrypted files.
" By Wouter Hanegraaff
augroup encrypted
au!
autocmd BufReadPre,FileReadPre *.gpg set viminfo=
autocmd BufReadPre,FileReadPre *.gpg set noswapfile noundofile nobackup
autocmd BufReadPre,FileReadPre *.gpg set bin
autocmd BufReadPre,FileReadPre *.gpg let ch_save = &ch|set ch=2
autocmd BufReadPost,FileReadPost *.gpg '[,']!gpg --decrypt 2> /dev/null
autocmd BufReadPost,FileReadPost *.gpg set nobin
autocmd BufReadPost,FileReadPost *.gpg let &ch = ch_save|unlet ch_save
autocmd BufReadPost,FileReadPost *.gpg execute ":doautocmd BufReadPost " . expand("%:r")
autocmd BufWritePre,FileWritePre *.gpg '[,']!gpg --default-recipient-self -ae 2>/dev/null
autocmd BufWritePost,FileWritePost *.gpg u
augroup END
let g:presenting_top_margin = 2
" set printdevice=EPSON_LX-350

View File

@ -1,9 +1,10 @@
export PATH=$HOME/.local/bin:$HOME/bin:$HOME/bin/go/bin:$HOME/.cargo/bin:$PATH source ~/.config/environment.d/*
export PATH
export DICPATH
export XDG_CURRENT_DESKTOP
export PASSWORD_STORE_DIR
export MOZ_ENABLE_WAYLAND
export MOZ_USE_XINPUT2
export VAGRANT_DEFAULT_PROVIDER=libvirt export VAGRANT_DEFAULT_PROVIDER=libvirt
export VAGRANT_DOTFILE_PATH=".vagrant-$(hostname)" export VAGRANT_DOTFILE_PATH=".vagrant-$(hostname)"
export QT_QPA_PLATFORMTHEME="qt5ct" export QT_QPA_PLATFORMTHEME="qt5ct"
export DICPATH="${HOME}/.local/share/hunspell"
export XDG_CURRENT_DESKTOP=GNOME
export PASSWORD_STORE_DIR="${HOME}/Documents/Passwords/.password-store"
export MOZ_ENABLE_WAYLAND=1
export MOZ_USE_XINPUT2=1

View File

@ -1,3 +1,8 @@
# Directly start sway if we're on tty1
if [ "$(tty)" = "/dev/tty1" ]; then
exec sway-run
fi
# Back out if we're surrounded by Emacs # Back out if we're surrounded by Emacs
[ "$TERM" = "eterm-color" ] && exec bash [ "$TERM" = "eterm-color" ] && exec bash
[ "$TERM" = "xterm-termite" ] && export TERM=xterm-256color [ "$TERM" = "xterm-termite" ] && export TERM=xterm-256color
@ -15,7 +20,7 @@ fpath=( ~/.kubectx/completion "${fpath[@]}" )
ZSH_CUSTOM="${HOME}/.zsh-custom" ZSH_CUSTOM="${HOME}/.zsh-custom"
ZSH_THEME="powerlevel10k/powerlevel10k" ZSH_THEME="powerlevel10k/powerlevel10k"
ZSH_DOTENV_FILE=".direnv" ZSH_DOTENV_FILE=".direnv"
FZF_MARKS_FILE="${HOME}/.config/fzf/${HOSTNAME}" FZF_MARKS_FILE="${HOME}/.config/fzf/${HOST}"
export ZSH=/home/bascht/.oh-my-zsh export ZSH=/home/bascht/.oh-my-zsh
@ -34,16 +39,20 @@ alias docker-rm-dangling="docker rmi (docker images -q -f dangling=true)"
alias dco="docker-compose" alias dco="docker-compose"
alias dcorrm="docker-compose run --rm" alias dcorrm="docker-compose run --rm"
alias emacseval="emacs -batch -l ~/.emacs.d/init.el -eval '(org-batch-agenda "a")'" alias emacseval="emacs -batch -l ~/.emacs.d/init.el -eval '(org-batch-agenda "a")'"
alias dry="docker run --rm -itv /var/run/docker.sock:/var/run/docker.sock skanehira/docui" alias drri="docker run --rm -ti"
alias dry="drri -v /var/run/docker.sock:/var/run/docker.sock skanehira/docui"
alias k=kubectl alias k=kubectl
alias g=git alias g=git
alias git-cleanup-merged-branches="git fetch -va && git branch --merged | egrep -v '(^\*|master)' | xargs git branch -d" alias git-cleanup-merged-branches="git fetch -va && git branch --merged | egrep -v '(^\*|master)' | xargs git branch -d"
alias wttr="curl 'wttr.in/Bogenhausen?1pQF&lang=de'"
alias termbin="nc termbin.com 9999"
alias ssh='TERM=xterm-256color ssh'
timestamp() { date +%Y-%m-%d-%H%M%S } timestamp() { date +%Y-%m-%d-%H%M%S }
letterup() { take $1 && cp -a ~/Documents/Personal/Brief-Vorlage/2017-LaTeX/* .; } letterup() { take $1 && cp -a ~/Documents/Personal/Brief-Vorlage/2017-LaTeX/* .; }
# Override the tmux ssh auth sock # Override the tmux ssh auth sock
SSH_TMUX_SOCK="${HOME}/.ssh/ssh_auth_sock" SSH_TMUX_SOCK="${HOME}/.ssh/ssh_auth_sock"
if [ "${SSH_AUTH_SOCK}" != "${SSH_TMUX_SOCK}" ]; then if [ "${SSH_AUTH_SOCK}" != "${SSH_TMUX_SOCK}" ] && [ "${SSH_AUTH_SOCK}" != "" ]; then
ln -sf "$SSH_AUTH_SOCK" "$SSH_TMUX_SOCK" ln -sf "$SSH_AUTH_SOCK" "$SSH_TMUX_SOCK"
fi fi
@ -68,9 +77,25 @@ function fzf-ssh () {
zle reset-prompt zle reset-prompt
} }
# Only load kubectl completion when needed. I's bog-slow
if [[ -f $KUBECONFIG ]]; then
source <(kubectl completion zsh);
fi;
zle -N fzf-ssh zle -N fzf-ssh
bindkey '\es' fzf-ssh bindkey '\es' fzf-ssh
function fzf-vm () {
local selected_vm=$(grep "Host " ~/.ssh/config | grep -oP "vm-(\w+)" | sort -u | cut -b 4- | fzf --reverse --height=20 --query "$LBUFFER")
if [ -n "$selected_vm" ]; then
BUFFER="vm ${selected_vm} ''"
zle accept-line
fi
zle reset-prompt
}
zle -N fzf-vm
bindkey '\ev' fzf-vm
# Via @leahneukirchen # Via @leahneukirchen
autoload -Uz copy-earlier-word autoload -Uz copy-earlier-word
zle -N copy-earlier-word zle -N copy-earlier-word
@ -79,6 +104,6 @@ bindkey "^[m" copy-earlier-word
if [ -f ~/Code/architecture/bin/ia ]; then if [ -f ~/Code/architecture/bin/ia ]; then
source <(~/Code/architecture/bin/ia completion) source <(~/Code/architecture/bin/ia completion)
fi; fi;
source ~/.zsh-custom/plugins/ source ~/.zsh-custom/plugins/
# To customize prompt, run `p9k_configure` or edit ~/.p10k.zsh.
source ~/.p10k.zsh source ~/.p10k.zsh

View File

@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
exec emacsclient -c $* exec emacsclient -s daemacs -c "${@}"

View File

@ -30,15 +30,17 @@ else
swaymsg workspace "4: Docs" swaymsg workspace "4: Docs"
swaymsg exec "emacs ~/" swaymsg exec "emacs ~/"
swaymsg workspace "2: Web" swaymsg workspace "2: Web"
swaymsg exec chromium-browser swaymsg exec firefox-wayland
swaymsg workspace "3: Comms" swaymsg workspace "3: Comms"
swaymsg exec start-comms swaymsg exec start-comms
swaymsg workspace "5: Media"
swaymsg exec alacritty -- -e "mux start music"
swaymsg workspace "1: Code" swaymsg workspace "1: Code"
swaymsg exec alacritty swaymsg exec alacritty
swaymsg -- exec swayidle \ swayidle \
timeout 300 'swaylock -c 000000' \ timeout 300 'i3-blur-lock' \
timeout 600 'swaymsg "output * dpms off"' \ timeout 600 'swaymsg "output * dpms off"' \
resume 'swaymsg "output * dpms on"' \ resume 'swaymsg "output * dpms on"' \
before-sleep 'swaylock -c 000000' before-sleep 'i3-blur-lock' &
fi; fi;

View File

@ -3,119 +3,131 @@
require 'json' require 'json'
require 'erb' require 'erb'
require 'pry' require 'pry'
require 'yaml'
binaries = { verbose = ARGV.include? "-v"
skaffold: {
url: "https://storage.googleapis.com/skaffold/releases/<%= version %>/skaffold-linux-amd64",
version: "v0.17.0",
version_argument: "version",
version_match: "<%= version %>"
},
kubectl: {
url: "https://storage.googleapis.com/kubernetes-release/release/<%= version %>/bin/linux/amd64/kubectl",
version: "v1.15.1",
version_argument: "version --client",
version_match: '^Client Version.*GitVersion:\"(?<version><%= version %>)\"'
},
kustomize: {
url: "https://github.com/kubernetes-sigs/kustomize/releases/download/v<%= version %>/kustomize_<%= version %>_linux_amd64",
version: "2.0.3",
version_argument: "version",
version_match: '^Version: {KustomizeVersion:(?<version><%= version %>) '
},
yq: {
url: "https://github.com/mikefarah/yq/releases/download/<%= version %>/yq_linux_amd64",
version: "2.1.1",
version_argument: "--version",
version_match: '^yq version <%= version %>'
},
lab: {
url: "https://github.com/zaquestion/lab/releases/download/v<%= version %>/lab_<%= version %>_linux_amd64.tar.gz",
version: "0.14.0",
version_argument: "version",
version_match: '^lab version <%= version %>',
},
gopass: {
url: "https://github.com/gopasspw/gopass/releases/download/v<%= version %>/gopass-<%= version %>-linux-amd64.tar.gz",
version: "1.8.6",
version_argument: "version",
version_match: '^gopass <%= version %> ',
extractor: lambda() do
Dir.glob("gopass*/gopass")
end
},
greenclip: {
url: "https://github.com/erebe/greenclip/releases/download/<%= version %>/greenclip",
version: "3.1",
version_argument: "version",
version_match: '^greenclip v<%= version %>',
},
packer: {
url: "https://releases.hashicorp.com/packer/<%= version %>/packer_<%= version %>_linux_amd64.zip",
version: "1.3.5",
version_argument: "version",
version_match: "^Packer v<%= version %>"
},
minikube: {
url: "https://storage.googleapis.com/minikube/releases/v<%= version %>/minikube-linux-amd64",
version: "0.33.1",
version_argument: "version",
version_match: "^minikube version: v<%= version %>"
},
terraform: {
url: "https://releases.hashicorp.com/terraform/<%= version %>/terraform_<%= version %>_linux_amd64.zip",
version: "0.12.2",
version_argument: "version",
version_match: "^Terraform v<%= version %>"
},
vagrant: {
url: "https://releases.hashicorp.com/vagrant/<%= version %>/vagrant_<%= version %>_linux_amd64.zip",
version: "2.2.5",
version_argument: "version",
version_match: "^Vagrant <%= version %>"
},
helm: {
url: "https://storage.googleapis.com/kubernetes-helm/helm-v<%= version %>-linux-amd64.tar.gz",
version: "2.13.0",
version_argument: "--version",
version_match: "v<%= version %>"
},
fzf: {
url: "https://github.com/junegunn/fzf-bin/releases/download/<%= version %>/fzf-<%= version %>-linux_amd64.tgz",
version: "0.17.5",
version_argument: "--version",
version_match: "<%= version %>.*"
},
bat: {
url: "https://github.com/sharkdp/bat/releases/download/v<%= version %>/bat-v<%= version %>-x86_64-unknown-linux-gnu.tar.gz",
version: "0.10.0",
version_argument: "--version",
version_match: "v<%= version %>"
},
hcloud: {
url: "https://github.com/hetznercloud/cli/releases/download/v<%= version %>/hcloud-linux-amd64-v<%= version %>.tar.gz",
version: "1.12.0",
version_argument: "version",
version_match: "v<%= version %>"
},
hugo: {
url: "https://github.com/gohugoio/hugo/releases/download/v<%= version %>/hugo_<%= version %>_Linux-64bit.tar.gz",
version: "0.55.6",
version_argument: "version",
version_match: "Hugo Static Site Generator v<%= version %>"
},
pandoc: {
url: "https://github.com/jgm/pandoc/releases/download/<%= version %>/pandoc-<%= version %>-linux.tar.gz",
version: "2.7.3",
version_argument: "--version",
version_match: "pandoc-citeproc 0.16.2"
},
"wally-cli": {
url: "https://github.com/zsa/wally/releases/download/<%= version %>-linux/wally-cli",
version: "1.1.0"
},
}
binaries = YAML.load <<EOB
---
:skaffold:
:url: https://storage.googleapis.com/skaffold/releases/<%= version %>/skaffold-linux-amd64
:version: v0.17.0
:version_argument: version
:version_match: "<%= version %>"
:kubectl:
:url: https://storage.googleapis.com/kubernetes-release/release/<%= version %>/bin/linux/amd64/kubectl
:version: v1.15.1
:version_argument: version --client
:version_match: ^Client Version.*GitVersion:\"(?<version><%= version %>)\"
:kustomize:
:url: https://github.com/kubernetes-sigs/kustomize/releases/download/v<%= version
%>/kustomize_<%= version %>_linux_amd64
:version: 2.0.3
:version_argument: version
:version_match: "^Version: {KustomizeVersion:(?<version><%= version %>) "
:yq:
:url: https://github.com/mikefarah/yq/releases/download/<%= version %>/yq_linux_amd64
:version: 2.1.1
:version_argument: "--version"
:version_match: "^yq version <%= version %>"
:lab:
:url: https://github.com/zaquestion/lab/releases/download/v<%= version %>/lab_<%=
version %>_linux_amd64.tar.gz
:version: 0.14.0
:version_argument: version
:version_match: "^lab version <%= version %>"
:gopass:
:url: https://github.com/gopasspw/gopass/releases/download/v<%= version %>/gopass-<%=
version %>-linux-amd64.tar.gz
:version: 1.8.6
:version_argument: version
:version_match: "^gopass <%= version %> "
:greenclip:
:url: https://github.com/erebe/greenclip/releases/download/<%= version %>/greenclip
:version: '3.1'
:version_argument: version
:version_match: "^greenclip v<%= version %>"
:packer:
:url: https://releases.hashicorp.com/packer/<%= version %>/packer_<%= version %>_linux_amd64.zip
:version: 1.3.5
:version_argument: version
:version_match: "^Packer v<%= version %>"
:minikube:
:url: https://storage.googleapis.com/minikube/releases/v<%= version %>/minikube-linux-amd64
:version: 0.33.1
:version_argument: version
:version_match: "^minikube version: v<%= version %>"
:terraform:
:url: https://releases.hashicorp.com/terraform/<%= version %>/terraform_<%= version
%>_linux_amd64.zip
:version: 0.12.10
:version_argument: version
:version_match: "^Terraform v<%= version %>"
:vagrant:
:url: https://releases.hashicorp.com/vagrant/<%= version %>/vagrant_<%= version
%>_linux_amd64.zip
:version: 2.2.5
:version_argument: version
:version_match: "^Installed Version: <%= version %>"
:helm:
:url: https://get.helm.sh/helm-v<%= version %>-linux-amd64.tar.gz
:version: 3.0.2
:version_argument: "version --short"
:version_match: v<%= version %>
:fzf:
:url: https://github.com/junegunn/fzf-bin/releases/download/<%= version %>/fzf-<%=
version %>-linux_amd64.tgz
:version: 0.17.5
:version_argument: "--version"
:version_match: "<%= version %>.*"
:bat:
:url: https://github.com/sharkdp/bat/releases/download/v<%= version %>/bat-v<%=
version %>-x86_64-unknown-linux-gnu.tar.gz
:version: 0.12.1
:version_argument: "--version"
:version_match: bat <%= version %>
:hcloud:
:url: https://github.com/hetznercloud/cli/releases/download/v<%= version %>/hcloud-linux-amd64-v<%=
version %>.tar.gz
:version: 1.12.0
:version_argument: version
:version_match: v<%= version %>
:hugo:
:url: https://github.com/gohugoio/hugo/releases/download/v<%= version %>/hugo_<%=
version %>_Linux-64bit.tar.gz
:version: 0.59.1
:version_argument: version
:version_match: Hugo Static Site Generator v<%= version %>
:pandoc:
:url: https://github.com/jgm/pandoc/releases/download/<%= version %>/pandoc-<%=
version %>-linux.tar.gz
:version: 2.7.3
:version_argument: "--version"
:version_match: pandoc-citeproc 0.16.2
:hadolint:
:url: https://github.com/hadolint/hadolint/releases/download/v<%= version %>/hadolint-Linux-x86_64
:version: 1.17.2
:version_match: "<%= version %>"
:version_argument: "--version"
:shellcheck:
:url: https://storage.googleapis.com/shellcheck/shellcheck-v<%= version %>.linux.x86_64.tar.xz
:version: 0.7.0
:version_match: "version: <%= version %>"
:version_argument: "--version"
:wally-cli:
:url: https://github.com/zsa/wally/releases/download/<%= version %>-linux/wally-cli
:version: 1.1.0
:version_match: "---"
:rancher:
:url: https://github.com/rancher/cli/releases/download/v<%= version %>/rancher-linux-amd64-v<%= version %>.tar.gz
:version: 2.3.0
:version_match: "rancher version v<%= version %>"
:version_argument: "--version"
:uni:
:url: https://github.com/arp242/uni/releases/download/v<%= version %>/uni-v<%= version %>-linux-amd64.gz
:version: 1.0.0
:version_match: "v<%= version %>"
EOB
tmpdir = Dir.mktmpdir tmpdir = Dir.mktmpdir
binaries.each do |binary, download| binaries.each do |binary, download|
@ -138,18 +150,28 @@ binaries.each do |binary, download|
download_dir = File.join(tmpdir, binary.to_s) download_dir = File.join(tmpdir, binary.to_s)
Dir.mkdir(download_dir) Dir.mkdir(download_dir)
Dir.chdir(download_dir) do Dir.chdir(download_dir) do
puts "Downloading from #{download_url} to #{download_dir}" if verbose
system "curl -s -L -O #{download_url}" system "curl -s -L -O #{download_url}"
downloaded_file = Dir.glob("*").first downloaded_file = Dir.glob("*").first
puts "Downloaded as #{downloaded_file}" if verbose
extraction_command = case File.extname(downloaded_file) extraction_command = case File.basename(downloaded_file)
when ".tgz", ".tar.gz", ".gz" then when /.tgz$/, /.tar.gz$/, /.tar.xz$/ then
"tar xvf" "tar xvf"
when ".zip" then when /.gz$/ then
"gunzip"
when /.zip$/ then
"unzip" "unzip"
end end
system("#{extraction_command} #{downloaded_file} > /dev/null")
if extraction_command
puts "Using #{extraction_command} to extract" if verbose
system("#{extraction_command} #{downloaded_file} > /dev/null")
else
puts "Did not find any archive I could extract"
end
extracted_executables = Dir.glob("**/**").select do |f| extracted_executables = Dir.glob("**/**").select do |f|
`file #{f}`.match(/LSB executable|ELF 64-bit LSB shared object/) `file #{f}`.match(/LSB executable|ELF 64-bit LSB shared object|ELF 64-bit LSB pie executable/)
end end
FileUtils.mv(File.realpath(extracted_executables.first), target) FileUtils.mv(File.realpath(extracted_executables.first), target)
end end

View File

@ -17,7 +17,7 @@ now = Time.now
JOURNAL_PATH = Pathname.new("~/Documents/Worklog").expand_path JOURNAL_PATH = Pathname.new("~/Documents/Worklog").expand_path
CURRENT_FILE = Pathname.new(JOURNAL_PATH.join(now.strftime("%Y%m%d"))) CURRENT_FILE = Pathname.new(JOURNAL_PATH.join(now.strftime("%Y%m%d")))
DIALOG="zenity --entry --title='worklogger'" DIALOG="zenity --entry"
we_are_appending = CURRENT_FILE.exist? we_are_appending = CURRENT_FILE.exist?
@ -28,11 +28,12 @@ File.open(CURRENT_FILE, "a+") do |f|
all_tasks = f.each_line.select{|line| line.start_with? "**" } all_tasks = f.each_line.select{|line| line.start_with? "**" }
all_tasks.map{ |task| task.sub(/^\*\* /, "") }.last(3).join("") all_tasks.map{ |task| task.sub(/^\*\* /, "") }.last(3).join("")
else else
location = `#{DIALOG} --text="Where are we today?"`.strip location = `#{DIALOG} --title='worklogger' --text="Where are we today?"`.strip
f.write(now.strftime("* %A, %d/%m/%Y\n")) f.write(now.strftime("* %A, %d/%m/%Y\n"))
f.write(" :PROPERTIES:\n :WORKLOG_LOCATION: #{location}\n :END:\n\n") f.write(" :PROPERTIES:\n :WORKLOG_LOCATION: #{location}\n :END:\n\n")
"First entry for today!" "First entry for today!"
end end
entry = `#{DIALOG} --text="#{last_tasks}"`.strip time = now.strftime('%H:%M')
f.write("** #{now.strftime('%H:%M')} #{entry}\n") unless entry.empty? entry = `#{DIALOG} --title='worklogger @#{time}' --text="#{last_tasks}"`.strip
f.write("** #{time} #{entry}\n") unless entry.empty?
end end