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

10 Commits

Author SHA1 Message Date
79dc6a7389 aliases: git: Strip a/b prefix from paths by default
This makes double-click copy/paste much easier

Signed-off-by: Joe Groocock <me@frebib.net>
2023-02-28 09:54:31 +00:00
fede67c22a aliases: git: Add missing gfp/gt aliases
Signed-off-by: Joe Groocock <me@frebib.net>
2023-02-28 09:54:31 +00:00
b87cf96ff2 i3: replagce 'gist' with 'gh gist'
The old ruby 'gist' script uses a deprecated API and is replaced by the
first-party 'gh' tool instead.

Signed-off-by: Joe Groocock <me@frebib.net>
2023-01-01 14:59:37 +00:00
4143aa4e48 aliases: dpsa uses org.opencontainers.image labels
org.label-schema was deprecated in favour of the opencontainers labels,
which apparently a bunch of images actually use (unlike the label-schema
labels).

Signed-off-by: Joe Groocock <me@frebib.net>
2022-12-21 16:35:07 +00:00
73131b086f aliases: git: gfrb/gfrbi defaults to defbranch
Much like how `git pull` will default to the remote tracking branch if
called with no arguments, gfrb and gfrbi will fetch and rebase from the
"default" branch according to git defbranch.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-10-30 13:43:18 +00:00
a7af23bfbb git: Allow git cleanmerged/defbranch to take args
These aliases now make zero assumptions about either branch or origin
names. They default to origin, and the primary branch is determined from
the refs/remotes/$remote/HEAD symbolic-ref, which will be pulled from
the remote if it's not known locally.
With these it is now possible to act on any remote/branch combination:

    # Get default branch for 'upstream' remote
    $ git defbranch upstream

    # Delete branches merged into the default branch of the 'upstream'
    # remote
    $ git cleanmerged upstream

    # Delete branches merged into the upstream/foo branch
    $ git cleanmerged upstream foo

Signed-off-by: Joe Groocock <me@frebib.net>
2022-10-27 09:16:57 +00:00
56fd0ad602 git: Add mv/reflog/clean-merged aliases
Signed-off-by: Joe Groocock <me@frebib.net>
2022-10-27 09:16:51 +00:00
cbb44c99ee i3: screenshot to clipboard by default
Use Shift+PrtScr to upload to the http share, as that's a less common
use-case.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-10-26 22:03:13 +00:00
2bd257243a xprofile: Run dpi script on startup
Ensures configuration of various graphical services is set correctly on
startup, either before they start, or just after, restarting them
accordingly. This should scale i3, picom, gtk and friends for a seamless
experience.

Use xresources as a source of truth for this information.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-10-26 22:02:34 +00:00
d538b61cb1 scripts/dpi: Constant blur/corner-radius/cursor scaling
Scale picom blur and corner radius and X cursor size according to a
constant scale factor. This ideally would be defined somewhere
centrally, but this is better than nothing.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-10-26 21:54:02 +00:00
6 changed files with 47 additions and 22 deletions

View File

@ -16,8 +16,8 @@ export MOZ_USE_XINPUT2=1 # enable pixel-accurate scrolling in firefox
# Load Xorg resources and set the DPI # Load Xorg resources and set the DPI
xrdb -merge $XDG_CONFIG_HOME/X11/xresources xrdb -merge "$XDG_CONFIG_HOME/X11/xresources"
xrandr --dpi $(xrdb -query | grep -i xft.dpi | cut -d: -f2) "$XDG_CONFIG_HOME/scripts/dpi" "$(xrdb -query | grep -i xft.dpi | cut -d: -f2 | xargs)"
setxkbmap -option caps:none setxkbmap -option caps:none
xset r rate 200 18 xset r rate 200 18

23
aliases
View File

@ -119,13 +119,17 @@ 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 gmv="git mv"
alias gc="git commit -s" alias gc="git commit -s"
alias gcm="git commit -s -em" alias gcm="git commit -s -em"
alias gca="git commit -s --amend --date=\"\$(date -R)\"" alias gca="git commit -s --amend --date=\"\$(date -R)\""
alias gcn="git commit -s --no-edit" alias gcn="git commit -s --no-edit"
alias gcan="gca -s --no-edit" alias gcan="gca -s --no-edit"
alias gcam="gca -s -m" alias gcam="gca -s -m"
alias gt="git tag"
alias gst="git status" alias gst="git status"
alias grl="git reflog"
alias gfp="git format-patch"
alias gm="git merge" alias gm="git merge"
alias gma="git merge --abort" alias gma="git merge --abort"
@ -136,9 +140,9 @@ 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/\$(git defbranch origin)\""
gfrb() { remote="${1%/*}"; git fetch "$remote" && git rebase "$@"; } gfrb() { ref="${1:-origin/$(git defbranch origin)}"; remote="${ref%%/*}"; git fetch "$remote" && git rebase "$ref" "${@:2}"; }
gfrbi() { remote="${1%/*}"; git fetch "$remote" && git rebase -i "$@"; } gfrbi() { ref="${1:-origin/$(git defbranch origin)}"; remote="${ref%%/*}"; git fetch "$remote" && git rebase -i "$ref" "${@:2}"; }
alias gam="git am" alias gam="git am"
alias gama="git am --abort" alias gama="git am --abort"
@ -164,10 +168,10 @@ alias gpsuom="git push --set-upstream origin \"\$(git defbranch)\""
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 --no-prefix"
alias gdni="gd --no-index" alias gdni="gd --no-index --no-prefix"
alias gds="gd --staged" alias gds="gd --staged --no-prefix"
alias gsh="git show --format=fuller --patch-with-stat" alias gsh="git show --format=fuller --patch-with-stat --no-prefix"
alias glg="git log --color --format=fuller --stat --no-merges --graph" alias glg="git log --color --format=fuller --stat --no-merges --graph"
alias glgp="git log --color --format=fuller --patch-with-stat --no-merges --graph" alias glgp="git log --color --format=fuller --patch-with-stat --no-merges --graph"
alias glog="git log --color --oneline --decorate --graph" alias glog="git log --color --oneline --decorate --graph"
@ -175,6 +179,7 @@ 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 --keep @~1"
alias gclean="git clean" alias gclean="git clean"
alias gclm="git cleanmerged"
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 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"
@ -189,12 +194,12 @@ alias gsta='git stash'
alias gstd='gsta drop' alias gstd='gsta drop'
alias gstl='gsta list --stat --color' alias gstl='gsta list --stat --color'
alias gstp='gsta pop' alias gstp='gsta pop'
alias gstv="gsta show -p stash@{0}" alias gstv="gsta show --patch-with-stat stash@{0}"
# Docker aliases # Docker aliases
alias d=docker alias d=docker
alias dps="docker ps --format='table {{.ID}}\t{{.Image}}\t{{.Label \"org.label-schema.version\"}}\t{{.Networks}}\t{{.RunningFor}}\t{{.Status}}\t{{.Names}}' | sed '1s/version/VERSION/'" alias dps="docker ps --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.opencontainers.image.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'

View File

@ -37,7 +37,23 @@
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 leaders = !git shortlog -s -n --all --no-merges
defbranch = !git symbolic-ref refs/remotes/origin/HEAD | sed \"s@^refs/remotes/origin/@@\" defbranch = "!defbranch() { \
r=\"${1:-origin}\"; \
{ \
git symbolic-ref \"refs/remotes/$r/HEAD\" || { \
git remote set-head \"$r\" -a >&2 && \
git symbolic-ref \"refs/remotes/$r/HEAD\"; \
}; \
} 2>/dev/null \
| sed \"s@^refs/remotes/$r/@@\"; \
}; defbranch"
cleanmerged = "!cleanmerged() { \
r=\"${1:-origin}\"; \
b=\"${2:-$(git defbranch \"$r\")}\"; \
git branch --merged \"$r/$b\" | \
grep -ve \"^\\\\*\" -e \"^. $b$\" | \
xargs -r git branch -d; \
}; cleanmerged"
[advice] [advice]
statusHints = false statusHints = false
pushUpdateRejected = false pushUpdateRejected = false

View File

@ -142,15 +142,15 @@ bindsym $mod+space exec "pkill rofi; rofi -show run -sidebar-mode -
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+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 "pkill rofi; rofi -show emoji -modi emoji -normal-window"
bindsym $mod+Shift+i exec rofi-fontawesome bindsym $mod+Shift+i exec rofi-fontawesome
bindsym --release Print exec screenshot bindsym --release Print exec screenshot --clip
bindsym --release $mod+Print exec screenshot --clip bindsym --release $mod+Print exec screenshot
bindsym --release Shift+Print exec screenshot --active bindsym --release Shift+Print exec screenshot --active
bindsym --release $mod+Shift+Print exec screenshot --active --clip bindsym --release $mod+Shift+Print exec screenshot --active --clip
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+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 -s background -n ~/.config/i3/cycleaudio.py bindsym $mod+$alt+space exec systemd-run-i3 -s background -n ~/.config/i3/cycleaudio.py
bindsym $mod+numbersign exec systemd-run-i3 -n i3-sensible-terminal --hold -e sh -c 'xclip -o | gpg --decrypt 2>&1' bindsym $mod+numbersign exec systemd-run-i3 -n i3-sensible-terminal --hold -e sh -c 'xclip -o | gpg --decrypt 2>&1'
bindsym $mod+r exec bash -c 'pwgen -snc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i -r' bindsym $mod+r exec bash -c 'pwgen -snc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i -r'
bindsym $mod+g exec systemd-run-i3 -n notify-send -c transfer "$(gist -PRpc)" bindsym $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 -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 --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 bindsym $mod+z exec otp | rofi -dmenu -p otp | xargs otp

View File

@ -38,7 +38,7 @@ opacity-rule = [
blur: blur:
{ {
method = "dual_kawase"; method = "dual_kawase";
strength = 8; strength = 10;
}; };
blur-background-frame = true; blur-background-frame = true;
blur-background-fixed = true; blur-background-fixed = true;

View File

@ -4,6 +4,10 @@ set -eu
# 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}" CONF_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
BLUR_STRENGTH=10
CORNER_RADIUS=9
CURSOR_SIZE=16
xrdbget() { xrdbget() {
set -o pipefail set -o pipefail
xrdb -query | grep -i -m1 "$1" | sed 's/^.*:\s//g' || echo "$2" xrdb -query | grep -i -m1 "$1" | sed 's/^.*:\s//g' || echo "$2"
@ -26,11 +30,11 @@ fi
dpi=$1 dpi=$1
scale=$(( dpi/96 )) scale=$(( dpi/96 ))
cursor=$(( dpi/6 )) cursor=$(( (dpi*CURSOR_SIZE)/96 ))
# Update picom scale # Update picom scale
sed -i -e "s/strength =.*$/strength = $(( dpi*8/96 ));/" \ sed -i -e "s/strength =.*$/strength = $(( (dpi*BLUR_STRENGTH)/96 ));/" \
-e "s/corner-radius =.*$/corner-radius = $(( dpi/13 ));/" \ -e "s/corner-radius =.*$/corner-radius = $(( (dpi*CORNER_RADIUS)/96 ));/" \
"$CONF_DIR/picom/picom.conf" & "$CONF_DIR/picom/picom.conf" &
# Build xsettingsd.conf # Build xsettingsd.conf
@ -53,13 +57,13 @@ Xft.dpi: $dpi
Xcursor.size: $cursor Xcursor.size: $cursor
EOF EOF
xrandr --dpi "$dpi" & xrandr --dpi "$dpi" &
systemctl --user reload-or-restart xsettingsd & systemctl --user try-reload-or-restart xsettingsd &
wait wait
systemctl --user reload \ systemctl --user try-reload-or-restart \
i3 \ i3 \
polybar@i3bar & polybar@i3bar &
systemctl --user restart \ systemctl --user try-restart \
dunst & dunst &
wait wait