Commit graph

46 commits

Author SHA1 Message Date
50fa8b2427
bootstrap: Fix stow linking new files
Forgot to update stow ignore list to include new package tsv file and
associated update script.
2022-03-10 22:08:00 +01:00
280fab6ad3
bootstrap: Switch package list to tsv
Package list is now a single tab separated list. That should make
several automations in the future much simpler.

The table is built as follows:
`Name   Description Source  Target`

with one line per package. Source denotes official repositories or AUR,
and target is kept for future potential of creating different
deployments per target automatically (e.g. different package list for
desktop and server, and so on).

There is an updater script `bootstrap/update_package_list.sh` which will
automatically populate the table, removing uninstalled packages, adding
new ones and (making its best attempt to be) keeping the selected
targets as they are.

The git commit hook comparing installed and committed packages has also
been rewritten to use the new table and be a little simpler overall.

Fixes #2.
2022-03-09 11:13:45 +01:00
0a9271ffe8
bootstrap: Update package list
Updated package list for March 2022.
Contains some small fixes for missing packages like transmission khal
and nsxiv that I have started using more heavily and removed some
redundancies, especially around the big X switch some time back.

Generally, no huge changes.

Fixes #1.
2022-03-08 22:57:36 +01:00
6fabac6cd8
kitty: Switch to kitty terminal emulator
Finally made the switch from alacritty to kitty. I have been thinking
about this for a while. Both, fundamentally, serve my purposes just
fine. Both are fast, customizable, gpu accelerated, and so on.
Kitty feels a little faster on the input, but this should not provide
major differences.

One big difference, however, is now very apparent and I can feel it:
Alacritty, on wayland, does not support any picture preview. It does not
support sixel, and things like w3mimg or ueberzug are based on and
require X11 to run.
Kitty brings its own graphics display library and it seems both pretty
stable and fast.
I have not done much more with it than use it in things like vifm image
previews but it should be much more stable than things like ueberzug,
much faster than things like sixel. Time will tell.

Switched other modules to make use of kitty instead of alacritty:
vifm uses kitty previews,
river spawns kitty instances,
systemd units use kitty instances,
waybar presents extra mouse-click interactions through kitty,
and styler contains a processor to style kitty permanently.

I would love to converge this all a bit more on the `$TERMINAL` env var,
but this is unfortunately difficult for things like systemd and waybar.
For waybar I currently see no real way except for a custom
`ideal-terminal` script which just goes down the list of terminal
emulators I want to run, depending on which is installed,
since it does not read env vars,
while for systemd it might be feasible to import user environment
variables,
but also connected to additional complexity and overhead which it does
not seem worth for the currently two simple service units it affects.

Also removed some obsolete sxhkd and sh settings from the move to
wayland.
2022-01-16 15:18:07 +01:00
bd37843102
Enable extensions for pass 2021-12-18 10:33:52 +01:00
8113508e6d
pass: Add wtype typer tool to pass-pick
Added wtype as the preferred alternative to ydotool for wayland setups
to the pass picking sript.
Still supports xdotool and ydotool.
2021-12-14 14:28:08 +01:00
d78a27582c
bootstrap: Added new keyd keybard configuration
Added the same configuration for another external keyboard to the
config.
2021-12-04 11:22:25 +01:00
6ac552d3d5
Switch to wayland
Added a simple wayland configuration.
Currently set up simple wayland configuration based on river window
manager and waybar.
Rivercarro is the layout manager, being the same in principle as rivertile,
the default layout manager for river, only it comes with smart gaps
(gaps turn off if there is only one window open)
and monocle mode (give one window all space).

Runs `keyd` in the background to replace the old `xcape` capslock switching
(capslock is escape and if held control).
Uses `swaybg` to set a wallpaper.

Added powermenu and lockscreen scripts.
Improved lockscreen script to detect and work for wayland.
Moved old rofi mode 'powermenu' to more general powermenu script,
which works with any rofi-like selector (dmenu, bemenu, wofi, etc.)
Loses some of its design quality but since it was wonky anyway,
and I rarely see the menu,
we could repurpose its functionality for a more general powermenu
concept.
Currently hardcoded for `bemenu` but can be easily swapped and possibly
even extended back to rofi.
Fixed file upload link sharing to clipboard.

Updated rofi-pass to pass-pick.
Made rofi-pass universal and less integrated to rofi - that's also the
reason for the name change.
`pass-pick` works with rofi (default), bemenu or dmenu. In theory it
should also work with any other picker that contains a stdin listing
function similar to dmenu.
It has been definitely tested both on rofi and bemenu.
The best user experience still reigns on rofi, where available keys are
displayed on the picker and the keys themselves make the most sense.
But all functions can be reached from bemenu as well, though the key
mappings are more arbitrary and can not be changed as in rofi.
The autofilling tool works with both xdotool and ydotool, so should work
both on X11 and on Wayland. Ydotool ideally requires its daemon to be
running, otherwise some of the typing may get gut off. Otherwise no
change should be necessary.

Updated qutebrowser open_download for bemenu.
Updated download opening script to work with both rofi and bemenu.
Prefers original rofi implementation but works with both, and can be set
to use a custom dmenu-like file picker as well.

Add brightnessctl and removed custom audio / brightness scripts since they
became unnecessary.

Updated bootstrap script to include system files:
With `keyd` taking its configuration from the `/etc` directory and not
home, a second stow stage was necessary. These stow files are in a
module called `system-packages` inside the top-level `bootstrap` stow
package.
They will not be installed by the default dotfile stow invocation but
have been integrated as an extra step into the install script.
Installing this module requires sudo privileges!

Switched vifm überzug to sixel graphics rendering.
überzug relies on X11 functionality to work, while sixel does not.
Unfortunately, alacritty does not work with sixel graphics yet, only
foot does (somewhat).

Waybar currently runs the gruvbox dark soft color scheme.
Added the old polybar archupdates script to waybar and extended it to
output json format with additional metadata that waybar can read.
Can still output the old plaintext format that polybar expects.
Added a wireguard connection to waybar,shows if currently
connected to either a wireguard or tun VPN service.
If so, shows an icon in the waybar - that can be hovered over to show
the full assigned IP address.
Added an upcoming event display to waybar,
a simple event indicator to show upcoming events on the calendar, on
hovering over it the tooltip lists all upcoming events.

Added `screenshot` script to take simple screenshots and
rectangle region shots of the current output.
Can be invoked through the river shortcut PrintScr:
`PrintScr` - Fullscreen screenshot
`Mod+PrintScr` - Region screenshot
`Shift+PrintScr` - Fullscreen screenshot and file upload
`Mod+Shift+PrintScr` - Region screenshot and file upload

Extended `sharefile` to take paths through stdin and make
use of `fd` if it is found on the system.
2021-11-30 22:30:07 +01:00
89d1402b3e
bootstrap: Update package list slightly 2021-11-23 19:08:16 +01:00
f4c3944519
mail: Switch aerc for neomutt, simplify maildir
Made mail dir synchronization simpler - only a couple of important
directories will ever get synchronized to the local file system, but
still containing basically all important incoming mails.

Removed aerc and switched it for neomutt. aerc is very nice and needs
little to no configuration but neomutt is, as of this moment, just more
stable and mature. It opens quickly, never crashes, has a nice indexing
and quick e-mail handling behavior and is incredibly customizable.
Basically, once you put in some configuration effort, it is everything
aerc isn't --- and that is good, both have their reasons for existing.
It's just that mutt currently works better for me and will thus be the
e-mail reader of choice from now on.
2021-10-10 23:04:24 +02:00
d0e083b6ab
nvim: Add efm languageserver
Added a general purpose languageserver to round out the language server
possibilities. For now only configured to take care of bash linting
(using shellcheck) and formatting, but can be extended to a variety of
other languages (even helping more prosaic forms like markdown and pandoc).
2021-08-18 23:10:50 +02:00
496522605f
X: Improve lockscreen handling
Added lockscreen trapping and media pausing for lockscreen.
When it is invoked `lockscreen`, all media will be attempted to be pause
and the system will be muted.
Then the lockscreen is engaged.
This should happen automatically when the screen shuts off or the system
suspends or hibernates and can be invoked manually, as before, with
super+x shortcut.
2021-07-28 14:41:02 +02:00
bc046d02df
nvim: Switch to lua-based setup
nvim: Restructure lua config directory

Restructured lua setting files, so that plugin settings are in clearly
labelled as such files, and the base files are just there --- the base
directory.

This should also lay the ground work for modularizing plugins, so that
we can enable/disable plugin groups as we need them.

----------

nvim: Remove ale linter and formatter

Removed ale from plugins.
Linting is being taken care of by lsp and treesitter plugins and
formatting by formatter.nvim.

Added all filetypes ale took care of to formatting on save.

----------

nvim: Replace wiki.vim with zettelkasten.nvim

Removed lerlvag's `wiki.vim` from plugin list.
Though I love it and loved using it, by now it clutters up the list and
the basic functionality I need it provided by zettelkasten.nvim.
(That being linking, following links, and quickly opening a central file).

I may still come back to it at some point, but for now I am happy with
the new setup.

----------

nvim: Add toggleterm and lazygit integration

Added toggleterm plugin, integrating a very quick access to the neovim
terminal (`<leader>=` mapping).

Additionally, added a command to quickly call up a lazygit floating
windows with the same plugin. `<leader>G` will open a git management
window in which you can stage, remove, commit, push, pull and more.

----------

nvim: Replace surround, sneak; Add treesitter, dial

Replaced vim-sneak with lightspeed lua plugin, which accomplishes
similar to the same goal, with a little more flexibility (can also be
used to replicate other vim plugins like e.g. easymotion).
For now I am using it as a straight replacement, with the same fF/tT
functionality stretching over multiple lines, and quick sS 2-letter
jumps to any location ahead/back.
The highlighting is noticeably more stable and faster. For now it is set
to always highlight the next 5 occurences of a letter, wherever they
are. Lastly, it does not -- so the lightspeed author -- change the
buffer in any way which is what happened with sneak (due to vimscript
limitations) and which can and did confuse things like treesitter and
the lsp integration.

Replaced vim-surround with a lua-equivalent surround.nvim. This one I am
less sure about, the lua pluging, while working, still carries some bugs
and does not seem as thoroughly tested. It still has problems with
surrounding stuff with e.g. `*` and does not deal well with some
quotation situations. I will try to keep using it and perhaps find the
time to contribute to some of the issues instead of going back at first
however, purely since I am a much bigger fan of the plugin existing in
luascript.

Replaced vim-peekaboo with registers, another switch to a lua plugin,
which also functions slightly differently however. I much prefer the lua
plugins display of register contents which simply appear as a dropdown,
compe-like, and I can either paste with the correct symbol choice as
always, or by scrolling through it as if it is an autocomplete choice.

Added dial.nvim which slightly extends the functionality of ^a and ^x
number in-/decreases. It should barely be noticeable in normal operation
but now the combination can be used to change dates, alphabet
characters, hex codes and some more. Most prominently, I am using it for
date manipulation.

Added a couple of treesitter related plugins:
treesitter-context shows the context the cursor is currently in if the
beginning of this context goes off-screen, e.g. the function beginning
or current class being edited. Works for nested contexts.
treesitter-textsubjects allows selecting units of codes by going up the
tree branches. So, first you select an argument, then the whole argument
chain, then the function definition, then the whole function, then the
containing class, and so on. It is quite natural, however, I have so far
only made it work for visual selection, so not as a motion target.
Still, very useful - works with `v.` and can be repeated with `.`.
Lastly, ts-context-commentstring improves the correct selection of
commenting type for commenting plugins (i.e. my `gcc` mapping), by
making use of treesitter where available. Can even do multi-language
files like vue, react, or tsx modules with html, css and javascript
interweaved.

----------

nvim: Add code formatter

Added code formatter in lua, right now supporting python, cpp,
javascript, lua, rust.
More can very easily be added.

I am not sure if this plugin supports the formatting of code within
snippets in another file format (lukas-reineke/format.nvim does support
this, but seems not-maintained).

----------

nvim: Add tmux, snippet completion

Added (for real this time) tmux adjacent buffer completion.

Added vsnip completion through compe: Invoke a completion (shown in
compe with snippet preview) through <cr> or <space-cr> and then use
<tab> and <s-tab> to go back and forth through the completable positions
for the respective snippet.

Many default snippets included through the community repository of
friendly-snippets.

----------

nvim: Improve compe completion, Add outline view

Added outline view to neovim, similar to the well-known vista.vim
plugin. Can be opened (and closed again) with <leader>o mapping, simply
mnemonic for 'outline'.

Added unicode symbols (invoked with '\') and tmux adjacent buffers
to compe completion sources.

----------

nvim: Add zen writing mode in lua

Switched from goyo to TrueZen.nvim in looking for a lua replacement of
zen writing modes. The F11 shortcut remains the same, additionally using
F10 shortcut to enter a less drastic minimal mode.

----------

nvim: Switch keymaps to lua format

Using cartographer to make setting keymaps easy.

----------

nvim: Add tmux Navigator lua replacement

----------

nvim: Add autopairs, zen writing lua plugins

Switch goyo and autopairs to make use of lua plugins.

Moved most of the plugin setup code from a custom and manually updated
array being called from init.lua, to their respective plugin
installations in plugins.lua (so, wherever the plugin is installed also
contains the call of the configuration code).

This should hopefully reduce duplication a little and may prepare for
the lua plugin setups to end up in plugins directory of neovim.

----------

nvim: Add lua statusline, base16, async grep

Added galaxyline in an initial iteration which is probably overloaded
but integrates well with the also moved over to lua base16 colorschemes.
For now, it is possible to, at any point, simply call the `:lua
B16theme('themename')` command to change the colorscheme of both neovim
itself and the galaxyline with it.

The statusline, as of now, includes the activated mode (of course), the
filename being edited, the edit state (whether changed from last save,
or read-only), the current git branch if any, as well as the amount of
added, modified, and deleted lines from current git commit. On the right
hand side it contains the lsp status (if connected), the amount of
errors and warnings in current file, the filetype currently recognized
for the file, as well as the usual cursor position in the window.

Added some small other things, including an asynchronous fuzzy-backed
full-text search through telescope, which should hopefully make
full-text searching much more responsive than before; updated the
version of indentline to the correct one; and disabled some unused vim
built-in plugins.
2021-07-27 10:12:33 +02:00
8d399ed872
bootstrap: Update package index
Begin updating package index to be somewhat more current for the
portable installation.
2021-07-10 23:51:48 +02:00
65b8fd4820
polybar: Add pop-up calendar to date module
Added calendar (using gsimplecal) which appears on left-clicking the
date module. Previous long date format switching has been moved to
right-click.

Under the hood, the official date module has been exchanged with a
custom script which simply replicates the functionality but allows
arbitrary commands to be executed on interactions with the module (since
it is now a script module).
2021-07-08 10:39:34 +02:00
c9c0490cbf
xdg: Move xdg media directories
Moved all directories with media contents (pictures, videos, music) to a
single coherent media directory.
2021-04-18 13:04:59 +02:00
f4400da743
repo: Update linting for 4-spaced shell scripts 2021-04-04 20:52:52 +02:00
9142cb245e
taskwarrior: Add taskopen to package list
taskopen still needs to be configured and tested, but is added to the
package list for now, so I don't forget.

Specifically, it at the very least needs to be configured following the
xdg directory configuration model.
2021-02-19 16:54:39 +01:00
2f056a8701
nvim: Update lsp lua configuration
Uses arch aur-packaged installation of sumneko_lua, and invokes it for
any lua file.
Takes care of some additional configuration to enable easier programming
for neovim itself.
2021-02-19 16:54:08 +01:00
da52dad3d7
zsh: Switch from powerlevel10k to pure prompt
Switched theme of zsh, just to declutter a little and make startup
slightly faster.

Removed nvm from automatically initializing to majorly speed up zsh
startup times - removing around 750ms on my system.
TODO could potentially move to a conditional startup system, in which
nvm only gets sourced on its first invocation or similar workarounds.
2021-02-19 12:45:36 +01:00
8cb3252cf1
sh: Switch yay to paru
Removed outdated `syu` symlink which just hooks into topgrade.
Replaced it with simple function that tries for topgrade, paru, yay,
pacman, in that order. Can still be invoked with simple `syu` command,
but *only* through interactive terminal use.

Switched git pre-commit hook to default to paru instead of yay when
compiling installed package lists for dotfile commits.
2020-12-22 19:54:38 +01:00
06e67213ac
bootstrap: Slightly update package list 2020-11-25 11:49:15 +01:00
eaec90379d
nvim: Improve lsp source chaining
Lsp will by default invoke most of its sources simultaneously (one after
the other if no completions are found for the first), but this is
disabled for pandoc.

In pandoc, only the buffer and lsp sources are invoked (the first
chain), since bibcite will take a while to compile the cite keys.
To invoke bibcite in pandoc, use c-j/c-k when in the completion menu,
and they will be calculated.

This may be removed if a faster compilation for bibtex citekeys is
found.
2020-10-02 11:56:31 +02:00
0d00953f30
mail: Add afew automatic tagging
Added hook for afew tagging for local mail.

Mail will now arrive tagged only as 'new' by notmuch.
afew will then tag the mail accordingly as inbox unread when it is
personal mail.

It will additionally filter out anything marked as spam, or e-mail
containing a List-Id header, which will be tagged as 'list' and not
arrive in the inbox. This filters out anything arriving from a mailing
list from the inbox.

Removed the archive tag -- anything not in the inbox, and not marked as
list is instead used as an automatic archive.

Mail sent by myself will be automatically tagged as 'sent' and also not
show up in the mailbox.
2020-09-23 17:55:06 +02:00
7871442bcd
mail: Initial commit 2020-09-23 17:55:05 +02:00
def968aefd
sxhkd: Switch to rofi-pass and pavolume invocation
Switched sxhkd shortcut from rofi-gopass to new rofi-pass
implementation.

Additionally switched from pulsemixer to pavolume for media key volume
control. Pulsemixer works well as a tui application, but its cli
implementation is unbearably slow (on my setup at the very least).

After pressing the volume up/down/mute key it could take up to 3 seconds
to take effect. With pavolume this change happens almost
instantaneously, and it displays a libnotify message on top (can be
disabled).
2020-09-12 17:54:19 +02:00
717f2a13d6
X: Remove xdg-user-dirs, manually set dirs with sh
We already have a file which is strictly dedicated to xdg setting
environment variables and taking care of folder creations.

Using xdg-user-dirs as an application was basically doubling up on that.
Also, I don't need my directories localized - I just want them to point
to exactly where they should.
2020-07-29 08:13:31 +02:00
a505976485
[nvim] Add python linting, suggestions to vim
Uses python-black, python-pylint, and python-jedi to enable
functionality.
2020-07-10 10:15:03 +02:00
4f4e67ff1c
[repo] Add & update docs, fix install script dirs 2020-07-08 13:51:27 +02:00
fc121e7fd0
[zsh] Expand fzf-tab functionality
Will now contain additional functionality for ps, kill, and cd (preview
etc). Will also color things which have LS_COLORS set (done
automatically through lscolors-git file).
2020-06-20 00:17:45 +02:00
d6a2ee7b8a
[git] Add diff-so-fancy as git diff
Added package diff-so-fancy and make diff use it by default for its
diffs by setting it as its diff-pager.

Added sanity function dsf which invokes diff-so-fancy if it exists or
degrades gracefully if it does not. Use this function for all git diff
needs.

Pre-fill the pager search term in git to enable jumping between changed
files with n/N.
2020-05-28 13:51:02 +02:00
69f4cf3d75
[pkg] Add nmap, brill font, an2linux server
The brill font works well for web display reading in specific sites, as
well as legible pdf rendering.

Nmap contains ncat utility which allows cat-ing to sockets over the net,
useful for sending the local clipboard to a smartphone listening on
telnet.

an2linuxserver finally allows easy display of Android notifications when
running the corresponding android client application on the phone. It
basically functions as a light-weight kdeconnect alternative with only
the notification functionality.
2020-05-27 20:57:19 +02:00
96475bcbaa
[pkg] Update package list 2020-05-26 15:48:45 +02:00
4634655619 Fix README image paths and dot description
Fixed paths to images for new repository dotfile delineation. Added
quick readme blurb explaining differece of normal and dotfile
directories.
Readme still explained old bare-repository directory structure. Rewrote
sentences to conform to new structure.

Removed underscore from bootstrap directory, since the repository does
not organize itself through underscore prefixes anymore.
Fixed package gathering git-hook to respect new bootstrap directory.
2020-02-11 09:33:18 +00:00
68b0219354 Rename bootstrap directory
Renamed bootstrap directory to _bootstrap to conform to default ignore
pattern of autostow.sh, and make it visually clear that this is a
special directory, not one used for the dotfiles itself.
2020-01-30 13:29:03 +01:00
9932202704 Increase autostow.sh version, refactor print statements 2020-01-30 13:24:51 +01:00
bba4e1d71f Fix ignore pattern search on empty ignore variable
The default ignore pattern would not be searched when the additional
variable was kept empty. This fixes it to always seach for the pattern,
regardless of any other variables.
2020-01-30 13:21:01 +01:00
a3a1c4a5bd Add autostow.sh ignore pattern to underscore dirs
autostow.sh will automatically ignore any directories it finds that
begin with an underscore. This will make it possible to remove the
default entires of AUTOSTOW_IGNORED_DIRS variable and thus remove some
of the magic and make autostow.sh behavior more predictable.
2020-01-30 12:51:48 +01:00
4dfb9767ee Add dryrun capability to autostow.sh
Invoking a dry-run with `autostow.sh -n` will simply print out the
directories it would operate on, and those it would ignore and exit.
Useful for debugging, not much more.
2020-01-30 12:50:37 +01:00
ea203e54c1 Merge branch 'master' of gitlab.com:marty-oehme/dotfiles 2020-01-07 14:07:13 +01:00
05af92a2e5 Add several packages to default install 2020-01-07 14:05:05 +01:00
3a70989a96 Add ntp package to default install 2020-01-06 17:24:29 +01:00
6fd8fcf8ca Restructure bootstrap dir, fix install.sh
With bootstrap files no longer linked to config directory, we can have
an easier directory structure with less nesting for them. Install.sh
needs to use the new structure when calling its bootstrap scripts.
2019-12-30 11:04:54 +01:00
dba47b8e20 Allow autostow.sh to selectively ignore directories
By default autostow.sh ignores assets/ and bootstrap/ directories. This
behavior can be changed through the `AUTOSTOW_IGNORED_DIRS` environment
variable. It should contain the name of the directories to ignore,
separated by a `:`.
2019-12-30 11:00:00 +01:00
7e0d5440d8 Add basic bootstrap routine 2019-12-30 10:20:17 +01:00
d34cecb27e Switch to GNU stow 2019-12-29 23:12:13 +01:00