Themes are structured in two parts: layout and colorschemes. Both can be
set independently from each other. Layouts can make use of anchored
color values (@background, @background-focus,.. look at colorscheme
files for all available values). Colorscheme files then translate the
values into actual colorcodes.
That way, the colorscheme for all layouts can be changed with one
setting, or independently of each other. Layouts try to specify some
often used structures for rofi menus - right now there is a horizontal
list and a fullscreen options selection (which can make use of icon
fonts).
Any global theme changes should be done in settings.rasi. Any global
function changes can still be done in config.rasi. A rofi-powermenu has
been added as an example of using the theming structure. The powermenu
script loads rofi with the powermenu.rasi theme enabled. The powermenu
theme loads the fullscreen options layout, which in turn loads the
vertical list layout, which loads settings, which sets the correct
colors. Idea and original structure from:
https://gitlab.com/vahnrr/rofi-menus
Can be executed with rofi-bang. It will take a comma-separated list of
commands (for now statically sourced from rofi config dir), show labels
and 'bangs' for them (in the manner of !c or !yt) which, if typed will
instantly execute their command. In this manner, it becomes possible to
create a quickly accessible menu using rofi.
E.g. we could have !b to search bookmarks. As soon as !b is typed the
'bang' instance of rofi exits and executes the associated command. If
the command starts up another, visually identical, rofi instance with a
preselection of different user bookmarks, it appears as if we just
jumped into a bookmark list in the same rofi instance.
Of course, the commands can be anything. They don't have to invoke more
rofi instances.
In vim:
Use <leader>c to insert a bibtex reference in your text. By default it
is a pandoc reference (@bibref), but it can be changed to latex style
(\cite(bibref)). <leader>CM inserts a pretty-printed reference to the
selected work, using markdown styling. If you want to insert a citation
while writing, use @@ from insertmode to insert the bibref instead.
The settings add two commands: :CiteRef and :CitePretty which call the
respective functions. You can pass any amount of .bibtex libraries to
the commands and they will be available to fuzzy search through.
:CiteEdit also added to fuzzy find a source and open it in vim for editing.
The function is not working yet, I have to find a way to go from the
fuzzy finder to papis, select the correct file and edit it in vim.
In Shell:
Can cd directories (d, D), open files (f, F), open most recently used
(ru), and edit bibtex references (ref). lowercase is a weighted view
over previously used directories/files, Uppercase is a search of the
whole file structure.
Still outstanding:
Needs the same comfort function additions as vim search, especially
reference search. (i.e., open corresponding document, yank path, open
editor,...)
Pencil is from reedes, cribbed from iWriter. It is a good, subdued
colorscheme for writing prose. All colorschemes in this vimrc now come
with italicized letters (for comments, and words that should be italic).
All themes also respect the background= dark/light distinction and
enable the respective mode.
PDFs can be compiled using rmarkdown by invoking <leader>c, or C to open
the file (which pauses vim however). The best workflow is to open the
pdf manually in something like zathura, which will auto-update when the
document is newly compiled.
<leader>O to enable spellchecking for current buffer,
<leader>o to show suggestiong for word under curser.
(Try it out here, just hover over misspelled cursor!)
Add papis config file. Sets up a single 'academia' library in Nextcloud/Library folder.
Uses vim for most editing, and vifm as the file manager. No advanced functionality of papis is touched yet.
The structure of the library is to use authorname-title as subfolders in the library for the individual document clusters (i.e. the info.yaml files and any associated document files or notes).
Will need to further test functionality.
Prints out current version number and simple usage instructions on invocation
with -h, --help, -v, --version. Displays used configuration file when invoked
with -i/--info.
Adds simple toggle ability script, used by simply invoking `dimswitch` from the
.local/bin/ directory. In this dotfile configuration that directory is added to
the path, so can be invoked from anywhere.
Invoked without any options it will look for a line which specifies a theme
with a `-light` or `-dark` option appended, and switch them out. Does not
change the vim colorscheme or background, and can not change the theme in
alacritty itself.
The extent of this script is still limited, if it should be expanded python
seems more suited. For further discussion, see its original Merge Request !18.
Toggle Javascript on/off with <leader>js. Reload the configuration file
with <leader>VV. The search engines include reddit, github, wikipedia,
archlinux, aur, gopackages and more.
If calling a tmux session within a tmux session, pressing F12 will
toggle between sending commands to the outer or inner session. If the
outer session is inactive its status-bar will be slightly greyed out to
show that no commands will reach it. If the inner session is a remote
ssh session, it will set some additional stylings for the status-bar to
further differentiate the two.
Will recursively look for `*.bats` files and run them with bats-core test suite. Simple sample unit tests for existing scripts are included in `.config/shell/rc.d/test`.
vim-go already provides the linting necessary for golang. Using
golang-ci additionally only complicates matters and provides no benefit.
Additionally, it did not seem to be able to track files other than the
one in the current buffer, or those open in hidden buffers and would
show (false) errors of classes or functions not found even when they
existed.
Invoked with `tm dot.session`. Contains a git window watching the
dotfiles status, diff, and a git log of recent commits. Contains a
window with vim. Contains a third window to test out the resulting dot
commands. Kept simple and clean.
Italicizes comments and anything which should be italicized in text
(e.g. markdown *star-surrounded* words). Might lead to errors in ssh
connections, will have to test.
vifm enters last open dirs by default. vmm alias opens vifm with the pwd
as the opened dir instead. Passing along arbitrary paths to vm also
opens vifm there.
rifle is going away soon with ranger being replaced by vifm in these
dotfiles. To be prepared, and make them more universal, the fuzzy file
finder uses xdg-open to open any files.
Uses the full name of fuzzy finders instead of just their abbreviations
when warning about any of them missing, to make it clearer which
programs the warning is talking about.
Switch fuzzy opening of buffers to <leader>f, and set opening files in
work directory to <leader>F. Switching these two is intended to allow
easier access to buffer switching, which I use much more often than file
access, especially when working over a longer time-frame in vim.
In preparation for extending the scripting, renamed the script from just
being a re-aliasing of fzf. Now, all fuzzy finding logic can reside in
this file.
Fixed the quick-style .. to go up a directory. Use `cd ..` to enable the
fzf enabled selection if you quickly need to go up multiple directories
instead.
HACK HACK HACK
The default keybinds for wiki.vim are now kept, only removing the ones
that I don't need. For now, since wiki.vim does not seem to allow empty
strings being passed as its keybinds (in order to remove them by
overwriting with empty), it just assigns bogus binds with
<leader>== and an arbitrary number of === following.
Added tmux-resurrect plugin. This allows easy persisting of sessions
through a server shutdown. To save a session, use
<leader><c-s>, to restore it <leader><c-r>.
Use <leader>wf from anywhere to fuzzysearch a phrase over the notes. If
no initial input is given loads all files into the interactive
fuzzysearch. Use <leader>wF to load a more detailed, full-screen windows
(via CtrlSF) which allows direct editing of results and more.
Only keep some of the default vimwiki mappings, since the rest I don't
really need (currently) and they interfere with some other operations I
intend to map (e.g. <leader>wf should fuzzysearch wiki but will toggle a
link when overwritten by the defaults).
Can be set through environment variable WIKIROOT. By default points to
~/Nextcloud/Notes/ but is kept configurable for each computer. Will be
picked up by vim wiki plugin to enable wiki functionality for the
respective directory.
Adds full-text search with CtrlSF vim plugin. Activated via
<leader>wf, to spell wiki-find (mirrors <leader>ww for wiki-index).
Optimizations can certainly be done.
* set up beggining/end of line with H/L
* set surround current word/visually selected word with <leader>"
* set text expansion for @@ marty.oehme@gmail.com - email
* set text expansion for ccopy - copyright notice
* set common typos autocorrection
Should start x after all the XDG folders have been set so that aliases
etc should still work. If binds/aliases do not work (things like tm, tl,
cl and so on) then this is presumably caused by a race condition and x
should only be started *after* all directories have benn set.
Adds :wallabag-add command to qutebrowser to add current page to it as
an article. Can optionally use <leader>ra (read-add) for the same functionality.
Moved all personal scripts to ~/.local/bin to be systemd file hierarchy
compliant, as well as XDG compliant. Since they are not configuration
options they don't have anything to do in .config directories.
Also, it's just easier to find than the previous .config/scripts/bin.
Switch option-fg, -bg and so on for the new style options which have now
superseded the legacy styling. Tmux manual
[here](https://man.openbsd.org/tmux.1#STYLES).
Can be used to as for confirmation for actions (E.g. shut down pc,
reboot and so on). Takes 3 parameters, with the last being optional, in
the form of:
dmenuprompt "Text to display" "command to execute on yes"
[success/warn/danger]
The last flag only changes the colors being displayed by the prompt.
If the last flag is not provided, it will display in default colors.