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

1 Commits

Author SHA1 Message Date
5312aedf54 i3: remove unused alt-tab script 2020-03-21 13:59:44 +00:00
125 changed files with 1272 additions and 1678 deletions

24
.config/X11/xprofile Normal file
View File

@ -0,0 +1,24 @@
#!/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)
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

89
.config/X11/xresources Normal file
View File

@ -0,0 +1,89 @@
! Colour order:
! black
! red
! green
! yellow
! blue
! magenta
! cyan
! white/gray
! Normal colours
*.color0: #333638
*.color1: #f41f1c
*.color2: #8bc34a
*.color3: #ffc107
*.color4: #0266f4
*.color5: #cc17cc
*.color6: #10aeba
*.color7: #8b9396
! Bright colours
*.color8: #475760
*.color9: #e53727
*.color10: #9ccc65
*.color11: #ffa000
*.color12: #81b3f9
*.color13: #a56ecc
*.color14: #5ddae2
*.color15: #eceff1
Xft.dpi: 96
Xft.antialias: true
Xft.rgba: rgb
Xft.hinting: true
Xft.hintstyle: hintfull
Xft.lcdfilter: lcddefault
Xcursor.theme: Breeze_Obsidian
!!======================!!
!! RXVT-unicode setting !!
!!======================!!
urxvt.depth: 32
urxvt.internalBorder: 16
urxvt.blurRadius: 25
urxvt.saveLines: 10000
urxvt.preeditType: Root
urxvt.scrollBar: false
urxvt.jumpScroll: false
urxvt.scrollTtyOutput: false
urxvt.scrollWithBuffer: true
urxvt.scrollTtyKeypress: true
urxvt.altSendsEscape: true
xterm.metaSendsEscape: true
urxvt.termName: xterm-256color
urxvt.font: xft:Source Code Pro:style=regular:size=9
urxvt.imFont: xft:Source Code Pro:style=regular:size=9
urxvt.boldFont: xft:Source Code Pro:style=bold:size=9
urxvt.italicFont: xft:Source Code Pro:style=italic:size=9
urxvt.boldItalicFont: xft:Source Code Pro:style=bold,italic:size=9
urxvt.iso14755: false
urxvt.iso14755_52: false
urxvt.perl-ext-common: default,vtwheel,font-size
urxvt.url-launcher: /usr/bin/chromium
urxvt.matcher.button: 1
urxvt.keysym.C-Up: font-size:increase
urxvt.keysym.C-Down: font-size:decrease
urxvt.keysym.C-equal: font-size:reset
urxvt.keysym.C-slash: font-size:show
! special
*.foreground: #ECEFF1
*.background: #002B36
*.cursorColor: #5294E2
*.highlightColor: #5294E2
urxvt.background: [95]#383C4A
urxvt.scrollColor: #767B87
urxvt.dynamicColors: on
urxvt.highlightSelection: true
urxvt.colorMode: on

View File

@ -17,9 +17,9 @@ window:
# #
# Specified in number of columns/lines, not pixels. # Specified in number of columns/lines, not pixels.
# If both are `0`, this setting is ignored. # If both are `0`, this setting is ignored.
dimensions: #dimensions:
columns: 120 # columns: 0
lines: 40 # lines: 0
# Window position (changes require restart) # Window position (changes require restart)
# #
@ -51,12 +51,6 @@ window:
# - buttonless: Title bar, transparent background, but no title bar buttons # - buttonless: Title bar, transparent background, but no title bar buttons
decorations: full decorations: full
# 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.
opacity: 0.8
# Startup Mode (changes require restart) # Startup Mode (changes require restart)
# #
# Values for `startup_mode`: # Values for `startup_mode`:
@ -71,9 +65,6 @@ window:
# Window title # Window title
#title: Alacritty #title: Alacritty
# Allow terminal applications to change Alacritty's window title.
dynamic_title: true
# Window class (Linux/BSD only): # Window class (Linux/BSD only):
#class: #class:
# Application instance name # Application instance name
@ -90,7 +81,7 @@ window:
scrolling: scrolling:
# Maximum number of lines in the scrollback buffer. # Maximum number of lines in the scrollback buffer.
# Specifying '0' will disable scrolling. # Specifying '0' will disable scrolling.
history: 100000 history: 10000
# Number of lines the viewport will move for every line scrolled when # Number of lines the viewport will move for every line scrolled when
# scrollback is enabled (history > 0). # scrollback is enabled (history > 0).
@ -216,7 +207,7 @@ colors:
# background is unset, selection color will be the inverse of the cell colors. # 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. # If only text is unset the cell text color will remain the same.
selection: selection:
text: CellForeground # text: '#eaeaea'
background: '#5294e2' background: '#5294e2'
# Normal colors # Normal colors
@ -265,13 +256,6 @@ colors:
# #
#indexed_colors: [] #indexed_colors: []
# Transparent cell backgrounds
#
# Whether or not `window.opacity` applies to all cell backgrounds or only to
# the default background. When set to `true` all cells will be transparent
# regardless of their background color.
transparent_background_colors: false
# Visual Bell # Visual Bell
# #
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once # Any time the BEL code is received, Alacritty "rings" the visual bell. Once
@ -298,11 +282,20 @@ colors:
# duration: 0 # duration: 0
# color: '#ffffff' # 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.85
selection: selection:
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
# When set to `true`, selected text will be copied to the primary clipboard. # When set to `true`, selected text will be copied to the primary clipboard.
save_to_clipboard: true save_to_clipboard: false
# Allow terminal applications to change Alacritty's window title.
dynamic_title: true
cursor: cursor:
# Cursor style # Cursor style
@ -373,6 +366,28 @@ mouse:
# If this is `true`, the cursor is temporarily hidden when typing. # If this is `true`, the cursor is temporarily hidden when typing.
hide_when_typing: false 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
# #
# Mouse bindings are specified as a list of objects, much like the key # Mouse bindings are specified as a list of objects, much like the key
@ -584,16 +599,31 @@ key_bindings:
# (Windows, Linux, and BSD only) # (Windows, Linux, and BSD only)
- { key: V, mods: Control|Shift, action: Paste } - { key: V, mods: Control|Shift, action: Paste }
- { key: C, mods: Control|Shift, action: Copy } - { key: C, mods: Control|Shift, action: Copy }
- { key: F, mods: Control|Shift, action: SearchForward }
- { key: B, mods: Control|Shift, action: SearchBackward }
- { key: C, mods: Control|Shift, mode: Vi, action: ClearSelection }
- { key: Insert, mods: Shift, action: PasteSelection } - { key: Insert, mods: Shift, action: PasteSelection }
- { key: Key0, mods: Control, action: ResetFontSize } - { key: Key0, mods: Control, action: ResetFontSize }
- { key: Equals, mods: Control, action: IncreaseFontSize } - { key: Equals, mods: Control, action: ResetFontSize }
- { key: Plus, mods: Control, action: IncreaseFontSize } - { key: Add, mods: Control, action: IncreaseFontSize }
- { key: NumpadAdd, mods: Control, action: IncreaseFontSize } - { key: Subtract, mods: Control, action: DecreaseFontSize }
- { key: Minus, mods: Control, action: DecreaseFontSize } - { key: Minus, mods: Control, action: DecreaseFontSize }
- { key: NumpadSubtract, mods: Control, 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: debug:
# Display the time it takes to redraw each frame. # Display the time it takes to redraw each frame.
@ -611,7 +641,7 @@ debug:
# - Info # - Info
# - Debug # - Debug
# - Trace # - Trace
log_level: Warn log_level: Info
# Print all received window events. # Print all received window events.
#print_events: false #print_events: false

View File

@ -11,7 +11,7 @@
# <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
@ -51,16 +51,21 @@
# Ignore newlines '\n' in notifications. # Ignore newlines '\n' in notifications.
ignore_newline = no ignore_newline = no
# dynamic width from 0 to 400 # The geometry of the window:
# width = (0, 400) # [{width}]x{height}[+/-{x}+/-{y}]
# constant width of 400 # The geometry of the message window.
width = (320, 360) # The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectevly.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
# Position the notification in the top right corner # 53 = 30 + 23 (bar-height)
origin = top-right geometry = "360x5-30+30"
# Offset from the origin
offset = 30x30
# 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.
@ -69,7 +74,7 @@
# 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 = 20 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.
@ -135,7 +140,7 @@
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

View File

@ -6,53 +6,33 @@
<edit name="family" mode="prepend" binding="strong"> <edit name="family" mode="prepend" binding="strong">
<string>Noto Sans</string> <string>Noto Sans</string>
<string>Noto Color Emoji</string> <string>Noto Color Emoji</string>
<string>FontAwesome 6 Pro Light</string> <string>FontAwesome 5 Pro Light</string>
</edit> </edit>
<edit name="hintstyle" mode="assign"><const>hintnone</const></edit>
<edit mode="assign" name="hinting"><bool>false</bool></edit>
</match> </match>
<match> <match>
<test qual="any" name="family"><string>serif</string></test> <test qual="any" name="family"><string>serif</string></test>
<edit name="family" mode="prepend" binding="strong"> <edit name="family" mode="prepend" binding="strong">
<string>Noto Serif</string> <string>Noto Serif</string>
<string>Noto Color Emoji</string> <string>Noto Color Emoji</string>
<string>FontAwesome 6 Pro Light</string> <string>FontAwesome 5 Pro Light</string>
</edit> </edit>
</match> </match>
<match> <match>
<test qual="any" name="family"><string>monospace</string></test> <test qual="any" name="family"><string>monospace</string></test>
<edit name="family" mode="prepend" binding="strong"> <edit name="family" mode="prepend" binding="strong">
<string>Source Code Pro</string> <string>Source Code Pro</string>
<string>Noto Color Emoji</string> <string>Noto Color Emoji</string>
<string>FontAwesome 6 Pro Light</string> <string>FontAwesome 5 Pro Light</string>
</edit> </edit>
</match> </match>
<match> <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>
<edit name="hintstyle" mode="assign"><const>hintnone</const></edit> <edit name="hintstyle" mode="assign"><const>hintnone</const></edit>
</match> </match>
<match target="font">
<match>
<test qual="all" name="family" compare="eq"><string>Source Code Pro</string></test> <test qual="all" name="family" compare="eq"><string>Source Code Pro</string></test>
<edit name="antialias" mode="assign_replace"><bool>false</bool></edit> <edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
<edit name="hintstyle" mode="assign_replace"><const>hintfull</const></edit>
<edit name="lcdfilter" mode="assign_replace"><const>lcddefault</const></edit>
<edit name="rgba" mode="assign_replace"><const>rgb</const></edit>
</match>
<alias>
<family>SF Mono</family>
<accept>
<family>monospace</family>
</accept>
</alias>
<match>
<edit name="antialias" mode="assign"><bool>true</bool></edit>
<edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit> <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
<edit name="rgba" mode="assign"><const>rgb</const></edit> <edit name="rgba" mode="assign"><const>rgb</const></edit>
</match> </match>

View File

@ -5,30 +5,19 @@
[core] [core]
autocrlf = input autocrlf = input
excludesfile = /home/frebib/.config/git/gitignore excludesfile = /home/frebib/.config/git/gitignore
pager = delta --diff-so-fancy --color-only pager = diff-highlight | $PAGER
[init]
defaultBranch = master
[interactive] [interactive]
diffFilter = delta --diff-so-fancy --color-only 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
[merge]
ff = only
[rebase] [rebase]
autoStash = true autoStash = true
[remote "origin"]
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
[remote "upstream"]
fetch = +refs/pull/*/head:refs/remotes/upstream/pr/*
[log] [log]
date = iso8601-local 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]
@ -36,13 +25,9 @@
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
defbranch = !git symbolic-ref refs/remotes/origin/HEAD | sed \"s@^refs/remotes/origin/@@\"
rbranch = for-each-ref --sort='committerdate' --format="%20%20%(refname:short)" refs/heads/
[advice] [advice]
statusHints = false statusHints = false
pushUpdateRejected = false pushUpdateRejected = false
detachedHead = false
[sendemail] [sendemail]
from = Joe Groocock <me@frebib.net> from = Joe Groocock <me@frebib.net>
smtpserver = smtp.zoho.com smtpserver = smtp.zoho.com

View File

@ -1,8 +1,12 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance.
# 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="sans 9" gtk-font-name="Noto Sans 9"
gtk-cursor-theme-name="BreezeX-Black" gtk-cursor-theme-name="Breeze_Obsidian"
gtk-cursor-theme-size=28 gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1 gtk-button-images=1

View File

@ -2,9 +2,9 @@
gtk-theme-name=Arc-Dark gtk-theme-name=Arc-Dark
gtk-icon-theme-name=Xenlism-Wildfire gtk-icon-theme-name=Xenlism-Wildfire
gtk-application-prefer-dark-theme=true gtk-application-prefer-dark-theme=true
gtk-font-name=sans 9 gtk-font-name=Noto Sans 9
gtk-cursor-theme-name=BreezeX-Black gtk-cursor-theme-name=Breeze_Obsidian
gtk-cursor-theme-size=28 gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1 gtk-button-images=1

View File

@ -107,52 +107,49 @@ 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 killall -q polybar; while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done; exec polybar -r i3bar
exec_always --no-startup-id feh --no-fehbg --no-xinerama --bg-fill $DOTFILES/lakesidesunrise.jpg
# 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 [class="^Rofi$"] 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
new_window none new_window none
new_float none new_float none
gaps inner 24 gaps inner 20
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 dm-tool switch-to-greeter 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 -run-command 'systemd-run-i3 -n {cmd}'" bindsym $mod+space exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window"
bindsym $mod+Shift+p exec systemd-run-i3 -n rofi-rbw 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 "pkill rofi; rofi -show emoji -modi emoji -normal-window" bindsym $mod+Shift+e exec rofi-emoji
bindsym $mod+Shift+i exec rofi-fontawesome bindsym $mod+Shift+i exec rofi-fontawesome
bindsym --release Print exec screenshot --clip bindsym --release Print exec screenshot
bindsym --release $mod+Print exec screenshot 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 --release $mod+i exec sh -c 'sleep 0.5 && xdotool type --delay 400 "$(xclip -o -selection clipboard)"'
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 bash -xc 'xclip -o | gh gist create -d Paste - 2>&1 | grep -vE "^[-✓] Creat(ing|ed) gist" | tee >(xclip -i >&2 >/dev/null) | xargs -I% --null -r notify-send -c transfer -- %'
bindsym --release $mod+i exec systemd-run-i3 -s background -n sh -c 'sleep 0.5 && xdotool getactivewindow type --delay 10 -- "$(xclip -o -selection clipboard)"'
bindsym $mod+z exec otp | rofi -dmenu -p otp | xargs otp
# Media player controls # Media player controls
bindsym XF86AudioPlay exec --no-startup-id playerctl -a play-pause bindsym XF86AudioPlay exec --no-startup-id playerctl -a play-pause
@ -163,7 +160,28 @@ bindsym XF86AudioPrev exec --no-startup-id playerctl -a 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 switch-to-greeter' -nocloseout -nocloseerr
exec --no-startup-id xss-lock dm-tool switch-to-greeter
# startup programs
exec --no-startup-id nextcloud
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 mailnag
exec --no-startup-id picom -b --experimental-backends
exec --no-startup-id chromium --no-startup-window
exec --no-startup-id thunderbird
exec i3-msg 'workspace 1; exec sleep 2 && chromium'
exec i3-msg 'workspace 2; exec i3-sensible-terminal'
# 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 10 -lines 7 -location 3 -tokenize false -matching normal | xargs)
case $option in
lock) dm-tool switch-to-greeter;;
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

42
.config/mimeapps.list Normal file
View File

@ -0,0 +1,42 @@
[Default Applications]
# eog for images
image/bmp=eog.desktop
image/gif=eog.desktop
image/jpeg=eog.desktop
image/jpg=eog.desktop
image/pjpeg=eog.desktop
image/png=eog.desktop
image/svg+xml-compressed=eog.desktop
image/svg+xml=eog.desktop
image/tiff=eog.desktop
image/x-bmp=eog.desktop
image/x-gray=eog.desktop
image/x-icb=eog.desktop
image/x-ico=eog.desktop
image/x-png=eog.desktop
image/x-portable-anymap=eog.desktop
image/x-portable-bitmap=eog.desktop
image/x-portable-graymap=eog.desktop
image/x-portable-pixmap=eog.desktop
# evince for pdfs
application/pdf=evince.desktop
# vim for textual files
application/x-shellscript=vim.desktop
text/english=vim.desktop
text/plain=vim.desktop
text/x-makefile=vim.desktop
# Chromium for web/html
text/html=chromium.desktop
x-scheme-handler/about=chromium.desktop
x-scheme-handler/http=chromium.desktop
x-scheme-handler/https=chromium.desktop
x-scheme-handler/unknown=chromium.desktop
# Various desktop applications
inode/directory=nautilus.desktop
x-scheme-handler/magnet=deluge.desktop
x-scheme-handler/tg=telegramdesktop.desktop

100
.config/picom.conf Normal file
View File

@ -0,0 +1,100 @@
# Logging
log-level = "debug";
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'",
"name = 'Notification'",
"_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'",
"window_type = 'dock'",
"window_type = 'desktop'",
"_GTK_FRAME_EXTENTS@:c"
];
# Fading
fading = true;
fade-delta = 10;
fade-in-step = 0.03;
fade-out-step = 0.03;
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 = false;
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'",
];
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,5 +1,5 @@
[colours] [colours]
background = #0000 background = transparent
text = #eceff1 text = #eceff1
icon = #147a82 icon = #147a82
warning = #ffcb00 warning = #ffcb00
@ -10,23 +10,25 @@ urgent = #e53935
format-foreground = ${colours.text} format-foreground = ${colours.text}
format-background = ${colours.background} format-background = ${colours.background}
format-spacing = 0 format-spacing = 0
format-margin = 3 format-margin = 2.5
format-offset = 0 format-offset = 0
screenchange-reload = true screenchange-reload = true
[bar/i3bar] [bar/i3bar]
monitor = ${env:MONITOR:HDMI-0}
dpi = ${xrdb:Xft.dpi:96} dpi = ${xrdb:Xft.dpi:96}
fixed-center = false fixed-center = false
enable-ipc = true enable-ipc = true
width = 100% width = 100%
#offset-x = 18px
height = 16pt height = 16pt
bottom = true bottom = true
radius = 0 radius = 0
font-0 = sans:pixelsize=9;2pt font-0 = sans:pixelsize=9;2
font-1 = FontAwesome6ProLight:pixelsize=10;2pt font-1 = FontAwesome5ProLight:pixelsize=10;2
foreground = ${colours.text} foreground = ${colours.text}
background = ${colours.background} background = ${colours.background}
@ -37,22 +39,22 @@ padding-right = 2pt
border-size = 0 border-size = 0
border-left-size = 16pt border-left-size = 16pt
border-right-size = 16pt border-right-size = 16pt
border-bottom-size = 10pt border-bottom-size = 8pt
line-size = 0 line-size = 0
line-colour = #f00 line-colour = #f00
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 gateway eth memory cpu xbacklight battery temperature date
modules-right = volume updates weather wlan eth memory cpu xbacklight battery cputemp gputemp date modules-right = volume updates weather wlan gateway 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 = ${colours.background}
#tray-offset-x = -20 #tray-offset-x = -20
#tray-offset-y = 0 #tray-offset-y = 0
tray-maxsize = 16pt tray-maxsize = 16
tray-padding = 8pt tray-padding = 8pt
tray-scale = 1.0 tray-scale = 1.0
@ -66,17 +68,17 @@ 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] [module/gateway]
type = custom/script 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-}' exec = for v in 4 6; do ip -$v r show default | xargs -l1 sh -c 'fping --retry=1 --quiet --iface "$4" "$2"'; done && echo  || echo '%{F#f41f1c}%{F-}'
interval = 2 interval = 2
format-prefix = " " format-prefix = " "
format-prefix-foreground = ${colours.icon} format-prefix-foreground = ${colours.icon}
@ -187,10 +189,10 @@ ramp-signal-foreground = ${colours.icon}
[module/eth] [module/eth]
type = internal/network type = internal/network
interface = lan interface = eth0
interval = 10.0 interval = 3.0
label-connected = %local_ip% & %local_ip6% label-connected = %local_ip%
format-connected-prefix = " " format-connected-prefix = " "
format-connected-prefix-foreground = ${colours.icon} format-connected-prefix-foreground = ${colours.icon}
format-connected-underline = ${colours.background} format-connected-underline = ${colours.background}
@ -206,7 +208,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
@ -219,8 +221,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}
@ -265,10 +267,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/pci0000:00/0000:00:18.3/hwmon/hwmon1/temp2_input thermal-zone = 2
base-temperature = 25 warn-temperature = 70
format = <ramp> <label> format = <ramp> <label>
format-warn = <ramp> <label-warn> format-warn = <ramp> <label-warn>
@ -285,15 +287,6 @@ ramp-4 = 
ramp-5 =  ramp-5 = 
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

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

View File

@ -8,7 +8,7 @@ window {
border: 0.3em; border: 0.3em;
border-color: #2f343f; border-color: #2f343f;
padding: 0.8em; padding: 0.8em;
background-color: rgba(56, 60, 74, 0.9); background-color: rgba(56, 60, 74, 0.95);
transparency: "real"; transparency: "real";
} }

View File

@ -1,12 +1,15 @@
configuration { configuration {
theme: "arc-dark";
font: "sans 14"; font: "sans 14";
dpi: 0; dpi: 0;
width: 35;
lines: 10;
/* show-icons: true; */ /* show-icons: true; */
separator-style: "solid"; separator-style: "solid";
modi: "window,run,ssh"; modi: "window,run,ssh";
/* kb-row-tab: "Shift-Tab"; */ kb-row-tab: "Shift-Tab";
/* kb-row-select: "Tab"; */ kb-row-select: "Tab";
terminal: "i3-sensible-terminal"; terminal: "i3-sensible-terminal";
matching: "glob"; matching: "glob";
@ -139,15 +142,4 @@ configuration {
/* me-accept-custom: "Control+MouseDPrimary";*/ /* me-accept-custom: "Control+MouseDPrimary";*/
} }
@theme "arc-dark"
window {
width: 700;
}
listview {
lines: 10;
columns: 1;
}
/* vim: ft=css sw=2 */ /* vim: ft=css sw=2 */

View File

@ -1,6 +1,5 @@
[Unit] [Unit]
Description=Lock X LightDM session before sleeping Description=Lock X LightDM session before sleeping
Requires=graphical-session.target
Before=sleep.target Before=sleep.target
[Service] [Service]

View File

@ -0,0 +1 @@
../sleep-lock-lightdm.service

View File

@ -0,0 +1 @@
/usr/lib/systemd/user/pulseaudio.socket

View File

@ -1,6 +1,6 @@
# This file is written by xdg-user-dirs-update # This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're # If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run. # interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped # Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported. # absolute path. No other format is supported.

View File

@ -39,23 +39,18 @@ set updatetime=500 " reduce delay from 4s default
let mapleader="\<space>" let mapleader="\<space>"
" ALE config
let g:ale_completion_enabled = 1
let g:ale_open_list = 1
augroup CloseLoclistWindowGroup
autocmd!
autocmd QuitPre * if empty(&buftype) | lclose | endif
augroup END
" Autosave settings " Autosave settings
function! SaveIfExist() function! SaveIfExist()
if @% != "" && filereadable(@%) && !&readonly && &modified if @% != "" && filereadable(@%) && !&readonly && &modified
SyntasticCheck
write write
endif endif
endfunction endfunction
set autowrite set autowrite
autocmd InsertLeave <buffer> :write 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
@ -63,19 +58,24 @@ 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=space,tab:>-,trail:◦,extends:▶,precedes:◀ set listchars=eol:$,space,tab:>-,trail:◦,extends:▶,precedes:◀
highlight SpecialKey ctermfg=8 highlight SpecialKey ctermfg=8
set cc=+1 if exists('+colorcolumn')
highlight ColorColumn ctermbg=8 highlight ColorColumn ctermbg=8
autocmd filetype c,h,cpp,hpp set colorcolumn=81
autocmd filetype c,h,cpp,hpp match ErrorMsg '\%>80v.\+'
endif
" Highlight line and column of cursor " Highlight line and column of cursor
set cul cuc set cul cuc
@ -90,6 +90,9 @@ endif
call plug#begin('$XDG_CONFIG_HOME/vim/plug') call plug#begin('$XDG_CONFIG_HOME/vim/plug')
Plug 'Valloric/YouCompleteMe'
Plug 'scrooloose/syntastic'
Plug 'scrooloose/nerdtree', { 'on': 'NERTreeToggle' }
Plug 'tpope/vim-sensible' Plug 'tpope/vim-sensible'
Plug 'tpope/vim-fugitive' Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-rhubarb' Plug 'tpope/vim-rhubarb'
@ -105,56 +108,25 @@ Plug 'vim-airline/vim-airline-themes'
Plug 'lervag/vimtex' Plug 'lervag/vimtex'
Plug 'JamshedVesuna/vim-markdown-preview' Plug 'JamshedVesuna/vim-markdown-preview'
Plug 'junegunn/fzf.vim' Plug 'junegunn/fzf.vim'
" Completion and linting
Plug 'dense-analysis/ale'
Plug 'Shougo/deoplete.nvim'
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
" Syntax Highlighting " Syntax Highlighting
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'
Plug 'Glench/Vim-Jinja2-Syntax'
Plug 'pearofducks/ansible-vim'
Plug 'jvirtanen/vim-hcl'
Plug 'hashivim/vim-terraform'
call plug#end() call plug#end()
" Change to dvorak-mapped keys " Change to dvorak-mapped keys
let g:use_dvorak = 1 let g:use_dvorak = 1
" Deoplete config " YouCompleteMe config
call deoplete#custom#option({ let g:ycm_confirm_extra_conf = 0
\ 'camel_case': v:true, if !exists('g:ycm_semantic_triggers')
\ }) let g:ycm_semantic_triggers = {}
" Use ALE as completion sources for all code. endif
"call deoplete#custom#option('sources', { let g:ycm_semantic_triggers.tex = g:vimtex#re#youcompleteme
"\ '_': ['ale'],
"\})
call deoplete#enable()
" Vim-Airline config
let g:Powerline_symbols = 'fancy'
let g:airline_powerline_fonts = 1
let g:airline_theme='solarized'
let g:airline#extensions#tabline#enabled = 1
" ALE integration
let g:airline#extensions#ale#enabled = 1
" vim-markdown plugin
let vim_markdown_preview_toggle=0
let vim_markdown_preview_browser='Chromium'
let vim_markdown_preview_use_xdg_open=1
let vim_markdown_preview_github=1
" LaTeX config
"let g:vimtex_view_method='zathura' "let g:vimtex_view_method='zathura'
let g:tex_flavor='xelatex' let g:tex_flavor='xelatex'
let g:vimtex_indent_enabled = 0 " auto-indentation is wrong and annoying let g:vimtex_indent_enabled = 0 " auto-indentation is wrong and annoying
@ -168,6 +140,35 @@ augroup vimtex
autocmd BufWritePost tex silent VimtexCompile autocmd BufWritePost tex silent VimtexCompile
augroup END augroup END
" Vim-Airline config
let g:Powerline_symbols = 'fancy'
let g:airline_powerline_fonts = 1
let g:airline_theme='solarized'
let g:airline#extensions#tabline#enabled = 1
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
" vim-markdown plugin
let vim_markdown_preview_toggle=0
let vim_markdown_preview_browser='Chromium'
let vim_markdown_preview_use_xdg_open=1
let vim_markdown_preview_github=1
" Syntastic configuration
let g:syntastic_enable_highlighting = 1
let g:syntastic_enable_signs=1
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
" Tagbar configuration " Tagbar configuration
let g:tagbar_width = 50 let g:tagbar_width = 50
let g:tagbar_compact = 1 let g:tagbar_compact = 1
@ -306,12 +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 c setlocal noet autocmd FileType yaml setlocal ts=2 sts=2 sw=2 et
autocmd filetype c,h,cpp,hpp set colorcolumn=81
autocmd filetype c,h,cpp,hpp match ErrorMsg '\%>80v.\+'
autocmd FileType jinja setlocal sts=2 sw=2 et
autocmd FileType markdown setlocal sts=2 sw=2 et
autocmd FileType yaml setlocal sts=2 sw=2 et indentkeys-=<:>
autocmd FileType gitcommit setlocal tw=72 et sw=4

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

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

174
.config/zsh/.zshrc Normal file
View File

@ -0,0 +1,174 @@
unsetopt MULTIBYTE
# Config and cache directory paths
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
ZSH_DIR="$CONFIG_DIR/zsh"
LOG_DIR="$ZSH_DIR/log"
mkdir -p "$LOG_DIR"
HISTFILE="$ZSH_DIR/histfile"
HISTSIZE=999999
SAVEHIST=999999
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
# Only set tty if running interactively
if exists tty && tty -s 1>/dev/null 2>/dev/null; then
# Resolve at shell runtime
export GPG_TTY="$(tty)"
fi
# 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
# Set some useful ZSH/Bash options
setopt sharehistory histignorealldups histignorespace histreduceblanks
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:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*'
zstyle ':completion:*' rehash true
zstyle ':completion:*' menu select
zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
zstyle ':compinstall' filename "${ZDOTDIR:-~}/.zshrc"
# Pre-load vi-mode edit-command-line before antigen plugins are loaded
autoload -z edit-command-line
zle -N edit-command-line
export WORDCHARS='*?_[]~=&;!#$%^(){}'
x-bash-backward-kill-word(){ WORDCHARS='' zle kill-word; }
zle -N x-bash-backward-kill-word
# Load antigen & plugins
ADOTDIR="$ZSH_DIR/antigen" # Antigen directory
ANTIGEN_LOG="$LOG_DIR/antigen-$(date +"%Y_%m_%d_%I_%M_%p").log"
antigen_src="$ADOTDIR/antigen.zsh"
if [ ! -f "$antigen_src" ]; then
git clone https://github.com/zsh-users/antigen.git "$ADOTDIR"
fi
source "$antigen_src"
antigen bundle zsh-users/zsh-completions
antigen bundle zsh-users/zsh-autosuggestions
antigen bundle zsh-users/zsh-syntax-highlighting@feature/redrawhook
antigen bundle mafredri/zsh-async
antigen apply
# Vim mode!
bindkey -v
export KEYTIMEOUT=25
# Set some key-binds
bindkey "^[[1;3C" forward-word
bindkey "^[[1;5C" forward-word
bindkey "^[[1;3D" backward-word
bindkey "^[[1;5D" backward-word
bindkey "^[[7~" beginning-of-line
bindkey "^[[8~" end-of-line
bindkey "^[[3~" delete-char
bindkey "^[[3;3~" delete-word
bindkey '^[^[[3~' x-bash-backward-kill-word
bindkey '^[^[[3^' x-bash-backward-kill-word
bindkey '^[[A' fzf-history-widget # Up (fzf)
bindkey '^[[B' fzf-history-widget # Down (fzf)
bindkey '^F' fzf-file-widget # Ctrl+F file search (fzf)
bindkey "^V" edit-command-line
bindkey -M vicmd "^V" edit-command-line
bindkey -M vicmd d vi-backward-char
bindkey -M vicmd h vi-down-line-or-history
bindkey -M vicmd t vi-up-line-or-history
bindkey -M vicmd n vi-forward-char
bindkey -M vicmd k vi-delete
bindkey -M vicmd K vi-kill-eol
bindkey -M vicmd j vi-find-next-char-skip
bindkey -M vicmd l vi-repeat-search
ZSH_AUTOSUGGEST_USE_ASYNC=true
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=128
ZSH_AUTOSUGGEST_CLEAR_WIDGETS=("${(@)ZSH_AUTOSUGGEST_CLEAR_WIDGETS:#(up|down)-line-or-history}")
default='fg=12'
prog='fg=blue'
ZSH_HIGHLIGHT_STYLES=()
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets root line)
ZSH_HIGHLIGHT_STYLES[root]='bg=red'
ZSH_HIGHLIGHT_STYLES[default]=$default
ZSH_HIGHLIGHT_STYLES[arg0]=$prog
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red,bold'
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[alias]=$prog
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=green'
ZSH_HIGHLIGHT_STYLES[builtin]='fg=4'
ZSH_HIGHLIGHT_STYLES[function]=$prog
ZSH_HIGHLIGHT_STYLES[command]=$prog
ZSH_HIGHLIGHT_STYLES[precommand]='fg=4'
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green'
ZSH_HIGHLIGHT_STYLES[path]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[path_separator]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=208'
ZSH_HIGHLIGHT_STYLES[globbing]='fg=red'
ZSH_HIGHLIGHT_STYLES[comment]='fg=7'
ZSH_HIGHLIGHT_STYLES[history-expansion]=$default
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]=$default
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]=$default
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=magenta'
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[assign]='fg=green'
ZSH_HIGHLIGHT_STYLES[redirection]='fg=cyan,bold'
source "$DOTFILES/aliases"
# 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
# Load some manual plugins
source "$ZSH_DIR/plugins/sudo.zsh"
source "$ZSH_DIR/plugins/fish-theme.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/doc/pkgfile/command-not-found.zsh' ] && source /usr/share/doc/pkgfile/command-not-found.zsh
[ -r '/usr/share/z/z.sh' ] && source /usr/share/z/z.sh

View File

@ -0,0 +1,14 @@
# ZSH Theme emulating the Fish shell's default prompt.
_fishy_collapsed_wd() {
pwd | sed -E 's|^'$HOME'|~|;s|(.*)/|\1%|;s|((^\|/)\.?[^/%]{1})[^/%]*|\1|g;s|(.*)%|\1/|'
}
# Required for dynamic prompt
setopt prompt_subst
local user_color='green'; [ $UID -eq 0 ] && user_color='red'
PROMPT="%n@%m %F{$user_color}\$(_fishy_collapsed_wd)%f%(!.#.>) "
PROMPT2='%F{red}\ %f'
RPROMPT='%F{red}%(?.. %?)%f'

View File

@ -57,7 +57,7 @@ git_prompt_status() {
# Required for dynamic prompt # Required for dynamic prompt
setopt prompt_subst setopt prompt_subst
ZSH_THEME_GIT_PROMPT_PREFIX="" ZSH_THEME_GIT_PROMPT_PREFIX=" "
ZSH_THEME_GIT_PROMPT_SUFFIX="" ZSH_THEME_GIT_PROMPT_SUFFIX=""
ZSH_THEME_GIT_PROMPT_DIRTY="" ZSH_THEME_GIT_PROMPT_DIRTY=""
ZSH_THEME_GIT_PROMPT_CLEAN="" ZSH_THEME_GIT_PROMPT_CLEAN=""

2
.gitignore vendored
View File

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

60
.profile Normal file
View File

@ -0,0 +1,60 @@
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 NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc
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:$GOPATH/bin"
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
# 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 \
XDG_SEAT_PATH
fi

171
.xournal/config Normal file
View File

@ -0,0 +1,171 @@
# Xournal configuration file.
# This file is generated automatically upon saving preferences.
# Use caution when editing this file manually.
#
[general]
# the display resolution, in pixels per inch
display_dpi=96.00
# the initial zoom level, in percent
initial_zoom=169.98
# maximize the window at startup (true/false)
window_maximize=false
# start in full screen mode (true/false)
window_fullscreen=false
# the window width in pixels (when not maximized)
window_width=2120
# the window height in pixels
window_height=1374
# scrollbar step increment (in pixels)
scrollbar_speed=30
# the step increment in the zoom dialog box
zoom_dialog_increment=1
# the multiplicative factor for zoom in/out
zoom_step_factor=1.500
# continuous view (false = one page, true = continuous, horiz = horizontal)
view_continuous=true
# use XInput extensions (true/false)
use_xinput=true
# discard Core Pointer events in XInput mode (true/false)
discard_corepointer=false
# ignore events from other devices while drawing (true/false)
ignore_other_devices=true
# do not worry if device reports button isn't pressed while drawing (true/false)
ignore_btn_reported_up=true
# always map eraser tip to eraser (true/false)
use_erasertip=true
# always map touchscreen device to hand tool (true/false) (requires separate pen and touch devices)
touchscreen_as_hand_tool=true
# disable touchscreen device when pen is in proximity (true/false) (requires separate pen and touch devices)
pen_disables_touch=true
# name of touchscreen device for touchscreen_as_hand_tool
touchscreen_device_name=NTRG0001:01 1B96:1B05
# buttons 2 and 3 switch mappings instead of drawing (useful for some tablets) (true/false)
buttons_switch_mappings=false
# automatically load filename.pdf.xoj instead of filename.pdf (true/false)
autoload_pdf_xoj=false
# enable periodic autosaves (true/false)
autosave_enabled=true
# delay for periodic autosaves (in seconds)
autosave_delay=5
# default path for open/save (leave blank for current directory)
default_path=
# use pressure sensitivity to control pen stroke width (true/false)
pressure_sensitivity=true
# minimum width multiplier
width_minimum_multiplier=0.00
# maximum width multiplier
width_maximum_multiplier=1.25
# interface components from top to bottom
# valid values: drawarea menu main_toolbar pen_toolbar statusbar
interface_order=menu main_toolbar pen_toolbar drawarea statusbar
# interface components in fullscreen mode, from top to bottom
interface_fullscreen=main_toolbar pen_toolbar drawarea
# interface has left-handed scrollbar (true/false)
interface_lefthanded=false
# hide some unwanted menu or toolbar items (true/false)
shorten_menus=false
# interface items to hide (customize at your own risk!)
# see source file xo-interface.c for a list of item names
shorten_menu_items=optionsProgressiveBG optionsLeftHanded optionsButtonSwitchMapping
# highlighter opacity (0 to 1, default 0.5)
# warning: opacity level is not saved in xoj files!
highlighter_opacity=0.50
# auto-save preferences on exit (true/false)
autosave_prefs=true
# force PDF rendering through cairo (slower but nicer) (true/false)
poppler_force_cairo=false
# prefer xournal's own PDF code for exporting PDFs (true/false)
exportpdf_prefer_legacy=false
# export successive layers on separate pages in PDFs (true/false)
exportpdf_layers=false
# when attempting to open a non-existent file, treat it as a new file (true/false)
autocreate_new_xoj=false
[paper]
# the default page width, in points (1/72 in)
width=595.27
# the default page height, in points (1/72 in)
height=841.89
# the default paper color
color=white
# the default paper style (plain, lined, ruled, or graph)
style=lined
# apply paper style changes to all pages (true/false)
apply_all=false
# preferred unit (cm, in, px, pt)
default_unit=cm
# include paper ruling when printing or exporting to PDF (true/false)
print_ruling=true
# when creating a new page, duplicate a PDF or image background instead of using default paper (true/false)
new_page_duplicates_bg=true
# just-in-time update of page backgrounds (true/false)
progressive_bg=true
# bitmap resolution of PS/PDF backgrounds rendered using ghostscript (dpi)
gs_bitmap_dpi=144
# bitmap resolution of PDF backgrounds when printing with libgnomeprint (dpi)
pdftoppm_printing_dpi=150
[tools]
# selected tool at startup (pen, eraser, highlighter, selectregion, selectrect, vertspace, hand, image)
startup_tool=pen
# Use the pencil from cursor theme instead of a color dot (true/false)
pen_cursor=false
# default pen color
pen_color=black
# default pen thickness (fine = 1, medium = 2, thick = 3)
pen_thickness=2
# default pen is in ruler mode (true/false)
pen_ruler=false
# default pen is in shape recognizer mode (true/false)
pen_recognizer=false
# default eraser thickness (fine = 1, medium = 2, thick = 3)
eraser_thickness=2
# default eraser mode (standard = 0, whiteout = 1, strokes = 2)
eraser_mode=2
# default highlighter color
highlighter_color=yellow
# default highlighter thickness (fine = 1, medium = 2, thick = 3)
highlighter_thickness=2
# default highlighter is in ruler mode (true/false)
highlighter_ruler=false
# default highlighter is in shape recognizer mode (true/false)
highlighter_recognizer=false
# button 2 tool (pen, eraser, highlighter, text, selectregion, selectrect, vertspace, hand, image)
btn2_tool=eraser
# button 2 brush linked to primary brush (true/false) (overrides all other settings)
btn2_linked=true
# button 2 brush color (for pen or highlighter only)
btn2_color=white
# button 2 brush thickness (pen, eraser, or highlighter only)
btn2_thickness=2
# button 2 ruler mode (true/false) (for pen or highlighter only)
btn2_ruler=false
# button 2 shape recognizer mode (true/false) (pen or highlighter only)
btn2_recognizer=false
# button 2 eraser mode (eraser only)
btn2_erasermode=2
# button 3 tool (pen, eraser, highlighter, text, selectregion, selectrect, vertspace, hand, image)
btn3_tool=selectregion
# button 3 brush linked to primary brush (true/false) (overrides all other settings)
btn3_linked=true
# button 3 brush color (for pen or highlighter only)
btn3_color=white
# button 3 brush thickness (pen, eraser, or highlighter only)
btn3_thickness=0
# button 3 ruler mode (true/false) (for pen or highlighter only)
btn3_ruler=false
# button 3 shape recognizer mode (true/false) (pen or highlighter only)
btn3_recognizer=false
# button 3 eraser mode (eraser only)
btn3_erasermode=2
# thickness of the various pens (in points, 1 pt = 1/72 in)
pen_thicknesses=0.42;0.85;1.41;2.26;5.67
# thickness of the various erasers (in points, 1 pt = 1/72 in)
eraser_thicknesses=2.83;8.50;19.84
# thickness of the various highlighters (in points, 1 pt = 1/72 in)
highlighter_thicknesses=2.83;8.50;19.84
# name of the default font
default_font=Sans
# default font size
default_font_size=12.0

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": true,
"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,26 +0,0 @@
#!/bin/sh -u
# Graphical-specific environment variables
export TERMINAL="alacritty"
export BROWSER="firefox"
export GTK_THEME="$(grep gtk-theme-name "${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini" | sed 's/.*\s*=\s*//')"
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/settings.ini"
export QT_QPA_PLATFORMTHEME=qt5ct
export XDG_CURRENT_DESKTOP="GNOME" # Fixes xdg-open
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel"
# 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
# Load Xorg resources and set the DPI
xrdb -merge "$XDG_CONFIG_HOME/X11/xresources"
#"$XDG_CONFIG_HOME/scripts/dpi" "$(xrdb -query | grep -i xft.dpi | cut -d: -f2 | xargs)"
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,40 +0,0 @@
! Colour order:
! black
! red
! green
! yellow
! blue
! magenta
! cyan
! white/gray
! Normal colours
*.color0: #333638
*.color1: #f41f1c
*.color2: #8bc34a
*.color3: #ffc107
*.color4: #0266f4
*.color5: #cc17cc
*.color6: #10aeba
*.color7: #8b9396
! Bright colours
*.color8: #475760
*.color9: #e53727
*.color10: #9ccc65
*.color11: #ffa000
*.color12: #81b3f9
*.color13: #a56ecc
*.color14: #5ddae2
*.color15: #eceff1
Xft.dpi: 96
Xft.antialias: true
Xft.rgba: rgb
Xft.hinting: true
Xft.hintstyle: hintfull
Xft.lcdfilter: lcddefault
Xcursor.size: 28
Xcursor.theme: BreezeX-Black

212
aliases
View File

@ -1,41 +1,52 @@
case "$(basename "$(readlink -f /proc/$$/exe)")" in
zsh) thisfile="$(readlink -f "${(%):-%N}")";;
bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";;
*) thisfile="$(find /proc/$$/fd/ -print0 | xargs -0 -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 ...=../..
alias -g ....=../../.. alias -g ....=../../..
alias -g .....=../../../.. alias -g .....=../../../..
alias -g ......=../../../../.. alias -g ......=../../../../..
alias -g H='| head'
alias -g T='| tail'
alias -g G='| grep'
alias -g L="| less"
alias -g C="| wc -l"
alias -g S="| sort"
alias -g U="| uniq"
alias -g count="| wc -l"
alias -g NO="1> /dev/null" alias -g NO="1> /dev/null"
alias -g NE="2> /dev/null" alias -g NE="2> /dev/null"
alias -g NUL="&> /dev/null" alias -g NUL="&> /dev/null"
alias -g BG="&;disown" alias -g BG="&;disown"
alias -g COL="| column -t"
alias -g CLIP="| xclip -i -selection primary -f | xclip -i -selection clipboard"
fi fi
# File default aliases # File default aliases
if alias -s 2>/dev/null; then if alias -s 2>/dev/null; then
alias -s pdf="open" alias -s pdf="open"
alias -s zip="unzip -l"
alias -s rar="unrar l"
alias -s tar="tar tf"
alias -s gz="tar tf"
alias -s jar="java -jar" alias -s jar="java -jar"
alias -s git="git clone --recursive" alias -s git="git clone --recursive"
fi fi
alias ..la="cd ..;la"
alias ..ll="cd..;ll"
alias ..l="..ll"
alias l=ll alias l=ll
alias ls='ls --color=auto' alias ls='ls --color=auto'
alias ll='ls -lFh --group-directories-first' alias ll="ls -lFh --group-directories-first"
alias la='ls -lAFh --group-directories-first' alias la="ls -lAFh --group-directories-first"
alias lt='ls -lFh --sort=time' alias lt='ls -lAFh --sort=time'
alias lat='ls -lAFh --sort=time'
alias lsz='ls -lAFh --sort=size' alias lsz='ls -lAFh --sort=size'
alias al=la # No, I don't need the Mono Assembly Linker alias al=la # No, I don't need the Mono Assembly Linker
alias md='mkdir -p' alias md="mkdir -p"
alias rd='rmdir -p' alias rd="rmdir -p"
alias -- -='cd -' alias -- -='cd -'
cdt() { cd "$(mktemp -d -t "${1:-tmp}.XXXXXXXX")"; } alias cdt='cd `mktemp -d`'
alias svi=sudoedit alias svi=sudoedit
alias svim=sudoedit alias svim=sudoedit
@ -46,26 +57,26 @@ alias sudo='sudo '
alias open=xdg-open alias open=xdg-open
# Command rewrites # Command rewrites
alias rm='rm -iv' 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 wget='wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file' alias ssh="ssh -tt"
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file"
alias vi=vim alias vi=vim
alias grip='grip --pass=$GRIP_API_KEY' alias grip='grip --user=frebib --pass=$GRIP_API_KEY'
alias acme.sh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log' alias acme.sh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log'
alias acmesh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log' alias acmesh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log'
alias alpine-sdk="docker run -ti --rm \ alias alpine-sdk='docker run -ti --rm \
-e USER \ -e USER \
-e UID=\"\$(id -u)\" \ -e UID="$(id -u)" \
-e PWD \ -e PWD \
-e HOME \ -e HOME \
-w \$PWD \ -w $PWD \
-v \$PWD:\$PWD \ -v $PWD:$PWD \
-v ~/.abuild:\$HOME/.abuild \ -v ~/.abuild:$HOME/.abuild \
-v ~/.abuild/distfiles:/var/cache/distfiles \ -v ~/.abuild/distfiles:/var/cache/distfiles \
frebib/alpine-sdk:edge" frebib/alpine-sdk:edge'
alias abuild='alpine-sdk abuild' alias abuild='alpine-sdk abuild'
alias abuild-sign='alpine-sdk abuild-sign' alias abuild-sign='alpine-sdk abuild-sign'
alias apk='alpine-sdk apk' alias apk='alpine-sdk apk'
@ -89,14 +100,12 @@ vim --version 2>/dev/null | command grep -q +clientserver && \
alias vim="vim --servername vim -p" alias vim="vim --servername vim -p"
# Function aliases # Function aliases
env() { command env "$@" | stripansi | sort; } env() { command env $@ | stripansi | sort; }
mcd(){ mkdir -p -- "$@" && cd -- "$@"; } 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 --'
@ -104,82 +113,59 @@ alias kl='killall -s 9'
alias chx='chmod +x' alias chx='chmod +x'
# Git Aliases # Git Aliases
alias git='TZ=UTC git'
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'
alias gcl="git clone --recursive" alias gcl="git clone --recursive"
alias gco="git checkout" alias gco="git checkout"
alias gcom="git checkout \"\$(git defbranch)\"" alias gcom="git checkout master"
alias ga="git add" alias ga="git add"
alias gap="git add -p" alias gap="git add -p"
alias gau="git add -u" 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 --date=\"$(date -R)\""
alias gcan="gca -s --no-edit" alias gcn="git commit --no-edit"
alias gcam="gca -s -m" alias gcan="gca --no-edit"
alias gcam="gca -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 grbi="grb -i"
alias grba="grb --abort" alias grba="grb --abort"
alias grbc="grb --continue" alias grbc="grb --continue"
alias grbsk="grb --skip" alias grbsk="grb --skip"
alias grbsh="grb --show-current" alias grbsh="grb --show-current"
alias grbom="git rebase \"origin/\$(git defbranch)\"" alias grbom="git rebase origin/master"
gfrb() { remote="${1%/*}"; git fetch "$remote" && git rebase "$@"; }
gfrbi() { remote="${1%/*}"; git fetch "$remote" && git rebase -i "$@"; }
alias gam="git am"
alias gama="git am --abort"
alias gamc="git am --continue"
alias gamsk="git am --skip"
alias gcp="git cherry-pick"
alias gcpa="git cherry-pick --abort"
alias gcpc="git cherry-pick --continue"
alias gcpsk="git cherry-pick --skip"
alias grv="git revert"
alias grva="git revert --abort"
alias grvc="git revert --continue"
alias grvsk="git revert --skip"
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 gpoH="git push origin HEAD"
alias gpsuom="git push --set-upstream origin \"\$(git defbranch)\"" 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 --patch-with-stat"
alias gdni="gd --no-index"
alias gds="gd --staged" alias gds="gd --staged"
alias gsh="git show --format=fuller --patch-with-stat" alias gsh="git show --format=full --patch-with-stat"
alias glg="git log --color --format=fuller --stat --no-merges --graph" alias glg="git log --format=full --stat --color"
alias glgp="git log --color --format=fuller --patch-with-stat --no-merges --graph" alias glog="git log --oneline --decorate --color --graph"
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 gbrl="git for-each-ref --sort=committerdate refs/heads/ --format=\"%(refname:short)\" | fzf -x --ansi --multi --preview-window=right:70% --preview=\"git log --format=fuller --stat --color=always {} | head -n\$((\$(tput lines)*10))\""
alias gtg="git tag" alias gtg="git tag"
alias gbl="git blame"
alias gr="git remote" alias gr="git remote"
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"
@ -196,7 +182,7 @@ 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 --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 --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 --format='table {{.ID}}\t{{.Image}}\t{{.Label \"org.label-schema.version\"}}\t{{.Networks}}\t{{.RunningFor}}\t{{.Status}}\t{{.Names}}' | sed '1s/version/VERSION/'"
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" 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; } 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 din='docker inspect'
alias drm='docker rm' alias drm='docker rm'
alias drmi='docker rmi' alias drmi='docker rmi'
@ -205,32 +191,30 @@ alias dbl='docker build --pull'
alias dbl.='docker build --pull .' alias dbl.='docker build --pull .'
alias drun='docker run -ti' alias drun='docker run -ti'
alias dkl='docker kill' alias dkl='docker kill'
alias drmf='docker rm -f' dklrm() { docker kill $@ ; docker rm $@; }
alias dst='docker stop' alias dst='docker stop'
alias drst='docker restart' alias drst='docker restart'
alias dnet='docker network' alias dnet='docker network'
alias dvol='docker volume' alias dvol='docker volume'
alias dc='docker compose' alias dlg='docker logs -f'
alias dlg='docker logs --tail=1000 -f'
alias dalpine='docker run -ti --rm spritsail/alpine /bin/sh' alias dalpine='docker run -ti --rm spritsail/alpine /bin/sh'
alias drm-stopped='docker container prune' alias drm-stopped='docker container prune'
alias drmi-untag='docker image prune' alias drmi-untag='docker image prune'
alias dprune='docker system prune -f' alias dprune='docker system prune -f'
dsh() { do_dsh 2 exec "$@"; return $?; } dsh() { do_dsh 2 exec $@; return $?; }
_dsh() { __docker_complete_running_containers "$@"; } _dsh() { __docker_complete_running_containers $@; }
drsh() { do_dsh 4 run --rm --entrypoint= "$@"; return $?; } drsh() { do_dsh 4 run --rm --entrypoint= $@; return $?; }
_drsh() { __docker_container_subcommand "$@"; } _drsh() { __docker_container_subcommand $@; }
do_dsh() { do_dsh() {
local minargs=$1 local minargs=$1
shift shift
if [ $# -lt "$minargs" ]; then if [ $# -lt $minargs ]; then
# shellcheck disable=SC2154
echo "Usage: ${funcstack[2]} [user@]container [program [args]]" >&2 echo "Usage: ${funcstack[2]} [user@]container [program [args]]" >&2
return 64 return 64
fi fi
local dowhat="$1" local dowhat="$1"
local docker_args=("$dowhat" -ti) local docker_args=()
shift shift
while [ "${1:0:1}" = '-' ]; do while [ "${1:0:1}" = '-' ]; do
@ -242,84 +226,76 @@ do_dsh() {
shift shift
done done
local user local user="$(echo "$1" | cut -d'@' -f1 -s)"
user="$(echo "$1" | cut -d@ -f1 -s)" local prog="${@:2:$#}"
local usercmd=""
declare -a prog
prog=("${@:2:$#}")
if [ -z "$user" ]; then if [ -z "$user" ]; then
host="$1" host="$1"
else else
host="$(cut -d@ -f2 -s <<< "$1")" host=`echo $1 | cut -d'@' -f2 -s`
docker_args+=("--user=$user") usercmd="--user=$user"
fi fi
if [ "$dowhat" = exec ] && [ -z "$(docker ps -q -f name="$host" <&-)" ]; then if [ "$dowhat" = 'exec' -a -z "$(docker ps -q -f name="$host")" <&- ]; then
echo "No such container $host" >&2 echo "No such container $host" >&2
return 5 return 5
fi fi
if [ "$dowhat" = run ]; then
docker image pull "$host"
fi
if [ ${#prog[@]} = 0 ]; then if [ -z "$prog" ]; then
shell_args=("$dowhat") shell_args=()
if [ "$dowhat" = 'run' ]; then if [ "$dowhat" = 'run' ]; then
shell_args+=(--rm --entrypoint=) shell_args=(--rm --entrypoint=)
fi fi
for shell in bash sh; do for shell in bash sh; do
shell_path="$(set -o pipefail; docker "${shell_args[@]}" "$host" which "$shell" <&- | sed 's|[\r\n]||g')" shell_path="$(set -o pipefail; docker $dowhat ${shell_args[@]} "$host" which "$shell" <&- | sed 's|[\r\n]||g')"
retval=$? retval=$?
if [ $retval -eq 0 ]; then if [ $retval -eq 0 ]; then
prog=("$shell_path") prog="$shell_path"
break break
elif [ $retval -ge 125 ]; then elif [ $retval -ge 125 ]; then
return return
fi fi
done done
if [ ${#prog[@]} = 0 ]; then if [ -z "$prog" ]; then
echo "Warning: No shell found in path.. trying /bin/sh" >&2 echo "Warning: No shell found in path.. trying /bin/sh" >&2
prog=(/bin/sh) prog=/bin/sh
fi fi
fi fi
docker "${docker_args[@]}" "$host" "${prog[@]}" docker $dowhat ${docker_args[@]} -ti $usercmd $host $(xargs <<< $prog)
} }
alias dc='docker-compose'
alias dm='docker-machine' alias dm='docker-machine'
dmc() { eval "$(docker-machine env "$1")"; } 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}' | column -t -R 2,3,4); 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'
# shellcheck disable=SC2139 alias aliases="$EDITOR $DOTFILES/aliases ; exec zsh"
alias aliases="\$EDITOR $thisfile ; 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 $DOTFILES"
alias dotfiles="cd \$XDG_CONFIG_HOME" alias i3c="$EDITOR $XDG_CONFIG_HOME/i3/config ; i3-msg restart"
alias i3c="\$EDITOR \$XDG_CONFIG_HOME/i3/config; systemctl --user reload i3" alias polybarc="$EDITOR $XDG_CONFIG_HOME/polybar/config; killall -q polybar; while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done; exec polybar -r i3bar"
alias polybarc="\$EDITOR \$XDG_CONFIG_HOME/polybar/config.ini; 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 # Networking aliases
alias ipa="ip a" 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*//'" 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,14 +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"
PATH="${PATH}:/sbin:/usr/sbin:${HOME}/.local/bin:${XDG_CONFIG_HOME}/scripts"
# vim: ft=sh

View File

@ -1,27 +0,0 @@
# Override paths for non-compliant programs
# https://wiki.archlinux.org/index.php/XDG_Base_Directory_support
ASPELL_CONF="per-conf $XDG_CONFIG_HOME/aspell/aspell.conf; personal $XDG_CONFIG_HOME/aspell/en.pws; repl $XDG_CONFIG_HOME/aspell/en.prepl"
CARGO_HOME="$XDG_DATA_HOME/cargo"
GNUPGHOME="$XDG_CONFIG_HOME/gnupg"
GEM_HOME="$XDG_DATA_HOME/gem"
GEM_SPEC_CACHE="$XDG_CACHE_HOME/gem"
GOPATH="$XDG_DATA_HOME/go"
ICEAUTHORITY="$XDG_CACHE_HOME/ICEauthority"
NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc"
PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass"
PYTHONSTARTUP="$XDG_CONFIG_HOME/python/startup"
RUSTUP_HOME="$XDG_DATA_HOME/rustup"
TERMINFO="$XDG_DATA_HOME/terminfo"
TERMINFO_DIRS="$XDG_DATA_HOME/terminfo:/usr/share/terminfo"
TS3_CONFIG_DIR="$XDG_CONFIG_HOME/teamspeak3"
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}:${GOPATH}/bin:${GEM_HOME}/ruby/3.0.0/bin"
# vim: ft=sh

View File

@ -1,82 +0,0 @@
[base]
default = 12
unknown-token = red,bold
commandseparator = cyan
redirection = cyan,bold
here-string-tri = yellow
here-string-text = 18
here-string-var = cyan,bg:18
exec-descriptor = yellow,bold
comment = 7
correct-subtle = 12
incorrect-subtle = red
subtle-separator = green
subtle-bg = bg:18
secondary =
recursive-base =
[command-point]
reserved-word = yellow
subcommand = yellow
alias = blue
suffix-alias = green
global-alias = blue,bold
builtin = blue
function = blue
command = blue
precommand = blue
hashed-command = green
single-sq-bracket = green
double-sq-bracket = green
double-paren = yellow
[paths]
path = cyan
pathseparator = cyan
path-to-dir = magenta,underline
globbing = red
globbing-ext = 13
[brackets]
paired-bracket = bg:blue
bracket-level-1 = green,bold
bracket-level-2 = yellow,bold
bracket-level-3 = cyan,bold
[arguments]
single-hyphen-option = 12
double-hyphen-option = 12
back-quoted-argument = none
single-quoted-argument = yellow
double-quoted-argument = yellow
dollar-quoted-argument = yellow
[in-string]
; backslash in $'...'
back-dollar-quoted-argument = cyan
; backslash or $... in "..."
back-or-dollar-double-quoted-argument = cyan
[other]
variable = 113
assign = green
assign-array-bracket = green
history-expansion = blue,bold
[math]
mathvar = blue,bold
mathnum = magenta
matherr = red
[for-loop]
forvar = none
fornum = magenta
; operator
foroper = yellow
; separator
forsep = yellow,bold
[case]
case-input = green
case-parentheses = yellow
case-condition = bg:blue

View File

@ -1 +0,0 @@
../gtk-3.0/settings.ini

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
systemctl reboot;;
esac

View File

@ -1,55 +0,0 @@
noremap d h
noremap h j
noremap t k
noremap n l
noremap D H
noremap H J
noremap T K
noremap N L
noremap gh gj
noremap gt gk
" I work with tabs every now and then. No, I don't have a mnemonic, so
" stfu.
noremap gj gt
noremap gJ gT
" Window movement, equally important
noremap <C-w>d <C-w>h
noremap <C-w>h <C-w>j
noremap <C-w>t <C-w>k
noremap <C-w>n <C-w>l
nnoremap <C-w><C-d> <C-w><C-h>
nnoremap <C-w><C-h> <C-w><C-j>
nnoremap <C-w><C-t> <C-w><C-k>
nnoremap <C-w><C-n> <C-w><C-l>
nnoremap <C-d> <C-w>h
nnoremap <C-h> <C-w>j
nnoremap <C-t> <C-w>k
nnoremap <C-n> <C-w>l
" Account for tag jumping
nnoremap <C-j> <C-t>
" Remappings for the D key
noremap k d
noremap K D
" Remappings for the T key
noremap j t
"noremap J T
" Remapping for the L key
noremap l n
noremap L N
" General purpose help; the originals remain for convenience
noremap - 0
noremap _ $
" Fold-related keybindings
noremap zh zj
noremap zt zk

View File

@ -1,42 +0,0 @@
[Default Applications]
# eog for images
image/bmp=org.gnome.eog.desktop
image/gif=org.gnome.eog.desktop
image/jpeg=org.gnome.eog.desktop
image/jpg=org.gnome.eog.desktop
image/pjpeg=org.gnome.eog.desktop
image/png=org.gnome.eog.desktop
image/svg+xml-compressed=org.gnome.eog.desktop
image/svg+xml=org.gnome.eog.desktop
image/tiff=org.gnome.eog.desktop
image/x-bmp=org.gnome.eog.desktop
image/x-gray=org.gnome.eog.desktop
image/x-icb=org.gnome.eog.desktop
image/x-ico=org.gnome.eog.desktop
image/x-png=org.gnome.eog.desktop
image/x-portable-anymap=org.gnome.eog.desktop
image/x-portable-bitmap=org.gnome.eog.desktop
image/x-portable-graymap=org.gnome.eog.desktop
image/x-portable-pixmap=org.gnome.eog.desktop
# evince for pdfs
application/pdf=org.gnome.Evince.desktop
# vim for textual files
application/x-shellscript=vim.desktop
text/english=vim.desktop
text/plain=vim.desktop
text/x-makefile=vim.desktop
# Firefox for web/html
text/html=firefox.desktop
x-scheme-handler/about=firefox.desktop
x-scheme-handler/http=firefox.desktop
x-scheme-handler/https=firefox.desktop
x-scheme-handler/unknown=firefox.desktop
# Various desktop applications
inode/directory=nautilus.desktop
x-scheme-handler/magnet=deluge.desktop
x-scheme-handler/tg=telegramdesktop.desktop

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,152 +0,0 @@
# Logging
log-level = "info";
#log-file = "/home/frebib/.local/share/picom.log";
# Shadow
shadow = true;
shadow-radius = 30;
shadow-offset-x = -30;
shadow-offset-y = -24;
shadow-opacity = 0.4;
shadow-color = "#000000";
shadow-exclude = [
"class_g = 'slop'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'firefox' && argb && (window_type = 'utility' || window_type = 'popup_menu')",
"name = 'Notification'",
"name = 'cpt_frame_window'",
"_GTK_FRAME_EXTENTS@:c"
];
# shadow-exclude = "n:e:Notification";
# shadow-exclude-reg = "x10+0+0";
# shadow-ignore-shaped = true;
xinerama-shadow-crop = true;
# Opacity
frame-opacity = 1.0;
active-opacity = 1.0;
inactive-opacity = 0.5;
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 = 12;
};
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 = 'utility' || window_type = 'popup_menu')",
"window_type = 'dock'",
"window_type = 'desktop'",
"_GTK_FRAME_EXTENTS@:c",
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];
# Corners
corner-radius = 9;
# Fading
fading = true;
fade-delta = 10;
fade-in-step = 0.035;
fade-out-step = 0.06;
no-fading-openclose = false;
no-fading-destroyed-argb = false;
# fade-exclude = [ ];
# Focus
focus-exclude = [
"i:ai:chromium",
"class_g = 'firefox'",
"class_g = 'zoom'",
"class_g = 'guvcview'",
"class_g = 'Entangle'",
"class_g = 'obs'",
"class_g = 'parsecd'",
"class_g = 'discord'",
"class_g = 'steam_app_271590'"
];
transition-length = 350;
transition-pow-x = 0.3;
transition-pow-y = 0.3;
size-transition = true;
# Other
# https://github.com/yshui/picom/blob/next/picom.sample.conf#L203
backend = "glx";
vsync = true;
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
use-ewmh-active-win = true;
# unredir-if-possible = true;
# unredir-if-possible-delay = 5000;
# unredir-if-possible-exclude = [ ];
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;
# no-use-damage = false;
use-damage = true;
# Window type settings
wintypes: {
tooltip = {
opacity = 0.75;
full-shadow = false;
blur-background = false;
}
dock = {
# Prevents polybar getting a forehead-shadow
shadow = false;
}
dnd = {
# Prevents dragged text in a browser getting blur/shadow
shadow = false;
blur-background = false;
}
popup_menu = {
opacity = 0.8;
}
dropdown_menu = {
opacity = 0.8;
}
};
#animations = true;
#animation-clamping = false;
#animation-dampening = 1.0;
#animation-window-mass = 0.125;
#animation-unmap = "fade-out";
#animation-for-unmap-window = "zoom";
#animation-for-open-window = "auto";
#animation-workspace-in = "slide-left";
#animation-workspace-out = "slide-left";
#animation-for-workspace-switch-in = "auto";
#animation-for-workspace-switch-out = "auto";
#animation-for-transient-window = "zoom";
# vim: ft=conf noet

View File

@ -1,24 +0,0 @@
#!/usr/bin/env python
import atexit
import os
import readline
xdg_cache_home = os.environ['XDG_CACHE_HOME']
if xdg_cache_home is None or xdg_cache_home == "":
xdg_cache_home = os.path.join(os.path.expanduser("~"), ".cache")
python_cache_dir = os.path.join(xdg_cache_home, "python")
if not os.path.isdir(python_cache_dir):
os.mkdir(python_cache_dir)
histfile = os.path.join(python_cache_dir, "history")
try:
readline.read_history_file(histfile)
readline.set_history_length(10000)
except FileNotFoundError:
pass
atexit.register(readline.write_history_file, histfile)

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

@ -10,3 +10,5 @@ xrandr --output $BOTTOM_LEFT --primary --mode 1920x1080 --pos 0x1080 --rotate no
--output $TOP_LEFT --mode 1920x1080 --pos 0x0 --rotate inverted \ --output $TOP_LEFT --mode 1920x1080 --pos 0x0 --rotate inverted \
--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

View File

@ -15,3 +15,5 @@ MODENAME=${MODELINE%% *}
xrandr --newmode $MODELINE 2>/dev/null || true 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

View File

@ -1,69 +1,31 @@
#!/bin/bash #!/bin/sh
set -eu set -e
# Based on https://github.com/vincentbernat/awesome-configuration/blob/master/bin/xsettingsd-setup # Based on https://github.com/vincentbernat/awesome-configuration/blob/master/bin/xsettingsd-setup
CONF_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
BLUR_STRENGTH=12 dpi=$1
CURSOR_SIZE=28
CORNER_RADIUS=9
xrdbget() { if [ -z "$1" ]; then
set -o pipefail >&2 printf "Usage\n\t%s: <dpi>" "$(basename "$0")"
xrdb -query | grep -i -m1 "$1" | sed 's/^.*:\s//g' || echo "$2"
}
xsetting_bool() {
case "$1" in
true) echo 1;;
false) echo 0;;
default) echo -1;;
*) echo -1;;
esac
}
if [ -z "$1" ] || [ "$1" -gt 200 ] || [ "$1" -lt 96 ]; then
>&2 printf "Usage\n\t%s: value\n\n value\t Value must be within 96-200 inclusive\n" "$(basename "$0")"
exit 1 exit 1
fi fi
dpi=$1 CONF_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/xsettingsd"
scale=$(( dpi/96 )) mkdir -p "$CONF_DIR"
cursor=$(( (dpi*CURSOR_SIZE)/96 ))
# Update picom scale # Build xsettingsd.local
sed -i -e "s/strength =.*$/strength = $(( (dpi*BLUR_STRENGTH)/96 ));/" \
-e "s/corner-radius =.*$/corner-radius = $(( (dpi*CORNER_RADIUS)/96 ));/" \
"$CONF_DIR/picom/picom.conf" &
# Build xsettingsd.conf
mkdir -p "$CONF_DIR/xsettingsd"
{ {
cat "$CONF_DIR/xsettingsd.local" 2>/dev/null || : cat $CONF_DIR/xsettingsd.conf 2>/dev/null || true
echo "Xcursor/size $cursor" echo Xft/DPI $(( $dpi*1024 ))
echo "Gtk/CursorThemeSize $cursor" echo Gdk/WindowScalingFactor $(( $dpi/96 ))
echo "Gtk/CursorThemeName \"$(xrdbget Xcursor.theme Adwaita)\"" echo Gdk/UnscaledDPI $(( $dpi*1024/($dpi/96) ))
echo "Xft/HintStyle \"$(xrdbget Xft.hintstyle hintfull)\"" } > $CONF_DIR/xsettingsd.local
echo "Xft/Hinting $(xsetting_bool "$(xrdbget Xft.hinting default)")"
echo "Xft/RGBA \"$(xrdbget Xft.rgba rgb)\""
echo "Xft/DPI $(( dpi*1024 ))"
echo "Gdk/WindowScalingFactor $scale"
echo "Gdk/UnscaledDPI $(( dpi*1024/scale ))"
} > "$CONF_DIR/xsettingsd/xsettingsd.conf"
xrdb -merge <<EOF & pid=$(xprop -name xsettingsd _NET_WM_PID 2> /dev/null | awk '{print $NF}')
Xft.dpi: $dpi if [ -z "$pid" ]; then
Xcursor.size: $cursor xsettingsd -c $CONF_DIR/xsettingsd.local &
EOF else
xrandr --dpi "$dpi" & kill -HUP $pid
systemctl --user reload-or-restart xsettingsd & fi
wait
systemctl --user reload \ echo Xft.dpi: $dpi | xrdb -merge
i3 \
polybar@i3bar &
systemctl --user restart \
dunst &
wait

View File

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

View File

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

View File

@ -1,42 +0,0 @@
#!/usr/bin/env bash
while getopts "on:" o; do
case "${o}" in
o)
stdout=1;;
n)
caller="${OPTARG}"
;;
*)
exec ykman oath accounts list
;;
esac
done
shift $((OPTIND-1))
if [ $# -lt 1 ]; then
exec ykman oath accounts list
fi
if [ -n "$caller" ]; then
notif="$(notify-send -p "Touch your Yubikey" "$caller is requesting otp for $1")"
fi
ykman oath accounts code -s "$1" 2>&1 |
while read -r x; do
if grep -Pqw '[0-9]{6}' <<< "$x"; then
if [ -z "$stdout" ]; then
echo "$x" | tee >(xclip -i)
xdotool type "$x"
else
echo "$x"
fi
fi
if [ -z "$stdout" ]; then
notify-send "$x";
fi
done
if [ -n "$notif" ]; then
notify-send -r "$notif" -t 1000 "Touch your Yubikey" "otp generated for $caller"
fi

120
scripts/rofi-emoji Executable file
View File

@ -0,0 +1,120 @@
#!/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
display
return
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

@ -57,9 +57,10 @@ 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"
line=$(echo "$fontawesome" | rofi -dmenu -i -p fontawesome -normal-window -kb-custom-1 Ctrl+c -kb-row-tab '' $@) 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 $@)
exit_code=$? exit_code=$?
if [ "${line[@]}" == "$update" ]; then if [ "${line[@]}" == "$update" ]; then
@ -68,6 +69,7 @@ function display() {
return 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"
SCROT_CMD="maim -m 10 -us %"
FILENAME="$(date '+%s%N' | sha256sum | head -c7).png" FILENAME="$(date '+%s%N' | sha256sum | head -c7).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 clipboard -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,27 +0,0 @@
#!/bin/bash -e
slice=app
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))
exec systemd-run \
--user \
--collect \
--slice="$slice" \
--unit="$slice-$1-$rand" \
--property=BindsTo=graphical-session.target \
--property=ExitType=cgroup \
"${args[@]}" -- "$@"

View File

@ -1,13 +0,0 @@
#!/bin/sh -e
if [ -z "$SSH_HOST" ]; then
>&2 echo 'Missing SSH_HOST variable'
exit 1
fi
case "$SSH_HOST" in
*)
echo 'Unknown SSH host'
exit 1
;;
esac

View File

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

View File

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

View File

@ -1 +0,0 @@
/usr/lib/systemd/user/pipewire.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,5 +0,0 @@
[Service]
Slice=session.slice
[Install]
WantedBy=graphical-session.target

View File

@ -1,16 +0,0 @@
[Unit]
Description=GPhoto2 capture with ffmpeg encoding
[Service]
Type=simple
ExecStartPre=gphoto2 --abilities
ExecStart=/bin/sh -c 'exec gphoto2 --set-config /main/capturesettings/continuousaf=1 --set-config /main/capturesettings/focusmode="AI Servo" --set-config /main/imgsettings/whitesbalance=Tungsten --capture-movie --stdout --set-config viewfinder=0 | ffmpeg -i - -f rawvideo -vf "crop=iw:iw*9/16" -pix_fmt yuv420p -threads 0 -s:v 1280x720 -r 25 -f v4l2 /dev/video%i'
ExecStop=/bin/kill $MAINPID
ExecStop=-/usr/bin/gphoto2 --set-config viewfinder=0
Restart=always
RestartSec=5
SyslogIdentifier=gphoto-ffmpeg
Slice=app.slice
[Install]
WantedBy=default.target

View File

@ -1,15 +0,0 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Current graphical user session
Documentation=man:systemd.special(7)
Requires=basic.target xorg.target
RefuseManualStart=yes
StopWhenUnneeded=yes

View File

@ -1 +0,0 @@
/usr/lib/systemd/user/dunst.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/redshift.service

View File

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

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