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

77 Commits

Author SHA1 Message Date
2d414258ca rofi-emoji: replace rofi-emoji script with rofi plugin
https://github.com/Mange/rofi-emoji

Signed-off-by: Joe Groocock <me@frebib.net>
2020-07-22 20:55:17 +01:00
41fff2dd6c i3: increase inner gaps to 24px
Signed-off-by: Joe Groocock <me@frebib.net>
2020-07-18 16:49:25 +01:00
1f6518193e aliases: force editor with gcm alias
This always opens the editor after writing a commit message for final
tweaking before committing

Signed-off-by: Joe Groocock <me@frebib.net>
2020-07-14 21:08:54 +01:00
08373e019a vim: add Salt SLS syntax highlighting
This is better than Jinja+YAML highlighters alone as it combines both
into one

Signed-off-by: Joe Groocock <me@frebib.net>
2020-07-14 21:07:18 +01:00
58e3e31d7d i3: start jetbrains splash as floating
Signed-off-by: Joe Groocock <me@frebib.net>
2020-07-14 21:03:06 +01:00
fa0e057e2e mailnag: remove mailnag
Signed-off-by: Joe Groocock <me@frebib.net>
2020-06-21 11:03:01 +01:00
6943839b3b qt5: replace QT_STYLE_OVERRIDE with qt5ct config
The latest version of qt5 ignores these environment variables and reads the configuration instead

Signed-off-by: Joe Groocock <me@frebib.net>
2020-06-21 11:02:53 +01:00
b52496bbb3 scripts/screenshot: add --active and --clip args
--active uses the active window as selection boundary, instead of the root window, or prompting for a window selection
--clip adds the image to the clipboard and exits without uploading

Signed-off-by: Joe Groocock <me@frebib.net>
2020-05-30 00:28:27 +01:00
308eff050e aliases: signoff with git-commit aliases
Remove gcmst as it is almost never used

Signed-off-by: Joe Groocock <me@frebib.net>
2020-05-30 00:22:27 +01:00
bae4f0b819 solaar: hide window on startup
The new default behaviour is to show, not hide

Signed-off-by: Joe Groocock <me@frebib.net>
2020-05-30 00:21:00 +01:00
ee9af5eeca zsh: move compinit to end of zshrc
This saves one compinit load, from 3 to 2 which should slightly reduce startup time
2020-05-17 12:39:39 +01:00
fbb43dfff5 picom: speed up fading slightly 2020-05-04 08:53:21 +01:00
d407512522 scripts/rofi-emoji: simplify clipboard/typing logic
Always do both, because that is the easiest thing to do
2020-04-02 13:19:23 +01:00
f67a8e5f80 scripts/screenshot: reduce window shadow to 60% opacity 2020-04-02 12:49:11 +01:00
d1772bc178 vim: gitcommit: add right gutter at column 72
Also set the tab indent to 4 chars instead of the default 8
2020-04-02 11:41:18 +01:00
7f79cca7bc scripts/systemd-run-i3: fix overriding unit name
systemd-run uses the last passed argument for each flag, so specify the
default first, and the override afterwards, if set
2020-04-02 11:33:57 +01:00
928ef584e6 picom: fix focus/blur/shadows with Zoom 2020-04-02 11:32:21 +01:00
b58469c1ea i3: rearrange terminal shortcuts
Also directly invoke alacritty instead of i3-sensible-terminal as the
arguments passed are alacritty specific. Ideally there would be a
wrapper script that handles terminal-emulator specific arguments so this
would work with many/multiple emulators.
2020-04-02 11:30:35 +01:00
5d55a2eeba aliases: add gcp alias for cherry-pick 2020-03-28 15:23:35 +00:00
2e5b5d18fe i3: don't run rofi-* in systemd
For some reason, it breaks xclip in strange ways, possibly because the systemd unit closes and kills the xclip process
2020-03-28 14:17:50 +00:00
6e28f1d0c4 i3: xkill on key release 2020-03-28 14:14:38 +00:00
3958c544a3 alacritty: set 120x40 default buffer size 2020-03-25 18:03:14 +00:00
45680df7c5 scripts/screenshot: add shadow to full-window snaps 2020-03-24 23:07:28 +00:00
e6bf7b181f systemd: picom should wait for dbus to start 2020-03-24 22:29:45 +00:00
cd5cb41179 top: reduce refresh delay to 0.5s 2020-03-24 22:28:49 +00:00
40946fed7c fontconfig: override SFMono with default monospace font
This makes Atlassian websites look more consistent with the rest of the browser experience
2020-03-24 22:27:37 +00:00
54bc7448b9 i3: add $mod+x for xkill, rebind xprop to $mod+shift+x 2020-03-24 22:26:38 +00:00
937e0cf2dc i3: run screenshot utilities directly so xclip works 2020-03-24 22:25:02 +00:00
e017568b41 systemd: parameterise autocutsel service
Enable three invocations, one for each kind of clipboard
With this, they should all now stay in sync (I hope)
2020-03-24 22:03:22 +00:00
e43b6af0ad alacritty: bind Ctrl+Shift+Action for font-size change 2020-03-24 21:59:08 +00:00
fa79deeb05 gitignore: exclude gopass logo
Annoyingly this file is auto-generated in the config directory, even though it's definitely not configuration 🤷
2020-03-22 23:17:45 +00:00
90fc09e1a9 scripts/fontawesome: simplify subshell calls 2020-03-22 23:09:04 +00:00
7017703cab i3: kill any rofi instances before starting
Rofi doesn't allow starting without creating/checking a pidfile, for some strange reason, so we work around it like this
2020-03-22 23:00:17 +00:00
4a646b6573 aliases: scp is always recursive
This should be the default >.<
2020-03-22 12:46:26 +00:00
37ad234319 aliases: add ginit alias 2020-03-22 12:46:07 +00:00
5547ec844c i3/powermenu: add pretty icons 2020-03-22 12:44:57 +00:00
934944d248 i3: don't stop desktop on restart
This allows restarting the i3 process without killing the session
2020-03-22 12:36:50 +00:00
ec0b562960 picom: log info; reduce excessive log spam 2020-03-22 12:36:06 +00:00
028c549ea9 polybar: delay before closing yay window
To give the user enough time to actually read the output
2020-03-22 12:35:49 +00:00
96902aee6b X11: don't fail xprofile when xmodmap is absent 2020-03-22 12:35:16 +00:00
c495293fb7 i3/powermenu: exit systemd session on logout 2020-03-22 12:34:05 +00:00
9aeeee58d0 i3: launch i3 programs with systemd
This parents each program within it's own service/scope to the systemd user session, independent of i3
2020-03-22 12:33:26 +00:00
8e86599372 i3/powermenu: fix rebooting when non-interactive 2020-03-22 12:32:00 +00:00
4b52c21ac9 alacritty: set alacritty as default terminal 2020-03-22 11:10:14 +00:00
d985ba7b12 alacritty: increase background opacity for visual 2020-03-22 10:54:27 +00:00
fb68f77812 alacritty: increase history buffer 10x 2020-03-22 10:47:49 +00:00
7deef0edfc browser: set default browser to Firefox 2020-03-22 10:47:30 +00:00
82d7d0409f X11: add gtk2 config to X11 profile 2020-03-22 10:47:13 +00:00
133af4caf1 X11: enable pixel-accurate scrolling in firefox 2020-03-22 10:37:42 +00:00
b59f33a1f5 zsh: systemd: explicitly set pager with args
Sometimes systemd ignores the $LESS variable, so force it a little harder
2020-03-22 10:28:14 +00:00
6dc01ac2bd polybar: fix updates/weather clickable icons 2020-03-22 09:55:19 +00:00
ce2d5e267a polybar: fix gateway ping for v4-only networks 2020-03-22 09:54:42 +00:00
874e177b8f systemd: polybar wait for i3
This should ensure that the IPC socket to get i3 workspaces works on polybar startup

In reality this doesn't help because systemd marks the service as active before the socket file is created, so startup is still racy
2020-03-21 23:37:05 +00:00
7b193b1b99 zsh: less enable mouse support
Usually this works most of the time, but in some invocations mouse does not work without this,

e.g. systemctl status
2020-03-21 23:37:05 +00:00
16c629fc70 zsh: enable multibyte (unicode) support
I don't know why I had this disabled. Probably copy-paste when I had no idea what it meant or did
2020-03-21 23:37:05 +00:00
02041c3b27 picom: use ewmh active-window and render damage 2020-03-21 23:37:04 +00:00
18aa625eca picom: disable logging to file 2020-03-21 23:37:04 +00:00
a45ef24aff picom: update Firefox class to 'firefox' 2020-03-21 23:37:04 +00:00
d741e2e6fa zsh: fix backspacing across newlines in vi-mode 2020-03-21 23:37:04 +00:00
080e92b740 zsh: add Ctrl+W (emacs delete word) in Vi mode
Yes, I see the irony in this one, it's just too convenient to pass up
2020-03-21 23:37:04 +00:00
9e9ba8a76f zsh: add Ctrl+F for fuzzy file search 2020-03-21 23:37:04 +00:00
f2c67c19aa zsh: tty -s prints nothing
Remove redirection of stdout/stderr as they're pointless
2020-03-21 23:37:03 +00:00
8ceb3434a0 polybar: prefer 'systemd-run --no-block' over 'i3-msg exec' 2020-03-21 23:37:03 +00:00
1929a94ef4 i3: use light instead of xbacklight 2020-03-21 23:37:03 +00:00
ccce866b55 systemd: add & enable xsettingsd service
Update `dpi` script to interact with systemd units
2020-03-21 23:37:02 +00:00
bbfb8fff3f gtk2: remove include to non-existent file 2020-03-21 23:03:43 +00:00
ff0d449fa5 git: add 'git leaders' alias
Lists git committers in order of commit count, for a repo
2020-03-21 23:02:28 +00:00
936e8828c8 git: use absolute dates in git-log 2020-03-21 23:01:50 +00:00
fb480c73c5 git: prune deleted branches on fetch/pull 2020-03-21 23:01:01 +00:00
bc89989bbb polybar: use nct6775 cputemp hwmon module 2020-03-21 22:56:09 +00:00
2770fefefd polybar: add gputemp applet
rename temperature to cputemp for consistency
2020-03-21 22:56:09 +00:00
0256369cd6 scripts/screenshot: update screenshot scp path 2020-03-21 22:56:09 +00:00
1fdb93e356 scripts/gtav: add gtav/netsplit scripts 2020-03-21 22:56:09 +00:00
f379b758c9 systemd: add & enable nm-applet service 2020-03-21 22:51:42 +00:00
93a2899c7b i3: allow popups to interrupt fullscreen windows 2020-03-21 22:33:10 +00:00
df03d9062e systemd: enable xautolock service 2020-03-21 22:31:59 +00:00
ddf5a1d387 xautolock: add xorg dependency. timeout after 5min 2020-03-21 22:30:58 +00:00
44 changed files with 277 additions and 286 deletions

View File

@ -1,11 +1,14 @@
#!/bin/sh
#!/bin/sh -u
# Graphical-specific environment variables
export TERMINAL="termite"
export BROWSER="chromium"
export TERMINAL="alacritty"
export BROWSER="firefox"
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 GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/settings.ini"
export QT_QPA_PLATFORMTHEME=qt5ct
# https://www.reddit.com/r/linux/comments/72mfv8/psa_for_firefox_users_set_moz_use_xinput21_to/
export MOZ_USE_XINPUT2=1 # enable pixel-accurate scrolling in firefox
export XDG_CURRENT_DESKTOP="GNOME" # Fixes xdg-open
@ -15,4 +18,6 @@ xrandr --dpi $(xrdb -query | grep -i xft.dpi | cut -d: -f2)
setxkbmap -option caps:none
xset r rate 200 18
xmodmap "$XDG_CONFIG_HOME"/X11/xmodmap
test -f "$XDG_CONFIG_HOME"/X11/xmodmap && \
xmodmap "$XDG_CONFIG_HOME"/X11/xmodmap

View File

@ -69,7 +69,7 @@ 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.url-launcher: /usr/bin/firefox
urxvt.matcher.button: 1
urxvt.keysym.C-Up: font-size:increase

View File

@ -17,9 +17,9 @@ window:
#
# Specified in number of columns/lines, not pixels.
# If both are `0`, this setting is ignored.
#dimensions:
# columns: 0
# lines: 0
dimensions:
columns: 120
lines: 40
# Window position (changes require restart)
#
@ -81,7 +81,7 @@ window:
scrolling:
# Maximum number of lines in the scrollback buffer.
# Specifying '0' will disable scrolling.
history: 10000
history: 100000
# Number of lines the viewport will move for every line scrolled when
# scrollback is enabled (history > 0).
@ -286,7 +286,7 @@ colors:
#
# 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
background_opacity: 0.80
selection:
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
@ -602,9 +602,9 @@ key_bindings:
- { key: Insert, mods: Shift, action: PasteSelection }
- { key: Key0, mods: Control, action: ResetFontSize }
- { key: Equals, mods: Control, action: ResetFontSize }
- { key: Add, mods: Control, action: IncreaseFontSize }
- { key: Subtract, mods: Control, action: DecreaseFontSize }
- { key: Minus, mods: Control, action: DecreaseFontSize }
- { key: Add, mods: Control|Shift, action: IncreaseFontSize }
- { key: Subtract, mods: Control|Shift, action: DecreaseFontSize }
- { key: Minus, mods: Control|Shift, action: DecreaseFontSize }
# (Windows only)
#- { key: Return, mods: Alt, action: ToggleFullscreen }

View File

@ -140,7 +140,7 @@
dmenu = /usr/bin/rofi -dmenu -i -p '' -config ~/.config/dunst/dunst-xresources
# Browser for opening urls in context menu.
browser = /usr/bin/chromium
browser = /usr/bin/firefox
# Align icons left/right/off
icon_position = left

View File

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

View File

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

View File

@ -1,7 +1,6 @@
# 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-icon-theme-name="Xenlism-Wildfire"
gtk-font-name="Noto Sans 9"

View File

@ -113,42 +113,45 @@ exec_always --no-startup-id feh --no-fehbg --no-xinerama --bg-fill $DOTFILES/lak
for_window [class="Pinentry"] floating enable
for_window [class="Pavucontrol"] 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="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_float none
gaps inner 20
gaps inner 24
gaps outer 4
focus_follows_mouse yes
popup_during_fullscreen smart
# keybindings
bindsym $mod+Shift+j reload
bindsym $mod+c exec systemd-run --user --scope --slice=chromium.slice --no-block -- chromium
bindsym $mod+b exec systemd-run --user --scope --slice=firefox.slice --no-block -- firefox
bindsym $mod+v exec "i3-sensible-terminal -e \\"$SHELL -c vim;$SHELL\\"
bindsym $mod+Ctrl+v exec "i3-sensible-terminal -r floating-term -e \\"$SHELL -c vim;$SHELL\\"
bindsym $mod+Return exec i3-sensible-terminal
bindsym $mod+Ctrl+Return exec i3-sensible-terminal -r floating-term
bindsym $mod+Shift+Return exec i3-sensible-terminal -d "`xcwd`"
bindsym $mod+Ctrl+Shift+Return exec i3-sensible-terminal -r floating-term -d "`xcwd`"
bindsym --release $mod+x exec xkill
bindsym $mod+c exec notify-send "Try again" "You meant \\\$mod+b"
bindsym $mod+b exec systemd-run-i3 -c -s firefox firefox
bindsym $mod+Return exec systemd-run-i3 -n alacritty
bindsym $mod+Ctrl+Return exec systemd-run-i3 -n alacritty --class floating
bindsym $mod+Shift+Return exec systemd-run-i3 -n alacritty --working-directory "$(xcwd)"
bindsym $mod+Ctrl+Shift+Return exec systemd-run-i3 -n alacritty --class floating --working-directory "$(xcwd)"
bindsym $mod+v exec systemd-run-i3 -n alacritty -e sh -c "($SHELL -c $EDITOR || :) && $SHELL"
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+space exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window"
bindsym $mod+space exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window -run-command 'systemd-run-i3 -n {cmd}'"
bindsym $mod+Shift+p exec rofi-pass --root $(grep path ~/.config/gopass/config.yml | sed -E 's|^.*fs\+file://||g' | tr '\n' ':') | sed 's/:$//g'
bindsym $mod+Shift+e exec rofi-emoji
bindsym $mod+Shift+e exec "pkill rofi; rofi -show emoji -modi emoji -normal-window"
bindsym $mod+Shift+i exec rofi-fontawesome
bindsym --release Print exec screenshot
bindsym --release $mod+Print exec imgur-screenshot
bindsym $mod+$alt+space exec --no-startup-id ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks
bindsym $mod+numbersign exec "i3-sensible-terminal -e 'sh -c xclip\ -o\ |\ gpg\ --decrypt\ 2>&1\ \;\ $SHELL'"
bindsym $mod+r exec "bash -c 'pwgen -nc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i'"
bindsym $mod+g exec "LINK=$(gist -PRpc); notify-send -c transfer \\"$LINK\\""
bindsym --release $mod+i exec sh -c 'sleep 0.5 && xdotool type --delay 400 "$(xclip -o -selection clipboard)"'
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+$alt+space exec systemd-run-i3 -n ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks
bindsym $mod+numbersign exec systemd-run-i3 -n i3-sensible-terminal --hold -e sh -c 'xclip -o | gpg --decrypt 2>&1'
bindsym $mod+r exec systemd-run-i3 -n bash -c 'pwgen -nc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i'
bindsym $mod+g exec systemd-run-i3 -n notify-send -c transfer "$(gist -PRpc)"
bindsym --release $mod+i exec systemd-run-i3 -n sh -c 'sleep 0.5 && xdotool type --delay 400 "$(xclip -o -selection clipboard)"'
# Media player controls
bindsym XF86AudioPlay exec --no-startup-id playerctl -a play-pause
@ -159,7 +162,7 @@ bindsym XF86AudioPrev exec --no-startup-id playerctl -a previous
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 XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86MonBrightnessUp exec xbacklight -inc 5 && pkill -RTMIN+12 i3blocks
bindsym XF86MonBrightnessDown exec xbacklight -dec 5 && pkill -RTMIN+12 i3blocks
bindsym XF86MonBrightnessUp exec light -A 5 && pkill -RTMIN+12 i3blocks
bindsym XF86MonBrightnessDown exec light -U 5 && pkill -RTMIN+12 i3blocks
# vim:ft=i3

View File

@ -1,10 +1,11 @@
#!/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)
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) i3-msg exit;;
logout) systemctl --user exit;;
sleep) systemctl suspend;;
hibernate) systemctl hibernate;;
power\ off) systemctl poweroff;;
@ -12,7 +13,5 @@ case $option in
windows)
windows=`efibootmgr | grep -Po -m1 'Boot\K(\d{4}).*Windows.*' | head -c4`
sudo efibootmgr -n $windows
sudo hibereboot;;
reboot;;
esac
exit 0

View File

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

View File

@ -30,11 +30,11 @@ text/plain=vim.desktop
text/x-makefile=vim.desktop
# 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
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

View File

@ -1,6 +1,6 @@
# Logging
log-level = "debug";
log-file = "/home/frebib/.local/share/picom.log";
log-level = "info";
#log-file = "/home/frebib/.local/share/picom.log";
# Shadow
shadow = true;
@ -16,7 +16,9 @@ shadow-exclude = [
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'",
"class_g = 'firefox' && argb",
"name = 'Notification'",
"name = 'cpt_frame_window'",
"_GTK_FRAME_EXTENTS@:c"
];
# shadow-exclude = "n:e:Notification";
@ -47,6 +49,7 @@ blur-background-exclude = [
"class_g = 'Onboard'",
"class_g = 'slop'",
"class_g = 'Polybar'",
"class_g = 'firefox' && argb",
"window_type = 'dock'",
"window_type = 'desktop'",
"_GTK_FRAME_EXTENTS@:c"
@ -55,8 +58,8 @@ blur-background-exclude = [
# Fading
fading = true;
fade-delta = 10;
fade-in-step = 0.03;
fade-out-step = 0.03;
fade-in-step = 0.04
fade-out-step = 0.06;
no-fading-openclose = false;
no-fading-destroyed-argb = false;
# fade-exclude = [ ];
@ -65,7 +68,7 @@ no-fading-destroyed-argb = false;
backend = "glx";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
use-ewmh-active-win = false;
use-ewmh-active-win = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;
@ -76,7 +79,8 @@ vsync = true;
# unredir-if-possible-exclude = [ ];
focus-exclude = [
"i:ai:chromium",
"class_g = 'Firefox'",
"class_g = 'firefox'",
"class_g = 'zoom'"
];
detect-transient = true;
detect-client-leader = true;
@ -87,7 +91,7 @@ invert-color-include = [ ];
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
xrender-sync-fence = true;
#use-damage = true;
use-damage = true;
# Window type settings
wintypes:

View File

@ -46,8 +46,8 @@ line-colour = #f00
modules-left = i3
modules-center =
# modules-right = volume updates weather xkeyboard wlan gateway eth memory cpu xbacklight battery temperature date
modules-right = volume updates weather wlan gateway eth memory cpu xbacklight battery temperature date
# modules-right = volume updates weather xkeyboard wlan gateway eth memory cpu xbacklight battery cputemp gputemp date
modules-right = volume updates weather wlan gateway eth memory cpu xbacklight battery cputemp gputemp date
tray-position = right
tray-detached = false
@ -68,17 +68,17 @@ exec = $XDG_CONFIG_HOME/polybar/update.sh
tail = true
format-prefix = " "
format-prefix-foreground = ${colours.icon}
click-left = i3-msg exec -- i3-sensible-terminal -r i3blocks-update-term -e "yay && kill -USR1 %pid% || kill --USR1 %pid%"
click-left = systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -e sh -c "yay; kill -USR1 %pid%; sleep 1"
[module/weather]
type = custom/script
exec = $XDG_CONFIG_HOME/polybar/weather.sh
interval = 120
click-left = i3-msg exec "i3-sensible-terminal -r floating-term -e 'sh -c \"xdotool getactivewindow windowsize 910 680 && curl wttr.in && sleep infinity\"'"
click-left = systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -d 125 40 --hold -e sh -c "curl wttr.in"
[module/gateway]
type = custom/script
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-}'
exec = for v in 4 6; do ip -$v r show default | xargs -rL1 sh -c 'fping --retry=1 --quiet --iface "$4" "$2"'; done && echo  || echo '%{F#f41f1c}%{F-}'
interval = 2
format-prefix = " "
format-prefix-foreground = ${colours.icon}
@ -208,7 +208,7 @@ label-disconnected-foreground = ${colours.critical}
type = internal/date
interval = 1
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}
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}
time = %H:%M
time-alt = %a %e %b %Y %H:%M:%S
@ -221,8 +221,8 @@ format-prefix-foreground = ${colours.icon}
type = internal/pulseaudio
label-volume = %percentage%
format-volume = %{A3:pavucontrol:}<ramp-volume> <label-volume>%{A}
format-muted = %{A3:pavucontrol:}<label-muted>%{A}
format-volume = %{A3:systemd-run --user --no-block -- pavucontrol:}<ramp-volume> <label-volume>%{A}
format-muted = %{A3:systemd-run --user --no-block -- pavucontrol:}<label-muted>%{A}
label-volume-foreground = ${root.foreground}
format-muted-foreground = ${colours.icon}
@ -267,10 +267,10 @@ ramp-capacity-0-foreground = ${colours.critical}
ramp-capacity-1-foreground = ${colours.warning}
[module/temperature]
[module/cputemp]
type = internal/temperature
thermal-zone = 2
warn-temperature = 70
hwmon-path = /sys/devices/platform/nct6775.656/hwmon/hwmon1/temp2_input
base-temperature = 25
format = <ramp> <label>
format-warn = <ramp> <label-warn>
@ -287,6 +287,15 @@ ramp-4 = 
ramp-5 = 
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]
type = custom/menu

View File

@ -1,5 +1,5 @@
top's Config File (Linux processes with windows)
Id:i, Mode_altscr=0, Mode_irixps=0, Delay_time=0.100, Curwin=0
Id:i, Mode_altscr=0, Mode_irixps=0, Delay_time=0.500, Curwin=0
Def fieldscur=<3D>&K<><4B><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD>56<35>F<EFBFBD>')*+,-./0128<>?ABCGHIJLMNOPQRSTUVWXYZ[\]^_`abcdefghij
winflags=163638, sortindx=21, maxtasks=0, graph_cpus=1, graph_mems=1
summclr=1, msgsclr=1, headclr=3, taskclr=1

27
.config/qt5ct/qt5ct.conf Normal file
View File

@ -0,0 +1,27 @@
[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

@ -1,10 +0,0 @@
[Unit]
Description=autocutsel -selection primary
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/autocutsel -selection PRIMARY
[Install]
WantedBy=graphical-session.target

View File

@ -1,10 +0,0 @@
[Unit]
Description=autocutsel
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/autocutsel
[Install]
WantedBy=graphical-session.target

View File

@ -0,0 +1,12 @@
[Unit]
Description=autocutsel selection %i
PartOf=graphical-session.target
Requires=xorg.target
After=xorg.target
[Service]
ExecStart=/usr/bin/autocutsel -selection %i
[Install]
WantedBy=graphical-session.target

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -7,7 +7,6 @@ After=profile.service xprofile.service xorg.target
[Service]
ExecStart=/usr/bin/i3
ExecReload=/bin/sh -c 'i3-msg restart; systemctl is-active --user -q picom && systemctl --user restart picom'
ExecStop=/bin/systemctl --user stop desktop.target
Restart=always
[Install]

View File

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

View File

@ -1,7 +1,7 @@
[Unit]
Description=A lightweight compositor for X11
Requires=graphical-session.target
After=graphical-session.target xorg.target
After=dbus.service graphical-session.target xorg.target
[Service]
Type=simple

View File

@ -1,7 +1,7 @@
[Unit]
Description=Polybar
Requires=graphical-session.target
After=graphical-session.target pulseaudio.socket
After=graphical-session.target pulseaudio.socket i3.service
[Service]
Type=simple

View File

@ -5,7 +5,7 @@ After=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/solaar --restart-on-wake-up -d
ExecStart=/usr/bin/solaar --debug --restart-on-wake-up --window=hide
KillMode=process
Restart=on-failure

View File

@ -1,8 +1,10 @@
[Unit]
Description=XBindKeys
Description=Lock desktop session after inactivity
Requires=xorg.target
After=xorg.target
[Service]
ExecStart=/usr/bin/xautolock -time 1 -locker 'dm-tool switch-to-greeter' -detectsleep -resetsaver -secure
ExecStart=/usr/bin/xautolock -time 5 -locker 'dm-tool switch-to-greeter' -detectsleep -resetsaver -secure
KillMode=process
Restart=on-failure

View File

@ -7,7 +7,7 @@ After=xorg.target profile.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/bash -cx '. $XDG_CONFIG_HOME/X11/xprofile && systemctl --user import-environment'
ExecStart=/usr/bin/bash -c '. $XDG_CONFIG_HOME/X11/xprofile; systemctl --user import-environment'
[Install]
WantedBy=xorg.target

View File

@ -0,0 +1,12 @@
[Unit]
Description=xsettingsd - provide settings to X11 applications
Requires=xorg.target
After=xorg.target profile.service
[Service]
ExecStart=/bin/sh -c 'xsettingsd -c $XDG_CONFIG_HOME/xsettingsd/xsettingsd.local'
ExecReload=/bin/kill -s HUP $MAINPID
Restart=always
[Install]
WantedBy=graphical-session.target

View File

@ -114,6 +114,7 @@ Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
Plug 'chr4/nginx.vim'
Plug 'PotatoesMaster/i3-vim-syntax'
Plug 'puppetlabs/puppet-syntax-vim'
Plug 'saltstack/salt-vim'
Plug 'arrufat/vala.vim'
call plug#end()
@ -309,3 +310,4 @@ map Q <nop>
autocmd FileType markdown setlocal ts=2 sts=2 sw=2 et
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 et
autocmd FileType gitcommit setlocal cc=72 et sw=4

View File

@ -1,5 +1,3 @@
unsetopt MULTIBYTE
# Config and cache directory paths
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
ZSH_DIR="$CONFIG_DIR/zsh"
@ -13,15 +11,16 @@ 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
if exists tty && tty -s; then
# Resolve at shell runtime
export GPG_TTY="$(tty)"
fi
# Configure less and add colours
export LESS="-RI"
export LESS="-RI --mouse --wheel-lines=3"
export PAGER="less"
export MANPAGER="less -+N"
export SYSTEMD_PAGER="less $LESS"
# Disable histfile
export LESSHISTFILE=-
@ -45,15 +44,6 @@ fi
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
@ -104,8 +94,10 @@ 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 "^F" fzf-file-widget
bindkey "^V" edit-command-line
bindkey -M vicmd "^V" edit-command-line
bindkey -M vicmd "^W" backward-delete-word
bindkey -M vicmd d vi-backward-char
bindkey -M vicmd h vi-down-line-or-history
@ -116,6 +108,8 @@ bindkey -M vicmd K vi-kill-eol
bindkey -M vicmd j vi-find-next-char-skip
bindkey -M vicmd l vi-repeat-search
# Backspace across newlines when in vi-mode
bindkey -v '^?' backward-delete-char
ZSH_AUTOSUGGEST_USE_ASYNC=true
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=128
@ -172,3 +166,13 @@ 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
# Completion initialisation
autoload -U compinit bashcompinit
compinit
bashcompinit
# gopass completion
if exists gopass; then
source <(gopass completion bash)
fi

1
.gitignore vendored
View File

@ -1,6 +1,7 @@
bookmarks
.config/secrets
.config/gopass/gopass-logo-small.png
.config/gtk-2.0/gtkfilechooser.ini
.config/imgur-screenshot/credentials.conf
.config/mailnag/mailnag.dat

View File

@ -24,7 +24,6 @@ export VISUAL="vim"
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"

18
aliases
View File

@ -60,6 +60,7 @@ alias open=xdg-open
alias rm='rm -i'
alias mv='mv -i'
alias cp='cp -ir'
alias scp='scp -r'
alias dd='dd status=progress'
alias ssh="ssh -tt"
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file"
@ -116,6 +117,7 @@ alias chx='chmod +x'
# Git Aliases
alias g=git
alias ginit='git init'
alias gignore='$EDITOR .gitignore'
alias gitc='$EDITOR $XDG_CONFIG_HOME/git/config'
alias ggignore='$EDITOR $XDG_CONFIG_HOME/git/gitignore'
@ -128,17 +130,17 @@ alias gau="git add -u"
alias gaN="git add -N"
alias gaa="ga -A"
alias grm="git rm"
alias gc="git commit"
alias gcm="gc -m"
gcmst() { git stash -u -k && git commit -m "$1" && git stash pop; }
alias gca="git commit --amend --date=\"$(date -R)\""
alias gcn="git commit --no-edit"
alias gcan="gca --no-edit"
alias gcam="gca -m"
alias gc="git commit -s"
alias gcm="git commit -s -em"
alias gca="git commit -s --amend --date=\"$(date -R)\""
alias gcn="git commit -s --no-edit"
alias gcan="gca -s --no-edit"
alias gcam="gca -s -m"
alias gst="git status"
alias gm="git merge"
alias gma="git merge --abort"
alias grb="git rebase"
alias grba="grb --abort"
alias grbc="grb --continue"
@ -146,6 +148,8 @@ alias grbsk="grb --skip"
alias grbsh="grb --show-current"
alias grbom="git rebase origin/master"
alias gcp="git cherry-pick"
alias gf="git fetch"
alias gp="git push"
alias gpf="gp --force"

View File

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

2
scripts/gtav Executable file
View File

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

7
scripts/netsplit Executable file
View File

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

View File

@ -1,120 +0,0 @@
#!/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,8 @@ function notify() {
}
function display() {
fontawesome=$(cat "$FONTAWESOME_FILE" | grep -v '#' | grep -v '^[[:space:]]*$')
update=""$'\t'"Update Font Awesome cache"
fontawesome=$(printf "$fontawesome\n$update")
update=$'\tUpdate Font Awesome cache'
fontawesome=$(grep -v '#\|^[[:space:]]*$' "$FONTAWESOME_FILE"; printf "$update\n")
line=$(echo "$fontawesome" | rofi -dmenu -i -p fontawesome -normal-window -kb-custom-1 Ctrl+c -kb-row-tab '' -kb-row-select Tab $@)
exit_code=$?
@ -69,7 +68,6 @@ function display() {
return
fi
#IFS=$'\t'
line=($line)
last=${line[${#line[@]}-1]}

View File

@ -1,15 +1,14 @@
#!/bin/sh
#!/bin/bash
set -e
NOTIFY_APPNAME="$(basename "$0")"
NOTIFY_ICONPATH="/usr/share/icons/Xenlism-Wildfire/Apps/screenshot.svg"
SCROT_CMD="maim -m 10 -us %"
FILENAME="$(date '+%s%N' | sha256sum | head -c7).png"
DIRECTORY="$HOME/pictures/screenshots"
SCP_HOST=frebib@Poseidon.nerdhouse.io
SCP_PATH=/dave/www/frebib.net/s
SCP_PATH=/services/www/files/frebib.net/s
URL_PATH=https://frebib.net/s
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -30,17 +29,46 @@ send_notification() {
# Make the screenshot directory
mkdir -p "$DIRECTORY"
# Take the screenshot and save it
# 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
out_path="$DIRECTORY/$FILENAME"
if ! error=$(eval ${SCROT_CMD//\%/$out_path} 2>&1); then
args=(-g "$geom")
# If selection is the root window
if xwininfo -id "$winid" | grep -qw root; then
isroot=1
args+=(-i "$winid")
elif [ "$1" == "--active" -o "$1" == "-a" ]; then
args+=(-i "$(xdotool getactivewindow)")
shift
fi
# Take the screenshot and save it
if ! error=$(maim -m 10 -u -f png ${args[@]} "$out_path" 2>&1); then
send_notification "Screenshot error" "Failed to take a screenshot:<br><br>$error" >/dev/null
exit 1
fi
notif_id=$(send_notification "Screenshot uploading" "$FILENAME<br><br>The image is available in the clipboard immediately" || true)
# If the screenshot is a complete window, add a shadow
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
# Add image to clipboard
xclip -i "$out_path" -selection clipboard -t image/png
if [ "$1" == "--clip" -o "$1" == "-c" ]; then
# Add image to clipboard
xclip -i "$out_path" -selection clipboard -t image/png
send_notification "Screenshot captured" "$FILENAME<br><br>The image is available in the clipboard"
exit 0
fi
notif_id=$(send_notification "Screenshot uploading" "$FILENAME" || true)
# 'Upload' the screenshot
if ! error=$(scp -C $out_path $SCP_HOST:$SCP_PATH 2>&1); then

20
scripts/systemd-run-i3 Executable file
View File

@ -0,0 +1,20 @@
#!/bin/bash -e
rand=$(tr -dc 'a-f0-9' < /dev/urandom | head -c 16)
args=()
while getopts "u:s:e:d:cnw" opt
do case "$opt" in
u) args+=("--unit=$OPTARG-$rand");;
s) args+=("--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 --unit="$1-$rand" ${args[@]} -- "$@"