1
0
mirror of https://github.com/frebib/dotfiles.git synced 2024-06-14 12:57:23 +00:00

40 Commits

Author SHA1 Message Date
7ec8be00be Merge remote-tracking branch 'origin/master' into surface 2018-11-22 10:23:29 +00:00
732a366b30 Merge remote-tracking branch 'origin/master' into surface 2018-11-06 18:41:15 +00:00
d8b36c48bb Merge remote-tracking branch 'origin/master' into surface 2018-11-05 22:27:20 +00:00
677fce1907 Merge remote-tracking branch 'origin/master' into surface 2018-10-03 12:36:18 +01:00
83b006c9d5 Merge remote-tracking branch 'origin/master' into surface 2018-07-19 23:28:12 +01:00
015fffbbd4 Merge remote-tracking branch 'origin/master' into surface 2018-07-07 16:24:41 +01:00
22fa8c810f Merge remote-tracking branch 'origin/master' into surface 2018-05-20 16:41:54 +01:00
ae67b62ebe Merge remote-tracking branch 'origin/master' into surface 2018-05-11 18:21:39 +01:00
ea51f79785 Merge remote-tracking branch 'origin/master' into surface 2018-04-27 22:51:37 +01:00
f03b3ee8df Merge remote-tracking branch 'origin/master' into surface 2018-04-12 03:32:07 +01:00
f17927e0ee Merge remote-tracking branch 'origin/master' into surface 2018-04-12 02:32:31 +01:00
fd63032392 Merge remote-tracking branch 'origin/master' into surface 2018-04-12 02:14:35 +01:00
9ee742294d Merge branch 'master' into surface 2018-04-04 12:03:48 +01:00
e7baaf0a80 Merge branch 'master' into surface 2018-03-31 11:09:42 +01:00
5d90dda3f5 Merge branch 'master' into surface 2018-02-24 11:13:29 +00:00
82ad05ca0a Merge branch 'master' into surface 2018-02-24 11:10:43 +00:00
d52ece0b12 Merge remote-tracking branch 'origin/master' into surface 2018-02-22 13:27:57 +00:00
52cb279f3b Merge remote-tracking branch 'origin/master' into surface 2018-01-31 15:10:19 +00:00
618b78e62e i3/config: start nm-applet with i3 2017-12-26 15:43:47 +00:00
20e01667f9 profile: add surface-scripts directory to $PATH 2017-12-26 15:43:47 +00:00
e3b276aecf xsession: use correct name for integrated display 2017-12-26 15:43:47 +00:00
3dfed805f9 rotationd: start in .xsession instead of i3 2017-12-26 15:43:47 +00:00
61ab086664 compton: don't blur onboard background 2017-12-26 15:43:47 +00:00
7bbd52d4d8 Use consistent font sizes and DPI 2017-12-26 15:43:46 +00:00
b0267c548a Update surface-scripts HEAD 2017-12-26 15:43:46 +00:00
46c01329cf Surface cannot handle intense compton blur
This reverts commit d7097cf749.
2017-12-26 15:43:46 +00:00
9433c26d62 Add backlight control to i3 2017-12-26 15:43:46 +00:00
c1480498c1 Improve i3 touch experience with touchegg & fullscreen modifications 2017-12-26 15:43:46 +00:00
809104c10f Change again to new bash surface-scripts 2017-12-26 15:43:46 +00:00
45192635af Add rotation lock i3block 2017-12-26 15:43:46 +00:00
8b95f13919 Start onboard with i3 2017-12-26 15:43:45 +00:00
e15c8d4ed7 Poll blocks less frequently to save battery 2017-12-26 15:43:45 +00:00
f942d3ee31 Update surfacetools to my own fork 2017-12-26 15:43:45 +00:00
5084da39a5 Add updated dunst config for HiDPI 2017-12-26 15:43:45 +00:00
12f5f2bdc9 Start onboard with right-click 2017-12-26 15:43:45 +00:00
0921b3c91c Add autorotate script 2017-12-26 15:43:45 +00:00
e31edd3980 Scale everything for HiDPI screen 2017-12-26 15:43:45 +00:00
9d9035a8ad Force Chrome DPI scaling 2017-12-26 15:43:45 +00:00
4246ccac86 Add battery indicator to i3bar 2017-12-26 15:43:44 +00:00
24161b8a4a Prevent ssh-add breaking things temporarily 2017-12-26 15:43:44 +00:00
115 changed files with 1182 additions and 1604 deletions

28
.config/X11/xprofile Normal file
View File

@ -0,0 +1,28 @@
#!/bin/sh
# Graphical-specific environment variables
export TERMINAL="termite"
export BROWSER="chromium"
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel"
export QT_QPA_PLATFORMTHEME=gtk2
export QT_STYLE_OVERRIDE=gtk2
export XDG_CURRENT_DESKTOP="GNOME" # Fixes xdg-open
# Load Xorg resources and set the DPI
xrdb -merge $XDG_CONFIG_HOME/X11/xresources
xrandr --dpi $(xrdb -query | grep -i xft.dpi | cut -d: -f2)
xrandr --output eDP1 --primary
setxkbmap -option caps:none
xset r rate 200 18
# Merge system clipboards
if [ -n "$DISPLAY" ] && exists autocutsel && ! pidof autocutsel 1>/dev/null; then
autocutsel -fork
autocutsel -selection PRIMARY -fork
fi
~/.local/share/surface-scripts/pend &
~/.local/share/surface-scripts/rotationd &

View File

@ -29,7 +29,7 @@
*.color15: #eceff1 *.color15: #eceff1
Xft.dpi: 96 Xft.dpi: 140
Xft.antialias: true Xft.antialias: true
Xft.rgba: rgb Xft.rgba: rgb
Xft.hinting: true Xft.hinting: true
@ -59,17 +59,17 @@ xterm.metaSendsEscape: true
urxvt.termName: xterm-256color urxvt.termName: xterm-256color
urxvt.font: xft:Source Code Pro:style=regular:size=9 urxvt.font: xft:Source Code Pro:style=regular:size=9.8
urxvt.imFont: xft:Source Code Pro:style=regular:size=9 urxvt.imFont: xft:Source Code Pro:style=regular:size=9.8
urxvt.boldFont: xft:Source Code Pro:style=bold:size=9 urxvt.boldFont: xft:Source Code Pro:style=bold:size=9
urxvt.italicFont: xft:Source Code Pro:style=italic:size=9 urxvt.italicFont: xft:Source Code Pro:style=italic:size=9.8
urxvt.boldItalicFont: xft:Source Code Pro:style=bold,italic:size=9 urxvt.boldItalicFont: xft:Source Code Pro:style=bold,italic:size=9.8
urxvt.iso14755: false urxvt.iso14755: false
urxvt.iso14755_52: false urxvt.iso14755_52: false
urxvt.perl-ext-common: default,vtwheel,font-size urxvt.perl-ext-common: default,vtwheel,font-size
urxvt.url-launcher: /usr/bin/firefox urxvt.url-launcher: /usr/bin/chromium
urxvt.matcher.button: 1 urxvt.matcher.button: 1
urxvt.keysym.C-Up: font-size:increase urxvt.keysym.C-Up: font-size:increase

View File

@ -0,0 +1,467 @@
# 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: 80
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:
x: 15
y: 15
# Window decorations
#
# Values for `decorations`:
# - full: Borders and title bar
# - none: Neither borders nor title bar
decorations: full
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)
#
# 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:
# Normal (roman) font face
normal:
family: monospace
# The `style` can be specified to pick a specific face.
# style: Regular
# Bold font face
bold:
family: monospace
# The `style` can be specified to pick a specific face.
# style: Bold
# Italic font face
italic:
family: monospace
# The `style` can be specified to pick a specific face.
# style: Italic
# Point size
size: 9.0
# Offset is the extra space around each character. `offset.y` can be thought of
# as modifying the line spacing, and `offset.x` as modifying the letter spacing.
offset:
x: 0
y: 0
# Glyph offset determines the locations of the glyphs within their cells with
# the default being at the bottom. Increasing `x` moves the glyph to the right,
# increasing `y` moves the glyph upwards.
glyph_offset:
x: 0
y: 0
# Display the time it takes to redraw each frame.
render_timer: false
# If `true`, bold text is drawn using the bright color variants.
draw_bold_text_with_bright_colors: true
colors:
# Default colors
primary:
foreground: '0xeceff1'
background: '0x383c4a'
# Bright and dim foreground colors
#
# The dimmed foreground color is calculated automatically if it is not present.
# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
# is `false`, the normal foreground color will be used.
#
#dim_foreground: '0x9a9a9a'
#bright_foreground: '0xffffff'
# Cursor colors
#
# These will only be used when the `custom_cursor_colors` field is set to `true`.
cursor:
text: '0xeceff1'
cursor: '0x5294e2'
# Normal colors
normal:
black: '0x333638'
red: '0xf41f1c'
green: '0x8bc34a'
yellow: '0xffc107'
blue: '0x0266f4'
magenta: '0xcc17cc'
cyan: '0x10aeba'
white: '0x8b9396'
# Bright colors
bright:
black: '0x475760'
red: '0xe53727'
green: '0x9ccc65'
yellow: '0xffa000'
blue: '0x81b3f9'
magenta: '0xa56ecc'
cyan: '0x5ddae2'
white: '0xeceff1'
# Indexed Colors
#
# The indexed colors include all colors from 16 to 256.
# When these are not set, they're filled with sensible defaults.
#
#indexed_colors:
# - { index: 16, color: '0x000000' }
# Visual Bell
#
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
# rung, the terminal background will be set to white and transition back to the
# default background color. You can control the rate of this transition by
# setting the `duration` property (represented in milliseconds). You can also
# configure the transition function by setting the `animation` property.
#
# Values for `animation`:
# - Ease
# - EaseOut
# - EaseOutSine
# - EaseOutQuad
# - EaseOutCubic
# - EaseOutQuart
# - EaseOutQuint
# - EaseOutExpo
# - EaseOutCirc
# - Linear
#
# Specifying a `duration` of `0` will disable the visual bell.
visual_bell:
animation: EaseOutExpo
duration: 0
# 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: 0.95
# Mouse bindings
#
# Available fields:
# - mouse
# - action
# - mods (optional)
#
# Values for `mouse`:
# - Middle
# - Left
# - Right
# - Numeric identifier such as `5`
#
# All available `mods` and `action` values are documented in the key binding
# section.
mouse_bindings:
- { mouse: Middle, action: PasteSelection }
mouse:
# Click settings
#
# The `double_click` and `triple_click` settings control the time
# alacritty should wait for accepting multiple clicks as one double
# or triple click.
double_click: { threshold: 300 }
triple_click: { threshold: 300 }
# If this is `true`, the cursor is temporarily hidden when typing.
hide_when_typing: false
url:
# URL launcher
#
# This program is executed when clicking on a text which is recognized as a URL.
# The URL is always added to the command as the last parameter.
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:
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
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.
#
#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
#
# 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: V, mods: Control|Shift, action: Paste }
- { key: C, mods: Control|Shift, action: Copy }
- { key: Paste, action: Paste }
- { key: Copy, action: Copy }
- { key: Q, mods: Command, action: Quit }
- { key: W, mods: Command, action: Quit }
- { key: Insert, mods: Shift, action: PasteSelection }
- { key: Key0, mods: Control, action: ResetFontSize }
- { key: Equals, mods: Control, action: IncreaseFontSize }
- { key: Subtract, mods: Control, action: DecreaseFontSize }
- { key: Home, chars: "\x1bOH", mode: AppCursor }
- { key: Home, chars: "\x1b[H", mode: ~AppCursor }
- { key: End, chars: "\x1bOF", mode: AppCursor }
- { key: End, chars: "\x1b[F", mode: ~AppCursor }
- { key: PageUp, mods: Shift, chars: "\x1b[5;2~" }
- { key: PageUp, mods: Control, chars: "\x1b[5;5~" }
- { key: PageUp, chars: "\x1b[5~" }
- { key: PageDown, mods: Shift, chars: "\x1b[6;2~" }
- { key: PageDown, mods: Control, chars: "\x1b[6;5~" }
- { key: PageDown, chars: "\x1b[6~" }
- { key: Tab, mods: Shift, chars: "\x1b[Z" }
- { key: Back, chars: "\x7f" }
- { key: Back, mods: Alt, chars: "\x1b\x7f" }
- { key: Insert, chars: "\x1b[2~" }
- { key: Delete, chars: "\x1b[3~" }
- { key: Left, mods: Shift, chars: "\x1b[1;2D" }
- { key: Left, mods: Control, chars: "\x1b[1;5D" }
- { key: Left, mods: Alt, chars: "\x1b[1;3D" }
- { key: Left, chars: "\x1b[D", mode: ~AppCursor }
- { key: Left, chars: "\x1bOD", mode: AppCursor }
- { key: Right, mods: Shift, chars: "\x1b[1;2C" }
- { key: Right, mods: Control, chars: "\x1b[1;5C" }
- { key: Right, mods: Alt, chars: "\x1b[1;3C" }
- { key: Right, chars: "\x1b[C", mode: ~AppCursor }
- { key: Right, chars: "\x1bOC", mode: AppCursor }
- { key: Up, mods: Shift, chars: "\x1b[1;2A" }
- { key: Up, mods: Control, chars: "\x1b[1;5A" }
- { key: Up, mods: Alt, chars: "\x1b[1;3A" }
- { key: Up, chars: "\x1b[A", mode: ~AppCursor }
- { key: Up, chars: "\x1bOA", mode: AppCursor }
- { key: Down, mods: Shift, chars: "\x1b[1;2B" }
- { key: Down, mods: Control, chars: "\x1b[1;5B" }
- { key: Down, mods: Alt, chars: "\x1b[1;3B" }
- { key: Down, chars: "\x1b[B", mode: ~AppCursor }
- { key: Down, chars: "\x1bOB", mode: AppCursor }
- { key: F1, chars: "\x1bOP" }
- { key: F2, chars: "\x1bOQ" }
- { key: F3, chars: "\x1bOR" }
- { key: F4, chars: "\x1bOS" }
- { key: F5, chars: "\x1b[15~" }
- { key: F6, chars: "\x1b[17~" }
- { key: F7, chars: "\x1b[18~" }
- { key: F8, chars: "\x1b[19~" }
- { key: F9, chars: "\x1b[20~" }
- { key: F10, chars: "\x1b[21~" }
- { key: F11, chars: "\x1b[23~" }
- { key: F12, chars: "\x1b[24~" }
- { key: F1, mods: Shift, chars: "\x1b[1;2P" }
- { key: F2, mods: Shift, chars: "\x1b[1;2Q" }
- { key: F3, mods: Shift, chars: "\x1b[1;2R" }
- { key: F4, mods: Shift, chars: "\x1b[1;2S" }
- { key: F5, mods: Shift, chars: "\x1b[15;2~" }
- { key: F6, mods: Shift, chars: "\x1b[17;2~" }
- { key: F7, mods: Shift, chars: "\x1b[18;2~" }
- { key: F8, mods: Shift, chars: "\x1b[19;2~" }
- { key: F9, mods: Shift, chars: "\x1b[20;2~" }
- { key: F10, mods: Shift, chars: "\x1b[21;2~" }
- { key: F11, mods: Shift, chars: "\x1b[23;2~" }
- { key: F12, mods: Shift, chars: "\x1b[24;2~" }
- { key: F1, mods: Control, chars: "\x1b[1;5P" }
- { key: F2, mods: Control, chars: "\x1b[1;5Q" }
- { key: F3, mods: Control, chars: "\x1b[1;5R" }
- { key: F4, mods: Control, chars: "\x1b[1;5S" }
- { key: F5, mods: Control, chars: "\x1b[15;5~" }
- { key: F6, mods: Control, chars: "\x1b[17;5~" }
- { key: F7, mods: Control, chars: "\x1b[18;5~" }
- { key: F8, mods: Control, chars: "\x1b[19;5~" }
- { key: F9, mods: Control, chars: "\x1b[20;5~" }
- { key: F10, mods: Control, chars: "\x1b[21;5~" }
- { key: F11, mods: Control, chars: "\x1b[23;5~" }
- { key: F12, mods: Control, chars: "\x1b[24;5~" }
- { key: F1, mods: Alt, chars: "\x1b[1;6P" }
- { key: F2, mods: Alt, chars: "\x1b[1;6Q" }
- { key: F3, mods: Alt, chars: "\x1b[1;6R" }
- { key: F4, mods: Alt, chars: "\x1b[1;6S" }
- { key: F5, mods: Alt, chars: "\x1b[15;6~" }
- { key: F6, mods: Alt, chars: "\x1b[17;6~" }
- { key: F7, mods: Alt, chars: "\x1b[18;6~" }
- { key: F8, mods: Alt, chars: "\x1b[19;6~" }
- { key: F9, mods: Alt, chars: "\x1b[20;6~" }
- { key: F10, mods: Alt, chars: "\x1b[21;6~" }
- { key: F11, mods: Alt, chars: "\x1b[23;6~" }
- { key: F12, mods: Alt, chars: "\x1b[24;6~" }
- { key: F1, mods: Super, chars: "\x1b[1;3P" }
- { key: F2, mods: Super, chars: "\x1b[1;3Q" }
- { key: F3, mods: Super, chars: "\x1b[1;3R" }
- { key: F4, mods: Super, chars: "\x1b[1;3S" }
- { key: F5, mods: Super, chars: "\x1b[15;3~" }
- { key: F6, mods: Super, chars: "\x1b[17;3~" }
- { key: F7, mods: Super, chars: "\x1b[18;3~" }
- { key: F8, mods: Super, chars: "\x1b[19;3~" }
- { key: F9, mods: Super, chars: "\x1b[20;3~" }
- { key: F10, mods: Super, chars: "\x1b[21;3~" }
- { key: F11, mods: Super, chars: "\x1b[23;3~" }
- { key: F12, mods: Super, chars: "\x1b[24;3~" }

View File

@ -0,0 +1 @@
--force-device-scale-factor=1.2

91
.config/compton.conf Normal file
View File

@ -0,0 +1,91 @@
# Shadow
shadow = true; # Enabled client-side shadows on windows.
no-dock-shadow = true; # Avoid drawing shadows on dock/panel windows.
no-dnd-shadow = false; # Don't draw shadows on DND windows.
clear-shadow = true; # Zero the part of the shadow's mask behind the
# window. Fix some weirdness with ARGB windows.
shadow-radius = 12; # The blur radius for shadows. (default 12)
shadow-offset-x = -16; # The left offset for shadows. (default -15)
shadow-offset-y = -16; # The top offset for shadows. (default -15)
shadow-opacity = 0.65; # The translucency for shadows. (default .75)
# shadow-red = 0.0; # Red color value of shadow. (0.0 - 1.0, defaults to 0)
# shadow-green = 0.0; # Green color value of shadow. (0.0 - 1.0, defaults to 0)
# shadow-blue = 0.0; # Blue color value of shadow. (0.0 - 1.0, defaults to 0)
shadow-exclude = [ "class_g = 'slop'" ]; # Exclude conditions for shadows.
shadow-ignore-shaped = false; # Avoid drawing shadow on all shaped windows
# (see also: --detect-rounded-corners)
# Opacity
menu-opacity = 0.9; # The opacity for menus. (default 1.0)
inactive-opacity = 0.7; # Default opacity of inactive windows. (0.0 - 1.0)
active-opacity = 1.0; # Default opacity for active windows. (0.0 - 1.0)
frame-opacity = 1.0; # Opacity of window titlebars and borders. (0.1 - 1.0)
inactive-opacity-override = true; # Let inactive opacity set by 'inactive-opacity' overrides
# value of _NET_WM_OPACITY. Bad choice.
opacity-rule = [
"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];
alpha-step = 0.02; # XRender backend: Step size for alpha pictures. Increasing
# it may result in less X resource usage,
# Yet f ading may look bad.
# Blurring
blur-method = "dual_kawase";
blur-strength = 6;
blur-background = true; # Blur background of transparent windows.
blur-background-exclude = [ "class_g = 'Peek'", "class_g = 'Onboard'", "class_g = 'slop'", "class_g = 'Polybar'" ];
blur-background-frame = true; # Blur background of opaque windows with transparent
# frames as well.
blur-background-fixed = false; # Do not let blur radius adjust based on window opacity.
# Exclude conditions for background blur.
# Fading
fading = true; # Fade windows during opacity changes.
# fade-delta = 16; # The time between steps in a fade in milliseconds. (default 10).
fade-in-step = 0.022; # Opacity change between steps while fading in. (default 0.028).
fade-out-step = 0.02; # Opacity change between steps while fading out. (default 0.03).
# no-fading-openclose = true; # Avoid fade windows in/out when opening/closing.
# fade-exclude = [ ]; # Exclude conditions for fading.
# Other
backend = "glx" # Backend to use: "xrender" or "glx". GLX backend is typically
# much faster but depends on a sane driver.
mark-wmwin-focused = true; # Try to detect WM windows and mark them as active.
mark-ovredir-focused = true; # Mark all non-WM but override-redirect windows active (e.g. menus).
use-ewmh-active-win = true; # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused
# instead of using FocusIn/Out events. Usually more reliable but
# depends on a EWMH-compliant WM.
detect-rounded-corners = true; # Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on.
detect-client-opacity = true; # Detect _NET_WM_OPACITY on client windows, useful for window
# managers not passing _NET_WM_OPACITY of client windows to frame windows.
refresh-rate = 0; # For --sw-opti: Specify refresh rate of the screen. 0 for auto.
vsync = "none"; # "none", "drm", "opengl", "opengl-oml", "opengl-swc", "opengl-mswc"
# See man page for more details.
dbe = false; # Enable DBE painting mode. Rarely needed.
paint-on-overlay = true; # Painting on X Composite overlay window. Recommended.
sw-opti = false; # Limit compton to repaint at most once every 1 / refresh_rate.
# Incompatible with certain VSync methods.
unredir-if-possible = false; # Unredirect all windows if a full-screen opaque window is
# detected, to maximize performance for full-screen windows.
focus-exclude = [ "i:ai:chromium" ]; # A list of conditions of windows that should always be considered focused.
detect-transient = true; # Use WM_TRANSIENT_FOR to group windows, and consider windows in
# the same group focused at the same time.
detect-client-leader = true; # Use WM_CLIENT_LEADER to group windows.
invert-color-include = [ ]; # Conditions for windows to be painted with inverted color.
# GLX backend # GLX backend fine-tune options. See man page for more info.
glx-no-stencil = true; # Recommended.
glx-copy-from-front = false; # Useful with --glx-swap-method,
# glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync.
glx-no-rebind-pixmap = true; # Recommended if it works.
glx-swap-method = "undefined"; # See man page.
# Window type settings
wintypes:
{
tooltip = { fade = true; shadow = false; opacity = 1; focus = true; };
# fade: Fade the particular type of windows.
# shadow: Give those windows shadow
# opacity: Default opacity for the type of windows.
# focus: Whether to always consider windows of this type focused.
};

View File

@ -1,18 +1,18 @@
[global] [global]
font = sans 9.5 font = sans 9
# Allow a small subset of html markup: # Allow a small subset of html markup:
# <b>bold</b> # <b>bold</b>
# <i>italic</i> # <i>italic</i>
# <s>strikethrough</s> # <s>strikethrough</s>
# <u>underline</u> # <u>underline</u>
# #
# For a complete reference see # For a complete reference see
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>. # <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
# If markup is not allowed, those tags will be stripped out of the # If markup is not allowed, those tags will be stripped out of the
# message. # message.
markup = full markup = yes
# The format of the message. Possible variables are: # The format of the message. Possible variables are:
# %a appname # %a appname
# %s summary # %s summary
@ -22,35 +22,35 @@
# %p progress value if set ([ 0%] to [100%]) or nothing # %p progress value if set ([ 0%] to [100%]) or nothing
# Markup is allowed # Markup is allowed
format = "<b>%s %p</b>\n%b" format = "<b>%s %p</b>\n%b"
# Sort messages by urgency. # Sort messages by urgency.
sort = yes sort = yes
# Show how many messages are currently hidden (because of geometry). # Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes indicate_hidden = yes
# Alignment of message text. # Alignment of message text.
# Possible values are "left", "center" and "right". # Possible values are "left", "center" and "right".
alignment = left alignment = left
# The frequency with wich text that is longer than the notification # The frequency with wich text that is longer than the notification
# window allows bounces back and forth. # window allows bounces back and forth.
# This option conflicts with "word_wrap". # This option conflicts with "word_wrap".
# Set to 0 to disable. # Set to 0 to disable.
bounce_freq = 0 bounce_freq = 0
# Show age of message if message is older than show_age_threshold # Show age of message if message is older than show_age_threshold
# seconds. # seconds.
# Set to -1 to disable. # Set to -1 to disable.
show_age_threshold = 60 show_age_threshold = 60
# Split notifications into multiple lines if they don't fit into # Split notifications into multiple lines if they don't fit into
# geometry. # geometry.
word_wrap = yes word_wrap = yes
# Ignore newlines '\n' in notifications. # Ignore newlines '\n' in notifications.
ignore_newline = no ignore_newline = no
# The geometry of the window: # The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}] # [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window. # The geometry of the message window.
@ -65,64 +65,64 @@
# screen width minus the width defined in within the geometry option. # screen width minus the width defined in within the geometry option.
# 53 = 30 + 23 (bar-height) # 53 = 30 + 23 (bar-height)
geometry = "360x5-30+30" geometry = "560x5-30+30"
# Shrink window if it's smaller than the width. Will be ignored if # Shrink window if it's smaller than the width. Will be ignored if
# width is 0. # width is 0.
shrink = yes shrink = yes
# The transparency of the window. Range: [0; 100]. # The transparency of the window. Range: [0; 100].
# This option will only work if a compositing windowmanager is # This option will only work if a compositing windowmanager is
# present (e.g. xcompmgr, compiz, etc.). # present (e.g. xcompmgr, compiz, etc.).
transparency = 15 transparency = 15
# Don't remove messages, if the user is idle (no mouse or keyboard input) # Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds. # for longer than idle_threshold seconds.
# Set to 0 to disable. # Set to 0 to disable.
idle_threshold = 120 idle_threshold = 120
# Which monitor should the notifications be displayed on. # Which monitor should the notifications be displayed on.
monitor = 0 monitor = 0
# Display notification on focused monitor. Possible modes are: # Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer # mouse: follow mouse pointer
# keyboard: follow window with keyboard focus # keyboard: follow window with keyboard focus
# none: don't follow anything # none: don't follow anything
# #
# "keyboard" needs a windowmanager that exports the # "keyboard" needs a windowmanager that exports the
# _NET_ACTIVE_WINDOW property. # _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern windowmanagers. # This should be the case for almost all modern windowmanagers.
# #
# If this option is set to mouse or keyboard, the monitor option # If this option is set to mouse or keyboard, the monitor option
# will be ignored. # will be ignored.
follow = none follow = none
# Should a notification popped up from history be sticky or timeout # Should a notification popped up from history be sticky or timeout
# as if it would normally do. # as if it would normally do.
sticky_history = yes sticky_history = yes
# Maximum amount of notifications kept in history # Maximum amount of notifications kept in history
history_length = 100 history_length = 100
# Display indicators for URLs (U) and actions (A). # Display indicators for URLs (U) and actions (A).
show_indicators = no show_indicators = no
# The height of a single line. If the height is smaller than the # The height of a single line. If the height is smaller than the
# font height, it will get raised to the font height. # font height, it will get raised to the font height.
# This adds empty space above and under the text. # This adds empty space above and under the text.
line_height = 0 line_height = 0
# Draw a line of "separatpr_height" pixel height between two # Draw a line of "separatpr_height" pixel height between two
# notifications. # notifications.
# Set to 0 to disable. # Set to 0 to disable.
separator_height = 2 separator_height = 2
# Padding between text and separator. # Padding between text and separator.
padding = 15 padding = 15
# Horizontal padding. # Horizontal padding.
horizontal_padding = 16 horizontal_padding = 16
# Define a color for the separator. # Define a color for the separator.
# possible values are: # possible values are:
# * auto: dunst tries to find a color fitting to the background; # * auto: dunst tries to find a color fitting to the background;
@ -130,23 +130,23 @@
# * frame: use the same color as the frame; # * frame: use the same color as the frame;
# * anything else will be interpreted as a X color. # * anything else will be interpreted as a X color.
separator_color = frame separator_color = frame
# Print a notification on startup. # Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst # This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash. # automatically after a crash.
startup_notification = false startup_notification = false
# dmenu path. # dmenu path.
dmenu = /usr/bin/rofi -dmenu -i -p '' -config ~/.config/dunst/dunst-xresources dmenu = /usr/bin/rofi -dmenu -i -p '' -config ~/.config/dunst/dunst-xresources
# Browser for opening urls in context menu. # Browser for opening urls in context menu.
browser = /usr/bin/firefox browser = /usr/bin/chromium
# Align icons left/right/off # Align icons left/right/off
icon_position = left icon_position = left
# Scale larger icons down to this size, set to 0 to disable # Scale larger icons down to this size, set to 0 to disable
max_icon_size = 44 max_icon_size = 72
# Paths to default icons. # Paths to default icons.
icon_path = /usr/share/icons/Xenlism-Wildfire/Status/:/usr/share/icons/Xenlism-Wildfire/Devices/:/usr/share/icons/Adwaita/32x32/status:/usr/share/icons/Adwaita/32x32/devices icon_path = /usr/share/icons/Xenlism-Wildfire/Status/:/usr/share/icons/Xenlism-Wildfire/Devices/:/usr/share/icons/Adwaita/32x32/status:/usr/share/icons/Adwaita/32x32/devices
@ -159,18 +159,18 @@
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key). # "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys. # Xev might be helpful to find names for keys.
# Close notification. # Close notification.
close = mod4+Escape close = mod4+Escape
# Close all notifications. # Close all notifications.
close_all = ctrl+mod4+Escape close_all = ctrl+mod4+Escape
# Redisplay last message(s). # Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left # On the US keyboard layout "grave" is normally above TAB and left
# of "1". # of "1".
history = mod4+grave history = mod4+grave
# Context menu. # Context menu.
context = mod4+shift+period context = mod4+shift+period
@ -205,7 +205,7 @@
# The script will be called as follows: # The script will be called as follows:
# script appname summary body icon urgency # script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL". # where urgency can be "LOW", "NORMAL" or "CRITICAL".
# #
# NOTE: if you don't want a notification to be displayed, set the format # NOTE: if you don't want a notification to be displayed, set the format
# to "". # to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order # NOTE: It might be helpful to run dunst -print in a terminal in order

View File

@ -25,12 +25,6 @@
<string>FontAwesome 5 Pro Light</string> <string>FontAwesome 5 Pro Light</string>
</edit> </edit>
</match> </match>
<alias>
<family>SF Mono</family>
<accept>
<family>monospace</family>
</accept>
</alias>
<match target="font"> <match target="font">
<test qual="all" name="family" compare="eq"><string>Noto Sans</string></test> <test qual="all" name="family" compare="eq"><string>Noto Sans</string></test>

View File

@ -10,15 +10,14 @@
diffFilter = diff-highlight diffFilter = diff-highlight
[commit] [commit]
gpgsign = true gpgsign = true
[fetch]
prune = true
[push] [push]
default = upstream default = upstream
[pull] [pull]
rebase = true rebase = true
prune = true
[rebase] [rebase]
autoStash = true autoStash = true
[log]
date = relative
[format] [format]
pretty = format:%h %Cblue%ad%Creset %ae %Cgreen%s%Creset pretty = format:%h %Cblue%ad%Creset %ae %Cgreen%s%Creset
[alias] [alias]
@ -26,7 +25,6 @@
pushall = !git remote | xargs -L1 git push pushall = !git remote | xargs -L1 git push
count = !echo $(pwd) && git rev-list HEAD --count count = !echo $(pwd) && git rev-list HEAD --count
unpushed = !git log --oneline @{u}..HEAD unpushed = !git log --oneline @{u}..HEAD
leaders = !git shortlog -s -n --all --no-merges
[advice] [advice]
statusHints = false statusHints = false
pushUpdateRejected = false pushUpdateRejected = false

View File

@ -1,6 +1,7 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance. # DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead. # Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/frebib/.gtkrc-2.0.mine"
gtk-theme-name="Arc-Dark" gtk-theme-name="Arc-Dark"
gtk-icon-theme-name="Xenlism-Wildfire" gtk-icon-theme-name="Xenlism-Wildfire"
gtk-font-name="Noto Sans 9" gtk-font-name="Noto Sans 9"

View File

@ -1,7 +1,7 @@
VteTerminal, VteTerminal,
TerminalScreen, TerminalScreen,
vte-terminal { vte-terminal {
padding: 1.8em; padding: 1.3em;
} }
.window-frame, .window-frame:backdrop { .window-frame, .window-frame:backdrop {

19
.config/i3/alt-tab.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
# ================================================================================== #
# Focus the next window on the current workspace in i3, e.g. for binding to Alt+Tab #
# Depends: jq, awk, i3wm (obviously) #
# Author: Nervengift <dev@nerven.gift> #
# License: Don't think this deserves a license, Public Domain #
# Known bugs: doesn't work with non-window container focused #
# ================================================================================== #
ws=$(i3-msg -t get_workspaces|jq "map(select(.focused))[]|.name")
echo $ws
windows=$(i3-msg -t get_tree|jq ".nodes|map(.nodes[])|map(.nodes[])|map(select(.type==\"workspace\" and .name==$ws))[0].nodes|map(recurse(.nodes[]))|map(.window)|.[]|values")
echo $windows
current=$(i3-msg -t get_tree|jq "recurse(.nodes[])|select(.focused)|.window")
echo $current
if [ "x$current" != "xnull" ]; then
next=$(echo $windows | awk "BEGIN {RS=\" \";FS=\" \"};NR == 1 {w=\$1};{if (f == 1){w=\$1;f=0}else if (\$1 == \"$current\") f=1};END {print w}")
i3-msg [id=$next] focus > /dev/null
fi

View File

@ -31,6 +31,7 @@ bindsym $mod+w split v
# enter fullscreen mode for the focused container # enter fullscreen mode for the focused container
bindsym $mod+Shift+f fullscreen toggle global bindsym $mod+Shift+f fullscreen toggle global
bindsym $mod+f fullscreen toggle bindsym $mod+f fullscreen toggle
popup_during_fullscreen leave_fullscreen
# change container layout (stacked, tabbed, toggle split) # change container layout (stacked, tabbed, toggle split)
bindsym $mod+p layout stacking bindsym $mod+p layout stacking
@ -45,21 +46,7 @@ bindsym $mod+e sticky toggle
bindsym $mod+a focus parent bindsym $mod+a focus parent
bindsym $mod+o focus child bindsym $mod+o focus child
# Screen configs # set $10 "10:"
set $bl "DP-5"
set $tl "DP-1"
set $br "HDMI-0"
set $tr "DP-3"
# Workspace -> Screen
workspace 1 output $bl
workspace 2 output $br
workspace 3 output $tl
workspace 4 output $tr
workspace 5 output $bl
workspace 6 output $br
workspace 7 output $tl
workspace 8 output $tr
# switch to workspace # switch to workspace
bindsym $mod+1 workspace 1 bindsym $mod+1 workspace 1
@ -71,7 +58,7 @@ bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7 bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8 bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9 bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10 bindsym $mod+0 workspace $10
# move workspaces across screens # move workspaces across screens
bindsym $mod+$alt+d move workspace to output left bindsym $mod+$alt+d move workspace to output left
@ -89,7 +76,7 @@ bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7 bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8 bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9 bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10 bindsym $mod+Shift+0 move container to workspace $10
# opens logout/shutdown menu # opens logout/shutdown menu
bindsym $mod+Shift+Escape exec --no-startup-id ~/.config/i3/powermenu.sh bindsym $mod+Shift+Escape exec --no-startup-id ~/.config/i3/powermenu.sh
@ -107,64 +94,80 @@ client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-co
client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color $bg-color client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color $bg-color
client.urgent $urgent-bg-color $urgent-bg-color $text-color $bg-color client.urgent $urgent-bg-color $urgent-bg-color $text-color $bg-color
exec_always --no-startup-id feh --no-fehbg --no-xinerama --bg-fill $DOTFILES/lakesidesunrise.jpg exec_always --no-startup-id killall -q polybar; while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done; exec polybar -r i3bar
# Window rules # Window rules
for_window [class="Pinentry"] floating enable for_window [class="Pinentry"] floating enable
for_window [class="Pavucontrol"] floating enable for_window [class="Pavucontrol"] floating enable
for_window [class="Blueman-manager"] floating enable for_window [class="Blueman-manager"] floating enable
for_window [class="floating-term" instance="termite"] floating enable
for_window [class="Alacritty" instance="floating-term"] floating enable
for_window [class="^jetbrains-.+$" title="win0"] floating enable
for_window [window_role="floating-term"] floating enable for_window [window_role="floating-term"] floating enable
for_window [window_role="pop-up"] floating enable
for_window [window_role="i3blocks-update-term"] floating enable
for_window [window_role="i3blocks-clock-term"] floating enable
for_window [title="^rofi$"] floating enable for_window [title="^rofi$"] floating enable
new_window none new_window none
new_float none new_float none
gaps inner 24 gaps inner 12
gaps outer 4 gaps outer 4
focus_follows_mouse yes focus_follows_mouse yes
popup_during_fullscreen smart
# keybindings # keybindings
bindsym $mod+Shift+j reload bindsym $mod+Shift+j reload
bindsym --release $mod+x exec xkill bindsym $mod+c exec chromium
bindsym $mod+c exec notify-send "Try again" "You meant \\\$mod+b" bindsym $mod+v exec "i3-sensible-terminal -e \\"$SHELL -c vim;$SHELL\\"
bindsym $mod+b exec systemd-run-i3 -n firefox bindsym $mod+Ctrl+v exec "i3-sensible-terminal -r floating-term -e \\"$SHELL -c vim;$SHELL\\"
bindsym $mod+Return exec systemd-run-i3 -n alacritty bindsym Mod1+Tab exec ~/.config/i3/alt-tab.sh
bindsym $mod+Ctrl+Return exec systemd-run-i3 -n alacritty --class floating bindsym $mod+Return exec i3-sensible-terminal
bindsym $mod+Shift+Return exec systemd-run-i3 -n alacritty --working-directory "$(xcwd)" bindsym $mod+Ctrl+Return exec i3-sensible-terminal -r floating-term
bindsym $mod+Ctrl+Shift+Return exec systemd-run-i3 -n alacritty --class floating --working-directory "$(xcwd)" bindsym $mod+Shift+Return exec i3-sensible-terminal -d "`xcwd`"
bindsym $mod+v exec systemd-run-i3 -n alacritty -e sh -c "($SHELL -c $EDITOR || :) && $SHELL" bindsym $mod+Ctrl+Shift+Return exec i3-sensible-terminal -r floating-term -d "`xcwd`"
bindsym $mod+Ctrl+v exec systemd-run-i3 -n alacritty --class floating -e sh -c "($SHELL -c $EDITOR || : ) && $SHELL" bindsym $mod+l exec ~/.config/i3/lock.sh
bindsym $mod+l exec dm-tool switch-to-greeter bindsym $mod+space exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window"
bindsym $mod+space exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window -run-command 'systemd-run-i3 -n {cmd}'" bindsym $mod+Shift+p exec rofi-pass
bindsym $mod+Shift+p exec rofi-pass --root $(grep path ~/.config/gopass/config.yml | sed -E 's|^.*fs\+file://||g' | tr '\n' ':') | sed 's/:$//g' bindsym $mod+Shift+e exec rofi-emoji
bindsym $mod+Shift+e exec "pkill rofi; rofi -show emoji -modi emoji -normal-window"
bindsym $mod+Shift+i exec rofi-fontawesome bindsym $mod+Shift+i exec rofi-fontawesome
bindsym --release Print exec screenshot bindsym --release Print exec screenshot
bindsym --release $mod+Print exec screenshot --clip bindsym --release $mod+Print exec imgur-screenshot
bindsym --release Shift+Print exec screenshot --active bindsym $mod+$alt+space exec --no-startup-id ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks
bindsym --release $mod+Shift+Print exec screenshot --active --clip bindsym $mod+numbersign exec "i3-sensible-terminal -e 'sh -c xclip\ -o\ |\ gpg\ --decrypt\ 2>&1\ \;\ $SHELL'"
bindsym $mod+Shift+x exec systemd-run-i3 -n i3-sensible-terminal --class floating-term --hold -e /bin/echo "$(xprop -id $(xdotool getactivewindow))" bindsym $mod+r exec "bash -c 'pwgen -nc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i'"
bindsym $mod+$alt+space exec systemd-run-i3 -s background -n ~/.config/i3/cycleaudio.py bindsym $mod+g exec "LINK=$(gist -PRpc); notify-send -c transfer \\"<a href=\\\\"$LINK\\\\">$LINK</a>\\""
bindsym $mod+numbersign exec systemd-run-i3 -n i3-sensible-terminal --hold -e sh -c 'xclip -o | gpg --decrypt 2>&1'
bindsym $mod+r exec bash -c 'pwgen -snc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i -r'
bindsym $mod+g exec systemd-run-i3 -n notify-send -c transfer "$(gist -PRpc)"
bindsym --release $mod+i exec systemd-run-i3 -s background -n sh -c 'sleep 0.5 && xdotool getactivewindow type --delay 250 "$(xclip -o -selection clipboard)"'
# Media player controls # Media player controls
bindsym XF86AudioPlay exec --no-startup-id playerctl -a play-pause bindsym XF86AudioPlay exec --no-startup-id mpc toggle
bindsym XF86AudioPause exec --no-startup-id playerctl -a pause bindsym XF86AudioPause exec --no-startup-id mpc pause
bindsym XF86AudioStop exec --no-startup-id playerctl -a stop bindsym XF86AudioStop exec --no-startup-id mpc stop
bindsym XF86AudioNext exec --no-startup-id playerctl -a next bindsym XF86AudioNext exec --no-startup-id mpc next
bindsym XF86AudioPrev exec --no-startup-id playerctl -a previous bindsym XF86AudioPrev exec --no-startup-id mpc previous
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +1000 bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +1000
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -1000 bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -1000
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86MonBrightnessUp exec light -A 5 bindsym XF86MonBrightnessUp exec xbacklight -inc 5 && pkill -RTMIN+12 i3blocks
bindsym XF86MonBrightnessDown exec light -U 5 bindsym XF86MonBrightnessDown exec xbacklight -dec 5 && pkill -RTMIN+12 i3blocks
# app launch shortcuts
exec --no-startup-id ~/.config/i3/disable-standby-fs.py
exec --no-startup-id feh --no-fehbg --no-xinerama --bg-fill ~/pictures/lakesidesunrise.jpg
exec --no-startup-id xautolock -time 5 -locker 'dm-tool lock' -nocloseout -nocloseerr
# startup programs
exec --no-startup-id nextcloud
exec --no-startup-id nm-applet
exec --no-startup-id blueman-applet
exec --no-startup-id redshift
exec --no-startup-id xbindkeys
exec --no-startup-id solaar
exec --no-startup-id pullover
exec --no-startup-id onboard
exec --no-startup-id touchegg
exec --no-startup-id mailnag
exec --no-startup-id compton -b --config ~/.config/compton.conf
exec --no-startup-id chromium --no-startup-window
exec --no-startup-id thunderbird
exec i3-msg 'workspace 1; exec chromium'
# vim:ft=i3 # vim:ft=i3

18
.config/i3/powermenu.sh Executable file
View File

@ -0,0 +1,18 @@
#!/bin/sh
option=$(echo "lock|logout|sleep|hibernate|power off|reboot|windows" | rofi -sep "|" -dmenu -i -p "" -auto-select -hide-scrollbar -monitor 0 -width 8 -lines 7 -location 3 -tokenize false -matching normal | xargs)
case $option in
lock) ./lock.sh;;
logout) i3-msg exit;;
sleep) systemctl suspend;;
hibernate) systemctl hibernate;;
power\ off) systemctl poweroff;;
reboot) systemctl reboot;;
windows)
windows=`efibootmgr | grep -Po -m1 'Boot\K(\d{4}).*Windows.*' | head -c4`
sudo efibootmgr -n $windows
sudo hibereboot;;
esac
exit 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,20 @@
imgur_icon_path="$HOME/.config/imgur-screenshot/imgur.ico"
imgur_acct_key=""
imgur_secret=""
login="false"
log_file="$HOME/.config/imgur-screenshot/imgur-screenshot.log"
credentials_file="$HOME/.config/imgur-screenshot/credentials.conf"
file_name_format="screenshot-%Y-%m-%d-%H%M%S.png" # when using scrot, must end with .png!
file_dir="$HOME/pictures/screenshots"
screenshot_select_command="maim -m 10 -us %img"
screenshot_window_command="maim -m 10 -uw %img"
edit_command="gimp %img"
edit="false"
exit_on_selection_fail="true"
edit_on_selection_fail="false"
exit_on_album_creation_fail="true"
open_command="xdg-open %url"
open="false"
copy_url="true"
keep_file="true"
check_update="true"

View File

@ -0,0 +1,29 @@
[spamfilterplugin]
filter_text = viagra
[core]
imap_idle_timeout = 10
enabled_plugins = dbusplugin, libnotifyplugin, soundplugin
poll_interval = 10
credentialstore = auto
connectivity_test = auto
autostart = 1
[soundplugin]
soundfile = mailnag.ogg
[libnotifyplugin]
notification_mode = 2
max_visible_mails = 10
[account1]
enabled = 1
name = frebib.net
user = me@frebib.net
password =
server = imappro.zoho.com
port = 993
ssl = 1
imap = 1
idle = 0
folder = INBOX, Spam

View File

@ -30,11 +30,11 @@ text/plain=vim.desktop
text/x-makefile=vim.desktop text/x-makefile=vim.desktop
# Chromium for web/html # Chromium for web/html
text/html=firefox.desktop text/html=chromium.desktop
x-scheme-handler/about=firefox.desktop x-scheme-handler/about=chromium.desktop
x-scheme-handler/http=firefox.desktop x-scheme-handler/http=chromium.desktop
x-scheme-handler/https=firefox.desktop x-scheme-handler/https=chromium.desktop
x-scheme-handler/unknown=firefox.desktop x-scheme-handler/unknown=chromium.desktop
# Various desktop applications # Various desktop applications
inode/directory=nautilus.desktop inode/directory=nautilus.desktop

View File

@ -2,9 +2,8 @@
background = transparent background = transparent
text = #eceff1 text = #eceff1
icon = #147a82 icon = #147a82
warning = #ffcb00 warning = #bd2c40
critical = #bd2c40 critical = #bd2c40
urgent = #e53935
[settings] [settings]
format-foreground = ${colours.text} format-foreground = ${colours.text}
@ -13,49 +12,42 @@ format-spacing = 0
format-margin = 2.5 format-margin = 2.5
format-offset = 0 format-offset = 0
screenchange-reload = true
[bar/i3bar] [bar/i3bar]
monitor = ${env:MONITOR:HDMI-0} monitor = ${env:MONITOR:eDP1}
dpi = ${xrdb:Xft.dpi:96} dpi = ${xrdb:Xft.dpi:-1}
fixed-center = false fixed-center = false
enable-ipc = true enable-ipc = true
width = 100% width = 100%
#offset-x = 18px height = 44
height = 16pt
bottom = true bottom = true
radius = 0 radius = 0
font-0 = sans:pixelsize=9;2
font-1 = FontAwesome5ProLight:pixelsize=10;2
foreground = ${colours.text} foreground = ${colours.text}
background = ${colours.background} background = ${colours.background}
padding-left = 0
padding-right = 2pt
border-size = 0
border-left-size = 16pt
border-right-size = 16pt
border-bottom-size = 8pt
line-size = 0 line-size = 0
line-colour = #f00 line-colour = #f00
padding-left = 2
padding-right = 2
module-margin-left = 0
module-margin-right = 1
font-0 = sans:pixelsize=9;1
font-1 = FontAwesome5Pro:pixelsize=10;2
modules-left = i3 modules-left = i3
modules-center = modules-center =
# modules-right = volume updates weather xkeyboard wlan gateway eth memory cpu xbacklight battery cputemp gputemp date # modules-right = volume updates weather xkeyboard wlan eth memory cpu xbacklight battery temperature date
modules-right = volume updates weather wlan gateway eth memory cpu xbacklight battery cputemp gputemp date modules-right = volume updates weather wlan eth memory cpu xbacklight battery temperature date
tray-position = right tray-position = right
tray-detached = false tray-detached = false
tray-background = ${colours.background} tray-background = ${root.background}
#tray-offset-x = -20 tray-offset-x = -6
#tray-offset-y = 0 tray-offset-y = -2
tray-maxsize = 16 tray-maxsize = 24
tray-padding = 8pt tray-padding = 2
tray-scale = 1.0 tray-scale = 1.0
cursor-click = pointer cursor-click = pointer
@ -68,20 +60,13 @@ exec = $XDG_CONFIG_HOME/polybar/update.sh
tail = true tail = true
format-prefix = " " format-prefix = " "
format-prefix-foreground = ${colours.icon} format-prefix-foreground = ${colours.icon}
click-left = systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -e sh -c "yay; kill -USR1 %pid%; sleep 1" click-left = i3-msg exec -- i3-sensible-terminal -r i3blocks-update-term -e "yay && kill -USR1 %pid% || kill --USR1 %pid%"
[module/weather] [module/weather]
type = custom/script type = custom/script
exec = $XDG_CONFIG_HOME/polybar/weather.sh exec = $XDG_CONFIG_HOME/polybar/weather.sh
interval = 120 interval = 120
click-left = systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -d 125 40 --hold -e sh -c "curl wttr.in" click-left = i3-msg exec "i3-sensible-terminal -r floating-term -e 'sh -c \"xdotool getactivewindow windowsize 910 680 && curl wttr.in && sleep infinity\"'"
[module/gateway]
type = custom/script
exec = for v in 4 6; do ip -$v r show default | xargs -rL1 sh -c 'fping --retry=1 --quiet --iface "$4" "$2"'; done && echo  || echo '%{F#f41f1c}%{F-}'
interval = 2
format-prefix = " "
format-prefix-foreground = ${colours.icon}
[module/xkeyboard] [module/xkeyboard]
type = internal/xkeyboard type = internal/xkeyboard
@ -104,7 +89,7 @@ wrapping-scroll = false
; Only show workspaces on the same output as the bar ; Only show workspaces on the same output as the bar
; pin-workspaces = true ; pin-workspaces = true
label-mode-padding = 2 label-mode-padding = 3
label-mode-foreground = ${colours.text} label-mode-foreground = ${colours.text}
label-mode-background = ${colours.background} label-mode-background = ${colours.background}
@ -130,7 +115,7 @@ label-visible-underline = ${self.label-focused-underline}
; urgent = Workspace with urgency hint set ; urgent = Workspace with urgency hint set
label-urgent = ${self.label-focused} label-urgent = ${self.label-focused}
label-urgent-foreground = ${colours.urgent} label-urgent-foreground = ${colours.warning}
label-urgent-padding = ${self.label-focused-padding} label-urgent-padding = ${self.label-focused-padding}
@ -208,7 +193,7 @@ label-disconnected-foreground = ${colours.critical}
type = internal/date type = internal/date
interval = 1 interval = 1
label = %{A3:systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -d 66 35 -qq --hold -e sh -c "cal -y $(date +%Y)":}%date% %time%%{A} label = %{A3:i3-sensible-terminal -r i3blocks-clock-term -e "sh -c \"xdotool getactivewindow windowsize 500 600; cal -y $(date +%Y); stty -echo; exec sleep infinity\"" &:}%date% %time%%{A}
time = %H:%M time = %H:%M
time-alt = %a %e %b %Y %H:%M:%S time-alt = %a %e %b %Y %H:%M:%S
@ -221,8 +206,8 @@ format-prefix-foreground = ${colours.icon}
type = internal/pulseaudio type = internal/pulseaudio
label-volume = %percentage% label-volume = %percentage%
format-volume = %{A3:systemd-run --user --no-block -- pavucontrol:}<ramp-volume> <label-volume>%{A} format-volume = %{A3:pavucontrol:}<ramp-volume> <label-volume>%{A}
format-muted = %{A3:systemd-run --user --no-block -- pavucontrol:}<label-muted>%{A} format-muted = %{A3:pavucontrol:}<label-muted>%{A}
label-volume-foreground = ${root.foreground} label-volume-foreground = ${root.foreground}
format-muted-foreground = ${colours.icon} format-muted-foreground = ${colours.icon}
@ -241,7 +226,7 @@ ramp-volume-5 = ""
type = internal/battery type = internal/battery
battery = BAT0 battery = BAT0
adapter = AC0 adapter = AC0
full-at = 98 full-at = 95
format-full = <label-full> format-full = <label-full>
format-charging = <label-charging> format-charging = <label-charging>
@ -267,10 +252,10 @@ ramp-capacity-0-foreground = ${colours.critical}
ramp-capacity-1-foreground = ${colours.warning} ramp-capacity-1-foreground = ${colours.warning}
[module/cputemp] [module/temperature]
type = internal/temperature type = internal/temperature
hwmon-path = /sys/devices/platform/nct6775.656/hwmon/hwmon1/temp2_input thermal-zone = 1
base-temperature = 25 warn-temperature = 70
format = <ramp> <label> format = <ramp> <label>
format-warn = <ramp> <label-warn> format-warn = <ramp> <label-warn>
@ -282,20 +267,13 @@ label-warn-foreground = ${colours.background}
ramp-0 =  ramp-0 = 
ramp-1 =  ramp-1 = 
ramp-2 =  ramp-2 = 
ramp-3 = ramp-3 =
ramp-4 = ramp-4 =
ramp-5 = ramp-5 =
ramp-6 = 
ramp-7 = 
ramp-foreground = ${colours.icon} ramp-foreground = ${colours.icon}
[module/gputemp]
type = custom/script
exec = nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits
interval = 10
label = %output%°C
format-prefix = " "
format-prefix-foreground = ${colours.icon}
[module/powermenu] [module/powermenu]
type = custom/menu type = custom/menu
@ -324,4 +302,12 @@ menu-2-0-exec = sudo poweroff
menu-2-1 = cancel menu-2-1 = cancel
menu-2-1-exec = menu-open-0 menu-2-1-exec = menu-open-0
[settings]
screenchange-reload = true
;compositing-background = xor
;compositing-background = screen
;compositing-foreground = source
;compositing-border = over
; vim:ft=dosini ; vim:ft=dosini

View File

@ -71,8 +71,8 @@ get_icon() {
522) echo;; # heavy intensity shower rain 522) echo;; # heavy intensity shower rain
531) echo;; # ragged shower rain 531) echo;; # ragged shower rain
600) echo;; # light snow 600) echo;; # light snow
601) echo ;; # snow 601) echo ;; # snow
602) echo ;; # heavy snow 602) echo ;; # heavy snow
611) echo;; # sleet 611) echo;; # sleet
612) echo;; # shower sleet 612) echo;; # shower sleet
615) echo;; # light rain and snow 615) echo;; # light rain and snow
@ -86,6 +86,11 @@ get_icon() {
741) echo;; # fog 741) echo;; # fog
762) echo;; # volcanic ash 762) echo;; # volcanic ash
781) echo;; # tornado 781) echo;; # tornado
800) echo ;; # clear sky
801) echo ;; # few clouds
802) echo ;; # scattered clouds
803) echo ;; # broken clouds
804) echo ;; # overcast clouds
# 731) echo ;; # sand, dust whirls # 731) echo ;; # sand, dust whirls
# 751) echo ;; # sand # 751) echo ;; # sand
# 761) echo ;; # dust # 761) echo ;; # dust

View File

@ -1,5 +1,5 @@
top's Config File (Linux processes with windows) top's Config File (Linux processes with windows)
Id:i, Mode_altscr=0, Mode_irixps=0, Delay_time=0.500, Curwin=0 Id:i, Mode_altscr=0, Mode_irixps=0, Delay_time=0.100, Curwin=0
Def fieldscur=¥&K¨³´»½@·º¹56ÄFÅ')*+,-./0128<>?ABCGHIJLMNOPQRSTUVWXYZ[\]^_`abcdefghij Def fieldscur=¥&K¨³´»½@·º¹56ÄFÅ')*+,-./0128<>?ABCGHIJLMNOPQRSTUVWXYZ[\]^_`abcdefghij
winflags=163638, sortindx=21, maxtasks=0, graph_cpus=1, graph_mems=1 winflags=163638, sortindx=21, maxtasks=0, graph_cpus=1, graph_mems=1
summclr=1, msgsclr=1, headclr=3, taskclr=1 summclr=1, msgsclr=1, headclr=3, taskclr=1

26
.config/rofi/config Normal file
View File

@ -0,0 +1,26 @@
!-----------------------------
! Rofi config
!-----------------------------
! State: 'bg', 'fg', 'bgalt' 'hlbg', 'hlfg'
rofi.color-window: #F2383C4A, #2F343F
rofi.color-normal: #00383C4A, #D3DAE3, #00383C4A, #5294E2, #ECEFF1
rofi.bc: #CC383C4A
rofi.bw: 5
rofi.padding: 8
rofi.lines: 14
rofi.width: 40
rofi.font: Noto Sans 18
rofi.line-margin: 6
rofi.sep: |
rofi.prompt: >
rofi.ssh-command: {terminal} -e "{ssh-client} {host}"
rofi.separator-style: solid
rofi.kb-row-tab: Shift+Tab
rofi.kb-row-select: Tab
rofi.matching: glob
rofi.tokenize: true
rofi.normal-window: true
! vim: ft=xdefaults

View File

@ -2,8 +2,8 @@ configuration {
theme: "arc-dark"; theme: "arc-dark";
font: "sans 14"; font: "sans 14";
dpi: 0; dpi: 0;
width: 35; width: 40;
lines: 10; lines: 12;
/* show-icons: true; */ /* show-icons: true; */
separator-style: "solid"; separator-style: "solid";

View File

@ -0,0 +1,10 @@
[Unit]
Description=Lock X session using i3lock
[Service]
User=%i
Environment=DISPLAY=:0
ExecStart=sh -c '~/.config/i3/lock.sh'
[Install]
WantedBy=sleep.target

View File

@ -1,5 +1,5 @@
[options] [options]
font = monospace 9 font = monospace 9.5
scrollback_lines = 1000000 scrollback_lines = 1000000
cursor_blink = off cursor_blink = off
size_hints = true size_hints = true
@ -7,7 +7,7 @@ size_hints = true
[colors] [colors]
cursor = #5294E2 cursor = #5294E2
foreground = #ECEFF1 foreground = #ECEFF1
background = rgba(56, 60, 74, 0.85) background = rgba(56, 60, 74, 0.95)
highlight = #5294E2 highlight = #5294E2
# Colour order: # Colour order:

View File

@ -49,18 +49,23 @@ endfunction
set autowrite set autowrite
autocmd CursorHold,CursorHoldI,InsertLeave,FocusGained,FocusLost * call SaveIfExist() autocmd CursorHold,CursorHoldI,InsertLeave,FocusGained,FocusLost * call SaveIfExist()
" Auto-resize split on window resize
autocmd VimResized * wincmd =
" Search options " Search options
set hlsearch set hlsearch
set ignorecase set ignorecase
set smartcase set smartcase
set magic set magic
" Auto-resize split on window resize
autocmd VimResized * wincmd =
" More natural splits " More natural splits
set splitbelow " Horizontal split below current. set splitbelow " Horizontal split below current.
set splitright " Vertical split to right of current. set splitright " Vertical split to right of current.
" GVim settings
set guifont=Sauce\ Code\ Pro\ 9
set guioptions=
" Whitespace highlight settings " Whitespace highlight settings
set list set list
set listchars=eol:$,space,tab:>-,trail:◦,extends:▶,precedes:◀ set listchars=eol:$,space,tab:>-,trail:◦,extends:▶,precedes:◀
@ -109,7 +114,6 @@ Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
Plug 'chr4/nginx.vim' Plug 'chr4/nginx.vim'
Plug 'PotatoesMaster/i3-vim-syntax' Plug 'PotatoesMaster/i3-vim-syntax'
Plug 'puppetlabs/puppet-syntax-vim' Plug 'puppetlabs/puppet-syntax-vim'
Plug 'saltstack/salt-vim'
Plug 'arrufat/vala.vim' Plug 'arrufat/vala.vim'
call plug#end() call plug#end()
@ -303,7 +307,5 @@ cmap w!! w !sudo tee > /dev/null %
" Unmap ex-mode " Unmap ex-mode
map Q <nop> map Q <nop>
autocmd FileType markdown setlocal ts=2 sts=2 sw=2 et autocmd FileType markdown setlocal ts=2 sts=2 sw=2 et
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 et indentkeys-=<:> autocmd FileType yaml setlocal ts=2 sts=2 sw=2 et
autocmd FileType gitcommit setlocal cc=72 et sw=4

4
.config/zsh/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
/antigen/
/log/
/histfile
/.zcompdump*

View File

@ -1,50 +1,36 @@
unsetopt MULTIBYTE
# Config and cache directory paths # Config and cache directory paths
ZSH_DIR="$XDG_CONFIG_HOME/zsh" CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
LOG_DIR="$XDG_DATA_HOME/logs" ZSH_DIR="$CONFIG_DIR/zsh"
HISTFILE="$XDG_DATA_HOME/zsh/history" LOG_DIR="$ZSH_DIR/log"
mkdir -p "$LOG_DIR"
HISTFILE="$ZSH_DIR/histfile"
HISTSIZE=999999 HISTSIZE=999999
SAVEHIST=999999 SAVEHIST=999999
mkdir -p "$LOG_DIR" "$(dirname "$HISTFILE")"
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; } exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
# Only set tty if running interactively # Only set tty if running interactively
if exists tty && tty -s; then if exists tty && tty -s 1>/dev/null 2>/dev/null; then
# Resolve at shell runtime # Resolve at shell runtime
export GPG_TTY="$(tty)" export GPG_TTY="$(tty)"
fi fi
# Configure less and add colours
export LESS="-RI --mouse --wheel-lines=3"
export PAGER="less"
export MANPAGER="less -+N"
export SYSTEMD_PAGER="less $LESS"
# Disable histfile
export LESSHISTFILE=-
# Use .local/share for z instead of ~/.z
export _Z_DATA="$XDG_DATA_HOME/z"
if exists tput; then
export LESS_TERMCAP_mb=$(tput bold; tput setaf 2) # green
export LESS_TERMCAP_md=$(tput bold; tput setaf 6) # cyan
export LESS_TERMCAP_me=$(tput sgr0)
export LESS_TERMCAP_so=$(tput bold; tput setaf 4) # blue
export LESS_TERMCAP_se=$(tput rmso; tput sgr0)
export LESS_TERMCAP_us=$(tput smul; tput bold; tput setaf 7) # white
export LESS_TERMCAP_ue=$(tput rmul; tput sgr0)
export LESS_TERMCAP_mr=$(tput rev)
export LESS_TERMCAP_mh=$(tput dim)
export LESS_TERMCAP_ZN=$(tput ssubm)
export LESS_TERMCAP_ZV=$(tput rsubm)
export LESS_TERMCAP_ZO=$(tput ssupm)
export LESS_TERMCAP_ZW=$(tput rsupm)
fi
# Set some useful ZSH/Bash options # Set some useful ZSH/Bash options
setopt sharehistory extendedhistory histignorealldups histignorespace histreduceblanks setopt sharehistory histignorealldups histignorespace histreduceblanks
setopt pathdirs autocd autopushd extendedglob nullglob alwaystoend interactivecomments dvorak setopt pathdirs autocd autopushd extendedglob nullglob alwaystoend interactivecomments dvorak
# Completion initialisation
autoload -U compinit ; compinit
autoload -U bashcompinit ; bashcompinit
# gopass completion
if exists gopass; then
source <(gopass completion bash)
fi
zstyle ':completion:*:sudo|_::' environ PATH="/sbin:/usr/sbin:$PATH" HOME="/root" zstyle ':completion:*:sudo|_::' environ PATH="/sbin:/usr/sbin:$PATH" HOME="/root"
zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*' zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*'
zstyle ':completion:*' rehash true zstyle ':completion:*' rehash true
@ -61,7 +47,8 @@ x-bash-backward-kill-word(){ WORDCHARS='' zle kill-word; }
zle -N x-bash-backward-kill-word zle -N x-bash-backward-kill-word
# Load antigen & plugins # Load antigen & plugins
ANTIGEN_LOG="$LOG_DIR/antigen-$(date -u --iso-8601=seconds | cut -d+ -f1).log" ADOTDIR="$ZSH_DIR/antigen" # Antigen directory
ANTIGEN_LOG="$LOG_DIR/antigen-$(date +"%Y_%m_%d_%I_%M_%p").log"
antigen_src="$ADOTDIR/antigen.zsh" antigen_src="$ADOTDIR/antigen.zsh"
if [ ! -f "$antigen_src" ]; then if [ ! -f "$antigen_src" ]; then
git clone https://github.com/zsh-users/antigen.git "$ADOTDIR" git clone https://github.com/zsh-users/antigen.git "$ADOTDIR"
@ -70,9 +57,9 @@ source "$antigen_src"
antigen bundle zsh-users/zsh-completions antigen bundle zsh-users/zsh-completions
antigen bundle zsh-users/zsh-autosuggestions antigen bundle zsh-users/zsh-autosuggestions
antigen bundle zsh-users/zsh-syntax-highlighting antigen bundle zsh-users/zsh-history-substring-search
antigen bundle zsh-users/zsh-syntax-highlighting@feature/redrawhook
antigen bundle mafredri/zsh-async antigen bundle mafredri/zsh-async
antigen bundle agkozak/zsh-z
antigen apply antigen apply
@ -93,10 +80,11 @@ bindkey '^[^[[3~' x-bash-backward-kill-word
bindkey '^[^[[3^' x-bash-backward-kill-word bindkey '^[^[[3^' x-bash-backward-kill-word
bindkey '^[[A' fzf-history-widget # Up (fzf) bindkey '^[[A' fzf-history-widget # Up (fzf)
bindkey '^[[B' fzf-history-widget # Down (fzf) bindkey '^[[B' fzf-history-widget # Down (fzf)
bindkey '^F' fzf-file-widget # Ctrl+F file search (fzf) bindkey '^[[1;3A' history-substring-search-up # Alt+Up (hsh)
bindkey '^[[1;3B' history-substring-search-down # Alt+Down (hsh)
bindkey "^F" fzf-file-widget bindkey "^V" edit-command-line
bindkey -M vicmd "^W" backward-delete-word bindkey -M vicmd "^V" edit-command-line
bindkey -M vicmd d vi-backward-char bindkey -M vicmd d vi-backward-char
bindkey -M vicmd h vi-down-line-or-history bindkey -M vicmd h vi-down-line-or-history
@ -107,12 +95,14 @@ bindkey -M vicmd K vi-kill-eol
bindkey -M vicmd j vi-find-next-char-skip bindkey -M vicmd j vi-find-next-char-skip
bindkey -M vicmd l vi-repeat-search bindkey -M vicmd l vi-repeat-search
# Backspace across newlines when in vi-mode
bindkey -v '^?' backward-delete-char
ZSH_AUTOSUGGEST_USE_ASYNC=true ZSH_AUTOSUGGEST_USE_ASYNC=true
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=128
ZSH_AUTOSUGGEST_CLEAR_WIDGETS=("${(@)ZSH_AUTOSUGGEST_CLEAR_WIDGETS:#(up|down)-line-or-history}") ZSH_AUTOSUGGEST_CLEAR_WIDGETS=("${(@)ZSH_AUTOSUGGEST_CLEAR_WIDGETS:#(up|down)-line-or-history}")
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(history-substring-search-up history-substring-search-down)
HISTORY_SUBSTRING_SEARCH_FUZZY=true
HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=true
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='underline'
default='fg=12' default='fg=12'
prog='fg=blue' prog='fg=blue'
@ -149,7 +139,7 @@ ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[assign]='fg=green' ZSH_HIGHLIGHT_STYLES[assign]='fg=green'
ZSH_HIGHLIGHT_STYLES[redirection]='fg=cyan,bold' ZSH_HIGHLIGHT_STYLES[redirection]='fg=cyan,bold'
source "$XDG_CONFIG_HOME/aliases" source "$DOTFILES/aliases"
# Load some manual plugins # Load some manual plugins
source "$ZSH_DIR/plugins/sudo.zsh" source "$ZSH_DIR/plugins/sudo.zsh"
@ -157,13 +147,3 @@ source "$ZSH_DIR/plugins/fish-theme.zsh"
source "$ZSH_DIR/plugins/git-rprompt.zsh" source "$ZSH_DIR/plugins/git-rprompt.zsh"
[ -f '/usr/share/fzf/key-bindings.zsh' ] && source /usr/share/fzf/key-bindings.zsh [ -f '/usr/share/fzf/key-bindings.zsh' ] && source /usr/share/fzf/key-bindings.zsh
[ -f '/usr/share/doc/pkgfile/command-not-found.zsh' ] && source /usr/share/doc/pkgfile/command-not-found.zsh [ -f '/usr/share/doc/pkgfile/command-not-found.zsh' ] && source /usr/share/doc/pkgfile/command-not-found.zsh
# Completion initialisation
autoload -U compinit bashcompinit
compinit
bashcompinit
# gopass completion
if exists gopass; then
source <(gopass completion bash)
fi

5
.gitignore vendored
View File

@ -1,11 +1,6 @@
bookmarks bookmarks
.config/secrets .config/secrets
.config/gopass/gopass-logo-small.png
.config/gtk-2.0/gtkfilechooser.ini
.config/imgur-screenshot/credentials.conf .config/imgur-screenshot/credentials.conf
.config/mailnag/mailnag.dat
.config/zsh/.zshrc.zwc
*.log *.log
.xournal/recent-files .xournal/recent-files

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "surface-scripts"]
path = surface-scripts
url = https://github.com/frebib/surface-scripts.git

81
.profile Normal file
View File

@ -0,0 +1,81 @@
export LC_ALL=en_GB.UTF-8
export LANG=en_GB.UTF-8
export LC_NUMERIC=en_GB
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
export XDG_LOCAL_HOME="$HOME/.local"
mkdir -p "$XDG_CONFIG_HOME" "$XDG_CACHE_HOME" "$XDG_DATA_HOME" "$XDG_LOCAL_HOME"
case "$(basename "$(readlink -f /proc/$$/exe)")" in
zsh) thisfile="$(readlink -f "${(%):-%N}")";;
bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";;
*) thisfile="$(find /proc/$$/fd/ | xargs -n1 -r readlink -f | grep profile | head -n1)";;
esac
export EDITOR="vim"
export VISUAL="vim"
# Override paths for non-compliant programs
# https://wiki.archlinux.org/index.php/XDG_Base_Directory_support
export CARGO_HOME="$XDG_DATA_HOME/cargo"
export GNUPGHOME="$XDG_CONFIG_HOME/gnupg"
export GOPATH="$XDG_DATA_HOME/go"
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/settings.ini"
export PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass"
export PYTHONHISTFILE="$XDG_DATA_HOME/python/histfile"
export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
export TERMINFO="$XDG_DATA_HOME/terminfo"
export TERMINFO_DIRS="$XDG_DATA_HOME/terminfo:/usr/share/terminfo"
export VIMDIR="$XDG_CONFIG_HOME/vim"
export VIMRC="$VIMDIR/vimrc"
export VIMINIT=":so $VIMRC"
export WEECHAT_HOME="$XDG_CONFIG_HOME/weechat"
export XINITRC="$XDG_CONFIG_HOME/X11/xinitrc"
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
export DOTFILES="$(dirname "${thisfile:-$XDG_CONFIG_HOME/dotfiles/.profile}")"
export PATH="${PATH}:/sbin:/usr/sbin:$DOTFILES/scripts:$HOME/.local/share/surface-scripts:$GOPATH/bin"
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
# Configure less and add colours
export LESS="-RI"
export PAGER="less"
export MANPAGER="less -+N"
# Disable histfile
export LESSHISTFILE=-
if exists tput; then
export LESS_TERMCAP_mb=$(tput bold; tput setaf 2) # green
export LESS_TERMCAP_md=$(tput bold; tput setaf 6) # cyan
export LESS_TERMCAP_me=$(tput sgr0)
export LESS_TERMCAP_so=$(tput bold; tput setaf 4) # blue
export LESS_TERMCAP_se=$(tput rmso; tput sgr0)
export LESS_TERMCAP_us=$(tput smul; tput bold; tput setaf 7) # white
export LESS_TERMCAP_ue=$(tput rmul; tput sgr0)
export LESS_TERMCAP_mr=$(tput rev)
export LESS_TERMCAP_mh=$(tput dim)
export LESS_TERMCAP_ZN=$(tput ssubm)
export LESS_TERMCAP_ZV=$(tput rsubm)
export LESS_TERMCAP_ZO=$(tput ssupm)
export LESS_TERMCAP_ZW=$(tput rsupm)
fi
# Source secret keys and values into environment
if [ -f "$XDG_CONFIG_HOME/secrets" ]; then
set -o allexport
source $XDG_CONFIG_HOME/secrets
set +o allexport
fi
# Start a dbus session daemon for programs that require it
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && exists dbus-launch; then
eval $(dbus-launch --sh-syntax --exit-with-session)
dbus-update-activation-environment --systemd \
DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY
fi

3
Element/.gitignore vendored
View File

@ -1,3 +0,0 @@
*
!.gitignore
!config.json

View File

@ -1,88 +0,0 @@
{
"default_server_config": {
"m.homeserver": {
"base_url": "https://chat.nerdhouse.io/",
"server_name": "chat.nerdhouse.io"
},
"m.identity_server": {
"base_url": "https://chat.nerdhouse.io/"
}
},
"disable_custom_urls": false,
"disable_guests": false,
"disable_login_language_selector": false,
"disable_3pid_login": false,
"brand": "NerdChat",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"integrations_widgets_urls": [
"https://scalar.vector.im/_matrix/integrations/v1",
"https://scalar.vector.im/api",
"https://scalar-staging.vector.im/_matrix/integrations/v1",
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"defaultCountryCode": "GB",
"showLabsSettings": false,
"features": {
"feature_font_scaling": "labs",
"feature_pinning": "labs",
"feature_custom_status": "labs",
"feature_custom_tags": "labs",
"feature_state_counters": "labs",
"feature_irc_ui": "labs"
},
"default_federate": true,
"default_theme": "dark",
"roomDirectory": {
"servers": [
"matrix.org"
]
},
"welcomeUserId": "@riot-bot:matrix.org",
"piwik": {
"url": "https://piwik.riot.im/",
"whitelistedHSUrls": ["https://matrix.org"],
"whitelistedISUrls": ["https://vector.im", "https://matrix.org"],
"siteId": 1
},
"enable_presence_by_hs_url": {
"https://matrix.org": false,
"https://matrix-client.matrix.org": false
},
"settingDefaults": {
"breadcrumbs": true,
"custom_themes": [
{
"name": "Arc Dark",
"is_dark": true,
"fonts": {
"general": "sans",
"monospace": "monospace"
},
"colors": {
"accent-color": "#5294e2",
"primary-color": "#d3dae3",
"warning-color": "#bf616a",
"sidebar-color": "#313742",
"roomlist-background-color": "#383c4a",
"roomlist-text-color": "#afb8c5",
"roomlist-text-secondary-color": "#7c818c",
"roomlist-highlights-color": "#404552",
"roomlist-separator-color": "#2F343F",
"timeline-background-color": "#404552",
"timeline-text-color": "#afb8c5",
"timeline-text-secondary-color": "#7c818c",
"timeline-highlights-color": "#404552",
"reaction-row-button-selected-bg-color": "#bf616a"
}
}
]
},
"jitsi": {
"preferredDomain": "jitsi.riot.im"
}
}

View File

@ -4,8 +4,7 @@
To get started, clone this repo and link the relevant files/directories To get started, clone this repo and link the relevant files/directories
```shell ```shell
git clone https://github.com/frebib/dotfiles.git ~/.config git clone https://github.com/frebib/dotfiles.git ~/.config/dotfiles
ln -sfv .config/zsh/.zshenv ~ ln -sfv .config/dotfiles/.config/* .config/
# if it is not already "enabled", make sure the systemd-environment.d generator is active ln -sfv .config/dotfiles/.profile .zprofile
sudo ln -sfv /lib/systemd/user-environment-generators/30-systemd-environment-d-generator /lib/systemd/user-generators/
``` ```

View File

@ -1,23 +0,0 @@
#!/bin/sh -u
# Graphical-specific environment variables
export TERMINAL="alacritty"
export BROWSER="firefox"
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel"
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/settings.ini"
export QT_QPA_PLATFORMTHEME=qt5ct
# https://www.reddit.com/r/linux/comments/72mfv8/psa_for_firefox_users_set_moz_use_xinput21_to/
export MOZ_USE_XINPUT2=1 # enable pixel-accurate scrolling in firefox
export XDG_CURRENT_DESKTOP="GNOME" # Fixes xdg-open
# Load Xorg resources and set the DPI
xrdb -merge $XDG_CONFIG_HOME/X11/xresources
xrandr --dpi $(xrdb -query | grep -i xft.dpi | cut -d: -f2)
setxkbmap -option caps:none
xset r rate 200 18
test -f "$XDG_CONFIG_HOME"/X11/xmodmap && \
xmodmap "$XDG_CONFIG_HOME"/X11/xmodmap

View File

@ -1,647 +0,0 @@
# Configuration for Alacritty, the GPU enhanced terminal emulator.
# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty itself.
env:
# TERM variable
#
# This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will
# check the local terminfo database and use `alacritty` if it is
# available, otherwise `xterm-256color` is used.
TERM: xterm-256color
window:
# Window dimensions (changes require restart)
#
# Specified in number of columns/lines, not pixels.
# If both are `0`, this setting is ignored.
dimensions:
columns: 120
lines: 40
# 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: 22
y: 22
# Spread additional padding evenly around the terminal content.
dynamic_padding: false
# Window decorations
#
# Values for `decorations`:
# - full: Borders and title bar
# - none: Neither borders nor title bar
#
# Values for `decorations` (macOS only):
# - transparent: Title bar, transparent background and title bar buttons
# - buttonless: Title bar, transparent background, but no title bar buttons
decorations: full
# Startup Mode (changes require restart)
#
# Values for `startup_mode`:
# - Windowed
# - Maximized
# - Fullscreen
#
# Values for `startup_mode` (macOS only):
# - SimpleFullscreen
startup_mode: Windowed
# Window title
#title: Alacritty
# Allow terminal applications to change Alacritty's window title.
dynamic_title: true
# Window class (Linux/BSD only):
#class:
# Application instance name
#instance: Alacritty
# General application class
#general: Alacritty
# GTK theme variant (Linux/BSD only)
#
# Override the variant of the GTK theme. Commonly supported values are `dark` and `light`.
# Set this to `None` to use the default theme variant.
#gtk_theme_variant: None
scrolling:
# Maximum number of lines in the scrollback buffer.
# Specifying '0' will disable scrolling.
history: 100000
# Number of lines the viewport will move for every line scrolled when
# scrollback is enabled (history > 0).
multiplier: 3
# Font configuration
font:
# Normal (roman) font face
#normal:
# Font family
#
# Default:
# - (macOS) Menlo
# - (Linux/BSD) monospace
# - (Windows) Consolas
#family: monospace
# The `style` can be specified to pick a specific face.
#style: Regular
# Bold font face
#bold:
# Font family
#
# If the bold family is not specified, it will fall back to the
# value specified for the normal font.
#family: monospace
# The `style` can be specified to pick a specific face.
#style: 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: monospace
# The `style` can be specified to pick a specific face.
#style: Italic
# Bold italic font face
#bold_italic:
# Font family
#
# If the bold italic family is not specified, it will fall back to the
# value specified for the normal font.
#family: monospace
# The `style` can be specified to pick a specific face.
#style: Bold Italic
# Point size
size: 9.0
# Offset is the extra space around each character. `offset.y` can be thought of
# as modifying the line spacing, and `offset.x` as modifying the letter spacing.
#offset:
# x: 0
# y: 0
# Glyph offset determines the locations of the glyphs within their cells with
# the default being at the bottom. Increasing `x` moves the glyph to the right,
# increasing `y` moves the glyph upwards.
#glyph_offset:
# x: 0
# y: 0
# Thin stroke font rendering (macOS only)
#
# Thin strokes are suitable for retina displays, but for non-retina screens
# it is recommended to set `use_thin_strokes` to `false`
#
# macOS >= 10.14.x:
#
# If the font quality on non-retina display looks bad then set
# `use_thin_strokes` to `true` and enable font smoothing by running the
# following command:
# `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
#
# This is a global setting and will require a log out or restart to take
# effect.
#use_thin_strokes: true
# If `true`, bold text is drawn using the bright color variants.
draw_bold_text_with_bright_colors: true
# Colors (Tomorrow Night Bright)
colors:
# Default colors
primary:
foreground: '#eceff1'
background: '#383c4a'
# Bright and dim foreground colors
#
# The dimmed foreground color is calculated automatically if it is not present.
# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
# is `false`, the normal foreground color will be used.
#dim_foreground: '#9a9a9a'
#bright_foreground: '#ffffff'
# Cursor colors
#
# Colors which should be used to draw the terminal cursor. If these are
# unset, the cursor color will be the inverse of the cell color.
cursor:
text: '#eceff1'
cursor: '#5294e2'
# Vi mode cursor colors
#
# Colors for the cursor when the vi mode is active. If these are unset, the
# cursor color will be the inverse of the cell color.
#vi_mode_cursor:
# text: '#000000'
# cursor: '#ffffff'
# Selection colors
#
# Colors which should be used to draw the selection area. If selection
# background is unset, selection color will be the inverse of the cell colors.
# If only text is unset the cell text color will remain the same.
selection:
text: CellForeground
background: '#5294e2'
# Normal colors
normal:
black: '#333638'
red: '#f41f1c'
green: '#8bc34a'
yellow: '#ffc107'
blue: '#0266f4'
magenta: '#cc17cc'
cyan: '#10aeba'
white: '#8b9396'
# Bright colors
bright:
black: '#475760'
red: '#e53727'
green: '#9ccc65'
yellow: '#ffa000'
blue: '#81b3f9'
magenta: '#a56ecc'
cyan: '#5ddae2'
white: '#eceff1'
# Dim colors
#
# If the dim colors are not set, they will be calculated automatically based
# on the `normal` colors.
#dim:
# black: '#000000'
# red: '#8c3336'
# green: '#7a8530'
# yellow: '#97822e'
# blue: '#506d8f'
# magenta: '#80638e'
# cyan: '#497e7a'
# white: '#9a9a9a'
# Indexed Colors
#
# The indexed colors include all colors from 16 to 256.
# When these are not set, they're filled with sensible defaults.
#
# Example:
# `- { index: 16, color: '#ff00ff' }`
#
#indexed_colors: []
# Visual Bell
#
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
# rung, the terminal background will be set to white and transition back to the
# default background color. You can control the rate of this transition by
# setting the `duration` property (represented in milliseconds). You can also
# configure the transition function by setting the `animation` property.
#
# Values for `animation`:
# - Ease
# - EaseOut
# - EaseOutSine
# - EaseOutQuad
# - EaseOutCubic
# - EaseOutQuart
# - EaseOutQuint
# - EaseOutExpo
# - EaseOutCirc
# - Linear
#
# Specifying a `duration` of `0` will disable the visual bell.
#visual_bell:
# animation: EaseOutExpo
# duration: 0
# color: '#ffffff'
# 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: 0.80
selection:
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
# When set to `true`, selected text will be copied to the primary clipboard.
save_to_clipboard: true
cursor:
# Cursor style
#
# Values for `style`:
# - ▇ Block
# - _ Underline
# - | Beam
style: Block
# Vi mode cursor style
#
# If the vi mode cursor style is `None` or not specified, it will fall back to
# the style of the active value of the normal cursor.
#
# See `cursor.style` for available options.
#vi_mode_style: None
# 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:
# - (macOS) /bin/bash --login
# - (Linux/BSD) user login shell
# - (Windows) powershell
#shell:
# program: /bin/bash
# args:
# - --login
# Startup directory
#
# Directory the shell is started in. If this is unset, or `None`, the working
# directory of the parent process will be used.
#working_directory: None
# WinPTY backend (Windows only)
#
# Alacritty defaults to using the newer ConPTY backend if it is available,
# since it resolves a lot of bugs and is quite a bit faster. If it is not
# available, the the WinPTY backend will be used instead.
#
# Setting this option to `true` makes Alacritty use the legacy WinPTY backend,
# even if the ConPTY backend is available.
#winpty_backend: false
# Send ESC (\x1b) before characters when alt is pressed.
#alt_send_esc: true
mouse:
# Click settings
#
# The `double_click` and `triple_click` settings control the time
# alacritty should wait for accepting multiple clicks as one double
# or triple click.
#double_click: { threshold: 300 }
#triple_click: { threshold: 300 }
# If this is `true`, the cursor is temporarily hidden when typing.
hide_when_typing: false
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/BSD) xdg-open
# - (Windows) explorer
launcher:
program: xdg-open
args: []
# 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
# Mouse bindings
#
# Mouse bindings are specified as a list of objects, much like the key
# bindings further below.
#
# To trigger mouse bindings when an application running within Alacritty captures the mouse, the
# `Shift` modifier is automatically added as a requirement.
#
# Each mouse binding will specify a:
#
# - `mouse`:
#
# - Middle
# - Left
# - Right
# - Numeric identifier such as `5`
#
# - `action` (see key bindings)
#
# And optionally:
#
# - `mods` (see key bindings)
mouse_bindings:
- { mouse: Middle, action: PasteSelection }
# Key bindings
#
# Key bindings are specified as a list of objects. For example, this is the
# default paste binding:
#
# `- { key: V, mods: Control|Shift, action: Paste }`
#
# Each key binding will specify a:
#
# - `key`: Identifier of the key pressed
#
# - A-Z
# - F1-F24
# - Key0-Key9
#
# A full list with available key codes can be found here:
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
#
# Instead of using the name of the keys, the `key` field also supports using
# the scancode of the desired key. Scancodes have to be specified as a
# decimal number. This command will allow you to display the hex scancodes
# for certain keys:
#
# `showkey --scancodes`.
#
# Then exactly one of:
#
# - `chars`: Send a byte sequence to the running application
#
# The `chars` field writes the specified string to the terminal. This makes
# it possible to pass escape sequences. To find escape codes for bindings
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
# of tmux. Note that applications use terminfo to map escape sequences back
# to keys. It is therefore required to update the terminfo when changing an
# escape sequence.
#
# - `action`: Execute a predefined action
#
# - ToggleViMode
# - Copy
# - Paste
# - PasteSelection
# - IncreaseFontSize
# - DecreaseFontSize
# - ResetFontSize
# - ScrollPageUp
# - ScrollPageDown
# - ScrollLineUp
# - ScrollLineDown
# - ScrollToTop
# - ScrollToBottom
# - ClearHistory
# - Hide
# - Minimize
# - Quit
# - ToggleFullscreen
# - SpawnNewInstance
# - ClearLogNotice
# - ClearSelection
# - ReceiveChar
# - None
#
# (`mode: Vi` only):
# - Open
# - Up
# - Down
# - Left
# - Right
# - First
# - Last
# - FirstOccupied
# - High
# - Middle
# - Low
# - SemanticLeft
# - SemanticRight
# - SemanticLeftEnd
# - SemanticRightEnd
# - WordRight
# - WordLeft
# - WordRightEnd
# - WordLeftEnd
# - Bracket
# - ToggleNormalSelection
# - ToggleLineSelection
# - ToggleBlockSelection
# - ToggleSemanticSelection
#
# (macOS only):
# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
#
# - `command`: Fork and execute a specified command plus arguments
#
# The `command` field must be a map containing a `program` string and an
# `args` array of command line parameter strings. For example:
# `{ program: "alacritty", args: ["-e", "vttest"] }`
#
# And optionally:
#
# - `mods`: Key modifiers to filter binding actions
#
# - Command
# - Control
# - Option
# - Super
# - Shift
# - Alt
#
# Multiple `mods` can be combined using `|` like this:
# `mods: Control|Shift`.
# Whitespace and capitalization are relevant and must match the example.
#
# - `mode`: Indicate a binding for only specific terminal reported modes
#
# This is mainly used to send applications the correct escape sequences
# when in different modes.
#
# - AppCursor
# - AppKeypad
# - Alt
#
# A `~` operator can be used before a mode to apply the binding whenever
# the mode is *not* active, e.g. `~Alt`.
#
# Bindings are always filled by default, but will be replaced when a new
# binding with the same triggers is defined. To unset a default binding, it can
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
# a no-op if you do not wish to receive input characters for that binding.
#
# If the same trigger is assigned to multiple actions, all of them are executed
# at once.
key_bindings:
- { key: Paste, action: Paste }
- { key: Copy, action: Copy }
#- { key: L, mods: Control, action: ClearLogNotice }
#- { key: L, mods: Control, mode: ~Vi, chars: "\x0c" }
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, }
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, }
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
# Vi Mode
#- { key: Space, mods: Shift|Control, mode: Vi, action: ScrollToBottom }
#- { key: Space, mods: Shift|Control, action: ToggleViMode }
#- { key: Escape, mode: Vi, action: ClearSelection }
#- { key: I, mode: Vi, action: ScrollToBottom }
#- { key: I, mode: Vi, action: ToggleViMode }
#- { key: Y, mods: Control, mode: Vi, action: ScrollLineUp }
#- { key: E, mods: Control, mode: Vi, action: ScrollLineDown }
#- { key: G, mode: Vi, action: ScrollToTop }
#- { key: G, mods: Shift, mode: Vi, action: ScrollToBottom }
#- { key: B, mods: Control, mode: Vi, action: ScrollPageUp }
#- { key: F, mods: Control, mode: Vi, action: ScrollPageDown }
#- { key: U, mods: Control, mode: Vi, action: ScrollHalfPageUp }
#- { key: D, mods: Control, mode: Vi, action: ScrollHalfPageDown }
#- { key: Y, mode: Vi, action: Copy }
#- { key: V, mode: Vi, action: ToggleNormalSelection }
#- { key: V, mods: Shift, mode: Vi, action: ToggleLineSelection }
#- { key: V, mods: Control, mode: Vi, action: ToggleBlockSelection }
#- { key: V, mods: Alt, mode: Vi, action: ToggleSemanticSelection }
#- { key: Return, mode: Vi, action: Open }
#- { key: K, mode: Vi, action: Up }
#- { key: J, mode: Vi, action: Down }
#- { key: H, mode: Vi, action: Left }
#- { key: L, mode: Vi, action: Right }
#- { key: Up, mode: Vi, action: Up }
#- { key: Down, mode: Vi, action: Down }
#- { key: Left, mode: Vi, action: Left }
#- { key: Right, mode: Vi, action: Right }
#- { key: Key0, mode: Vi, action: First }
#- { key: Key4, mods: Shift, mode: Vi, action: Last }
#- { key: Key6, mods: Shift, mode: Vi, action: FirstOccupied }
#- { key: H, mods: Shift, mode: Vi, action: High }
#- { key: M, mods: Shift, mode: Vi, action: Middle }
#- { key: L, mods: Shift, mode: Vi, action: Low }
#- { key: B, mode: Vi, action: SemanticLeft }
#- { key: W, mode: Vi, action: SemanticRight }
#- { key: E, mode: Vi, action: SemanticRightEnd }
#- { key: B, mods: Shift, mode: Vi, action: WordLeft }
#- { key: W, mods: Shift, mode: Vi, action: WordRight }
#- { key: E, mods: Shift, mode: Vi, action: WordRightEnd }
#- { key: Key5, mods: Shift, mode: Vi, action: Bracket }
# (Windows, Linux, and BSD 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: ResetFontSize }
- { key: Add, mods: Control|Shift, action: IncreaseFontSize }
- { key: Subtract, mods: Control|Shift, action: DecreaseFontSize }
- { key: Minus, mods: Control|Shift, action: DecreaseFontSize }
# (Windows only)
#- { key: Return, mods: Alt, action: ToggleFullscreen }
# (macOS only)
#- { key: K, mods: Command, mode: ~Vi, chars: "\x0c" }
#- { 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: V, mods: Command, action: Paste }
#- { key: C, mods: Command, action: Copy }
#- { key: H, mods: Command, action: Hide }
#- { key: M, mods: Command, action: Minimize }
#- { key: Q, mods: Command, action: Quit }
#- { key: W, mods: Command, action: Quit }
#- { key: N, mods: Command, action: SpawnNewInstance }
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
debug:
# Display the time it takes to redraw each frame.
#render_timer: false
# Keep the log file after quitting Alacritty.
#persistent_logging: false
# Log level
#
# Values for `log_level`:
# - None
# - Error
# - Warn
# - Info
# - Debug
# - Trace
log_level: Info
# Print all received window events.
#print_events: false

83
aliases
View File

@ -1,9 +1,3 @@
case "$(basename "$(readlink -f /proc/$$/exe)")" in
zsh) thisfile="$(readlink -f "${(%):-%N}")";;
bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";;
*) thisfile="$(find /proc/$$/fd/ | xargs -n1 -r readlink -f | grep aliases | head -n1)";;
esac
# Global aliases for ZSH # Global aliases for ZSH
if alias -g 2>/dev/null; then if alias -g 2>/dev/null; then
alias -g ...=../.. alias -g ...=../..
@ -59,14 +53,13 @@ alias svim=sudoedit
# This will enable us to use aliases in sudo. # This will enable us to use aliases in sudo.
# (If alias finishes with a space or tab, the shell will check if the next command is also aliased.) # (If alias finishes with a space or tab, the shell will check if the next command is also aliased.)
# Source: https://github.com/mayah/home/blob/master/.zsh/zshrc.d/alias.zsh # Source: https://github.com/mayah/home/blob/master/.zsh/zshrc.d/alias.zsh
alias sudo='sudo ' alias sudo='sudo -E '
alias open=xdg-open alias open=xdg-open
# Command rewrites # Command rewrites
alias rm='rm -i' alias rm='rm -i'
alias mv='mv -i' alias mv='mv -i'
alias cp='cp -ir' alias cp='cp -ir'
alias scp='scp -r'
alias dd='dd status=progress' alias dd='dd status=progress'
alias ssh="ssh -tt" alias ssh="ssh -tt"
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file" alias wget="wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file"
@ -112,9 +105,7 @@ mcd(){ mkdir -p -- $@ && cd -- $@; }
randstr() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w $1 | head -n 1; } randstr() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w $1 | head -n 1; }
# System aliases # System aliases
alias sc="systemctl" alias s="sudo systemctl"
alias ssc="sudo systemctl"
alias scu="systemctl --user"
alias j=journalctl alias j=journalctl
alias ps='ps aux' alias ps='ps aux'
alias catn='tail -n +1 --' alias catn='tail -n +1 --'
@ -123,7 +114,6 @@ alias chx='chmod +x'
# Git Aliases # Git Aliases
alias g=git alias g=git
alias ginit='git init'
alias gignore='$EDITOR .gitignore' alias gignore='$EDITOR .gitignore'
alias gitc='$EDITOR $XDG_CONFIG_HOME/git/config' alias gitc='$EDITOR $XDG_CONFIG_HOME/git/config'
alias ggignore='$EDITOR $XDG_CONFIG_HOME/git/gitignore' alias ggignore='$EDITOR $XDG_CONFIG_HOME/git/gitignore'
@ -136,51 +126,41 @@ alias gau="git add -u"
alias gaN="git add -N" alias gaN="git add -N"
alias gaa="ga -A" alias gaa="ga -A"
alias grm="git rm" alias grm="git rm"
alias gc="git commit -s" alias gc="git commit"
alias gcm="git commit -s -em" alias gcm="gc -m"
alias gca="git commit -s --amend --date=\"$(date -R)\"" gcmst() { git stash -u -k && git commit -m "$1" && git stash pop; }
alias gcn="git commit -s --no-edit" alias gca="git commit --amend"
alias gcan="gca -s --no-edit" alias gcn="git commit --no-edit"
alias gcam="gca -s -m" alias gcan="git commit --amend --no-edit"
alias gcam="git commit --amend -m"
alias gst="git status" alias gst="git status"
alias gm="git merge" alias gm="git merge"
alias gma="git merge --abort" alias gma="git merge --abort"
alias grb="git rebase" alias grb="git rebase"
alias grba="grb --abort" alias grba="grb --abort"
alias grbc="grb --continue" alias grbc="grb --continue"
alias grbsk="grb --skip"
alias grbsh="grb --show-current"
alias grbom="git rebase origin/master"
alias gcp="git cherry-pick"
alias gf="git fetch" alias gf="git fetch"
alias gp="git push" alias gp="git push"
alias gpf="gp --force" alias gpf="gp --force"
alias gpsu="git push --set-upstream" alias gpsu="git push --set-upstream"
alias gpoH="git push origin HEAD"
alias gpsuom="git push --set-upstream origin master" alias gpsuom="git push --set-upstream origin master"
alias gpall="git remote | xargs -L1 git push" alias gpall="git remote | xargs -L1 git push"
alias gl="git pull --rebase" alias gl="git pull --rebase"
alias glp="gl && gp" alias glp="gl && gp"
alias gd="git diff --patch-with-stat" alias gd="git diff"
alias gdni="gd --no-index" alias gds="git diff --staged"
alias gds="gd --staged" alias gsh="git show"
alias gsh="git show --format=fuller --patch-with-stat" alias glg="git log --stat --color"
alias glg="git log --color --format=fuller --stat" alias glog="git log --oneline --decorate --color --graph"
alias glgp="git log --color --format=fuller --patch-with-stat"
alias glog="git log --color --oneline --decorate --graph"
alias grst="git reset" alias grst="git reset"
alias gundo="git reset --keep @~1" alias gundo="git reset @~1"
alias gclean="git clean" alias gclean="git clean"
alias gbr="git branch" alias gbr="git branch"
alias gtg="git tag"
alias gbl="git blame"
alias gr="git remote" alias gr="git remote"
alias grv="git revert" alias grv="git remote -v"
alias gra="gr add" alias gra="gr add"
alias grr="gr rm" alias grr="gr rm"
alias grao="gra origin" alias grao="gra origin"
@ -194,11 +174,8 @@ alias gstv="gsta show -p stash@{0}"
# Docker aliases # Docker aliases
alias d=docker alias d=docker
alias dps="docker ps --format='table {{.ID}}\t{{.Image}}\t{{.Label \"org.label-schema.version\"}}\t{{.Networks}}\t{{.RunningFor}}\t{{.Status}}\t{{.Names}}' | sed '1s/version/VERSION/'" alias dps='docker ps'
alias dpsa="docker ps -a --format='table {{.ID}}\t{{.Image}}\t{{.Label \"org.label-schema.version\"}}\t{{.Networks}}\t{{.RunningFor}}\t{{.Status}}\t{{.Names}}' | sed '1s/version/VERSION/'" alias dpsa='docker ps -a'
alias dnets="docker network ls -q | xargs docker inspect | jq '.[] | select(.Name != \"host\" and .Name != \"none\") | [.] | map(.Name + \"\t\" + (.IPAM.Config | map(.Subnet) | join(\"\t\")))[]' -r | sort -V -k2,3 | column -t"
daddrs() { docker inspect ${1:-bridge} | jq '.[0].Containers | map(.Name + "\t" + .IPv4Address + "\t" + .IPv6Address)[]' -r | sort -V -k2,3 | column -t; }
alias din='docker inspect'
alias drm='docker rm' alias drm='docker rm'
alias drmi='docker rmi' alias drmi='docker rmi'
alias dim='docker images' alias dim='docker images'
@ -282,38 +259,30 @@ do_dsh() {
alias dc='docker-compose' alias dc='docker-compose'
alias dm='docker-machine' alias dm='docker-machine'
dmc() { eval $(docker-machine env $1); } alias dmc='eval $(docker-machine env $1)'
# ZFS aliases # ZFS aliases
alias zfs='sudo zfs' alias zfs='sudo zfs'
alias zpool='sudo zpool' alias zpool='sudo zpool'
alias z=zfs
alias zp=zpool alias zp=zpool
zl() { (set -o pipefail; command zfs list $@ | grep -Ev 'docker/[0-9a-f]{64}' | column -t -R 2,3,4); return $?; } zl() { (set -o pipefail; command zfs list $@ | grep -Ev 'docker/[0-9a-f]{64}'); return $?; }
_zl() { _zfs "list $@"; } _zl() { _zfs "list $@"; }
# General Aliases # General Aliases
alias ssha='eval `ssh-agent` ; ssh-add' alias ssha='eval `ssh-agent` ; ssh-add'
alias aliases="$EDITOR $thisfile ; exec zsh" alias aliases="$EDITOR $DOTFILES/aliases ; exec zsh"
alias vimrc="$EDITOR $VIMRC" alias vimrc="$EDITOR $VIMRC"
alias zshrc="$EDITOR ${ZDOTDIR:-$HOME}/.zshrc ; exec zsh" alias zshrc="$EDITOR ${ZDOTDIR:-$HOME}/.zshrc ; exec zsh"
alias gitrc="$EDITOR $XDG_CONFIG_HOME/git/config" alias gitrc="$EDITOR $XDG_CONFIG_HOME/git/config"
alias xinitrc="$EDITOR $XDG_CONFIG_HOME/X11/xinitrc" alias xinitrc="$EDITOR $XDG_CONFIG_HOME/X11/xinitrc"
alias xresources="$EDITOR $XDG_CONFIG_HOME/X11/xresources ; xrdb merge $XDG_CONFIG_HOME/X11/xresources" alias xresources="$EDITOR $XDG_CONFIG_HOME/X11/xresources ; xrdb merge $XDG_CONFIG_HOME/X11/xresources"
alias sshc="$EDITOR ~/.ssh/config" alias sshc="$EDITOR ~/.ssh/config"
alias dotfiles="cd $XDG_CONFIG_HOME" alias dotfiles="cd $DOTFILES"
alias i3c="$EDITOR $XDG_CONFIG_HOME/i3/config; systemctl --user reload i3" alias i3c="$EDITOR $XDG_CONFIG_HOME/i3/config ; i3-msg restart"
alias polybarc="$EDITOR $XDG_CONFIG_HOME/polybar/config; systemctl --user reload polybar@i3bar"
alias sf=screenfetch
alias nf=neofetch
alias rot13="tr '[A-Za-z]' '[N-ZA-Mn-za-m]'" alias rot13="tr '[A-Za-z]' '[N-ZA-Mn-za-m]'"
# Networking aliases
alias ipa="ip a"
alias addrs="ip a | grep inet | grep -ve fe80 -e '127\\.0\\.0\\.1/8' -e '::1/128' | sort -n | sed 's/^\\s*//'"
# alertmanager
alias alert='amtool alert'
alias silence='amtool silence'
alias expire='amtool silence expire'
unsilence() { { for inst in "$@"; do amtool silence query instance=$inst | grep -Po '^([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})' | tee /dev/stderr | xargs -r amtool silence expire & done; wait; } | cat }
# vim: ft=sh # vim: ft=sh

View File

@ -1 +0,0 @@
--enable-features=NativeNotifications,OverlayScrollbar

View File

@ -1,34 +0,0 @@
LC_ALL="en_GB.UTF-8"
LANG="en_GB.UTF-8"
LC_NUMERIC="en_GB"
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
EDITOR="vim"
VISUAL="vim"
# Override paths for non-compliant programs
# https://wiki.archlinux.org/index.php/XDG_Base_Directory_support
ADOTDIR="$XDG_DATA_HOME/zsh/antigen"
CARGO_HOME="$XDG_DATA_HOME/cargo"
GNUPGHOME="$XDG_CONFIG_HOME/gnupg"
GOPATH="$XDG_DATA_HOME/go"
NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc"
#PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass"
PYTHONHISTFILE="$XDG_DATA_HOME/python/histfile"
RUSTUP_HOME="$XDG_DATA_HOME/rustup"
TERMINFO="$XDG_DATA_HOME/terminfo"
TERMINFO_DIRS="$XDG_DATA_HOME/terminfo:/usr/share/terminfo"
VIMDIR="$XDG_CONFIG_HOME/vim"
VIMRC="$VIMDIR/vimrc"
VIMINIT=":so $VIMRC"
WEECHAT_HOME="$XDG_CONFIG_HOME/weechat"
XINITRC="$XDG_CONFIG_HOME/X11/xinitrc"
ZDOTDIR="$XDG_CONFIG_HOME/zsh"
PATH="${PATH}:/sbin:/usr/sbin:${XDG_CONFIG_HOME}/scripts:${GOPATH}/bin"
# vim: ft=sh

View File

@ -1,17 +0,0 @@
#!/bin/sh
option="$(echo " lock| logout| sleep| hibernate| power off| reboot| windows" | \
rofi -sep "|" -dmenu -i -p "" -auto-select -hide-scrollbar -monitor 0 -width 10 -lines 7 -location 3 -tokenize false -matching normal | cut -d' ' -f2- | xargs)"
case $option in
lock) dm-tool switch-to-greeter;;
logout) systemctl --user exit;;
sleep) systemctl suspend;;
hibernate) systemctl hibernate;;
power\ off) systemctl poweroff;;
reboot) systemctl reboot;;
windows)
windows=`efibootmgr | grep -Po -m1 'Boot\K(\d{4}).*Windows.*' | head -c4`
sudo efibootmgr -n $windows
reboot;;
esac

View File

@ -1,3 +0,0 @@
prefix=${XDG_DATA_HOME}/npm
cache=${XDG_CACHE_HOME}/npm
tmp=${XDG_RUNTIME_DIR}/npm

View File

@ -1,41 +0,0 @@
[rc]
RCVersion=1
use_copy=true
use_primary=true
synchronize=true
save_history=true
history_pos=false
history_x=1
history_y=1
history_limit=25
data_size=0
item_size=5
automatic_paste=true
auto_key=false
auto_mouse=true
key_input=true
restore_empty=true
rc_edit=false
type_search=false
case_search=false
ignore_whiteonly=false
trim_wspace_begend=false
trim_newline=false
hyperlinks_only=false
confirm_clear=true
current_on_top=true
single_line=true
reverse_history=false
item_length=50
persistent_history=false
persistent_separate=false
persistent_on_top=false
persistent_delim=\\n
nonprint_disp=false
ellipsize=2
multi_user=false
icon_name=parcellite
menu_key=<Ctrl><Alt>P
history_key=<Ctrl><Alt>H
phistory_key=<Ctrl><Alt>X
actions_key=<Ctrl><Alt>A

View File

@ -1,104 +0,0 @@
# Logging
log-level = "info";
#log-file = "/home/frebib/.local/share/picom.log";
# Shadow
shadow = true;
shadow-radius = 24;
shadow-offset-x = -24;
shadow-offset-y = -24;
shadow-opacity = 0.6;
# shadow-red = 0.0;
# shadow-green = 0.0;
# shadow-blue = 0.0;
shadow-exclude = [
"class_g = 'slop'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'",
"class_g = 'firefox' && argb",
"name = 'Notification'",
"name = 'cpt_frame_window'",
"_GTK_FRAME_EXTENTS@:c"
];
# shadow-exclude = "n:e:Notification";
# shadow-exclude-reg = "x10+0+0";
xinerama-shadow-crop = true;
# Opacity
frame-opacity = 1.0;
# active-opacity = 0.8;
inactive-opacity = 0.6;
inactive-opacity-override = true;
# inactive-dim = 0.2;
# inactive-dim-fixed = true;
opacity-rule = [
"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];
# Blurring
blur:
{
method = "dual_kawase";
strength = 8;
};
blur-background-frame = true;
blur-background-fixed = true;
blur-background-exclude = [
"class_g = 'Peek'",
"class_g = 'Onboard'",
"class_g = 'slop'",
"class_g = 'Polybar'",
"class_g = 'firefox' && argb",
"window_type = 'dock'",
"window_type = 'desktop'",
"_GTK_FRAME_EXTENTS@:c"
];
# Fading
fading = true;
fade-delta = 10;
fade-in-step = 0.04
fade-out-step = 0.06;
no-fading-openclose = false;
no-fading-destroyed-argb = false;
# fade-exclude = [ ];
# Other
backend = "glx";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
use-ewmh-active-win = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;
vsync = true;
# sw-opti = true;
# unredir-if-possible = true;
# unredir-if-possible-delay = 5000;
# unredir-if-possible-exclude = [ ];
focus-exclude = [
"i:ai:chromium",
"class_g = 'firefox'",
"class_g = 'zoom'"
];
detect-transient = true;
detect-client-leader = true;
invert-color-include = [ ];
# resize-damage = 1;
# GLX backend
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
xrender-sync-fence = true;
use-damage = true;
# Window type settings
wintypes:
{
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
dock = { shadow = false; }
dnd = { shadow = false; }
popup_menu = { opacity = 0.8; }
dropdown_menu = { opacity = 0.8; }
};

View File

@ -1,27 +0,0 @@
[Appearance]
color_scheme_path=/usr/share/qt5ct/colors/airy.conf
custom_palette=false
standard_dialogs=gtk2
style=gtk2
[Fonts]
fixed=@Variant(\0\0\0@\0\0\0\x12\0M\0o\0n\0o\0s\0p\0\x61\0\x63\0\x65@\"\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
general=@Variant(\0\0\0@\0\0\0\x14\0S\0\x61\0n\0s\0 \0S\0\x65\0r\0i\0\x66@\"\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
[Interface]
activate_item_on_single_click=1
buttonbox_layout=3
cursor_flash_time=1000
dialog_buttons_have_icons=1
double_click_interval=400
gui_effects=@Invalid()
keyboard_scheme=2
menus_have_icons=true
show_shortcuts_in_context_menus=true
stylesheets=@Invalid()
toolbutton_style=4
underline_shortcut=1
wheel_scroll_lines=3
[SettingsWindow]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\a\x98\0\0\x6\xfd\0\0\v5\0\0\b8\0\0\a\x98\0\0\x6\xfd\0\0\v5\0\0\b8\0\0\0\x1\0\0\0\0\a\x80\0\0\a\x98\0\0\x6\xfd\0\0\v5\0\0\b8)

View File

@ -11,4 +11,4 @@ xrandr --output $BOTTOM_LEFT --primary --mode 1920x1080 --pos 0x1080 --rotate no
--output $TOP_RIGHT --mode 1920x1080 --pos 1920x0 --rotate inverted \ --output $TOP_RIGHT --mode 1920x1080 --pos 1920x0 --rotate inverted \
--output $BOTTOM_RIGHT --mode 1920x1080 --pos 1920x1080 --rotate normal --output $BOTTOM_RIGHT --mode 1920x1080 --pos 1920x1080 --rotate normal
feh --no-fehbg --no-xinerama --bg-fill $DOTFILES/lakesidesunrise.jpg feh --no-fehbg --no-xinerama --bg-fill ~/pictures/lakesidesunrise.jpg

View File

@ -16,4 +16,4 @@ xrandr --newmode $MODELINE 2>/dev/null || true
xrandr --addmode $OUTPUT $MODENAME 2>/dev/null || true xrandr --addmode $OUTPUT $MODENAME 2>/dev/null || true
xrandr --output $OUTPUT --mode $MODENAME xrandr --output $OUTPUT --mode $MODENAME
feh --no-fehbg --no-xinerama --bg-fill $DOTFILES/lakesidesunrise.jpg feh --no-fehbg --no-xinerama --bg-fill ~/pictures/lakesidesunrise.jpg

View File

@ -21,8 +21,11 @@ mkdir -p "$CONF_DIR"
echo Gdk/UnscaledDPI $(( $dpi*1024/($dpi/96) )) echo Gdk/UnscaledDPI $(( $dpi*1024/($dpi/96) ))
} > $CONF_DIR/xsettingsd.local } > $CONF_DIR/xsettingsd.local
echo Xft.dpi: $dpi | xrdb -merge pid=$(xprop -name xsettingsd _NET_WM_PID 2> /dev/null | awk '{print $NF}')
xrandr --dpi $dpi if [ -z "$pid" ]; then
xsettingsd -c $CONF_DIR/xsettingsd.local &
else
kill -HUP $pid
fi
systemctl --user reload-or-restart xsettingsd echo Xft.dpi: $dpi | xrdb -merge
systemctl --user --no-block reload i3 polybar@i3bar

View File

@ -1,2 +0,0 @@
#!/bin/sh
exec xdg-open steam://rungameid/271590

View File

@ -23,3 +23,8 @@ echo cd `pwd`
for file in $conffiles; do for file in $conffiles; do
ln -sfv $confpath/.config/$file . ln -sfv $confpath/.config/$file .
done done
cd $HOME
mkdir -p .local/share/ && cd .local/share
echo cd `pwd`
ln -sfv $DOTFILES/surfacetools .

View File

@ -1,7 +0,0 @@
#!/bin/sh
PID="$(pidof GTA5.exe)"
kill -s STOP $PID
sleep 30
kill -s CONT $PID

119
scripts/rofi-emoji Executable file
View File

@ -0,0 +1,119 @@
#!/usr/bin/env bash
#
# Use rofi to pick emoji because that's what this
# century is about apparently...
#
# Requirements:
# rofi, xclip, xdotool, curl, xmllint
#
# Usage:
# 1. Download all emoji
# $ rofi-emoji --download
#
# 2. Run it!
# $ rofi-emoji
#
# Notes:
# * You'll need a emoji font like "Noto Emoji" or "EmojiOne".
# * Confirming an item will automatically paste it WITHOUT
# writing it to your clipboard.
# * Ctrl+C will copy it to your clipboard WITHOUT pasting it.
#
# Where to save the emojis file.
EMOJI_FILE="${XDG_CACHE_DIR:-$HOME/.cache}/emojis.txt"
# Urls of emoji to download.
URLS=(
'https://emojipedia.org/people/'
'https://emojipedia.org/nature/'
'https://emojipedia.org/food-drink/'
'https://emojipedia.org/activity/'
'https://emojipedia.org/travel-places/'
'https://emojipedia.org/objects/'
'https://emojipedia.org/symbols/'
'https://emojipedia.org/flags/'
'https://emojipedia.org/modifiers/'
)
function download() {
notify "$(basename "$0")" 'Downloading all emoji for your pleasure'
echo -n > "$EMOJI_FILE"
for url in "${URLS[@]}"; do
echo "Downloading: $url"
# Download the list of emoji and remove all the junk around it
emojis=$(curl -s "$url" | \
xmllint --html \
--xpath '//ul[@class="emoji-list"]' - 2>/dev/null)
# Get rid of starting/closing ul tags
emojis=$(echo "$emojis" | head -n -1 | tail -n +1)
# Extract the emoji and its description
emojis=$(echo "$emojis" | \
sed -rn 's/.*<span class="emoji">(.*)<\/span> (.*)<\/a><\/li>/\1 \2/p')
echo "$emojis" >> "$EMOJI_FILE"
done
notify "$(basename "$0")" "We're all set!"
}
function toclip() {
xclip -i -selection primary
xclip -o -selection primary | xclip -i -selection clipboard
}
function repeat() {
local rplc str="$1" count="$2"
rplc="$(printf "%${count}s")"
echo "${rplc// /"$str"}"
}
function notify() {
if which notify-send 1>/dev/null 2>/dev/null; then
notify-send "$1" "$2"
fi
}
function display() {
emoji=$(cat "$EMOJI_FILE" | grep -v '#' | grep -v '^[[:space:]]*$')
update="⏫ Update emoji cache"
emoji=$(printf "$emoji\n$update")
line=$(echo "$emoji" | rofi -dmenu -i -p emoji -normal-window -kb-custom-1 Ctrl+c -kb-row-tab '' -kb-row-select Tab $@)
exit_code=$?
if [ "${line[@]}" == "$update" ]; then
download
exit 0
fi
line=($line)
last=${line[${#line[@]}-1]}
quantifier="${last:${#last}-1:1}"
echo "$quantifier" | egrep -q '^[0-9]+$' || quantifier=1
emojis="$(repeat "${line[0]}" "$quantifier")"
if [ $exit_code == 0 ]; then
xdotool type --clearmodifiers "$emojis"
echo -n "$emojis" | xclip -i
elif [ $exit_code == 10 ]; then
echo -n "$emojis" | xclip -i
fi
}
if [[ "$1" =~ -D|--download ]]; then
download
exit 0
elif [[ "$1" =~ -h|--help ]]; then
echo "usage: $0 [-D|--download]"
exit 0
fi
display

View File

@ -28,12 +28,9 @@ function download() {
echo -n > "$FONTAWESOME_FILE" echo -n > "$FONTAWESOME_FILE"
cat /usr/share/fontawesome/icons.json | \ curl https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/advanced-options/metadata/icons.json | \
jq -r --argfile ctgs <(yq r -j /usr/share/fontawesome/categories.yml) \ jq '.[] | "\\u" + .unicode + "\t" + .label' -r | \
'.[] | . as $icon | "\\\\u" + .unicode + "\t" + .label + "\t" + ( ([.search.terms,.styles,([select($ctgs[].icons[]|index($icon.label))|.label]|unique)]|add)|sort|join(", "))' | \ xargs -0 printf \
while IFS=$'\t' read icon name labels; do \
printf "%b\t%-120s\t%s\n" "$icon" "$name" "$labels";\
done \
> "$FONTAWESOME_FILE" > "$FONTAWESOME_FILE"
notify "$(basename "$0")" "We're all set!" notify "$(basename "$0")" "We're all set!"
@ -57,17 +54,18 @@ function notify() {
} }
function display() { function display() {
update=$'\tUpdate Font Awesome cache' fontawesome=$(cat "$FONTAWESOME_FILE" | grep -v '#' | grep -v '^[[:space:]]*$')
fontawesome=$(grep -v '#\|^[[:space:]]*$' "$FONTAWESOME_FILE"; printf "$update\n") update=""$'\t'"Update Font Awesome cache"
fontawesome=$(printf "$fontawesome\n$update")
line=$(echo "$fontawesome" | rofi -dmenu -i -p fontawesome -normal-window -kb-custom-1 Ctrl+c -kb-row-tab '' -kb-row-select Tab $@) line=$(echo "$fontawesome" | rofi -dmenu -i -p fontawesome -normal-window -kb-custom-1 Ctrl+c -kb-row-tab '' -kb-row-select Tab $@)
exit_code=$? exit_code=$?
if [ "${line[@]}" == "$update" ]; then if [ "${line[@]}" == "$update" ]; then
download download
display exit 0
return
fi fi
#IFS=$'\t'
line=($line) line=($line)
last=${line[${#line[@]}-1]} last=${line[${#line[@]}-1]}

View File

@ -1,41 +1,19 @@
#!/bin/bash #!/bin/sh
set -e set -e
NOTIFY_APPNAME="$(basename "$0")" NOTIFY_APPNAME="$(basename "$0")"
NOTIFY_ICONPATH="/usr/share/icons/Xenlism-Wildfire/Apps/screenshot.svg" NOTIFY_ICONPATH="/usr/share/icons/Xenlism-Wildfire/Apps/screenshot.svg"
FILENAME="$(date '+%s%N' | sha256sum | head -c7).png" SCROT_CMD="maim -m 10 -us %"
FILENAME=`date "+$NOTIFY_APPNAME-%Y-%m-%d-%H%M%S.png"`
DIRECTORY="$HOME/pictures/screenshots" DIRECTORY="$HOME/pictures/screenshots"
SCP_HOST=frebib@Poseidon.nerdhouse.io SCP_HOST=frebib@Poseidon.nerdhouse.io
SCP_PATH=/services/www/files/frebib.net/s SCP_PATH=/dave/www/frebib.net/s
URL_PATH=https://frebib.net/s URL_PATH=https://frebib.net/s
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
params=$(getopt -o ac -l active,clip -n screenshot -- "$@")
eval set -- "$params"
unset params
while true; do
case "$1" in
'-a'|'--active')
active=1
shift
continue;;
'-c'|'--clip')
clip=1
shift
continue;;
'--')
shift
break;;
*)
echo 'getopt error' >&2
exit 1;;
esac
done
send_notification() { send_notification() {
title="$1" title="$1"
body="$2" body="$2"
@ -51,47 +29,18 @@ send_notification() {
# Make the screenshot directory # Make the screenshot directory
mkdir -p "$DIRECTORY" mkdir -p "$DIRECTORY"
out_path="$DIRECTORY/$FILENAME"
if [ "$active" = '1' ]; then
args+=(-i "$(xdotool getactivewindow)")
else
# Take screenshot geometry
read -r winid geom < <(slop -f "%i %g") || :
if [ -z "$geom" -o -z "$winid" ]; then
send_notification "Screenshot error" "Failed to capture screenshot area" > /dev/null
exit 1
fi
args=(-g "$geom")
# If selection is the root window
if xwininfo -id "$winid" | grep -qw root; then
isroot=1
args+=(-i "$winid")
fi
fi
# Take the screenshot and save it # Take the screenshot and save it
if ! error=$(maim -m 10 -u -f png ${args[@]} "$out_path" 2>&1); then out_path="$DIRECTORY/$FILENAME"
if ! error=$(eval ${SCROT_CMD//\%/$out_path} 2>&1); then
send_notification "Screenshot error" "Failed to take a screenshot:<br><br>$error" >/dev/null send_notification "Screenshot error" "Failed to take a screenshot:<br><br>$error" >/dev/null
exit 1 exit 1
fi fi
# If the screenshot is a complete window, add a shadow notif_id=$(send_notification "Screenshot uploading" "$FILENAME<br><br>The image is available in the clipboard immediately" || true)
if [ "$isroot" != "1" ]; then
# but don't worry if it fails
convert "$out_path" \( +clone -background black -alpha set -channel Alpha -evaluate set 60% -shadow 100x16+0+0 \) +swap -background none -layers merge +repage "$out_path" || :
fi
if [ "$clip" = '1' ]; then # Add image to clipboard
# Add image to clipboard xclip -i "$out_path" -selection primary -t image/png
xclip -i "$out_path" -selection clipboard -t image/png
send_notification "Screenshot captured" "$FILENAME<br><br>The image is available in the clipboard" >/dev/null
exit 0
fi
notif_id=$(send_notification "Screenshot uploading" "$FILENAME" || true)
# 'Upload' the screenshot # 'Upload' the screenshot
if ! error=$(scp -C $out_path $SCP_HOST:$SCP_PATH 2>&1); then if ! error=$(scp -C $out_path $SCP_HOST:$SCP_PATH 2>&1); then

View File

@ -1,29 +0,0 @@
#!/bin/bash -e
rand=$(tr -dc 'a-f0-9' < /dev/urandom | head -c 8)
args=()
while getopts "s:e:d:cnw" opt
do case "$opt" in
s) slice="$OPTARG";;
e) args+=("--setenv=$OPTARG");;
d) args+=("--working-directory=$OPTARG");;
c) args+=("--scope");;
n) args+=("--no-block");;
w) args+=("--wait");;
*) shift;;
esac
done
shift $((OPTIND-1))
if [ -z "$slice" ]; then
slice=app
fi
exec systemd-run \
--user \
--collect \
--slice="$slice" \
--unit="$slice-$1-$rand" \
--property=BindsTo=graphical-session.target \
${args[@]} -- "$@"

1
surface-scripts Submodule

Submodule surface-scripts added at f94e25f0b8

1
surface3-scripts Submodule

Submodule surface3-scripts added at bd6eaf1fb0

View File

@ -1,13 +0,0 @@
[Unit]
Description=Bluetooth Applet
After=graphical-session.target
Requires=graphical-session.target
ConditionPathExists=/sys/class/bluetooth
[Service]
Type=simple
ExecStart=/usr/bin/blueman-applet
Restart=on-failure
[Install]
WantedBy=desktop.target

View File

@ -1 +0,0 @@
/usr/lib/systemd/user/basic.target

View File

@ -1 +0,0 @@
/usr/lib/systemd/user/dunst.service

View File

@ -1 +0,0 @@
/usr/lib/systemd/user/redshift.service

View File

@ -1 +0,0 @@
/usr/lib/systemd/user/xdg-user-dirs-update.service

View File

@ -1 +0,0 @@
/home/frebib/.config/systemd/user/blueman-applet.service

View File

@ -1 +0,0 @@
/usr/lib/systemd/user/dunst.service

View File

@ -1 +0,0 @@
/home/frebib/.config/systemd/user/networkmanager-applet.service

View File

@ -1 +0,0 @@
/home/frebib/.config/systemd/user/nextcloud.service

View File

@ -1 +0,0 @@
/home/frebib/.config/systemd/user/picom.service

View File

@ -1 +0,0 @@
/home/frebib/.config/systemd/user/polybar@.service

View File

@ -1 +0,0 @@
/home/frebib/.config/systemd/user/solaar.service

View File

@ -1 +0,0 @@
/home/frebib/.config/systemd/user/wallpaper.service

View File

@ -1 +0,0 @@
/home/frebib/.config/systemd/user/autocutsel-primary.service

View File

@ -1 +0,0 @@
/home/frebib/.config/systemd/user/autocutsel.service

View File

@ -1 +0,0 @@
/home/frebib/.config/systemd/user/i3.service

View File

@ -1 +0,0 @@
/home/frebib/.config/systemd/user/parcellite.service

View File

@ -1 +0,0 @@
/home/frebib/.config/systemd/user/xautolock.service

View File

@ -1 +0,0 @@
/home/frebib/.config/systemd/user/xsettingsd.service

View File

@ -1,13 +0,0 @@
[Unit]
Description=i3 - an improved dynamic, tiling window manager
Requires=xorg.target
Before=graphical-session.target
After=xprofile.service xorg.target
[Service]
ExecStart=/usr/bin/i3
ExecReload=/usr/bin/i3-msg reload
Restart=always
[Install]
WantedBy=graphical-session.target

View File

@ -1,12 +0,0 @@
[Unit]
Description=NetworkManager Applet
After=graphical-session.target NetworkManager.service
Requires=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/nm-applet
Restart=on-failure
[Install]
WantedBy=desktop.target

View File

@ -1,14 +0,0 @@
[Unit]
Description=Nextcloud Client
Requires=graphical-session.target
After=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/nextcloud --background
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=desktop.target

View File

@ -1,11 +0,0 @@
[Unit]
Description=Lightweight GTK+ clipboard manager
PartOf=graphical-session.target
Requires=xorg.target
After=xorg.target
[Service]
ExecStart=/usr/bin/parcellite -n
[Install]
WantedBy=graphical-session.target

Some files were not shown because too many files have changed in this diff Show More