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

76 Commits

Author SHA1 Message Date
1da55a29c4 aliases: git: Add -v to git commit
Shows full patch in the commit message editor. Very handy, yes

Signed-off-by: Joe Groocock <jgroocock@cloudflare.com>
2024-04-11 14:54:32 +00:00
2cc93a1649 scripts/otp: Refactor & ensure notifications are dismissed
Modernise the script and make it more sane.
Ensure lingering notifications are removed when the script exits to
prevent collecting many notifications if the script is called in a loop.

Signed-off-by: Joe Groocock <me@frebib.net>
2023-03-29 12:43:29 +00:00
787008fdb7 polybar: Normalise some module configs
Remove host-specific options from the wifi/ethernet modules, because
polybar is able to work it out for itself.

Signed-off-by: Joe Groocock <me@frebib.net>
2023-03-29 12:32:50 +00:00
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
fa136cbd2a picom: Adjust shadow alignment/size
Picom can now accurately draw shadows (again?) so tweak them so they're
horizontally centred and slightly below the window so they look
aesthetically pleasing.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-08-31 20:43:26 +00:00
499b044fea picom: Remove --experimental-backends
They're now default and the legacy backends are the exceptional case.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-08-31 20:43:26 +00:00
14805b3f9a picom: Increase corner radius
Signed-off-by: Joe Groocock <me@frebib.net>
2022-08-31 20:43:20 +00:00
e03c93bf39 gtk: Force GTK 4.0 to use the GTK 3 theming
This non-compliant turd doesn't respect the config file, because of
course it doesn't. Enforce the theme with yet another messy environment
variable.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-08-31 20:43:12 +00:00
ba6173e0ee git: Dynamically identify the "default" branch
This broadly assumes that the "default" remote is called "origin", but
that's better than assuming that plus the default branch name.

Thanks to https://joshtronic.com/2020/08/09/how-to-get-the-default-git-branch/

Suggested-by: Chris Lane <chris@chrislane.com>
Signed-off-by: Joe Groocock <me@frebib.net>
2022-08-31 20:43:06 +00:00
dcfd191613 systemd: Add pipewire+wireplumber, remove pulseaudio
Gotta go fast. pipewire seems to be working pretty well so far.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-03-21 22:21:37 +00:00
db40ef08bb picom: Update to picom 9.1, enable rounded corners
As always, tweak some of the visuals. Tone down the shadow opacity to
make the non-rounded corner shadows less obvious. Hopefully I can undo
that a bit in the future.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-03-21 22:12:40 +00:00
839d972e95 systemd-run-i3: Add ExitType=cgroup to user units
systemd v250 added ExitType= which allows systemd to wait for all
processes in the cgroup to exit before terminating the unit, instead of
only the main pid. This has many uses, but for desktop applications in
particular it allows self-restarting (forking) applications to correctly
fork/restart and other background processes that may have been spawned
to continue when their forked parent inevitably exits first (like ssh
processes inside terminals).

Signed-off-by: Joe Groocock <me@frebib.net>
2022-03-21 21:46:28 +00:00
ece2eb878a picom: Avoid odd-looking shadows in Firefox
picom cannot and does not attempt to use the window geometry from the
non-rectangular menu+friend windows that Firefox displays which causes a
strange floating blur/shadow behind the menus. Avoid this by disabling
both blur and shadows on those pop-ups until picom can handle it better.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-03-21 21:44:39 +00:00
6f1569b35d alacritty: log at Warn and above
Info produces causes logging under normal use, which creates useless log
files in /tmp, which I don't need.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-03-21 21:42:48 +00:00
5035afc8b4 X11, dpi: reliably set xcursor size
Other minor tweaks to the dpi script to ensure everything gets updated
correctly.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-03-21 21:41:57 +00:00
650eb08a80 aliases: rm is always verbose
That way I can see when I've been an idiot and deleted something I
actually needed.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-03-21 21:35:00 +00:00
535697a31c aliases: Be consistent with abort/continue/skip aliases
Laziness prevails 🚀

Signed-off-by: Joe Groocock <me@frebib.net>
2022-03-04 11:32:27 +00:00
f520784d9b zsh: LESS with more usability
These defaults are heavily inspired by the default of $SYSTEMD_LESS
provided by systemd themselves.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-03-04 11:21:55 +00:00
ef4b739af1 element: Enable labs settings
Signed-off-by: Joe Groocock <me@frebib.net>
2022-02-21 21:48:19 +00:00
0ba6dc8e4b polybar: Update to upstream feat/units config
Fix a few things that changed along the way.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-02-21 20:44:17 +00:00
55e492cd8f vim: disable eol $ marker
This provides little value and causes clickable links inside Vim to take
the $ symbol with them into browsers, which outweighs the small gain.
Text is visibly more readable without it, too.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-02-16 15:26:50 +00:00
19663fa4f1 polybar: Adjust padding to improve element distribution
This looks more aestetically pleasing to me, and is not so off-centre
between the bottom of the window and the bottom of the screen.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-12-03 09:49:46 +00:00
7e5b329e74 polybar, fontconfig: Update to Font Awesome 6
Signed-off-by: Joe Groocock <me@frebib.net>
2021-11-30 22:12:30 +00:00
0116be881a rofi: Update configuration for >= 1.7.1
Fix theming and window size since the update had breaking changes.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-11-29 22:29:11 +00:00
90038f8795 zsh: Migrate zdharma -> zdharma-continuum
https://github.com/zdharma-continuum/zinit/wiki/Migration-to-zdharma-continuum
https://www.reddit.com/r/zsh/comments/qinb6j/httpsgithubcomzdharma_has_suddenly_disappeared_i/

Signed-off-by: Joe Groocock <me@frebib.net>
2021-11-25 11:12:41 +00:00
7775fb62e4 zsh: Disable zsh fast-syntax-highlighting chromas
This fixes `zi` being extremely slow in the shell.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-11-25 11:02:15 +00:00
a48288ad50 zsh: Simplify fish-like compressed working directory
Works the same, is simpler and less prone to doing the wrong thing,
hopefully...

Signed-off-by: Joe Groocock <me@frebib.net>
2021-11-25 11:00:40 +00:00
b519b48e83 ssh: Add systemd ssh@ unit for persistent master connections
These rely on SSH configuring ControlMaster and ControlSocket for the
host so the connection can be reused.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-11-25 10:00:49 +00:00
8e74101f3e git: Fetch GitHub pull request refs by default
I can't find a way to make this a wildcard that applies to all remotes,
so this adds the two most common remotes that I'm likely to use.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-11-23 11:21:45 +00:00
898190a99f git: Use fast-forward-only merge by default
Merge commits are nasty, so make sure they're only created explicitly
and never by default.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-11-23 11:16:08 +00:00
d771bf0448 environment: Re-enable PASSWORD_STORE_DIR override
gopass seems to be behaving itself more now.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-11-23 11:10:39 +00:00
634db612a1 dunst: Fix window geometry with new version
This more or less replicates the old behaviour with window placement
using the new configuration options.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-11-23 11:08:09 +00:00
a7778c30a7 i3: Add $mod+z otp selector
Signed-off-by: Joe Groocock <me@frebib.net>
2021-11-23 11:05:34 +00:00
49554ca359 i3: Fix $mod+i "paste" with text starting with a dash
Shell escaping is the devil

Signed-off-by: Joe Groocock <me@frebib.net>
2021-11-23 11:04:38 +00:00
895d0ff0aa zsh: Print normal in RPROMPT in Vim mode
Change the cursor to an `_` too, to make it abundantly clear that the
mode has changed. Hopefully this stops me screwing up and accidentally
entering vim mode without realising.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-10-18 10:08:33 +00:00
7be83b7b70 zsh: Fix fzf-history-search over SSH
Reorder and remove duplicate keybinds

Signed-off-by: Joe Groocock <me@frebib.net>
2021-10-18 10:07:48 +00:00
a41314ca34 alacritty: Update deprecated transparency option
Signed-off-by: Joe Groocock <me@frebib.net>
2021-10-10 09:26:38 +00:00
3158db0946 aliases: docker compose is a docker subcommand
compose v2 does away with the docker-compose binary and provides 'docker
compose' directly.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-10-10 09:25:50 +00:00
e25953d913 aliases: fix gfrb rebasing on non-default origins
Add gfrbi for an interactive fetch-and-rebase.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-09-21 16:53:07 +00:00
a6f162b7e2 scripts/dpi: Add more xsettings configuration from xrdb
Read some standard xsettings values out of xrdb and set them in
xsettingsd. Use bash instead of sh to allow for `set -o pipefail`.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-08-01 19:18:15 +00:00
85ab256484 scripts/dpi: Clean-up, improvements and shellcheck-compliant
Fix all shellcheck warnings, mostly by adding double quotes around vars.
Re-order operations and run multiple jobs in parallel to speed up DPI
change speed.
Remove all use of bc, simple sh integer division is sufficient in all
cases.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-08-01 19:05:07 +00:00
d1c4112ee3 alacritty: Remove deprecated 'url' section
Signed-off-by: Joe Groocock <me@frebib.net>
2021-07-31 00:19:10 +00:00
8c8048ebcb vim: Add several useful/common FileType configs
Unconditionally enable ColorColumn. Any vim without it is not worth
using anyway.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-07-31 00:15:57 +00:00
019a3f9c18 vim: Replace YouCompleteMe/syntastic with ale/deoplete
These seem to work better out of the box and don't have an awfully
obtuse setup process involving certain unnamed dynamic languages.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-07-31 00:14:10 +00:00
0ff266f257 picom: Disable vsync
This improves window resize and move performance and general
responsiveness a considerable amount on the laptop Intel iGPU.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-07-31 00:10:48 +00:00
d6f2800ddd fontconfig: disable hinting on sans-serif fonts
Hinting apparently makes Chrom{e,ium}/Electron display fonts horribly,
whilst everything else ever is fine with it on.
Re-organise and tidy up fontconfig slightly.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-07-31 00:08:58 +00:00
524e5132ba environment: add ~/.local/bin to $PATH
Python's pip amongst other things likes to put binaries in here.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-07-31 00:08:02 +00:00
dde4e776f5 aliases: git: add gbrl branch-list with fzf alias
Very useful for previewing each branch in an interactive manner.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-07-31 00:06:05 +00:00
1bd8081663 aliases: git: attempt to elide merge commits in glg
In theory this should give a much cleaner commit log without all of the
noise from merge commits in poorly maintained repos.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-07-31 00:04:30 +00:00
9224e953e2 Revert "X11: enable hardware video acceleration in firefox"
This reverts commit 3b34decb42.

Enabling EGL causes firefox to stop rendering when the compositor is
stopped or restarted. Whilst there are supposed performance
improvements, those are negated by bugs that make it unusable at the
current time.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-07-26 16:09:45 +00:00
a0d9149013 aliases: fix all shellcheck warnings
Most of these changes have no semantic bearing, but some of the warnings
specifically related to quoting fix some word-splitting and globbing
issues with certain scripts.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-06-05 15:24:46 +00:00
c1f65fc03d aliases: replace cdt alias with function
This adds an optional argument to `cdt` to allow specifying the
temporary directory prefix instead of the default `tmp`. This also
shortens the random character string from 10 (GNU mktemp) to 8.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-06-05 15:24:46 +00:00
92c8dbc019 aliases: consistently quote ls/directory aliases
Consistency is key.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-05-25 11:00:48 +00:00
315f6b6b9a aliases: remove unused global aliases
I used to use these occasionally, but now I increasingly find myself
typing the commands out in full. They really don't save much time at
all.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-05-25 10:59:34 +00:00
c1903f5726 aliases: remove ssh pseudo-tty override
Sometimes SSH needs to be called without a pty as it breaks some
non-interactive workflows, such as `docker save | ssh .. docker load`.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-05-25 09:59:40 +00:00
24dfc13c3f git: log/show dates in ISO8601 in UTC
Consistency is key. Timezones are the devil.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-05-25 09:58:32 +00:00
8f14e0d757 systemd: invoke xsettingsd without a shell
systemd will substitute variables in commands making the sh invocation
redundant.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-04-30 21:35:59 +01:00
d5668f82fe aliases: add gfrb for 'git fetch && git rebase'
Signed-off-by: Joe Groocock <me@frebib.net>
2021-04-29 11:32:18 +01:00
4607175b94 aliases: add grbi for 'git rebase -i'
Signed-off-by: Joe Groocock <me@frebib.net>
2021-04-29 11:30:35 +01:00
ff9feca14c aliases: replace dklrm with drmf
Recently I learnt that `docker rm -f` both stops and removes the
container in one go, without any races. It's much cleaner than the hack
from before so replace it outright.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-02-13 14:46:19 +00:00
6f655c20aa zsh: remove fzf-tab plugin
This plugin is more of a hindrance than a help, even though fzf is still
really useful; just not here.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-02-01 13:50:25 +00:00
9793eb491b zsh: remove unused x-bash-backward-kill-word
The standard backward-delete-word works just fine, so this is redundant

Signed-off-by: Joe Groocock <me@frebib.net>
2021-02-01 13:49:49 +00:00
8142cdf82f systemd: add missing WantedBy= properties to user units
This fixes some inconsistent and incorrect startup order of the
graphical and desktop targets. xprofile will now always run as part of
xorg.target, which is before all other X-related applications that
require those settings to be in place beforehand.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-02-01 13:44:12 +00:00
69787bd90f dpi: set cursor size with xsettings
Signed-off-by: Joe Groocock <me@frebib.net>
2021-01-30 11:48:39 +00:00
3b34decb42 X11: enable hardware video acceleration in firefox
According to the wiki, setting this value helps a lot.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-01-24 11:37:37 +00:00
03690a5f9f X11: remove unused urxvt configuration
urxvt is a dated and broken terminal emulator. It fails to render simple
modern glyphs like emojis and powerline. There are much better
alternatives available now like Termite, Alacritty or Kitty.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-01-24 11:35:02 +00:00
00f7814f8e git: add missing git am/cherry-pick aliases
These are shorthands for continue and abort with both git am and
cherry-pick.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-01-24 11:30:19 +00:00
47 changed files with 566 additions and 394 deletions

View File

@ -24,7 +24,7 @@
], ],
"bug_report_endpoint_url": "https://riot.im/bugreports/submit", "bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"defaultCountryCode": "GB", "defaultCountryCode": "GB",
"showLabsSettings": false, "showLabsSettings": true,
"features": { "features": {
"feature_font_scaling": "labs", "feature_font_scaling": "labs",
"feature_pinning": "labs", "feature_pinning": "labs",

View File

@ -4,17 +4,20 @@
export TERMINAL="alacritty" export TERMINAL="alacritty"
export BROWSER="firefox" export BROWSER="firefox"
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel" 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 GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/settings.ini"
export QT_QPA_PLATFORMTHEME=qt5ct 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/ # 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 MOZ_USE_XINPUT2=1 # enable pixel-accurate scrolling in firefox
export XDG_CURRENT_DESKTOP="GNOME" # Fixes xdg-open
# Load Xorg resources and set the DPI # 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

View File

@ -36,54 +36,5 @@ Xft.hinting: true
Xft.hintstyle: hintfull Xft.hintstyle: hintfull
Xft.lcdfilter: lcddefault Xft.lcdfilter: lcddefault
Xcursor.size: 16
Xcursor.theme: Breeze_Obsidian 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/firefox
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

@ -51,6 +51,12 @@ 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`:
@ -259,6 +265,13 @@ 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
@ -285,12 +298,6 @@ 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.80
selection: selection:
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
@ -366,28 +373,6 @@ 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
@ -626,7 +611,7 @@ debug:
# - Info # - Info
# - Debug # - Debug
# - Trace # - Trace
log_level: Info log_level: Warn
# Print all received window events. # Print all received window events.
#print_events: false #print_events: false

212
aliases
View File

@ -1,7 +1,7 @@
case "$(basename "$(readlink -f /proc/$$/exe)")" in case "$(basename "$(readlink -f /proc/$$/exe)")" in
zsh) thisfile="$(readlink -f "${(%):-%N}")";; zsh) thisfile="$(readlink -f "${(%):-%N}")";;
bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";; bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";;
*) thisfile="$(find /proc/$$/fd/ | xargs -n1 -r readlink -f | grep aliases | head -n1)";; *) thisfile="$(find /proc/$$/fd/ -print0 | xargs -0 -n1 -r readlink -f | grep aliases | head -n1)";;
esac esac
# Global aliases for ZSH # Global aliases for ZSH
@ -10,49 +10,32 @@ if alias -g 2>/dev/null; then
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 -lAFh --sort=time' alias lt='ls -lFh --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 -'
alias cdt='cd `mktemp -d`' cdt() { cd "$(mktemp -d -t "${1:-tmp}.XXXXXXXX")"; }
alias svi=sudoedit alias svi=sudoedit
alias svim=sudoedit alias svim=sudoedit
@ -63,27 +46,26 @@ alias sudo='sudo '
alias open=xdg-open alias open=xdg-open
# Command rewrites # Command rewrites
alias rm='rm -i' alias rm='rm -iv'
alias mv='mv -i' alias mv='mv -i'
alias cp='cp -ir' alias cp='cp -ir'
alias scp='scp -r' alias scp='scp -r'
alias dd='dd status=progress' alias dd='dd status=progress'
alias ssh="ssh -tt" alias wget='wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file'
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file"
alias vi=vim alias vi=vim
alias grip='grip --user=frebib --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'
@ -107,9 +89,9 @@ 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 sc="systemctl"
@ -122,65 +104,94 @@ 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 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 gco="git checkout" alias gco="git checkout"
alias gcom="git checkout master" alias gcom="git checkout \"\$(git defbranch)\""
alias gsw="git switch"
alias gswm="git switch \"\$(git defbranch)\""
alias gbr="git branch"
alias gtg="git tag"
alias gbl="git blame"
alias gt="git tag"
alias gst="git status"
alias grl="git reflog"
alias gfp="git format-patch"
alias gcl="git clone --recursive"
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 gmv="git mv"
alias gcm="git commit -s -em"
alias gca="git commit -s --amend --date=\"$(date -R)\"" alias gc="git commit -sv"
alias gcn="git commit -s --no-edit" alias gcm="git commit -sv -em"
alias gcan="gca -s --no-edit" alias gca="git commit -sv --amend --date=\"\$(date -R)\""
alias gcam="gca -s -m" alias gcn="git commit -sv --no-edit"
alias gst="git status" alias gcan="gca --no-edit"
alias gcam="gca -m"
alias gm="git merge" alias gm="git merge"
alias gma="git merge --abort" alias gma="git merge --abort"
alias gmc="git merge --continue"
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/master" alias grbom="git rebase \"origin/\$(git defbranch origin)\""
gfrb() { ref="${1:-origin/$(git defbranch origin)}"; remote="${ref%%/*}"; git fetch "$remote" && git rebase "$ref" "${@:2}"; }
gfrbi() { ref="${1:-origin/$(git defbranch origin)}"; remote="${ref%%/*}"; git fetch "$remote" && git rebase -i "$ref" "${@:2}"; }
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 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 master" 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" alias glg="git log --color --format=fuller --stat --no-merges --graph"
alias glgp="git log --color --format=fuller --patch-with-stat" 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"
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 gbr="git branch" alias gclm="git cleanmerged"
alias gtg="git tag" 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 gbl="git blame"
alias gr="git remote" alias gr="git remote"
alias grv="git revert"
alias gra="gr add" alias gra="gr add"
alias grr="gr rm" alias grr="gr rm"
alias grao="gra origin" alias grao="gra origin"
@ -190,14 +201,14 @@ 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'
alias drm='docker rm' alias drm='docker rm'
alias drmi='docker rmi' alias drmi='docker rmi'
@ -206,30 +217,32 @@ 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'
dklrm() { docker kill $@ ; docker rm $@; } alias drmf='docker rm -f'
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 --tail=1000 -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=() local docker_args=("$dowhat" -ti)
shift shift
while [ "${1:0:1}" = '-' ]; do while [ "${1:0:1}" = '-' ]; do
@ -241,68 +254,73 @@ do_dsh() {
shift shift
done done
local user="$(echo "$1" | cut -d'@' -f1 -s)" local user
local prog="${@:2:$#}" user="$(echo "$1" | cut -d@ -f1 -s)"
local usercmd=""
declare -a prog
prog=("${@:2:$#}")
if [ -z "$user" ]; then if [ -z "$user" ]; then
host="$1" host="$1"
else else
host=`echo $1 | cut -d'@' -f2 -s` host="$(cut -d@ -f2 -s <<< "$1")"
usercmd="--user=$user" docker_args+=("--user=$user")
fi fi
if [ "$dowhat" = 'exec' -a -z "$(docker ps -q -f name="$host")" <&- ]; then if [ "$dowhat" = exec ] && [ -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 [ -z "$prog" ]; then if [ ${#prog[@]} = 0 ]; then
shell_args=() shell_args=("$dowhat")
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 $dowhat ${shell_args[@]} "$host" which "$shell" <&- | sed 's|[\r\n]||g')" shell_path="$(set -o pipefail; docker "${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 [ -z "$prog" ]; then if [ ${#prog[@]} = 0 ]; 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 $dowhat ${docker_args[@]} -ti $usercmd $host $(xargs <<< $prog) docker "${docker_args[@]}" "$host" "${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 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"
alias aliases="$EDITOR $thisfile ; exec zsh" # shellcheck disable=SC2139
alias vimrc="$EDITOR $VIMRC" alias aliases="\$EDITOR $thisfile ; exec zsh"
alias zshrc="$EDITOR ${ZDOTDIR:-$HOME}/.zshrc ; exec zsh" alias vimrc="\$EDITOR \$VIMRC"
alias gitrc="$EDITOR $XDG_CONFIG_HOME/git/config" alias zshrc="\$EDITOR \${ZDOTDIR:-\$HOME}/.zshrc ; exec zsh"
alias xinitrc="$EDITOR $XDG_CONFIG_HOME/X11/xinitrc" alias gitrc="\$EDITOR \$XDG_CONFIG_HOME/git/config"
alias xresources="$EDITOR $XDG_CONFIG_HOME/X11/xresources ; xrdb merge $XDG_CONFIG_HOME/X11/xresources" alias xinitrc="\$EDITOR \$XDG_CONFIG_HOME/X11/xinitrc"
alias sshc="$EDITOR ~/.ssh/config" alias xresources="\$EDITOR \$XDG_CONFIG_HOME/X11/xresources ; xrdb merge \$XDG_CONFIG_HOME/X11/xresources"
alias dotfiles="cd $XDG_CONFIG_HOME" alias sshc="\$EDITOR ~/.ssh/config"
alias i3c="$EDITOR $XDG_CONFIG_HOME/i3/config; systemctl --user reload i3" alias dotfiles="cd \$XDG_CONFIG_HOME"
alias polybarc="$EDITOR $XDG_CONFIG_HOME/polybar/config; systemctl --user reload polybar@i3bar" alias i3c="\$EDITOR \$XDG_CONFIG_HOME/i3/config; systemctl --user reload i3"
alias polybarc="\$EDITOR \$XDG_CONFIG_HOME/polybar/config.ini; systemctl --user reload polybar@i3bar"
alias rot13="tr '[A-Za-z]' '[N-ZA-Mn-za-m]'" alias rot13="tr '[A-Za-z]' '[N-ZA-Mn-za-m]'"

View File

@ -51,21 +51,16 @@
# Ignore newlines '\n' in notifications. # Ignore newlines '\n' in notifications.
ignore_newline = no ignore_newline = no
# The geometry of the window: # dynamic width from 0 to 400
# [{width}]x{height}[+/-{x}+/-{y}] # width = (0, 400)
# The geometry of the message window. # constant width of 400
# The height is measured in number of notifications everything else width = (320, 360)
# 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.
# 53 = 30 + 23 (bar-height) # Position the notification in the top right corner
geometry = "360x5-30+30" origin = top-right
# 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.
@ -74,7 +69,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 = 15 transparency = 20
# 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.

View File

@ -9,6 +9,6 @@ XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
EDITOR="vim" EDITOR="vim"
VISUAL="vim" VISUAL="vim"
PATH="${PATH}:/sbin:/usr/sbin:${XDG_CONFIG_HOME}/scripts" PATH="${PATH}:/sbin:/usr/sbin:${HOME}/.local/bin:${XDG_CONFIG_HOME}/scripts"
# vim: ft=sh # vim: ft=sh

View File

@ -9,7 +9,7 @@ GEM_SPEC_CACHE="$XDG_CACHE_HOME/gem"
GOPATH="$XDG_DATA_HOME/go" GOPATH="$XDG_DATA_HOME/go"
ICEAUTHORITY="$XDG_CACHE_HOME/ICEauthority" ICEAUTHORITY="$XDG_CACHE_HOME/ICEauthority"
NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc" NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc"
#PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass" PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass"
PYTHONSTARTUP="$XDG_CONFIG_HOME/python/startup" PYTHONSTARTUP="$XDG_CONFIG_HOME/python/startup"
RUSTUP_HOME="$XDG_DATA_HOME/rustup" RUSTUP_HOME="$XDG_DATA_HOME/rustup"
TERMINFO="$XDG_DATA_HOME/terminfo" TERMINFO="$XDG_DATA_HOME/terminfo"

View File

@ -6,25 +6,44 @@
<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 5 Pro Light</string> <string>FontAwesome 6 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 5 Pro Light</string> <string>FontAwesome 6 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 5 Pro Light</string> <string>FontAwesome 6 Pro Light</string>
</edit> </edit>
</match> </match>
<match>
<test qual="all" name="family" compare="eq"><string>Noto Sans</string></test>
<edit name="hintstyle" mode="assign"><const>hintnone</const></edit>
</match>
<match>
<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_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> <alias>
<family>SF Mono</family> <family>SF Mono</family>
<accept> <accept>
@ -32,13 +51,8 @@
</accept> </accept>
</alias> </alias>
<match target="font"> <match>
<test qual="all" name="family" compare="eq"><string>Noto Sans</string></test> <edit name="antialias" mode="assign"><bool>true</bool></edit>
<edit name="hintstyle" mode="assign"><const>hintnone</const></edit>
</match>
<match target="font">
<test qual="all" name="family" compare="eq"><string>Source Code Pro</string></test>
<edit name="hintstyle" mode="assign"><const>hintfull</const></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

@ -19,8 +19,16 @@
[pull] [pull]
rebase = true rebase = true
prune = 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]
date = iso8601-local
[format] [format]
pretty = format:%h %Cblue%ad%Creset %ae %Cgreen%s%Creset pretty = format:%h %Cblue%ad%Creset %ae %Cgreen%s%Creset
[alias] [alias]
@ -29,6 +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 = "!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

@ -1,11 +1,8 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
gtk-theme-name="Arc-Dark" gtk-theme-name="Arc-Dark"
gtk-icon-theme-name="Xenlism-Wildfire" gtk-icon-theme-name="Xenlism-Wildfire"
gtk-font-name="Noto Sans 9" gtk-font-name="sans 9"
gtk-cursor-theme-name="Breeze_Obsidian" gtk-cursor-theme-name="Breeze_Obsidian"
gtk-cursor-theme-size=0 gtk-cursor-theme-size=16
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=Noto Sans 9 gtk-font-name=sans 9
gtk-cursor-theme-name=Breeze_Obsidian gtk-cursor-theme-name=Breeze_Obsidian
gtk-cursor-theme-size=0 gtk-cursor-theme-size=16
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

1
gtk-4.0/settings.ini Symbolic link
View File

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

View File

@ -142,16 +142,17 @@ 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 250 "$(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
# 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

View File

@ -4,31 +4,29 @@ log-level = "info";
# Shadow # Shadow
shadow = true; shadow = true;
shadow-radius = 24; shadow-radius = 30;
shadow-offset-x = -24; shadow-offset-x = -30;
shadow-offset-y = -24; shadow-offset-y = -26;
shadow-opacity = 0.6; shadow-opacity = 0.35;
# shadow-red = 0.0; shadow-color = "#000000";
# shadow-green = 0.0;
# shadow-blue = 0.0;
shadow-exclude = [ shadow-exclude = [
"class_g = 'slop'", "class_g = 'slop'",
"class_g = 'Conky'", "class_g = 'Conky'",
"class_g ?= 'Notify-osd'", "class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'", "class_g = 'firefox' && argb && (window_type = 'utility' || window_type = 'popup_menu')",
"class_g = 'firefox' && argb",
"name = 'Notification'", "name = 'Notification'",
"name = 'cpt_frame_window'", "name = 'cpt_frame_window'",
"_GTK_FRAME_EXTENTS@:c" "_GTK_FRAME_EXTENTS@:c"
]; ];
# shadow-exclude = "n:e:Notification"; # shadow-exclude = "n:e:Notification";
# shadow-exclude-reg = "x10+0+0"; # shadow-exclude-reg = "x10+0+0";
# shadow-ignore-shaped = true;
xinerama-shadow-crop = true; xinerama-shadow-crop = true;
# Opacity # Opacity
frame-opacity = 1.0; frame-opacity = 1.0;
# active-opacity = 0.8; active-opacity = 1.0;
inactive-opacity = 0.6; inactive-opacity = 0.5;
inactive-opacity-override = true; inactive-opacity-override = true;
# inactive-dim = 0.2; # inactive-dim = 0.2;
# inactive-dim-fixed = true; # inactive-dim-fixed = true;
@ -40,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;
@ -49,56 +47,88 @@ blur-background-exclude = [
"class_g = 'Onboard'", "class_g = 'Onboard'",
"class_g = 'slop'", "class_g = 'slop'",
"class_g = 'Polybar'", "class_g = 'Polybar'",
"class_g = 'firefox' && argb", "class_g = 'firefox' && argb && (window_type = 'utility' || window_type = 'popup_menu')",
"window_type = 'dock'", "window_type = 'dock'",
"window_type = 'desktop'", "window_type = 'desktop'",
"_GTK_FRAME_EXTENTS@:c" "_GTK_FRAME_EXTENTS@:c",
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
]; ];
# Corners
corner-radius = 9;
# Fading # Fading
fading = true; fading = true;
fade-delta = 10; fade-delta = 10;
fade-in-step = 0.04 fade-in-step = 0.035;
fade-out-step = 0.06; fade-out-step = 0.06;
no-fading-openclose = false; no-fading-openclose = false;
no-fading-destroyed-argb = false; no-fading-destroyed-argb = false;
# fade-exclude = [ ]; # fade-exclude = [ ];
# Other # Focus
backend = "glx";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
use-ewmh-active-win = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;
vsync = true;
# sw-opti = true;
# unredir-if-possible = true;
# unredir-if-possible-delay = 5000;
# unredir-if-possible-exclude = [ ];
focus-exclude = [ focus-exclude = [
"i:ai:chromium", "i:ai:chromium",
"class_g = 'firefox'", "class_g = 'firefox'",
"class_g = 'zoom'" "class_g = 'zoom'",
"class_g = 'guvcview'",
"class_g = 'Entangle'",
"class_g = 'obs'",
"class_g = 'parsecd'",
"class_g = 'discord'",
"class_g = 'steam_app_271590'"
]; ];
# 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-transient = true;
detect-client-leader = true; detect-client-leader = true;
invert-color-include = [ ]; invert-color-include = [ ];
# resize-damage = 1; resize-damage = 1;
# GLX backend # GLX backend
glx-no-stencil = true; glx-no-stencil = true;
glx-no-rebind-pixmap = true; glx-no-rebind-pixmap = true;
xrender-sync-fence = true; # xrender-sync-fence = true;
# no-use-damage = false;
use-damage = true; use-damage = true;
# Window type settings # Window type settings
wintypes: wintypes: {
{ tooltip = {
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; opacity = 0.75;
dock = { shadow = false; } full-shadow = false;
dnd = { shadow = false; } blur-background = false;
popup_menu = { opacity = 0.8; } }
dropdown_menu = { opacity = 0.8; }
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;
}
}; };
# vim: ft=conf noet

View File

@ -1,5 +1,5 @@
[colours] [colours]
background = transparent background = #0000
text = #eceff1 text = #eceff1
icon = #147a82 icon = #147a82
warning = #ffcb00 warning = #ffcb00
@ -10,25 +10,23 @@ 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 = 2.5 format-margin = 3
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;2pt
font-1 = FontAwesome5ProLight:pixelsize=10;2pt font-1 = FontAwesome6ProLight:pixelsize=10;2pt
foreground = ${colours.text} foreground = ${colours.text}
background = ${colours.background} background = ${colours.background}
@ -39,22 +37,21 @@ 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 = 8pt border-bottom-size = 10pt
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 wifi ethernet memory cpu cputemp backlight battery date
modules-right = volume updates weather wlan gateway eth memory cpu xbacklight battery cputemp gputemp 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 = 12pt tray-maxsize = 16pt
tray-padding = 8pt tray-padding = 8pt
tray-scale = 1.0 tray-scale = 1.0
@ -134,8 +131,9 @@ label-urgent-foreground = ${colours.urgent}
label-urgent-padding = ${self.label-focused-padding} label-urgent-padding = ${self.label-focused-padding}
[module/xbacklight] [module/backlight]
type = internal/xbacklight type = internal/backlight
card = intel_backlight
label = %percentage% label = %percentage%
format = <label> format = <label>
@ -143,12 +141,6 @@ format-prefix = " "
format-prefix-foreground = ${colours.icon} format-prefix-foreground = ${colours.icon}
[module/backlight-acpi]
inherit = module/xbacklight
type = internal/backlight
card = intel_backlight
[module/cpu] [module/cpu]
type = internal/cpu type = internal/cpu
interval = 2 interval = 2
@ -166,9 +158,9 @@ format-prefix-foreground = ${colours.icon}
label = %percentage_used%% label = %percentage_used%%
[module/wlan] [module/wifi]
type = internal/network type = internal/network
interface = wlp1s0 interface-type = wireless
interval = 3.0 interval = 3.0
format-connected = <ramp-signal> <label-connected> format-connected = <ramp-signal> <label-connected>
@ -187,12 +179,12 @@ ramp-signal-2 = 
ramp-signal-foreground = ${colours.icon} ramp-signal-foreground = ${colours.icon}
[module/eth] [module/ethernet]
type = internal/network type = internal/network
interface = eth0 interface-type = wired
interval = 3.0 interval = 10.0
label-connected = %local_ip% label-connected = %local_ip% & %local_ip6%
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}

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.95); background-color: rgba(56, 60, 74, 0.9);
transparency: "real"; transparency: "real";
} }

View File

@ -1,9 +1,6 @@
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";
@ -142,4 +139,15 @@ 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,28 +1,69 @@
#!/bin/sh #!/bin/bash
set -e 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}"
dpi=$1 BLUR_STRENGTH=10
CORNER_RADIUS=9
CURSOR_SIZE=16
if [ -z "$1" ]; then xrdbget() {
>&2 printf "Usage\n\t%s: <dpi>" "$(basename "$0")" set -o pipefail
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
CONF_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/xsettingsd" dpi=$1
mkdir -p "$CONF_DIR" scale=$(( dpi/96 ))
cursor=$(( (dpi*CURSOR_SIZE)/96 ))
# Build xsettingsd.local # Update picom scale
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.conf 2>/dev/null || true cat "$CONF_DIR/xsettingsd.local" 2>/dev/null || :
echo Xft/DPI $(( $dpi*1024 )) echo "Xcursor/size $cursor"
echo Gdk/WindowScalingFactor $(( $dpi/96 )) echo "Gtk/CursorThemeSize $cursor"
echo Gdk/UnscaledDPI $(( $dpi*1024/($dpi/96) )) echo "Gtk/CursorThemeName \"$(xrdbget Xcursor.theme Adwaita)\""
} > $CONF_DIR/xsettingsd.local echo "Xft/HintStyle \"$(xrdbget Xft.hintstyle hintfull)\""
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"
echo Xft.dpi: $dpi | xrdb -merge xrdb -merge <<EOF &
xrandr --dpi $dpi Xft.dpi: $dpi
Xcursor.size: $cursor
EOF
xrandr --dpi "$dpi" &
systemctl --user try-reload-or-restart xsettingsd &
wait
systemctl --user reload-or-restart xsettingsd systemctl --user try-reload-or-restart \
systemctl --user --no-block reload i3 polybar@i3bar i3 \
polybar@i3bar &
systemctl --user try-restart \
dunst &
wait

45
scripts/otp Executable file
View File

@ -0,0 +1,45 @@
#!/usr/bin/env bash
set -euo pipefail
NOTIF_PERSIST=30000
NOTIF_INFORM=5000
stdout=
caller=
notif=
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 -t $NOTIF_PERSIST "Touch your Yubikey" "$caller is requesting otp for $1")"
trap 'notify-send -r $notif -t 1 "Touch your Yubikey" "$caller is requesting otp for $1"' EXIT
fi
code=$(ykman oath accounts code -s "$1")
if [ -z "$stdout" ]; then
echo "$code" | tee >(xclip -i)
xdotool type "$code"
else
echo "$code"
fi
if [ -n "$code" ] && [ -n "$notif" ]; then
trap : EXIT
notify-send -r "$notif" -t $NOTIF_INFORM "Yubikey Touched" "otp generated for $caller"
fi

View File

@ -1,5 +1,6 @@
#!/bin/bash -e #!/bin/bash -e
slice=app
rand=$(tr -dc 'a-f0-9' < /dev/urandom | head -c 8) rand=$(tr -dc 'a-f0-9' < /dev/urandom | head -c 8)
args=() args=()
@ -16,14 +17,11 @@ do case "$opt" in
done done
shift $((OPTIND-1)) shift $((OPTIND-1))
if [ -z "$slice" ]; then
slice=app
fi
exec systemd-run \ exec systemd-run \
--user \ --user \
--collect \ --collect \
--slice="$slice" \ --slice="$slice" \
--unit="$slice-$1-$rand" \ --unit="$slice-$1-$rand" \
--property=BindsTo=graphical-session.target \ --property=BindsTo=graphical-session.target \
${args[@]} -- "$@" --property=ExitType=cgroup \
"${args[@]}" -- "$@"

13
ssh/askpass Executable file
View File

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

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

View File

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

View File

@ -1,2 +1,5 @@
[Service] [Service]
Slice=session.slice Slice=session.slice
[Install]
WantedBy=graphical-session.target

View File

@ -0,0 +1,15 @@
# 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 @@
/home/frebib/.config/systemd/user/autocutsel-primary.service

View File

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

View File

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

View File

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

View File

@ -6,7 +6,7 @@ After=xprofile.service xorg.target
[Service] [Service]
ExecStart=/usr/bin/i3 ExecStart=/usr/bin/i3
ExecReload=/usr/bin/i3-msg reload ExecReload=/usr/bin/i3-msg restart
Restart=always Restart=always
Slice=session.slice Slice=session.slice

View File

@ -4,7 +4,7 @@ Requires=graphical-session.target
After=dbus.service graphical-session.target xorg.target After=dbus.service graphical-session.target xorg.target
[Service] [Service]
ExecStart=/usr/bin/picom --experimental-backends --dbus ExecStart=/usr/bin/picom --dbus
Restart=always Restart=always
Slice=session.slice Slice=session.slice

View File

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

View File

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

View File

@ -1,11 +1,11 @@
[Unit] [Unit]
Description=Polybar Description=Polybar bar %i
Requires=graphical-session.target Requires=graphical-session.target
After=graphical-session.target pulseaudio.socket i3.service After=graphical-session.target pulseaudio.socket i3.service
[Service] [Service]
ExecStart=/usr/bin/polybar --reload --log=warning %i ExecStart=/usr/bin/polybar --reload --log=warning %i
ExecReload=/usr/bin/polybar-msg cmd restart -p $MAINPID ExecReload=/usr/bin/polybar-msg -p $MAINPID cmd restart
Restart=always Restart=always
Slice=session.slice Slice=session.slice

View File

@ -1,2 +0,0 @@
[Service]
Slice=session.slice

View File

@ -0,0 +1,13 @@
[Unit]
Description=Redshift display colour temperature adjustment
Documentation=http://jonls.dk/redshift/
Requires=xorg.target
ConditionPathExists=/usr/bin/redshift
[Service]
Slice=session.slice
ExecStart=/usr/bin/redshift
Restart=always
[Install]
WantedBy=graphical-session.target

View File

@ -1,2 +0,0 @@
[Service]
Slice=session.slice

View File

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

View File

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

13
systemd/user/ssh@.service Normal file
View File

@ -0,0 +1,13 @@
[Unit]
Description=SSH persistent connection to %i
[Service]
Type=forking
Slice=ssh.slice
Environment=SSH_ASKPASS=%E/ssh/askpass
Environment=SSH_HOST=%i
ExecStart=/usr/bin/ssh -fNT %i
Restart=on-failure
[Install]
WantedBy=ssh.target

View File

@ -4,9 +4,8 @@ Requires=xorg.target
After=xorg.target After=xorg.target
[Service] [Service]
ExecStart=/bin/sh -c 'xsettingsd -c $XDG_CONFIG_HOME/xsettingsd/xsettingsd.local' ExecStart=xsettingsd -c ${XDG_CONFIG_HOME}/xsettingsd/xsettingsd.conf
ExecReload=/bin/kill -s HUP $MAINPID ExecReload=/bin/kill -s HUP $MAINPID
SyslogIdentifier=xsettingsd
Restart=always Restart=always
Slice=session.slice Slice=session.slice

100
vim/vimrc
View File

@ -39,10 +39,17 @@ 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
@ -63,14 +70,11 @@ set splitright " Vertical split to right of current.
" Whitespace highlight settings " Whitespace highlight settings
set list set list
set listchars=eol:$,space,tab:>-,trail:◦,extends:▶,precedes:◀ set listchars=space,tab:>-,trail:◦,extends:▶,precedes:◀
highlight SpecialKey ctermfg=8 highlight SpecialKey ctermfg=8
if exists('+colorcolumn') set cc=+1
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
@ -85,8 +89,6 @@ 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 'scrooloose/nerdtree', { 'on': 'NERTreeToggle' }
Plug 'tpope/vim-sensible' Plug 'tpope/vim-sensible'
Plug 'tpope/vim-fugitive' Plug 'tpope/vim-fugitive'
@ -103,6 +105,13 @@ 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
@ -111,22 +120,39 @@ Plug 'PotatoesMaster/i3-vim-syntax'
Plug 'puppetlabs/puppet-syntax-vim' Plug 'puppetlabs/puppet-syntax-vim'
Plug 'saltstack/salt-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
" YouCompleteMe config " Deoplete config
let g:ycm_confirm_extra_conf = 0 call deoplete#custom#option({
if !exists('g:ycm_semantic_triggers') \ 'camel_case': v:true,
let g:ycm_semantic_triggers = {} \ })
endif call deoplete#enable()
let g:ycm_semantic_triggers.tex = g:vimtex#re#youcompleteme
"let g:vimtex_view_method='zathura' " 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: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
let g:syntastic_tex_checkers = ['chktex']
autocmd FileType tex silent VimtexCompile autocmd FileType tex silent VimtexCompile
autocmd FileType tex setlocal spell autocmd FileType tex setlocal spell
augroup vimtex augroup vimtex
@ -136,35 +162,6 @@ 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
@ -304,6 +301,11 @@ cmap w!! w !sudo tee > /dev/null %
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 indentkeys-=<:> autocmd filetype c,h,cpp,hpp set colorcolumn=81
autocmd FileType gitcommit setlocal cc=72 et sw=4 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

View File

@ -16,9 +16,10 @@ if exists tty && tty -s; then
fi fi
# Configure less and add colours # Configure less and add colours
export LESS="-RI --mouse --wheel-lines=3" export LESS="-nRIFRSXM --mouse --wheel-lines=3"
export PAGER="less" export PAGER="less"
export MANPAGER="less -+N" export MANPAGER="less -+N"
export SYSTEMD_LESS="$LESS"
export SYSTEMD_PAGER="less $LESS" export SYSTEMD_PAGER="less $LESS"
# Disable histfile # Disable histfile
export LESSHISTFILE=- export LESSHISTFILE=-
@ -53,27 +54,25 @@ zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
zstyle ':compinstall' filename "${ZDOTDIR:-~}/.zshrc" zstyle ':compinstall' filename "${ZDOTDIR:-~}/.zshrc"
export WORDCHARS='*?_[]~=&;!#$%^(){}' export WORDCHARS='*?_[]~=&;!#$%^(){}'
x-bash-backward-kill-word(){ WORDCHARS='' zle kill-word; }
zle -N x-bash-backward-kill-word
declare -A ZINIT declare -A ZINIT
ZINIT[HOME_DIR]="$XDG_CACHE_HOME/zsh/zinit" ZINIT[HOME_DIR]="$XDG_CACHE_HOME/zsh/zinit"
ZINIT[BIN_DIR]="${ZINIT[HOME_DIR]}/bin" ZINIT[BIN_DIR]="${ZINIT[HOME_DIR]}/bin"
ZINIT[PLUGINS_DIR]="${ZINIT[HOME_DIR]}/plugins" ZINIT[PLUGINS_DIR]="${ZINIT[HOME_DIR]}/plugins"
if [ ! -e "${ZINIT[HOME_DIR]}" ]; then if [ ! -e "${ZINIT[HOME_DIR]}" ]; then
git clone https://github.com/zdharma/zinit.git "${ZINIT[HOME_DIR]}" git clone https://github.com/zdharma-continuum/zinit.git "${ZINIT[HOME_DIR]}"
fi fi
source "${ZINIT[HOME_DIR]}"/zinit.zsh source "${ZINIT[HOME_DIR]}"/zinit.zsh
zinit wait lucid light-mode for \ zinit wait lucid for \
atinit"ZINIT[COMPINIT_OPTS]=-C; zicompinit; zicdreplay" \ atinit"ZINIT[COMPINIT_OPTS]=-C;zicompinit;zicdreplay" \
zdharma/fast-syntax-highlighting \ atload"FAST_HIGHLIGHT[chroma-zinit]=" \
zdharma-continuum/fast-syntax-highlighting \
blockf \ blockf \
zsh-users/zsh-completions \ zsh-users/zsh-completions \
atload"!_zsh_autosuggest_start" \ atload"!_zsh_autosuggest_start" \
zsh-users/zsh-autosuggestions zsh-users/zsh-autosuggestions
zinit light Aloxaf/fzf-tab
zinit light agkozak/zsh-z zinit light agkozak/zsh-z
zinit ice lucid ver'master' wait'0a' pick'src/bash.command-not-found' zinit ice lucid ver'master' wait'0a' pick'src/bash.command-not-found'
@ -92,15 +91,16 @@ bindkey "^[[7~" beginning-of-line
bindkey "^[[8~" end-of-line bindkey "^[[8~" end-of-line
bindkey "^[[3~" delete-char bindkey "^[[3~" delete-char
bindkey "^[[3;3~" delete-word 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 "^F" fzf-file-widget bindkey "^F" fzf-file-widget # Ctrl+F file search (fzf)
bindkey "^[[A" fzf-history-widget # Up (fzf)
bindkey "^[[B" fzf-history-widget # Down (fzf)
bindkey "${terminfo[kcuu1]}" fzf-history-widget # Up (fzf)
bindkey "${terminfo[kcud1]}" fzf-history-widget # Down (fzf)
# Backspace across newlines when in vi-mode
bindkey -v '^?' backward-delete-char
bindkey -M vicmd "^W" backward-delete-word bindkey -M vicmd "^W" backward-delete-word
bindkey -M vicmd d vi-backward-char bindkey -M vicmd d vi-backward-char
bindkey -M vicmd h vi-down-line-or-history bindkey -M vicmd h vi-down-line-or-history
bindkey -M vicmd t vi-up-line-or-history bindkey -M vicmd t vi-up-line-or-history
@ -110,8 +110,8 @@ bindkey -M vicmd K vi-kill-eol
bindkey -M vicmd j vi-find-next-char-skip bindkey -M vicmd j vi-find-next-char-skip
bindkey -M vicmd l vi-repeat-search bindkey -M vicmd l vi-repeat-search
# Backspace across newlines when in vi-mode # Disable all fsh chromas, fixes `zi` being slow
bindkey -v '^?' backward-delete-char FAST_HIGHLIGHT=()
ZSH_AUTOSUGGEST_USE_ASYNC=true ZSH_AUTOSUGGEST_USE_ASYNC=true
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=128 ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=128

View File

@ -1,9 +1,19 @@
# ZSH Theme emulating the Fish shell's default prompt. # ZSH Theme emulating the Fish shell's default prompt.
_fishy_collapsed_wd() { _fishy_collapsed_wd() {
pwd | sed -E 's|^'$HOME'|~|;s|(.*)/|\1%|;s|((^\|/)\.?[^/%]{1})[^/%]*|\1|g;s|(.*)%|\1/|' pwd | sed -E 's|^'$HOME'|~|;s|([\.~]?[^/]{1})[^/]*/|\1/|g'
} }
function zle-line-init zle-keymap-select {
case $KEYMAP in
vicmd) printf '\e[3 q';; # block cursor
*) printf '\e[2 q';; # less visible cursor
esac
zle reset-prompt
}
zle -N zle-line-init
zle -N zle-keymap-select
# Required for dynamic prompt # Required for dynamic prompt
setopt prompt_subst setopt prompt_subst
@ -11,4 +21,8 @@ local user_color='green'; [ $UID -eq 0 ] && user_color='red'
PROMPT="%n@%m %F{$user_color}\$(_fishy_collapsed_wd)%f%(!.#.>) " PROMPT="%n@%m %F{$user_color}\$(_fishy_collapsed_wd)%f%(!.#.>) "
PROMPT2='%F{red}\ %f' PROMPT2='%F{red}\ %f'
RPROMPT='%F{red}%(?.. %?)%f' RPROMPT='%F{cyan}${${KEYMAP/vicmd/ normal}/(main|viins)/}%f%(?.. %F{red}%?%f)'
# Disable trailing space
# https://superuser.com/questions/655607/removing-the-useless-space-at-the-end-of-the-right-prompt-of-zsh-rprompt
ZLE_RPROMPT_INDENT=0

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=""