Changes the wallpaper setting code on startup to set a wallpaper for
each screen that it finds currently connected. Still a bit hacky and
should be improved for reactive wallpaper setting as new screens are
connected/disconnected but should work for the moment.
This commit fixes input locking when suspend was invoked autoatically
after a certain amount of time.
Previously, it would invoke the lockscreen first, then dim the screen
and finally suspend the machine. While suspending it would invoke the
lockscreen *again* however, which seems to lead to generally locking
input (perhaps 2 instances of waylock disable each others' input
ability?).
This change checks for a running lockscreen first before invoking
another one, which should hopefully fix the issue.
Previously, swayidle would wait for each command to be finished before
executing the next which, with lockscreen running in the foreground,
would not happen until it was unlocked again. The results were a working
lockscreen after the timeout, but nothing else happening and suspend
mode only being engaged *as soon as* the lockscreen was disabled (i.e.
when you want to use the PC again).
This removes swayidle's waiting for commands to finish and instead
simply go on to the next timeout when the time is right and should thus
fix the issue.
This commit removes the vi-mode plugin for zsh again. I have found that
the normal included vi mode of zsh is more than enough for most of my
needs.
The only two issues I have with it are that it sometimes does not
correctly go back into insert mode and it does not support word surround
commands (ysaw" for example).
While vi-mode adds the ability for such surround commands it comes at
the cost of taking longer to go into vi mode. And with my constant
switching back and for between the modes this is a much more egregious
issue than the others unfortunately.
Sometimes the leader key gets in the way. Since my leader key
combination is C-a by default, this interferes with the (rare) times
that I want to increment something in vim (also C-a).
So, this commit allows toggling the leader key in wezterm off, so it
passes through to the actual applications. You can toggle it with
`C-Alt-a`.
Commit made possible with the help of the comments in this issue:
https://github.com/wez/wezterm/issues/656
When setting the environment variable EDITOR in the shell, ensure that
the editor being set is actually available: It first tries nvim, then
falls back to micro, then nano (one of which really every distribution
should have).
Added automatic:
a) screen locking after 5 minutes
b) screen dimming after 10 minutes
c) suspending after 20 minutes
to riverwm. Makes use of swayidle to detect idle times and wlopm to
detect and toggle displays.
Lets vidl download to a temporary directory first (by default
~/downloads can be changed through "$TEMP_FOLDER") before moving
downloaded files to target directory as last step.
Massively increases download speed if final directory is on a slow HDD
or a network drive (since otherwise ffmpeg is computing on these slow
devices themselves).
Added configuration for urlview which neomutt uses to parse out urls
from emails to, by default, make use of xdg-open to decide which program
to open them in instead of sending them to lynx.
Added page up/down movement with the C-u/d/b/f key combinations, as well
as message and thread removal with dd (message), dT (thread) and dt
(sub-thread) chords.
Replies have been changed to rr (reply all) or ro (reply one).
The 'new' flag can be toggled by s (for seen) as previously, though now
other flags can be toggled with S and all messages can be marked as seen
with C-s.
Other things are mostly the same, though threads can be collapsed with
za (one) or zA (all) and moved between with gt/gT.
There was not much structure to the shortcuts versus commands so far.
This turns most userscripts into invokable commands, which in turn are
invoked by the respective shortcut mappings. Mappings themselves have
not changed.
New commands are:
- `readable` to invoke readability script
- `save-to-pdf` (from `save_to_pdf`) to save current page as pdf
- `recent-downloads` to show list of recently downloaded files
Added script which takes you to the corresponding sci-hub entry for any
DOI. DOIs can be passed in three ways:
- via hinted link (shortcut `;p` to start hinting)
- via selected text (select text then invoke `send-to-scihub` command
with `"p`)
- or from meta tags in current page (invoke `send-to-scihub` command
with `"p` when on article page)
It will grab the newest sci-hub link and attempt to bring you the
corresponding pdf file.
Added cookie-blocker script which attempts to remove the cookie banners
popping up on a variety of websites. Works well for some of the large
ones (e.g. reddit, google, stackoverflow) but less well on smaller
pages.
Can be invoked with `:cookie-block` command alias.
Python complains if you point it to a different configuration file (as
we do with the changes to XDG directories) but it doesn't exist. So, we
simply check for its existence and create it if necessary when setting
up an environment.
The beginning of what I hope can be a useful integration: send mails to
taskwarrior as tasks and open the corresponding mail from tasks in
taskwarrior.
To make a task out of an e-mail, in neomutt, simply press `t` when the
mail is selected or opened. It will create an automatic task in
taskwarrior with the description "Reply to [mail] by [sender]" and tag
it as mail.
If you press `T` instead, you can give the task your own description and
tags.
In taskwarrior, you can simply `t open <taskid>` on a task that came
from neomutt to show the message content on the command line (using
notmuch). This is still a bit rudimentary and I would like an improved
display, but it works for now.
Since I am striving for closer connection between my task management, my
mail suite and my calendar appointments, it makes sense to unify all
'office' tasks into the single office module instead of keeping
taskwarrior outside of it.
Custom note extensions can be set and opened through annotating a task
with `Note.ext` instead of just the usual `Note` - the extension will
automatically be opened.
Additionally, tasks annotated with links can now have their links opened
through xdg-open with `to`.
Added aliases for task adding (`ta`), logging (`tal`), annotating (`tan`);
listing next upcoming (`tn`), listing next urgent (`tun`);
showing active (`tra`) and getting a report of recently (1 week)
completed (`trw`) and, finally, `to` to invoke taskopen on the task
passed in.
Added alias within taskwarrior to invoke taskopen through
(unsurprisingly) `task open`. Importantly, the difference to other
taskwarrior commands is that the number of the task to open should come
AFTER the command, not before as a filter as for all the others. Perhaps
that can be changed in the future.
There are some includes in taskwarrior which make the program error out
if they don't exist on start. This little hook ensures that they get
created each time a new environment is created.
Wrapped calcurse into function that imports all external calendar events
on startup. Does NOT yet export anything added in calcurse to the
outside world again, for now khal is required for that.
Renamed script to sync local mbox directory with remote from `mail-check`
to `sync-mail`. Changed necessary integrations accordingly (neomutt and
system service).
Added configuration of khal calendar, making use of the previously set
up vdirsyncer configuration. It will dump calendar events into the
specified folder in documents, which will in turn be picked up by khal
and displayed. Any creations/edits can be synced back to the remote
Caldav server with vdirsyncer.
Set up vdirsyncer to have synchronization with my nextcloud instance.
Pulls credentials from local pass set up and always gives priority to
remote instances so nothing gets lost on local data issues.
Now that I have time to enjoy a game every now and again once more,
pcgamingwiki is a wonderful resource to start looking into all sorts of
compatibility issues and troubleshooting, so it is added as a
qutebrowser search engine as `pcw`.
Neovim sometimes errors out when enabling spelling without having all
the necessary spellfiles available. This ensures on setting up the
environment that a spellfile is downloaded.
Added continuous wallpaper setting and different settings for laptop use
(only one screen enabled) and docked use (two screens enabled and laptop
screen disabled) using the wonderful `kanshi` program.
Had to disable automatic formatting since it was messing with my
contributions to other git projects, if they did either not have a
formatter enabled (most of the time) or had different formatters or
those set up differently than this setup (fixable, but I don't think
it's worth the time).
Instead, formatting can be invoked with `<localleader>f`/`F` to format
or format and save respectively.
Generalized the font used from special ligaturized Iosevka to the
standard Iosevka installed in the bootstrap process.
Changed from a blindingly bright default color scheme to a nice dark one
(Nord).
Changed opening images by default to do so on the commandline itself,
using timg.
Other openers can still be invoked through the `:file` command like
before.
Added shell aliases for 'image listings' which aims to mimic the `ls`
command in a very simple way.
Invoke it via `il` to display a grid of all images residing in current
directory. Images are being detected not by their extension but by
running a `file` operation on, so in very large directories this might
take a little (though, your terminal will probably buckle under the
weight of displaying thousands of images anyway, so use with care).
`IL` provides the same functionality but recurses into an arbitrary
amount of subdirectories. Very useful to get an overview of a certain
directory and its children but, again, think for a second before using
since this could easily spew thousands of pictures into your term.
Updated buffer navigation to make use of the <c-w>hjkl paradigm instead
of the <c-hjkl> since it adheres closer to vanilla nvim and works better
with the new navigation features of Navigator.nvim.