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

Compare commits

..

226 Commits

Author SHA1 Message Date
fea0831c13
Unstaged changes
Signed-off-by: Joe Groocock <me@frebib.net>
2022-10-23 23:17:44 +00:00
ea5f537303
scripts/dpi: Constant blur/corner-radius scaling
Scale picom blur and corner radius according to a constant scale factor
much like we do for cursor sizes. This ideally would be defined
somewhere centrally, but this is better than nothing.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-10-23 10:59:37 +00:00
2907e24656
cursor: Switch to BreezeX Black
I still prefer Breeze-Obsidian, but the reality is that it's unsupported
and nobody even seems to have the source any more :(

Allow `dpi` script to scale cursor relative to display scale according
to a fixed "standard" size, which for BreezeX is around 28px to closely
match the scale of the Breeze-Obsidian 16px.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-10-23 10:24:28 +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
b1eecdbbda
git: suppress detached-head warning. I-know-what-I-am-doing
git is not for the weak. Warnings are not for the knowing.
Shut up git.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-01-07 15:34:18 +00:00
1b3672b983
git: suppress default branch babble warning
Shut up and just make me a repo without complaining will you.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-01-07 15:34:18 +00:00
3e681a94b1
environment: override GEM_HOME to prevent ~/.gem
Note from the Arch Wiki:
    Make sure to remove gem: --user-install from /etc/gemrc

https://wiki.archlinux.org/index.php/XDG_Base_Directory#Ruby

Signed-off-by: Joe Groocock <me@frebib.net>
2021-01-05 09:43:27 +00:00
ab7532e250
environment: move PATH additions to 20-xdg-overrides
Signed-off-by: Joe Groocock <me@frebib.net>
2021-01-05 09:43:02 +00:00
3b78319653
aliases: limit dlg to last 1000 lines
This prevents the sometimes lengthy waits whilst Docker spools months or
years of container logs into the shell scrollback, shortly to be
discarded. It's rare that more than the most 1000 recent lines will be
required, and those should probably use more specific cli invocations.

Signed-off-by: Joe Groocock <me@frebib.net>
2021-01-04 15:38:34 +00:00
dae7f60002
alacritty: update to 0.7.0, fix keybinds
Upstream change: 67db9b228d

Signed-off-by: Joe Groocock <me@frebib.net>
2020-12-17 19:21:01 +00:00
e237f79831
systemd: add SyslogIdentifier for /bin/sh processes
These units appear in the journal with the identifier `sh` so set a
sensible identifier for them to aid in log readability

Signed-off-by: Joe Groocock <me@frebib.net>
2020-09-26 14:12:01 +01:00
8d0eedb617
rofi: float based on window class
Upstream changed the window naming behaviour so the window stopped
floating. 85279323e6

Signed-off-by: Joe Groocock <me@frebib.net>
2020-09-08 21:54:32 +01:00
f6b863adf3
zsh: add bash-insulter plugin
Should lighten the mood when I inevitibly fuck up typing a command.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 17:12:41 +01:00
f4b03038ee
zsh: zshenv source all environment in a loop
source only accepts one argument, so it must be called once for each
environment file.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 17:04:05 +01:00
a2ad4853ed
zsh: use ZDOTDIR over XDG_CONFIG_HOME
ZSH is programmed to prefer this ordering, so honor that in the ZSH
configuration as well.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 16:38:34 +01:00
ecb282cabb
zsh: remove unused edit-command-line zmod
This was added previously for Ctrl+V for vim editing of the
command-line, but the key-bind was removed in
ce595c81b6 but this was forgotten.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 16:37:59 +01:00
6d33d4685c
zsh: switch to zinit & zsh-fsh
These are significantly faster to load, and are actively maintained.
Functionality is almost identical from a usability perspective.
The primary motivation for this change is the several orders of
magnitude faster shell loading times, which should help with
productivity on overloaded and underpowered hardware.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 16:34:33 +01:00
5ace0bb7f4
zsh: trysource various ZSH plugins
These vary by OS/distribution and even between devices depending on what
is installed. Most of these are optional anyway so make a best-effort
attempt to load them.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 12:07:09 +01:00
c719fad76a
zsh: skip loading environment if ZDOTDIR is set
Loading the environment on every shell invocation is slow. We can speed
up shell startup a little by skipping this for ever shell because it's
loaded on login by systemd.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 12:03:27 +01:00
9d34d3250b
environment: force aspell to respect XDG directories
Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 11:50:27 +01:00
cda9cb6570
environment: split XDG base directory overrides
Move environment variable overrides for non-XDG compliant applications
into it's own file. I expect this list will get a lot longer over time.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 11:49:52 +01:00
d3910bda18
ideavim: move .ideavimrc into $XDG_CONFIG_HOME/ideavim
Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 11:42:16 +01:00
98990b8ac9
xournal: remove unused .xournal configuration
Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 11:42:15 +01:00
4fc5fc0df6
environment: move .ts3client to $XDG_CONFIG_HOME
Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 11:35:24 +01:00
3dff4ff428
environment: move .ICEauthority to $XDG_CACHE_HOME
Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 11:18:30 +01:00
be88417d59
python: move .python_history to $XDG_CACHE_DIR/python
Courtesy of 89fd8cc648

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 11:18:22 +01:00
f16cd95a0f
mimeapps: update GNOME .desktop names
Fixes using eog/evince as default image/pdf viewer applications with
xdg-open/gio open.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 02:23:18 +01:00
21f7a2b75c
systemd: nm-applet requires NetworkManger to run
Require NetworkManager tmp files before attempting to start nm-applet,
else it will fail to start if NetworkManager is not actually running.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 02:22:04 +01:00
a912db8044
systemd: add gphoto2-ffmpeg user service
Streams 720p25 video from a gphoto2-compatible camera through ffmpeg
into /dev/video* for use as a generic video/camera device.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 02:21:01 +01:00
e0ff04168a
systemd: assign default slices to user services
As per recommendations in the systemd documentation, assign session, app
or background slice allocations to the standard user services:
https://github.com/systemd/systemd/blob/master/docs/DESKTOP_ENVIRONMENTS.md#pre-defined-systemd-units

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-23 01:16:54 +01:00
ed2fa7076c
picom: move picom.conf into XDG directory
Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-21 20:05:34 +01:00
ba47b9b00d
polybar: scale font & tray icons with dpi
This is using my hacked branch of polybar, but it works well enough.
Padding isn't properly scaled, though.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-19 23:00:59 +01:00
cdbe8ce855
systemd: parameterise wallpaper.service
Remove all invocations of 'feh' for setting wallpaper that are now
redundant as this service should handle setting the wallpaper in all
relevant situations.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-19 20:49:10 +01:00
03ae85dff5
i3: remove i3blocks references
i3blocks is long gone so these do nothing now

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-19 15:16:50 +01:00
ab4bb4e480
zsh: enabled extendedhistory
This saves timestamps and command durations for all history entries

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-19 12:28:13 +01:00
2cace82b29
systemd: move xdg-user-dirs-update.service to default.target
Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-18 13:53:50 +01:00
39d5f2a370
systemd: require sys/class/bluetooth for blueman-applet
This should prevent the unit from failing when there is no bluetooth
device in the system.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-18 13:53:16 +01:00
09f36fa202
zsh: z-sy-hl redrawhook feature merged
Use master branch that contains the redrawhook feature and other fixes

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-18 13:29:07 +01:00
3f274253ff
scripts/systemd-run-i3: bind applications to graphical session
When the graphical-session target exits, this should terminal all units
bound to it.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-18 13:17:55 +01:00
9a04e70e77
systemd: default launch systemd apps in app.slice
Unless specified, units will launch in `app.slice` under the assumption
that they are foreground user applications.

Update i3 configuration to remove redundant app.slice definition.

Conform to unit naming of app-{name}-{random}.service as documented in
https://github.com/systemd/systemd/blob/master/docs/DESKTOP_ENVIRONMENTS.md#pre-defined-systemd-units

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-18 12:49:31 +01:00
e2d1c57792
systemd: remove dependency on system bluetooth service
systemd user units cannot depend on systemd units as the systemd daemons
are independent processes and have no notion of each-others' services.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-11 18:53:49 +01:00
6c4767b01e
systemd: re-apply wallpaper on xorg screen event
Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-11 18:50:17 +01:00
e08fe1b262
i3: bind to active window with xdotool auto-type
Prevents accidentally typing into other windows when focus is moved.
Allows the user to perform other tasks whilst the typing continues in
the background.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-11 16:07:37 +01:00
9316d74027
aliases: fix 'dotfiles' and 'aliases' alias
After moving dotfiles around, these aliases became out of sync.
Dynamically detect the path of the 'aliases' file, and set 'dotfiles' to
use the XDG config directory.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-11 15:59:45 +01:00
521f462141
systemd: replace profile.service with systemd-environment.d generator
This moves loading of the environment variables out of the normal
service startup flow and has systemd load the variables early.
Shim ZSH to load the environment.d configuration when running without
systemd.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-11 12:19:09 +01:00
322adb478a
i3: start applications in systemd slices
As documented https://github.com/systemd/systemd/blob/master/docs/DESKTOP_ENVIRONMENTS.md
processes should be grouped by their user-facing priority into slices.
This should add fine-grained control to resource-management if later
required.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-11 10:27:04 +01:00
1272045e9a
systemd: replace autocutsel with parcellite
Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-11 10:26:54 +01:00
7b8191b737
aliases: add alert/silence alertmanager/amtool shorthands
Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-11 09:30:48 +01:00
49b5924f14
aliases: use grv for git-revert
git revert is a more common/useful command than git remote -v

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-11 09:28:30 +01:00
91ac3d470d
imgur-screenshot: remove unused configuration
This has been replaced by scripts/screenshot

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-11 09:19:01 +01:00
715349d0f4
scripts/screenshot: add proper arg parsing
This fixes usage of --active and --clip together. I'm not even sure how
it worked before this tbh.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-11 09:14:16 +01:00
0bf16821d5
systemd: use bin/sh over usr/bin/bash
Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 22:42:40 +01:00
60bf423556
dotfiles: move .config/* to root
This seems to make more sense. Almost all files were within .config
anyway.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 22:42:14 +01:00
20f48e25b4
vim: attempt to improve yaml auto-indent
Hopefully this should prevent auto-indent when hitting <CR> after
inserting a :. Whether it works or not, we'll have to see.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 22:02:24 +01:00
35d08af7ce
vim: remove GVim settings
I never use gvim. I'm not sure why I added these here in the first
place. The defaults should do the same thing anyway

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 22:01:42 +01:00
ec76965c70
vim: group splitting options together
Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 22:01:22 +01:00
8a5408c002
zsh: rearrange files into sane XDG dirs
Move non-config into XDG_DATA_HOME including Antigen and ZSH history
files.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 21:58:23 +01:00
e7b3c5e3e0
aliases: remove unused screenfetch/neofetch aliases
Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 21:32:24 +01:00
eddb464053
aliases: remove z=zsh alias as z conflicts
Conflicts with `z` the shell command for jumping to frecent directories

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 21:32:06 +01:00
30be10a7f4
zsh: replace rupa/z with agkozak/zsh-z
zsh-z is a zsh-native plugin which can be installed with antigen. It is
a drop-in replacement and does the same thing, but with less management
overhead.

Set _Z_DATA to be in $XDG_DATA_HOME to un-clutter ~ a little more

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 21:30:59 +01:00
8e91156b4e
i3: generate secure passwords, strip newline
Add -s flag to pwgen to generate cryptographically secure passwords and
strip the newline when adding the value to the clipboard to prevent
accidental submit actions when pasting.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 21:30:59 +01:00
bd1671fcc8
i3: run pwgen without systemd-run
systemd-run doesn't play nicely with xclip

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 21:30:58 +01:00
561582734e
polybar: use 'polybar-msg cmd restart' to reload
This is technically more of a restart than a reload, but it's the
closest thing without actually restarting the main pid.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 21:30:40 +01:00
c1ff08b878
i3: reload on 'systemctl reload i3'
Instead of restart. Reload is called reload for a reason

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 20:32:42 +01:00
ce595c81b6
zsh: remove annoying ^V edit-command-line
I activate this all the time, but never actually want to use it. I find
it more annoying than helpful, so it can be banished forever!

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 19:29:03 +01:00
5c105f4851
alacritty: auto-copy selection to PRIMARY clip
This is faster than xclip et al, so doesn't hurt to enable as well

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 19:27:50 +01:00
8e32bc8618
alacritty: retain foreground colour during selection
This mirrors the old behaviour of Termite, which I think I prefer the
look of.

Signed-off-by: Joe Groocock <me@frebib.net>
2020-08-10 19:24:34 +01:00
67676df08a
element: add config.json for Arc Dark theme
Signed-off-by: Joe Groocock <me@frebib.net>
2020-07-27 00:05:59 +01:00
7209ef65f6
alacritty: move dynamic_title to window.dynamic_title
Upstream change: 18cf806a27

Signed-off-by: Joe Groocock <me@frebib.net>
2020-07-23 19:43:07 +01:00
2d414258ca
rofi-emoji: replace rofi-emoji script with rofi plugin
https://github.com/Mange/rofi-emoji

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

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

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

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

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

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

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

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

e.g. systemctl status
2020-03-21 23:37:05 +00:00
16c629fc70
zsh: enable multibyte (unicode) support
I don't know why I had this disabled. Probably copy-paste when I had no idea what it meant or did
2020-03-21 23:37:05 +00:00
02041c3b27
picom: use ewmh active-window and render damage 2020-03-21 23:37:04 +00:00
18aa625eca
picom: disable logging to file 2020-03-21 23:37:04 +00:00
a45ef24aff
picom: update Firefox class to 'firefox' 2020-03-21 23:37:04 +00:00
d741e2e6fa
zsh: fix backspacing across newlines in vi-mode 2020-03-21 23:37:04 +00:00
080e92b740
zsh: add Ctrl+W (emacs delete word) in Vi mode
Yes, I see the irony in this one, it's just too convenient to pass up
2020-03-21 23:37:04 +00:00
9e9ba8a76f
zsh: add Ctrl+F for fuzzy file search 2020-03-21 23:37:04 +00:00
f2c67c19aa
zsh: tty -s prints nothing
Remove redirection of stdout/stderr as they're pointless
2020-03-21 23:37:03 +00:00
8ceb3434a0
polybar: prefer 'systemd-run --no-block' over 'i3-msg exec' 2020-03-21 23:37:03 +00:00
1929a94ef4
i3: use light instead of xbacklight 2020-03-21 23:37:03 +00:00
ccce866b55
systemd: add & enable xsettingsd service
Update `dpi` script to interact with systemd units
2020-03-21 23:37:02 +00:00
bbfb8fff3f
gtk2: remove include to non-existent file 2020-03-21 23:03:43 +00:00
ff0d449fa5
git: add 'git leaders' alias
Lists git committers in order of commit count, for a repo
2020-03-21 23:02:28 +00:00
936e8828c8
git: use absolute dates in git-log 2020-03-21 23:01:50 +00:00
fb480c73c5
git: prune deleted branches on fetch/pull 2020-03-21 23:01:01 +00:00
bc89989bbb
polybar: use nct6775 cputemp hwmon module 2020-03-21 22:56:09 +00:00
2770fefefd
polybar: add gputemp applet
rename temperature to cputemp for consistency
2020-03-21 22:56:09 +00:00
0256369cd6
scripts/screenshot: update screenshot scp path 2020-03-21 22:56:09 +00:00
1fdb93e356
scripts/gtav: add gtav/netsplit scripts 2020-03-21 22:56:09 +00:00
f379b758c9
systemd: add & enable nm-applet service 2020-03-21 22:51:42 +00:00
93a2899c7b
i3: allow popups to interrupt fullscreen windows 2020-03-21 22:33:10 +00:00
df03d9062e
systemd: enable xautolock service 2020-03-21 22:31:59 +00:00
ddf5a1d387
xautolock: add xorg dependency. timeout after 5min 2020-03-21 22:30:58 +00:00
ba8dc84993
xprofile: load xmodmap on Xorg startup 2020-03-21 22:17:37 +00:00
757bd4c26d
systemd: launch i3 and user programs with systemd 2020-03-21 21:29:21 +00:00
d96ffc16ff
aliases: add gdni/gbl. use --keep with gundo 2020-03-21 21:29:11 +00:00
2598df0f17
aliases: make git-log/git-show aliases consistent
Show patches and stats in appropriate places
2020-03-21 21:29:11 +00:00
d251f3e23a
dunst: use full html-like markup
Strip all trailing whitespace from the configuration file
2020-03-21 21:29:11 +00:00
0d5e1a92c9
i3: remove unused alt-tab script 2020-03-21 21:29:09 +00:00
ed0e66dede
zsh: move less/man interactive config to zshrc 2020-03-21 12:49:59 +00:00
f695136338
gitignore: exclude application-managed files 2020-03-21 12:43:28 +00:00
4fd3c35d52
alacritty: rebase config against upstream changes 2020-03-21 12:40:41 +00:00
4335eb18c7
alacritty: removed deprecated option tabspaces
Upstream change: 8c64224582
2020-03-21 12:21:46 +00:00
27991a9460
alacritty: removed deprecated option scrolling:auto_scroll
Upstream change: 2f1a390aaa (diff-1ee5c0b1c8641b1e5be6a7e6a9c3ce1a)
2020-03-21 12:20:15 +00:00
d54737ee28
polybar: add v4/v6 gateway ping check 2020-02-23 23:14:44 +00:00
30fd0b3024
picom: use dual_kawase blur 2020-01-26 21:39:31 +00:00
7a2e8b3f1e
chromium: ensure native notifications always work on startup 2020-01-26 21:38:14 +00:00
37d044aab0
polybar: override monitor if one is provided or default to HDMI-0 2019-12-15 11:52:12 +00:00
6d0df3bc65
zsh: remove history-substring-search
This functionality is provided by fzf anyway so this does nothing now
2019-12-15 11:52:12 +00:00
dc6fab9f8a
zsh: cap autosuggest maximum line length 2019-12-15 11:43:49 +00:00
a7f104e942
chromium: force-enable overlay scrollbars, because fuck Google
The feature was "removed" but the code is still present, fortunately
https://www.reddit.com/r/chrome/comments/dq48n6/where_the_fuck_did_overlayscrollbars_go/
2019-12-15 11:36:14 +00:00
127 changed files with 2260 additions and 1745 deletions

View File

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

View File

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

View File

@ -1,483 +0,0 @@
# Configuration for Alacritty, the GPU enhanced terminal emulator.
# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty itself.
env:
# TERM variable
#
# This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will
# check the local terminfo database and use 'alacritty' if it is
# available, otherwise 'xterm-256color' is used.
#
TERM: xterm-256color
window:
# Window dimensions (changes require restart)
#
# Specified in number of columns/lines, not pixels.
# If both are `0`, this setting is ignored.
dimensions:
columns: 80
lines: 24
# Window padding (changes require restart)
#
# Blank space added around the window in pixels. This padding is scaled
# by DPI and the specified value is always added at both opposing sides.
padding:
x: 22
y: 22
# Spread additional padding evenly around the terminal content.
dynamic_padding: false
# Window decorations
#
# Values for `decorations`:
# - full: Borders and title bar
# - none: Neither borders nor title bar
decorations: full
# Startup Mode (changes require restart)
#
# Values for `startup_mode`:
# - Windowed
# - Maximized
# - Fullscreen
#
# Values for `startup_mode` (macOS only):
# - SimpleFullscreen
startup_mode: Windowed
scrolling:
# Maximum number of lines in the scrollback buffer.
# Specifying '0' will disable scrolling.
history: 10000
# Number of lines the viewport will move for every line scrolled when
# scrollback is enabled (history > 0).
multiplier: 3
# Scroll to the bottom when new text is written to the terminal.
auto_scroll: false
# Spaces per Tab (changes require restart)
#
# This setting defines the width of a tab in cells.
#
# Some applications, like Emacs, rely on knowing about the width of a tab.
# To prevent unexpected behavior in these applications, it's also required to
# change the `it` value in terminfo when altering this setting.
tabspaces: 4
# Font configuration (changes require restart)
#
# Important font attributes like antialiasing, subpixel aa, and hinting can be
# controlled through fontconfig. Specifically, the following attributes should
# have an effect:
# - hintstyle
# - antialias
# - lcdfilter
# - rgba
#
# For instance, if you wish to disable subpixel antialiasing, you might set the
# rgba property to `none`. If you wish to completely disable antialiasing, you
# can set antialias to `false`.
#
# Please see these resources for more information on how to use fontconfig:
# - https://wiki.archlinux.org/index.php/font_configuration#Fontconfig_configuration
# - file:///usr/share/doc/fontconfig/fontconfig-user.html
font:
# Normal (roman) font face
normal:
family: monospace
# The `style` can be specified to pick a specific face.
# style: Regular
# Bold font face
bold:
family: monospace
# The `style` can be specified to pick a specific face.
# style: Bold
# Italic font face
italic:
family: monospace
# The `style` can be specified to pick a specific face.
# style: Italic
# Point size
size: 9.0
# Offset is the extra space around each character. `offset.y` can be thought of
# as modifying the line spacing, and `offset.x` as modifying the letter spacing.
offset:
x: 0
y: 0
# Glyph offset determines the locations of the glyphs within their cells with
# the default being at the bottom. Increasing `x` moves the glyph to the right,
# increasing `y` moves the glyph upwards.
glyph_offset:
x: 0
y: 0
debug:
# Display the time it takes to redraw each frame.
render_timer: false
# If `true`, bold text is drawn using the bright color variants.
draw_bold_text_with_bright_colors: true
colors:
# Default colors
primary:
foreground: '0xeceff1'
background: '0x383c4a'
# Bright and dim foreground colors
#
# The dimmed foreground color is calculated automatically if it is not present.
# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
# is `false`, the normal foreground color will be used.
#
#dim_foreground: '0x9a9a9a'
#bright_foreground: '0xffffff'
# Cursor colors
#
# These will only be used when the `custom_cursor_colors` field is set to `true`.
cursor:
text: '0xeceff1'
cursor: '0x5294e2'
# Selection colors
#
# Colors which should be used to draw the selection area. If selection
# background is unset, selection color will be the inverse of the cell colors.
# If only text is unset the cell text color will remain the same.
selection:
background: '0x5294e2'
# text: '0xeaeaea'
# Normal colors
normal:
black: '0x333638'
red: '0xf41f1c'
green: '0x8bc34a'
yellow: '0xffc107'
blue: '0x0266f4'
magenta: '0xcc17cc'
cyan: '0x10aeba'
white: '0x8b9396'
# Bright colors
bright:
black: '0x475760'
red: '0xe53727'
green: '0x9ccc65'
yellow: '0xffa000'
blue: '0x81b3f9'
magenta: '0xa56ecc'
cyan: '0x5ddae2'
white: '0xeceff1'
# Indexed Colors
#
# The indexed colors include all colors from 16 to 256.
# When these are not set, they're filled with sensible defaults.
#
#indexed_colors:
# - { index: 16, color: '0x000000' }
# Visual Bell
#
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
# rung, the terminal background will be set to white and transition back to the
# default background color. You can control the rate of this transition by
# setting the `duration` property (represented in milliseconds). You can also
# configure the transition function by setting the `animation` property.
#
# Values for `animation`:
# - Ease
# - EaseOut
# - EaseOutSine
# - EaseOutQuad
# - EaseOutCubic
# - EaseOutQuart
# - EaseOutQuint
# - EaseOutExpo
# - EaseOutCirc
# - Linear
#
# Specifying a `duration` of `0` will disable the visual bell.
visual_bell:
animation: EaseOutExpo
duration: 0
# Background opacity
#
# Window opacity as a floating point number from `0.0` to `1.0`.
# The value `0.0` is completely transparent and `1.0` is opaque.
background_opacity: 0.85
# Mouse bindings
#
# Available fields:
# - mouse
# - action
# - mods (optional)
#
# Values for `mouse`:
# - Middle
# - Left
# - Right
# - Numeric identifier such as `5`
#
# All available `mods` and `action` values are documented in the key binding
# section.
mouse_bindings:
- { mouse: Middle, action: PasteSelection }
mouse:
# Click settings
#
# The `double_click` and `triple_click` settings control the time
# alacritty should wait for accepting multiple clicks as one double
# or triple click.
double_click: { threshold: 300 }
triple_click: { threshold: 300 }
# If this is `true`, the cursor is temporarily hidden when typing.
hide_when_typing: false
url:
# URL launcher
#
# This program is executed when clicking on a text which is recognized as a URL.
# The URL is always added to the command as the last parameter.
launcher: xdg-open
# URL modifiers
#
# These are the modifiers that need to be held down for opening URLs when clicking
# on them. The available modifiers are documented in the key binding section.
#modifiers: Control|Shift
selection:
semantic_escape_chars: ",│`|:\"' ()[]{}<>"
# When set to `true`, selected text will be copied to both the primary and
# the selection clipboard. Otherwise, it will only be copied to the selection
# clipboard.
save_to_clipboard: false
dynamic_title: true
cursor:
# Cursor style
#
# Values for 'style':
# - ▇ Block
# - _ Underline
# - | Beam
style: Block
# If this is `true`, the cursor will be rendered as a hollow box when the
# window is not focused.
unfocused_hollow: true
# Live config reload (changes require restart)
live_config_reload: true
# Shell
#
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
# Entries in `shell.args` are passed unmodified as arguments to the shell.
#
#shell:
# program: /bin/bash
# args:
# - --login
# Key bindings
#
# Key bindings are specified as a list of objects. Each binding will specify
# a key and modifiers required to trigger it, terminal modes where the binding
# is applicable, and what should be done when the key binding fires. It can
# either send a byte sequnce to the running application (`chars`), execute
# a predefined action (`action`) or fork and execute a specified command plus
# arguments (`command`).
#
# Example:
# `- { key: V, mods: Command, action: Paste }`
#
# Available fields:
# - key
# - mods (optional)
# - chars | action | command (exactly one required)
# - mode (optional)
#
# Values for `key`:
# - `A` -> `Z`
# - `F1` -> `F12`
# - `Key1` -> `Key0`
#
# A full list with available key codes can be found here:
# https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
#
# Values for `mods`:
# - Command
# - Control
# - Shift
# - Alt
#
# Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
# Whitespace and capitalization is relevant and must match the example.
#
# Values for `chars`:
# The `chars` field writes the specified string to the terminal. This makes
# it possible to pass escape sequences.
# To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
# the command `showkey -a` outside of tmux.
# Note that applications use terminfo to map escape sequences back to
# keys. It is therefore required to update the terminfo when
# changing an escape sequence.
#
# Values for `action`:
# - Paste
# - PasteSelection
# - Copy
# - IncreaseFontSize
# - DecreaseFontSize
# - ResetFontSize
# - ScrollPageUp
# - ScrollPageDown
# - ScrollToTop
# - ScrollToBottom
# - ClearHistory
# - Hide
# - Quit
#
# Values for `command`:
# The `command` field must be a map containing a `program` string and
# an `args` array of command line parameter strings.
#
# Example:
# `command: { program: "alacritty", args: ["-e", "vttest"] }`
#
# Values for `mode`:
# - ~AppCursor
# - AppCursor
# - ~AppKeypad
# - AppKeypad
key_bindings:
- { key: V, mods: Control|Shift, action: Paste }
- { key: C, mods: Control|Shift, action: Copy }
- { key: Paste, action: Paste }
- { key: Copy, action: Copy }
- { key: Q, mods: Command, action: Quit }
- { key: W, mods: Command, action: Quit }
- { key: Insert, mods: Shift, action: PasteSelection }
- { key: Equals, mods: Control, action: ResetFontSize }
- { key: Add, mods: Control|Shift, action: IncreaseFontSize }
- { key: Subtract, mods: Control|Shift, action: DecreaseFontSize }
- { key: Home, chars: "\x1bOH", mode: AppCursor }
- { key: Home, chars: "\x1b[H", mode: ~AppCursor }
- { key: End, chars: "\x1bOF", mode: AppCursor }
- { key: End, chars: "\x1b[F", mode: ~AppCursor }
- { key: PageUp, mods: Shift, chars: "\x1b[5;2~" }
- { key: PageUp, mods: Control, chars: "\x1b[5;5~" }
- { key: PageUp, chars: "\x1b[5~" }
- { key: PageDown, mods: Shift, chars: "\x1b[6;2~" }
- { key: PageDown, mods: Control, chars: "\x1b[6;5~" }
- { key: PageDown, chars: "\x1b[6~" }
- { key: Tab, mods: Shift, chars: "\x1b[Z" }
- { key: Back, chars: "\x7f" }
- { key: Back, mods: Alt, chars: "\x1b\x7f" }
- { key: Insert, chars: "\x1b[2~" }
- { key: Delete, chars: "\x1b[3~" }
- { key: Left, mods: Shift, chars: "\x1b[1;2D" }
- { key: Left, mods: Control, chars: "\x1b[1;5D" }
- { key: Left, mods: Alt, chars: "\x1b[1;3D" }
- { key: Left, chars: "\x1b[D", mode: ~AppCursor }
- { key: Left, chars: "\x1bOD", mode: AppCursor }
- { key: Right, mods: Shift, chars: "\x1b[1;2C" }
- { key: Right, mods: Control, chars: "\x1b[1;5C" }
- { key: Right, mods: Alt, chars: "\x1b[1;3C" }
- { key: Right, chars: "\x1b[C", mode: ~AppCursor }
- { key: Right, chars: "\x1bOC", mode: AppCursor }
- { key: Up, mods: Shift, chars: "\x1b[1;2A" }
- { key: Up, mods: Control, chars: "\x1b[1;5A" }
- { key: Up, mods: Alt, chars: "\x1b[1;3A" }
- { key: Up, chars: "\x1b[A", mode: ~AppCursor }
- { key: Up, chars: "\x1bOA", mode: AppCursor }
- { key: Down, mods: Shift, chars: "\x1b[1;2B" }
- { key: Down, mods: Control, chars: "\x1b[1;5B" }
- { key: Down, mods: Alt, chars: "\x1b[1;3B" }
- { key: Down, chars: "\x1b[B", mode: ~AppCursor }
- { key: Down, chars: "\x1bOB", mode: AppCursor }
- { key: F1, chars: "\x1bOP" }
- { key: F2, chars: "\x1bOQ" }
- { key: F3, chars: "\x1bOR" }
- { key: F4, chars: "\x1bOS" }
- { key: F5, chars: "\x1b[15~" }
- { key: F6, chars: "\x1b[17~" }
- { key: F7, chars: "\x1b[18~" }
- { key: F8, chars: "\x1b[19~" }
- { key: F9, chars: "\x1b[20~" }
- { key: F10, chars: "\x1b[21~" }
- { key: F11, chars: "\x1b[23~" }
- { key: F12, chars: "\x1b[24~" }
- { key: F1, mods: Shift, chars: "\x1b[1;2P" }
- { key: F2, mods: Shift, chars: "\x1b[1;2Q" }
- { key: F3, mods: Shift, chars: "\x1b[1;2R" }
- { key: F4, mods: Shift, chars: "\x1b[1;2S" }
- { key: F5, mods: Shift, chars: "\x1b[15;2~" }
- { key: F6, mods: Shift, chars: "\x1b[17;2~" }
- { key: F7, mods: Shift, chars: "\x1b[18;2~" }
- { key: F8, mods: Shift, chars: "\x1b[19;2~" }
- { key: F9, mods: Shift, chars: "\x1b[20;2~" }
- { key: F10, mods: Shift, chars: "\x1b[21;2~" }
- { key: F11, mods: Shift, chars: "\x1b[23;2~" }
- { key: F12, mods: Shift, chars: "\x1b[24;2~" }
- { key: F1, mods: Control, chars: "\x1b[1;5P" }
- { key: F2, mods: Control, chars: "\x1b[1;5Q" }
- { key: F3, mods: Control, chars: "\x1b[1;5R" }
- { key: F4, mods: Control, chars: "\x1b[1;5S" }
- { key: F5, mods: Control, chars: "\x1b[15;5~" }
- { key: F6, mods: Control, chars: "\x1b[17;5~" }
- { key: F7, mods: Control, chars: "\x1b[18;5~" }
- { key: F8, mods: Control, chars: "\x1b[19;5~" }
- { key: F9, mods: Control, chars: "\x1b[20;5~" }
- { key: F10, mods: Control, chars: "\x1b[21;5~" }
- { key: F11, mods: Control, chars: "\x1b[23;5~" }
- { key: F12, mods: Control, chars: "\x1b[24;5~" }
- { key: F1, mods: Alt, chars: "\x1b[1;6P" }
- { key: F2, mods: Alt, chars: "\x1b[1;6Q" }
- { key: F3, mods: Alt, chars: "\x1b[1;6R" }
- { key: F4, mods: Alt, chars: "\x1b[1;6S" }
- { key: F5, mods: Alt, chars: "\x1b[15;6~" }
- { key: F6, mods: Alt, chars: "\x1b[17;6~" }
- { key: F7, mods: Alt, chars: "\x1b[18;6~" }
- { key: F8, mods: Alt, chars: "\x1b[19;6~" }
- { key: F9, mods: Alt, chars: "\x1b[20;6~" }
- { key: F10, mods: Alt, chars: "\x1b[21;6~" }
- { key: F11, mods: Alt, chars: "\x1b[23;6~" }
- { key: F12, mods: Alt, chars: "\x1b[24;6~" }
- { key: F1, mods: Super, chars: "\x1b[1;3P" }
- { key: F2, mods: Super, chars: "\x1b[1;3Q" }
- { key: F3, mods: Super, chars: "\x1b[1;3R" }
- { key: F4, mods: Super, chars: "\x1b[1;3S" }
- { key: F5, mods: Super, chars: "\x1b[15;3~" }
- { key: F6, mods: Super, chars: "\x1b[17;3~" }
- { key: F7, mods: Super, chars: "\x1b[18;3~" }
- { key: F8, mods: Super, chars: "\x1b[19;3~" }
- { key: F9, mods: Super, chars: "\x1b[20;3~" }
- { key: F10, mods: Super, chars: "\x1b[21;3~" }
- { key: F11, mods: Super, chars: "\x1b[23;3~" }
- { key: F12, mods: Super, chars: "\x1b[24;3~" }

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

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

View File

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

View File

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

View File

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

View File

@ -1,37 +0,0 @@
#!/bin/sh
set -e
# Use the provided interface, otherwise the device used for the default route.
if [[ -n $BLOCK_INSTANCE ]]; then
IF=$BLOCK_INSTANCE
else
IF=$(ip route | awk '/^default/ { print $5 ; exit }')
fi
[ -e /sys/class/net/${IF} ] || exit
if [ -z "$IF" ] || [ "$(cat /sys/class/net/$IF/operstate)" = 'down' ]; then
echo down
echo \#FF0000 # color
exit
fi
case $1 in
-4) AF=inet ;;
-6) AF=inet6 ;;
*) AF=inet6? ;;
esac
# if no interface is found, use the first device with a global scope
ip addr show $IF | sed -nE "s/.*$AF ([^\\/]+).* scope global.*/\\1/p"
# case $BLOCK_BUTTON in
# 1) curl -s https://api.ipify.org;
# break;;
# 2) curl -s https://api.ipify.org | tee >(xclip -i);
# break;;
# 0|3) echo "$LOCIP" | tee >(xclip -i);
# break;;
# esac

View File

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

View File

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

View File

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

View File

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

View File

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

6
.gitignore vendored
View File

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

View File

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

View File

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

3
Element/.gitignore vendored Normal file
View File

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

88
Element/config.json Normal file
View File

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

View File

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

26
X11/xprofile Normal file
View File

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

40
X11/xresources Normal file
View File

@ -0,0 +1,40 @@
! Colour order:
! black
! red
! green
! yellow
! blue
! magenta
! cyan
! white/gray
! Normal colours
*.color0: #333638
*.color1: #f41f1c
*.color2: #8bc34a
*.color3: #ffc107
*.color4: #0266f4
*.color5: #cc17cc
*.color6: #10aeba
*.color7: #8b9396
! Bright colours
*.color8: #475760
*.color9: #e53727
*.color10: #9ccc65
*.color11: #ffa000
*.color12: #81b3f9
*.color13: #a56ecc
*.color14: #5ddae2
*.color15: #eceff1
Xft.dpi: 96
Xft.antialias: true
Xft.rgba: rgb
Xft.hinting: true
Xft.hintstyle: hintfull
Xft.lcdfilter: lcddefault
Xcursor.size: 28
Xcursor.theme: BreezeX-Black

617
alacritty/alacritty.yml Normal file
View File

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

210
aliases
View File

@ -1,52 +1,41 @@
case "$(basename "$(readlink -f /proc/$$/exe)")" in
zsh) thisfile="$(readlink -f "${(%):-%N}")";;
bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";;
*) thisfile="$(find /proc/$$/fd/ -print0 | xargs -0 -n1 -r readlink -f | grep aliases | head -n1)";;
esac
# Global aliases for ZSH
if alias -g 2>/dev/null; then
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 NE="2> /dev/null"
alias -g NUL="&> /dev/null"
alias -g BG="&;disown"
alias -g COL="| column -t"
alias -g CLIP="| xclip -i -selection primary -f | xclip -i -selection clipboard"
fi
# File default aliases
if alias -s 2>/dev/null; then
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 git="git clone --recursive"
fi
alias ..la="cd ..;la"
alias ..ll="cd..;ll"
alias ..l="..ll"
alias l=ll
alias ls='ls --color=auto'
alias ll="ls -lFh --group-directories-first"
alias la="ls -lAFh --group-directories-first"
alias lt='ls -lAFh --sort=time'
alias ll='ls -lFh --group-directories-first'
alias la='ls -lAFh --group-directories-first'
alias lt='ls -lFh --sort=time'
alias lat='ls -lAFh --sort=time'
alias lsz='ls -lAFh --sort=size'
alias al=la # No, I don't need the Mono Assembly Linker
alias md="mkdir -p"
alias rd="rmdir -p"
alias md='mkdir -p'
alias rd='rmdir -p'
alias -- -='cd -'
alias cdt='cd `mktemp -d`'
cdt() { cd "$(mktemp -d -t "${1:-tmp}.XXXXXXXX")"; }
alias svi=sudoedit
alias svim=sudoedit
@ -57,27 +46,26 @@ alias sudo='sudo '
alias open=xdg-open
# Command rewrites
alias rm='rm -i'
alias rm='rm -iv'
alias mv='mv -i'
alias cp='cp -ir'
alias scp='scp -r'
alias dd='dd status=progress'
alias ssh="ssh -tt"
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file"
alias wget='wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file'
alias vi=vim
alias grip='grip --user=frebib --pass=$GRIP_API_KEY'
alias grip='grip --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 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 UID="$(id -u)" \
-e UID=\"\$(id -u)\" \
-e PWD \
-e HOME \
-w $PWD \
-v $PWD:$PWD \
-v ~/.abuild:$HOME/.abuild \
-w \$PWD \
-v \$PWD:\$PWD \
-v ~/.abuild:\$HOME/.abuild \
-v ~/.abuild/distfiles:/var/cache/distfiles \
frebib/alpine-sdk:edge'
frebib/alpine-sdk:edge"
alias abuild='alpine-sdk abuild'
alias abuild-sign='alpine-sdk abuild-sign'
alias apk='alpine-sdk apk'
@ -101,12 +89,14 @@ vim --version 2>/dev/null | command grep -q +clientserver && \
alias vim="vim --servername vim -p"
# Function aliases
env() { command env $@ | stripansi | sort; }
mcd(){ mkdir -p -- $@ && cd -- $@; }
randstr() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w $1 | head -n 1; }
env() { command env "$@" | stripansi | sort; }
mcd(){ mkdir -p -- "$@" && cd -- "$@"; }
randstr() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w "$1" | head -n 1; }
# System aliases
alias s="sudo systemctl"
alias sc="systemctl"
alias ssc="sudo systemctl"
alias scu="systemctl --user"
alias j=journalctl
alias ps='ps aux'
alias catn='tail -n +1 --'
@ -114,6 +104,7 @@ alias kl='killall -s 9'
alias chx='chmod +x'
# Git Aliases
alias git='TZ=UTC git'
alias g=git
alias ginit='git init'
alias gignore='$EDITOR .gitignore'
@ -121,53 +112,74 @@ alias gitc='$EDITOR $XDG_CONFIG_HOME/git/config'
alias ggignore='$EDITOR $XDG_CONFIG_HOME/git/gitignore'
alias gcl="git clone --recursive"
alias gco="git checkout"
alias gcom="git checkout master"
alias gcom="git checkout \"\$(git defbranch)\""
alias ga="git add"
alias gap="git add -p"
alias gau="git add -u"
alias gaN="git add -N"
alias gaa="ga -A"
alias grm="git rm"
alias gc="git commit"
alias gcm="gc -m"
gcmst() { git stash -u -k && git commit -m "$1" && git stash pop; }
alias gca="git commit --amend --date=\"$(date -R)\""
alias gcn="git commit --no-edit"
alias gcan="gca --no-edit"
alias gcam="gca -m"
alias gc="git commit -s"
alias gcm="git commit -s -em"
alias gca="git commit -s --amend --date=\"\$(date -R)\""
alias gcn="git commit -s --no-edit"
alias gcan="gca -s --no-edit"
alias gcam="gca -s -m"
alias gst="git status"
alias gm="git merge"
alias gma="git merge --abort"
alias grb="git rebase"
alias grbi="grb -i"
alias grba="grb --abort"
alias grbc="grb --continue"
alias grbsk="grb --skip"
alias grbsh="grb --show-current"
alias grbom="git rebase origin/master"
alias grbom="git rebase \"origin/\$(git defbranch)\""
gfrb() { remote="${1%/*}"; git fetch "$remote" && git rebase "$@"; }
gfrbi() { remote="${1%/*}"; git fetch "$remote" && git rebase -i "$@"; }
alias gam="git am"
alias gama="git am --abort"
alias gamc="git am --continue"
alias gamsk="git am --skip"
alias gcp="git cherry-pick"
alias gcpa="git cherry-pick --abort"
alias gcpc="git cherry-pick --continue"
alias gcpsk="git cherry-pick --skip"
alias grv="git revert"
alias grva="git revert --abort"
alias grvc="git revert --continue"
alias grvsk="git revert --skip"
alias gf="git fetch"
alias gp="git push"
alias gpf="gp --force"
alias gpsu="git push --set-upstream"
alias gpoH="git push origin HEAD"
alias gpsuom="git push --set-upstream origin master"
alias gpsuom="git push --set-upstream origin \"\$(git defbranch)\""
alias gpall="git remote | xargs -L1 git push"
alias gl="git pull --rebase"
alias glp="gl && gp"
alias gd="git diff --patch-with-stat"
alias gdni="gd --no-index"
alias gds="gd --staged"
alias gsh="git show --format=full --patch-with-stat"
alias glg="git log --format=full --stat --color"
alias glog="git log --oneline --decorate --color --graph"
alias gsh="git show --format=fuller --patch-with-stat"
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 glog="git log --color --oneline --decorate --graph"
alias grst="git reset"
alias gundo="git reset @~1"
alias gundo="git reset --keep @~1"
alias gclean="git clean"
alias gbr="git branch"
alias gbrl="git for-each-ref --sort=committerdate refs/heads/ --format=\"%(refname:short)\" | fzf -x --ansi --multi --preview-window=right:70% --preview=\"git log --format=fuller --stat --color=always {} | head -n\$((\$(tput lines)*10))\""
alias gtg="git tag"
alias gbl="git blame"
alias gr="git remote"
alias grv="git remote -v"
alias gra="gr add"
alias grr="gr rm"
alias grao="gra origin"
@ -184,7 +196,7 @@ alias d=docker
alias dps="docker ps --format='table {{.ID}}\t{{.Image}}\t{{.Label \"org.label-schema.version\"}}\t{{.Networks}}\t{{.RunningFor}}\t{{.Status}}\t{{.Names}}' | sed '1s/version/VERSION/'"
alias dpsa="docker ps -a --format='table {{.ID}}\t{{.Image}}\t{{.Label \"org.label-schema.version\"}}\t{{.Networks}}\t{{.RunningFor}}\t{{.Status}}\t{{.Names}}' | sed '1s/version/VERSION/'"
alias dnets="docker network ls -q | xargs docker inspect | jq '.[] | select(.Name != \"host\" and .Name != \"none\") | [.] | map(.Name + \"\t\" + (.IPAM.Config | map(.Subnet) | join(\"\t\")))[]' -r | sort -V -k2,3 | column -t"
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 drm='docker rm'
alias drmi='docker rmi'
@ -193,30 +205,32 @@ alias dbl='docker build --pull'
alias dbl.='docker build --pull .'
alias drun='docker run -ti'
alias dkl='docker kill'
dklrm() { docker kill $@ ; docker rm $@; }
alias drmf='docker rm -f'
alias dst='docker stop'
alias drst='docker restart'
alias dnet='docker network'
alias dvol='docker volume'
alias dlg='docker logs -f'
alias dc='docker compose'
alias dlg='docker logs --tail=1000 -f'
alias dalpine='docker run -ti --rm spritsail/alpine /bin/sh'
alias drm-stopped='docker container prune'
alias drmi-untag='docker image prune'
alias dprune='docker system prune -f'
dsh() { do_dsh 2 exec $@; return $?; }
_dsh() { __docker_complete_running_containers $@; }
drsh() { do_dsh 4 run --rm --entrypoint= $@; return $?; }
_drsh() { __docker_container_subcommand $@; }
dsh() { do_dsh 2 exec "$@"; return $?; }
_dsh() { __docker_complete_running_containers "$@"; }
drsh() { do_dsh 4 run --rm --entrypoint= "$@"; return $?; }
_drsh() { __docker_container_subcommand "$@"; }
do_dsh() {
local minargs=$1
shift
if [ $# -lt $minargs ]; then
if [ $# -lt "$minargs" ]; then
# shellcheck disable=SC2154
echo "Usage: ${funcstack[2]} [user@]container [program [args]]" >&2
return 64
fi
local dowhat="$1"
local docker_args=()
local docker_args=("$dowhat" -ti)
shift
while [ "${1:0:1}" = '-' ]; do
@ -228,76 +242,84 @@ do_dsh() {
shift
done
local user="$(echo "$1" | cut -d'@' -f1 -s)"
local prog="${@:2:$#}"
local usercmd=""
local user
user="$(echo "$1" | cut -d@ -f1 -s)"
declare -a prog
prog=("${@:2:$#}")
if [ -z "$user" ]; then
host="$1"
else
host=`echo $1 | cut -d'@' -f2 -s`
usercmd="--user=$user"
host="$(cut -d@ -f2 -s <<< "$1")"
docker_args+=("--user=$user")
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
return 5
fi
if [ "$dowhat" = run ]; then
docker image pull "$host"
fi
if [ -z "$prog" ]; then
shell_args=()
if [ ${#prog[@]} = 0 ]; then
shell_args=("$dowhat")
if [ "$dowhat" = 'run' ]; then
shell_args=(--rm --entrypoint=)
shell_args+=(--rm --entrypoint=)
fi
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=$?
if [ $retval -eq 0 ]; then
prog="$shell_path"
prog=("$shell_path")
break
elif [ $retval -ge 125 ]; then
return
fi
done
if [ -z "$prog" ]; then
if [ ${#prog[@]} = 0 ]; then
echo "Warning: No shell found in path.. trying /bin/sh" >&2
prog=/bin/sh
prog=(/bin/sh)
fi
fi
docker $dowhat ${docker_args[@]} -ti $usercmd $host $(xargs <<< $prog)
docker "${docker_args[@]}" "$host" "${prog[@]}"
}
alias dc='docker-compose'
alias dm='docker-machine'
dmc() { eval $(docker-machine env $1); }
dmc() { eval "$(docker-machine env "$1")"; }
# ZFS aliases
alias zfs='sudo zfs'
alias zpool='sudo zpool'
alias z=zfs
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() { _zfs "list $@"; }
zl() { (set -o pipefail; command zfs list "$@" | grep -Ev 'docker/[0-9a-f]{64}' | column -t -R 2,3,4); return $?; }
_zl() { _zfs "list $*"; }
# General Aliases
alias ssha='eval `ssh-agent` ; ssh-add'
alias aliases="$EDITOR $DOTFILES/aliases ; exec zsh"
alias vimrc="$EDITOR $VIMRC"
alias zshrc="$EDITOR ${ZDOTDIR:-$HOME}/.zshrc ; exec zsh"
alias gitrc="$EDITOR $XDG_CONFIG_HOME/git/config"
alias xinitrc="$EDITOR $XDG_CONFIG_HOME/X11/xinitrc"
alias xresources="$EDITOR $XDG_CONFIG_HOME/X11/xresources ; xrdb merge $XDG_CONFIG_HOME/X11/xresources"
alias sshc="$EDITOR ~/.ssh/config"
alias dotfiles="cd $DOTFILES"
alias i3c="$EDITOR $XDG_CONFIG_HOME/i3/config ; i3-msg restart"
alias polybarc="$EDITOR $XDG_CONFIG_HOME/polybar/config; killall -q polybar; while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done; nohup polybar -r i3bar <&- 2>&1 1>/dev/null & disown"
alias ssha="eval \"\$(ssh-agent)\"; ssh-add"
# shellcheck disable=SC2139
alias aliases="\$EDITOR $thisfile ; exec zsh"
alias vimrc="\$EDITOR \$VIMRC"
alias zshrc="\$EDITOR \${ZDOTDIR:-\$HOME}/.zshrc ; exec zsh"
alias gitrc="\$EDITOR \$XDG_CONFIG_HOME/git/config"
alias xinitrc="\$EDITOR \$XDG_CONFIG_HOME/X11/xinitrc"
alias xresources="\$EDITOR \$XDG_CONFIG_HOME/X11/xresources ; xrdb merge \$XDG_CONFIG_HOME/X11/xresources"
alias sshc="\$EDITOR ~/.ssh/config"
alias dotfiles="cd \$XDG_CONFIG_HOME"
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 sf=screenfetch
alias nf=neofetch
alias rot13="tr '[A-Za-z]' '[N-ZA-Mn-za-m]'"
# Networking aliases
alias ipa="ip a"
alias addrs="ip a | grep inet | grep -ve fe80 -e '127\\.0\\.0\\.1/8' -e '::1/128' | sort -n | sed 's/^\\s*//'"
# alertmanager
alias alert='amtool alert'
alias silence='amtool silence'
alias expire='amtool silence expire'
unsilence() { { for inst in "$@"; do amtool silence query instance=$inst | grep -Po '^([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})' | tee /dev/stderr | xargs -r amtool silence expire & done; wait; } | cat }
# vim: ft=sh

1
chromium-flags.conf Normal file
View File

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

View File

@ -11,7 +11,7 @@
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
# If markup is not allowed, those tags will be stripped out of the
# message.
markup = yes
markup = full
# The format of the message. Possible variables are:
# %a appname
@ -51,21 +51,16 @@
# Ignore newlines '\n' in notifications.
ignore_newline = no
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectevly.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
# dynamic width from 0 to 400
# width = (0, 400)
# constant width of 400
width = (320, 360)
# 53 = 30 + 23 (bar-height)
geometry = "360x5-30+30"
# Position the notification in the top right corner
origin = top-right
# Offset from the origin
offset = 30x30
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
@ -74,7 +69,7 @@
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing windowmanager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 15
transparency = 20
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
@ -140,7 +135,7 @@
dmenu = /usr/bin/rofi -dmenu -i -p '' -config ~/.config/dunst/dunst-xresources
# Browser for opening urls in context menu.
browser = /usr/bin/chromium
browser = /usr/bin/firefox
# Align icons left/right/off
icon_position = left

View File

@ -0,0 +1,14 @@
LC_ALL="en_GB.UTF-8"
LANG="en_GB.UTF-8"
LC_NUMERIC="en_GB"
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
EDITOR="vim"
VISUAL="vim"
PATH="${PATH}:/sbin:/usr/sbin:${HOME}/.local/bin:${XDG_CONFIG_HOME}/scripts"
# vim: ft=sh

View File

@ -0,0 +1,27 @@
# Override paths for non-compliant programs
# https://wiki.archlinux.org/index.php/XDG_Base_Directory_support
ASPELL_CONF="per-conf $XDG_CONFIG_HOME/aspell/aspell.conf; personal $XDG_CONFIG_HOME/aspell/en.pws; repl $XDG_CONFIG_HOME/aspell/en.prepl"
CARGO_HOME="$XDG_DATA_HOME/cargo"
GNUPGHOME="$XDG_CONFIG_HOME/gnupg"
GEM_HOME="$XDG_DATA_HOME/gem"
GEM_SPEC_CACHE="$XDG_CACHE_HOME/gem"
GOPATH="$XDG_DATA_HOME/go"
ICEAUTHORITY="$XDG_CACHE_HOME/ICEauthority"
NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc"
PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass"
PYTHONSTARTUP="$XDG_CONFIG_HOME/python/startup"
RUSTUP_HOME="$XDG_DATA_HOME/rustup"
TERMINFO="$XDG_DATA_HOME/terminfo"
TERMINFO_DIRS="$XDG_DATA_HOME/terminfo:/usr/share/terminfo"
TS3_CONFIG_DIR="$XDG_CONFIG_HOME/teamspeak3"
VIMDIR="$XDG_CONFIG_HOME/vim"
VIMRC="$VIMDIR/vimrc"
VIMINIT=":so $VIMRC"
WEECHAT_HOME="$XDG_CONFIG_HOME/weechat"
XINITRC="$XDG_CONFIG_HOME/X11/xinitrc"
ZDOTDIR="$XDG_CONFIG_HOME/zsh"
PATH="${PATH}:${GOPATH}/bin:${GEM_HOME}/ruby/3.0.0/bin"
# vim: ft=sh

View File

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

82
fsh/fish.ini Normal file
View File

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

View File

@ -5,19 +5,30 @@
[core]
autocrlf = input
excludesfile = /home/frebib/.config/git/gitignore
pager = diff-highlight | $PAGER
pager = delta --diff-so-fancy --color-only
[init]
defaultBranch = master
[interactive]
diffFilter = diff-highlight
diffFilter = delta --diff-so-fancy --color-only
[commit]
gpgsign = true
[fetch]
prune = true
[push]
default = upstream
[pull]
rebase = true
prune = true
[merge]
ff = only
[rebase]
autoStash = true
[remote "origin"]
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
[remote "upstream"]
fetch = +refs/pull/*/head:refs/remotes/upstream/pr/*
[log]
date = relative
date = iso8601-local
[format]
pretty = format:%h %Cblue%ad%Creset %ae %Cgreen%s%Creset
[alias]
@ -25,9 +36,13 @@
pushall = !git remote | xargs -L1 git push
count = !echo $(pwd) && git rev-list HEAD --count
unpushed = !git log --oneline @{u}..HEAD
leaders = !git shortlog -s -n --all --no-merges
defbranch = !git symbolic-ref refs/remotes/origin/HEAD | sed \"s@^refs/remotes/origin/@@\"
rbranch = for-each-ref --sort='committerdate' --format="%20%20%(refname:short)" refs/heads/
[advice]
statusHints = false
pushUpdateRejected = false
detachedHead = false
[sendemail]
from = Joe Groocock <me@frebib.net>
smtpserver = smtp.zoho.com

View File

@ -1,12 +1,8 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/frebib/.gtkrc-2.0.mine"
gtk-theme-name="Arc-Dark"
gtk-icon-theme-name="Xenlism-Wildfire"
gtk-font-name="Noto Sans 9"
gtk-cursor-theme-name="Breeze_Obsidian"
gtk-cursor-theme-size=0
gtk-font-name="sans 9"
gtk-cursor-theme-name="BreezeX-Black"
gtk-cursor-theme-size=28
gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1

View File

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

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

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

View File

@ -6,8 +6,6 @@ set $mod Mod4
set $alt Mod1
floating_modifier $mod
bindsym $mod+Shift+l debuglog toggle; shmlog on
font pango:sans 9
# kill focused window
@ -109,49 +107,52 @@ client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-co
client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color $bg-color
client.urgent $urgent-bg-color $urgent-bg-color $text-color $bg-color
exec_always --no-startup-id killall -q polybar; while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done; exec polybar -r i3bar
exec_always --no-startup-id feh --no-fehbg --no-xinerama --bg-fill $DOTFILES/lakesidesunrise.jpg
# Window rules
for_window [class="Pinentry"] floating enable
for_window [class="Pavucontrol"] floating enable
for_window [class="Blueman-manager"] floating enable
for_window [class="floating-term" instance="termite"] floating enable
for_window [class="Alacritty" instance="floating-term"] floating enable
for_window [class="^jetbrains-.+$" title="win0"] floating enable
for_window [window_role="floating-term"] floating enable
for_window [title="^rofi$"] floating enable
for_window [class="^Rofi$"] floating enable
new_window none
new_float none
gaps inner 20
gaps inner 24
gaps outer 4
mouse_warping none
focus_follows_mouse yes
popup_during_fullscreen smart
# keybindings
bindsym $mod+Shift+j reload
bindsym $mod+c exec chromium
bindsym $mod+v exec "i3-sensible-terminal -e sh -c \\"($SHELL -c $EDITOR || :) && $SHELL\\"
bindsym $mod+Ctrl+v exec "i3-sensible-terminal --class floating-term -e sh -c \\"($SHELL -c $EDITOR || : ) && $SHELL\\"
bindsym $mod+Return exec i3-sensible-terminal
bindsym $mod+Ctrl+Return exec i3-sensible-terminal --class floating-term
bindsym $mod+Shift+Return exec i3-sensible-terminal --working-directory "$(xcwd)"
bindsym $mod+Ctrl+Shift+Return exec i3-sensible-terminal --class floating-term --working-directory "$(xcwd)"
bindsym --release $mod+x exec xkill
bindsym $mod+c exec notify-send "Try again" "You meant \\\$mod+b"
bindsym $mod+b exec systemd-run-i3 -n firefox
bindsym $mod+Return exec systemd-run-i3 -n alacritty
bindsym $mod+Ctrl+Return exec systemd-run-i3 -n alacritty --class floating
bindsym $mod+Shift+Return exec systemd-run-i3 -n alacritty --working-directory "$(xcwd)"
bindsym $mod+Ctrl+Shift+Return exec systemd-run-i3 -n alacritty --class floating --working-directory "$(xcwd)"
bindsym $mod+v exec systemd-run-i3 -n alacritty -e sh -c "($SHELL -c $EDITOR || :) && $SHELL"
bindsym $mod+Ctrl+v exec systemd-run-i3 -n alacritty --class floating -e sh -c "($SHELL -c $EDITOR || : ) && $SHELL"
bindsym $mod+l exec dm-tool switch-to-greeter
bindsym $mod+space exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window"
bindsym $mod+Shift+p exec rofi-pass --root $(grep path ~/.config/gopass/config.yml | sed -E 's|^.*fs\+file://||g' | tr '\n' ':') | sed 's/:$//g'
bindsym $mod+Shift+e exec rofi-emoji
bindsym $mod+space exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window -run-command 'systemd-run-i3 -n {cmd}'"
bindsym $mod+Shift+p exec systemd-run-i3 -n rofi-rbw
bindsym $mod+Shift+e exec "pkill rofi; rofi -show emoji -modi emoji -normal-window"
bindsym $mod+Shift+i exec rofi-fontawesome
bindsym --release Print exec screenshot
bindsym --release $mod+Print exec imgur-screenshot
bindsym $mod+$alt+space exec --no-startup-id ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks
bindsym $mod+numbersign exec "i3-sensible-terminal -e 'sh -c xclip\ -o\ |\ gpg\ --decrypt\ 2>&1\ \;\ $SHELL'"
bindsym $mod+r exec "bash -c 'pwgen -nc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i'"
bindsym $mod+g exec "LINK=$(gist -PRpc); notify-send -c transfer \\"<a href=\\\\"$LINK\\\\">$LINK</a>\\""
bindsym --release $mod+i exec sh -c 'sleep 0.5 && xdotool type --delay 400 "$(xclip -o -selection clipboard)"'
bindsym --release Print exec screenshot --clip
bindsym --release $mod+Print exec screenshot
bindsym --release Shift+Print exec screenshot --active
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+$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+r exec bash -c 'pwgen -snc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i -r'
bindsym $mod+g exec systemd-run-i3 -n bash -xc 'xclip -o | gh gist create -d Paste - 2>&1 | grep -vE "^[-✓] Creat(ing|ed) gist" | tee >(xclip -i >&2 >/dev/null) | xargs -I% --null -r notify-send -c transfer -- %'
bindsym --release $mod+i exec systemd-run-i3 -s background -n sh -c 'sleep 0.5 && xdotool getactivewindow type --delay 10 -- "$(xclip -o -selection clipboard)"'
bindsym $mod+z exec otp | rofi -dmenu -p otp | xargs otp
# Media player controls
bindsym XF86AudioPlay exec --no-startup-id playerctl -a play-pause
@ -162,24 +163,7 @@ bindsym XF86AudioPrev exec --no-startup-id playerctl -a previous
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +1000
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -1000
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86MonBrightnessUp exec xbacklight -inc 5 && pkill -RTMIN+12 i3blocks
bindsym XF86MonBrightnessDown exec xbacklight -dec 5 && pkill -RTMIN+12 i3blocks
# app launch shortcuts
exec --no-startup-id ~/.config/i3/disable-standby-fs.py
exec --no-startup-id feh --no-fehbg --no-xinerama --bg-fill ~/pictures/lakesidesunrise.jpg
exec --no-startup-id xautolock -time 5 -locker 'dm-tool switch-to-greeter' -nocloseout -nocloseerr
exec --no-startup-id xss-lock dm-tool switch-to-greeter
# startup programs
exec --no-startup-id nextcloud
exec --no-startup-id blueman-applet
exec --no-startup-id redshift
exec --no-startup-id xbindkeys
exec --no-startup-id solaar
exec --no-startup-id pullover
exec --no-startup-id mailnag
exec --no-startup-id picom -b --experimental-backends
exec --no-startup-id chromium --no-startup-window
bindsym XF86MonBrightnessUp exec light -A 5
bindsym XF86MonBrightnessDown exec light -U 5
# vim:ft=i3

17
i3/powermenu.sh Executable file
View File

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

55
ideavim/ideavimrc Normal file
View File

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

42
mimeapps.list Normal file
View File

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

41
parcellite/parcelliterc Normal file
View File

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

152
picom/picom.conf Normal file
View File

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

View File

@ -1,5 +1,5 @@
[colours]
background = transparent
background = #0000
text = #eceff1
icon = #147a82
warning = #ffcb00
@ -10,7 +10,7 @@ urgent = #e53935
format-foreground = ${colours.text}
format-background = ${colours.background}
format-spacing = 0
format-margin = 2.5
format-margin = 3
format-offset = 0
screenchange-reload = true
@ -21,13 +21,12 @@ fixed-center = false
enable-ipc = true
width = 100%
#offset-x = 18px
height = 16pt
bottom = true
radius = 0
font-0 = sans:pixelsize=9;2
font-1 = FontAwesome5ProLight:pixelsize=10;2
font-0 = sans:pixelsize=9;2pt
font-1 = FontAwesome6ProLight:pixelsize=10;2pt
foreground = ${colours.text}
background = ${colours.background}
@ -38,22 +37,22 @@ padding-right = 2pt
border-size = 0
border-left-size = 16pt
border-right-size = 16pt
border-bottom-size = 8pt
border-bottom-size = 10pt
line-size = 0
line-colour = #f00
modules-left = i3
modules-center =
# modules-right = volume updates weather xkeyboard wlan eth memory cpu xbacklight battery temperature date
modules-right = volume updates weather wlan eth memory cpu xbacklight battery temperature date
# modules-right = volume updates weather xkeyboard wlan gateway eth memory cpu xbacklight battery cputemp gputemp date
modules-right = volume updates weather wlan eth memory cpu xbacklight battery cputemp gputemp date
tray-position = right
tray-detached = false
tray-background = ${colours.background}
#tray-offset-x = -20
#tray-offset-y = 0
tray-maxsize = 16
tray-maxsize = 16pt
tray-padding = 8pt
tray-scale = 1.0
@ -67,13 +66,20 @@ exec = $XDG_CONFIG_HOME/polybar/update.sh
tail = true
format-prefix = " "
format-prefix-foreground = ${colours.icon}
click-left = i3-msg exec "i3-sensible-terminal --class floating-term -e sh -c \"(yay || :) && kill -USR1 %pid%\""
click-left = systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -e sh -c "yay; kill -USR1 %pid%; sleep 1"
[module/weather]
type = custom/script
exec = $XDG_CONFIG_HOME/polybar/weather.sh
interval = 120
click-left = i3-msg exec "i3-sensible-terminal --class floating-term -d 125 40 -e sh -c \"(curl wttr.in || :) && stty -echo && read\""
click-left = systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -d 125 40 --hold -e sh -c "curl wttr.in"
[module/gateway]
type = custom/script
exec = for v in 4 6; do ip -$v r show default | xargs -rL1 sh -c 'fping --retry=1 --quiet --iface "$4" "$2"'; done && echo  || echo '%{F#f41f1c}%{F-}'
interval = 2
format-prefix = " "
format-prefix-foreground = ${colours.icon}
[module/xkeyboard]
type = internal/xkeyboard
@ -181,8 +187,8 @@ ramp-signal-foreground = ${colours.icon}
[module/eth]
type = internal/network
interface = eth0
interval = 3.0
interface = lan
interval = 10.0
label-connected = %local_ip% & %local_ip6%
format-connected-prefix = " "
@ -200,7 +206,7 @@ label-disconnected-foreground = ${colours.critical}
type = internal/date
interval = 1
label = %{A3:i3-msg exec "i3-sensible-terminal --class floating-term -d 66 35 -qq -e sh -c \"cal -y $(date +%Y) && read\"":}%date% %time%%{A}
label = %{A3:systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -d 66 35 -qq --hold -e sh -c "cal -y $(date +%Y)":}%date% %time%%{A}
time = %H:%M
time-alt = %a %e %b %Y %H:%M:%S
@ -213,8 +219,8 @@ format-prefix-foreground = ${colours.icon}
type = internal/pulseaudio
label-volume = %percentage%
format-volume = %{A3:i3-msg exec pavucontrol:}<ramp-volume> <label-volume>%{A
format-muted = %{A3:i3-msg exec pavucontrol:}<label-muted>%{A}
format-volume = %{A3:systemd-run --user --no-block -- pavucontrol:}<ramp-volume> <label-volume>%{A}
format-muted = %{A3:systemd-run --user --no-block -- pavucontrol:}<label-muted>%{A}
label-volume-foreground = ${root.foreground}
format-muted-foreground = ${colours.icon}
@ -259,10 +265,10 @@ ramp-capacity-0-foreground = ${colours.critical}
ramp-capacity-1-foreground = ${colours.warning}
[module/temperature]
[module/cputemp]
type = internal/temperature
thermal-zone = 2
warn-temperature = 70
hwmon-path = /sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon1/temp2_input
base-temperature = 25
format = <ramp> <label>
format-warn = <ramp> <label-warn>
@ -279,6 +285,15 @@ ramp-4 = 
ramp-5 =
ramp-foreground = ${colours.icon}
[module/gputemp]
type = custom/script
exec = nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits
interval = 10
label = %output%°C
format-prefix = " "
format-prefix-foreground = ${colours.icon}
[module/powermenu]
type = custom/menu

View File

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

24
python/startup Normal file
View File

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

27
qt5ct/qt5ct.conf Normal file
View File

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

View File

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

View File

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

View File

@ -1,16 +0,0 @@
#!/bin/sh
set -e
TOP_LEFT="DP-0.1"
TOP_RIGHT="DP-0.2.1"
BOTTOM_LEFT="HDMI-0"
BOTTOM_RIGHT="DP-0.2.2.1"
#--output $BOTTOM_LEFT --primary --mode 1920x1080 --pos 0x1080 --rotate normal \
xrandr \
--output $BOTTOM_LEFT --off \
--output $TOP_LEFT --mode 1920x1080 --pos 0x0 --rotate inverted \
--output $TOP_RIGHT --mode 1920x1080 --pos 1920x0 --rotate inverted \
--output $BOTTOM_RIGHT --mode 1920x1080 --pos 1920x1080 --rotate normal --primary
[ -e ~/.fehbg ] && ~/.fehbg

View File

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

View File

@ -15,5 +15,3 @@ MODENAME=${MODELINE%% *}
xrandr --newmode $MODELINE 2>/dev/null || true
xrandr --addmode $OUTPUT $MODENAME 2>/dev/null || true
xrandr --output $OUTPUT --mode $MODENAME
feh --no-fehbg --no-xinerama --bg-fill $DOTFILES/lakesidesunrise.jpg

View File

@ -1,33 +1,69 @@
#!/bin/sh
set -ex
#!/bin/bash
set -eu
# Based on https://github.com/vincentbernat/awesome-configuration/blob/master/bin/xsettingsd-setup
CONF_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
dpi=$1
BLUR_STRENGTH=12
CURSOR_SIZE=28
CORNER_RADIUS=9
if [ -z "$1" ]; then
>&2 printf "Usage\n\t%s: <dpi>" "$(basename "$0")"
xrdbget() {
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
fi
CONF_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/xsettingsd"
mkdir -p "$CONF_DIR"
dpi=$1
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"
{
# echo Gdk/WindowScalingFactor $(echo "$dpi/96" | bc -l | xargs printf '%.f')
# echo Gdk/UnscaledDPI $(echo "($dpi*1024)/($dpi/96)" | bc -l | xargs printf '%.f')
cat $CONF_DIR/xsettingsd.conf 2>/dev/null || true
echo Xft/DPI $(( $dpi*1024 ))
echo Gdk/WindowScalingFactor $(( $dpi/96 ))
echo Gdk/UnscaledDPI $(( $dpi*1024/($dpi/96) ))
} > $CONF_DIR/xsettingsd.local
cat "$CONF_DIR/xsettingsd.local" 2>/dev/null || :
echo "Xcursor/size $cursor"
echo "Gtk/CursorThemeSize $cursor"
echo "Gtk/CursorThemeName \"$(xrdbget Xcursor.theme Adwaita)\""
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"
pid=$(xprop -name xsettingsd _NET_WM_PID 2> /dev/null | awk '{print $NF}')
if [ -z "$pid" ]; then
xsettingsd -c $CONF_DIR/xsettingsd.local &
else
kill -HUP $pid
fi
xrdb -merge <<EOF &
Xft.dpi: $dpi
Xcursor.size: $cursor
EOF
xrandr --dpi "$dpi" &
systemctl --user reload-or-restart xsettingsd &
wait
echo Xft.dpi: $dpi | xrdb -merge
systemctl --user reload \
i3 \
polybar@i3bar &
systemctl --user restart \
dunst &
wait

7
scripts/netsplit Executable file
View File

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

42
scripts/otp Executable file
View File

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

View File

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

View File

@ -59,7 +59,7 @@ function notify() {
function display() {
update=$'\tUpdate Font Awesome cache'
fontawesome=$(grep -v '#\|^[[:space:]]*$' "$FONTAWESOME_FILE"; printf "$update\n")
line=$(echo "$fontawesome" | rofi -dmenu -i -p fontawesome -normal-window -kb-custom-1 Ctrl+c -kb-row-tab '' -kb-row-select Tab $@)
line=$(echo "$fontawesome" | rofi -dmenu -i -p fontawesome -normal-window -kb-custom-1 Ctrl+c -kb-row-tab '' $@)
exit_code=$?
if [ "${line[@]}" == "$update" ]; then

View File

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

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

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

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,13 @@
[Unit]
Description=Bluetooth Applet
After=graphical-session.target
Requires=graphical-session.target
ConditionPathExists=/sys/class/bluetooth
[Service]
ExecStart=/usr/bin/blueman-applet
Restart=on-failure
Slice=background.slice
[Install]
WantedBy=desktop.target

1
systemd/user/default.target Symbolic link
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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

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

View File

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

View File

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

View File

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

View File

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

14
systemd/user/i3.service Normal file
View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,12 @@
[Unit]
Description=A lightweight compositor for X11
Requires=graphical-session.target
After=dbus.service graphical-session.target xorg.target
[Service]
ExecStart=/usr/bin/picom --dbus
Restart=always
Slice=session.slice
[Install]
WantedBy=desktop.target

View File

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

View File

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

View File

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

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