Commit graph

961 commits

Author SHA1 Message Date
65be7e8eac
river: Move often used keybinds around
Moved border snapping/aligning to a quicker key combination
(mod+ctrl+hjkl) and instead move rivercarro layout changes t the more
inaccessible extra moving mode (alt+r).
2021-12-14 15:31:10 +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
60ae405790
scripts: Add custom ytdl options for vidl
Allow setting custom ytdl options for the vidl video downloader.
Can be set through $YT_DL_OPTS environment option.
2021-12-11 11:17:58 +01:00
4d563be7a4
river: Add dunst key mappings
Added notification dismissal and recovery key binds to river key
bindings. This is necessary since in wayland dunst can't just
receive key presses anymore.

The new key binds are:

```
Mod+N         - dismiss 1 notification
Mod+Shift+N   - dismiss all notifications
Mod+Control+N - display last dismissed notification(s) again
```
2021-12-11 11:13:45 +01:00
0e4556accb
waybar: Add styler support
Added suport for styler automatic color scheme application.
Corresponding processor16 styler found here:
https://github.com/marty-oehme/baseproc16-default/blob/master/theme_waybar
2021-12-06 11:46:51 +01:00
9f1fe95662
scripts: Added vidl and archive scripts
Added script for downloading videos with ytdl or any of its derivatives.
The script is adapted from one in my rapberry pi setup which serves
videos remotely, and makes some hardcoded assumptions that might not be
the best for all situations.

Added archive script which takes a file and puts a hardlink to it into
an arbitrary archival folder. This means even if the original file is
deleted its data stays on disk because of its hardlinked archive
version.
2021-12-06 10:47:17 +01:00
63074ae46b
nvim: Switch to compe compatible branches
Have to switch branches to compe compatible ones for now.
Must make the switch to `cmp` soon, but in the meantime ths is a quick
bandaid.
2021-12-04 11:24:28 +01:00
23be9c64c9
git: Change gco to git checkout
It happens too often that you want to `gco` a specific commit or tag for
switch to always be useful in every scenario with the shortcut.
2021-12-04 11:23:03 +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
55604d5538
waybar: Add pia vpn to wireguard script
Added checking for pia connections to script in addition to existing
wireguard implementation.
2021-12-04 11:22:03 +01:00
bfc19636ad
qutebrowser: Add maps for command mode navigation
Added ways of navigating the command mode similar to unix readline or
fzf lists.
^N / ^P will get you up and down the history / completion options
^J / ^K will get you up the last typed commands
^U / ^A / ^E / ^F / ^B / ^H manipulate the caret on the commandline.
2021-12-02 16:55:43 +01:00
58e962d761
README: Update in preparation for wayland 2021-12-02 16:55:17 +01:00
871e98ba54
wayland: Reinstate old fontconfig
The fontconfig in use previously accidentally got deleted amidst the X
leftovers. This reinstates it and streamlines it a tiny bit.

Still uses Iosevka as the default mono font, Heuristica and Noto Sans as
the serif and sans-serif respectively and adds the fantasy and comic
families.

Also takes over wholly the font hinting and aliasing settings, since
they work very well on my machine.
2021-11-30 23:54:58 +01:00
d93bcdf11e
mpv: Switch to m for menu invocation key
Switched from `menu` (function+right control usually) to simple `m` as
an invocation key. Simpler, mnemonic, and not used yet.
2021-11-30 22:43:43 +01:00
f23f0bd740
tmux: Add music session to defaults
Opens a mopidy server (in the foreground), a commandline player
(ncmpcpp), a sound mixer window, and bluetooth connectivity.
2021-11-30 22:37:36 +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
6908c19457
taskwarrior: Add overdue emoji script
Added simple script `task-overdue-prompt` which checks for overdue tasks
(*not* tasks to be done 'today') and display a skull if there are any.

Intended for prompt use, it is currently still too slow to be used as
such. But there may still be uses other than that so it is included for now.
2021-11-23 16:13:54 +01:00
a99982028e
mail: Update to new neomutt structure
Updated notmuch to only be available for full-text search. Removed
complete afew configuration.

Added msmtp as mail sending agent.

Added structured neomutt configuration with custom bindings, built for
my personal gmail account, without any plaintext passwords revealed,
etc.

This is a reasonably well working mail setup,
which should provide a stable starting point for further refinements.

Additionally, added some functionality to `mail-check` script:
Allowed user to choose sync target for each run, by
passing in mbsync target (group/channel/..) as the argument.
Also, allows setting password file to use for script through env var,
and made imapfilter location less hard-coded to my system.
2021-11-23 16:09:32 +01:00
7a7ce3a296
taskwarrior: Add tim alias for timewarrior
`tim` is intended as a quick support alias for timewarrior.

If invoked without any arguments, `tim` will print out a simple summary
of all tasks accomplished (for the day by default). It will also print
their ids for simple subsequent modification tasks.

If, however, invoked with additional arguments, `tim` will pass anything
along to timewarrior so anything happens as usual if invoked like this.

Thus, `tim` functions as a quick look into the day's timesheet or a
shorter alternative to the `timew` command.
2021-11-23 15:59:45 +01:00
df0cf3d540
git: Use switch instead of checkout if available
For git versions that support it, the aliases will use the newer
`switch` instruction instead of `checkout` for its use cases.
Creating a new branch through `gcb` is for example done by
`git switch -c` instead of the older `git checkout -b`.

Additionally streamlined git version checking to be a little faster and
to unify its approach on posix sh, bash and zsh instead of utilizing
individual checking functions.
2021-11-23 10:42:45 +01:00
cf85357f5c
sh: Add minimum version checker
Added another building block program. This program will be required
going forward in other modules. `version_at_least` takes two version
numbers and returns true if the second is higher than the first.

That means primarily it is useful to check if a program fulfills a
minimum required version, e.g.: `version_at_least 2.1 $(my_program -v)`.
Will be primarily useful for git version checking in the near future.

It has a second possibility of checking for ordered version numbers
passed in but this is of less use. Check source for more information.
2021-11-23 10:30:57 +01:00
6d1934fccd
taskwarrior: Make timewarrior more XDG compliant
Timewarrior now looks for its data directory in `XDG_CONFIG_HOME`
instead of the home directory. This is a little better than nothing, but
does not separate the configuration and data files from each other yet.

Data *should* be lying in `XDG_DATA_HOME` but the data directory can not
be separated since it relies on a single env var `TIMEWARRIORDB`.
2021-11-23 09:52:41 +01:00
dcea74008b
vifm: Change vifm filename yanking mapping to yt 2021-11-23 09:52:21 +01:00
6a86deef87
zsh: Fix shell history settings
For the longest time, shell history ignore was set to the bash version
of the setting. Zsh uses both a different variable and a different
format to ignore various commands in the history.

Additionally increased the history size one order of magnitude,
so we really don't lose anything. Should still be fine for personal
computing work anyway.
2021-11-16 12:18:39 +01:00
5ac9ca02f0
taskwarrior: Remove nagscreen and auto-sync
Removed nagscreen informing of 2.6.0 news that would periodically tell
you about 'new' things in taskwarrior by telling it i already saw it.

Removed perviously added auto-sync function. Two reasons:
The individual additions/modifications in taskwarrior take longer if
they need to be communicated to a server at the end of every change.
And undo does not work at all if we are already syncing to a server
after every change.
That means wrong changes are also synced and become really hard to
remove again.

So, it seems easier to, for now, sync manually after some commands and
before leaving one workstation for another. Another method of auto-sync
could be implemented but I have not found an elegant way.
2021-11-16 12:15:55 +01:00
5806aee591
qutebrowser: Switch google maps shortcut for qwant
Switched quicksearch using `maps <location>` query in the browser for
qwant openstreetmaps implementation.
2021-11-16 12:09:47 +01:00
9fd0ab9b91
nvim: Remove ctrlsf and thesaurus_query
Removed the two plugins since I *never* used them in months.
Improved startup slightly by conditionally loading some filetype and
command plugins.
2021-11-16 12:09:47 +01:00
e617d4ae1e
xdg: Reorder xdg home directories slightly
Moved pictures and videos back to home directory since they are, first,
not part of a 'media' collection and, second, on a different share to
my personal media assortment.
2021-11-16 12:09:46 +01:00
d2eec50d33
mpv: Default to english subtitles
Changed subtitle and audio order which was accidentally switched
previously - audio should prefer original tracks and subtitles should
prefer english.
2021-10-23 12:44:00 +02:00
da9b171da4
tmux: Update social session with signal, email
Added signal chat window and neomutt window to social session.
2021-10-20 23:04:47 +02:00
b628f7e4e8
sxhkd: Switch dunst pause for history search
Removed the unused dunst pausing hotkey, and switched it for a search of
qutebrowser bookmarks, quickmarks, and history.
Key mapping is fn+<Search-Key> (F9 on my machine), and it will open in a
dmenu-like frame.
Results will open in the last opened browser instance, or open a new
one.
2021-10-20 22:35:49 +02: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
aa472ac358
taskwarrior: Move sync settings out of repo
Updated and moved new sync settings to not be part of dotfiles
repository.
Added holidays to calendar view.
2021-10-10 10:04:59 +02:00
8422285717
vifm: Add additional configuration and functions
Renamed fuzzy find functions to simpler and more logical names:
`fzf` to find and select anything recursing from current directory.
`fzfcd` to find and enter any directory recursively under current one.
`fzfhome` to locate and select anything from user's home directory.

Added shortcuts for above commands:
<space>f `fzf`
<space>c `fzfcd`
<space>F `grep` from current directory.

Added shortcuts to create and extract archives:
xx to extract selected archive.
xa to archive selected files, giving name of file under cursor.
xc to archive and compress selected files, giving name of file under
 cursor.

Move ability to sync current pane to other one from mapping (c-y) to
command (`:syncme`). This is a command only used once in a while and
does not necessarily need its own full mapping. Additionally, having it
as an invocable command mirrors the built-in `:sync` command to do the
exact opposite - sync the other pane to the selected one.
2021-10-09 23:21:39 +02:00
8a6cdcba8b
mpv: Use yt-dlp instead of youtube-dl
Switch to fork since it's more actively developed and contains some
additional features. Primarily switched since it had quite a bit better
subtitle stream handling than the original for quite a while.
2021-10-09 23:21:02 +02:00
86dc69c31f
taskwarrior: Adapt tw config file for 2.6 update
Modified some options per the taskwarrior recommendations, switched from
custom XDG compliance to default implementation newly added to program.
2021-10-07 11:17:18 +02:00
3a5a6d19b4
nvim: Update spellchecker 2021-09-24 16:26:42 +02:00
88f0afc839
add readme 2021-09-24 11:39:00 +02:00
8234fdfdf0
polybar: Fix archupdate display
Fixed archupdates to work even if `checkupdates` script returns an error
by falling back to `yay` to do its package update detection.
2021-09-24 11:16:38 +02:00
3bf5becbe2
sh: Add internet-check base script
Added script to sh base package to allow checking for internet
connectivity. Checks both through system virtual filesystem and, as a
fallback, through pinging google dns.

Added a simple readme to sh module.
2021-09-24 11:16:29 +02:00
658e07e1b8
zsh: Add stash display to pure prompt
Added stash being shown in git repositories (if there is a stash),
moved some initialization slightly.
2021-08-25 20:47:07 +02:00
f08c8ebefd
taskwarrior: Fix taskopen note directory location
Fixed error in configuration file location for taskopen alias which put
the config file instead of the notes directory.
Now configuration file correctly resides in
$XDG_CONFIG_HOME/task/taskopenrc and notes dir is
$XDG_DATA_HOME/task/notes.

Notes can now correctly be created by doing `task <id> annotate Note`.
2021-08-24 23:09:11 +02:00
251965799c
qutebrowser: Ignore quickmarks
Bookmarks are already gitignored. While I don't mind the quickmarks
being public, I also don't think them being saved in this repo brings a
lot of pros - and they are massively out of date anyway.

I could think about integrating them on a private fork
https://shivering-isles.com/publish-your-work-while-keeping-a-private-fork
we will see.
2021-08-19 09:44:34 +02:00
78b47a35b2
mail: Fix checkmail script password bugging
Fixed script to only ask for password once before understanding that the
user does not want to provide it.

Since gpg seems to not differentiate between a *wrongly* entered
password and one entered not at all, we have to assume the user canceled
the password prompt and not bug him again until the next time the script
is invoked.
It will, however, at least notify the user that the process is aborted
in a quick notification message, so that if it was done on accident the
user will still know what's up.
2021-08-19 00:21:16 +02:00
f94759697d
qutebrowser: Add launcher to open links
Added bemenu launcher (can alternatively use dmenu) to find and
quickly open a link in the current qutebrowser instance (or a new one if
none exist). Will open it by default in a new tab or if `tab` argument
passed, if `open` option is passed it will open it in the current page
instead.

The script can be used both standalone by being invoked as `qutedmenu`,
or from qutebrowser itself, invoked from its commandline as `spawn
--userscript qutedmenu <open|tab>`.

By default uses bemenu, but if that is not found on system will
automatically switch to make use of dmenu. If you want to use rofi as
your dmenu replacement, generally I will assume it is already symlinked
to dmenu.

Added a keymapping to sxhkd `Mod-Shift-O`, which invokes it from
anywhere.
2021-08-18 23:35: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
176a4a233d
vifm: Obey XDG Trash directory
Moved trash directory vifm uses from its own data location to the one
proposed by XDG specification. Essentially moves it to
`.local/share/Trash`.
2021-08-18 22:33:12 +02:00
62f680ecd3
qutebrowser: Add proxying support for websites
Added automatic proxying to floss alternative frontends for proprietary
websites like reddit (teddit), youtube (invidious), twitter (nitter),
and instagram (bibliogram).

Often does not work on calling cached websites, meaning when it does not
load the correct page a full reload (shift-R) should call up the correct
frontend on first use of a previously visited page.

Squashed commit of the following:

commit ccf5a9f9a001c466e4fe00763f561d09a598bd70
Author: Marty Oehme <marty.oehme@gmail.com>
Date:   Wed Jul 28 10:05:37 2021 +0200

    qutebrowser: Add LocalLeader key concept

    Added differentiation between leader mappings and local leader mappings,
    with a similar idea to vim:
    leader mappings enact changes within qutebrowser on a more general level
    (currently e.g. changing tab display, javascript switch, stylesheet
    setting) while
    local leader mappings enact changes or interact with the current page
    context
    (e.g. start mpv stream, display in readability mode, download pdf
    version of page, and so on).

    This will be hard for my muscle memory, but I think such a switch
    benefits logical action separation in the long run, especially in case I
    add more action shortcuts over time.

    An interesting thing this separation also allows is a more
    buffer-specific action repertoire (for example through recognition of
    current page context with interceptors) so specific pages contain
    different actions.

commit afbe573d527b70fa57d643ede78cd5e71f3ca4c1
Author: Marty Oehme <marty.oehme@gmail.com>
Date:   Tue Jul 27 16:00:37 2021 +0200

    qutebrowser: Rename key mapping file

    Renamed from `keys.py` to `maps.py` to keep some coherence with nvim
    naming scheme.

commit cc78cbb67953bba7ab4d5a6dd48dfa50fbcfe2fc
Author: Marty Oehme <marty.oehme@gmail.com>
Date:   Tue Jul 27 10:19:34 2021 +0200

    qutebrowser: Add reddit redirection

    Added redirection to old.reddit whenever a link on reddit is opened.
    Added redirection of youtube links to yewtu.be invidious instance.
2021-08-18 22:28: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