Commit graph

1730 commits

Author SHA1 Message Date
f3fb0998f5
vifm: Replace glow with bat markdown preview
For some reason (glow 2.0.0 release?) markdown preview with glow does
_not_ work anymore within my vifm. It regresses to showing errors all
over the place instead.
2025-02-18 22:41:39 +01:00
23086828d3
jj: Add bookmark aliases 2025-02-18 17:58:37 +01:00
637230ad04
qutebrowser: Enable javascript for docker hub 2025-02-18 17:58:37 +01:00
969e0a6288
qutebrowser: Refactor redirects as importable class
Make more extensive using of dataclasses for typing and simpler future
refactors.

The redirects 'plugin' is now a simple class which can be imported into
the configuration and is automatically active when instantiated. For
that to work it needs access to the qutebrowser python library but that
should hopefully be a given if wanting to have a qutebrowser plugin.

To make the default redirects active, simply import the class and
instantiate it:

```python
from fossredirect import Redirects
_ = Redirects()
```

This loads the defaults and activates them in qutebrowser. Try to go to
e.g. 'reddit.com' and it will automatically open in a libreddit
frontend.
To customize the redirects, provide a custom list of Services:

```python
from fossredirect import Redirects
_ = Redirects(services=[Service(source=["fromhere.com"], target=["tohere"])])
```

It works a little more flexibly now:
Redirects contains a list of Services.
Each service is a simple data container with the following:

```python
Service(
     source=["list.of", "hosts.to", "redirect.com"],
     target=["farside-redirect"]
)
```

The above redirects any of the source hosts to the far-side provided
target (in this case it would be
`farside.link/farside-redirect/<original-path>`).

However we can also specify 'custom' targets if farside does not have a
service that we want to redirect.

```python
Service(
     source=["list.of", "hosts.to", "redirect.com"],
     target=["my-redirected-host.org"],
     custom_targets=True
)
```

This directly rewrites the host to
`https://my-redirected-host.org/<original-path>`.

Lastly, we can have custom preprocess/postprocess functions which fix
some more involved redirect:

```python
Service(
     source=["list.of", "hosts.to", "redirect.com"],
     target=["my-redirected-host.org"],
     postprocess=lambda item: item
)
```

Be aware that the functions take 'QUrl' objects so you have to access
e.g. the actual host with `item.host()` before rewriting. Look at the
breezewiki rewrite function for an easy example.
2025-02-18 17:58:11 +01:00
5dfba029d8
jj: Add private commit uploading safety
Do not push commits prefixed with `private: ` to any git remote.
2025-02-18 17:07:20 +01:00
6a6dfe3a6e
jj: Add showing working copy log by default
By default, the log invocation now shows at least 5 ancestors of the
current working copy branch. This makes it much easier to get situated
to the current location for me - otherwise, if I just pushed my main
branch and thus there is the main bookmark just below my commit none of
the last couple changes are shown in the log. If there are fewer than 5
ancestors it will just show however many there were.
2025-02-18 17:07:16 +01:00
c19dbefb2c
river: Add init reload without program restarts
By passing the 'no-restart' argument as the first parameter of the river init
file, we can prevent program restarting which we do not want to have restarted
every time (e.g. kanshi, wlsunset, waybar, swayidle, etc)

By default these programs will still always be restarted. However, passing the
parameter means that if the program is already running, we do not restart it.
If the program is not yet running it will still be started like normally.

The functionality makes use of the `pidof` program, so on Arch it requires the
'procps-ng' package. This is by default installed as a requirement for the
'base' package group.


Reverted changes from earlier wallpaper switch.
2025-02-14 10:48:01 +01:00
1ab2b3a94f
river: Change to swaybg for stable wallpaper setting
Multi-output wallpaper setting was never particularly stable using swww.

Using swaybg we can directly call on the 'description' of the outputs
like we do in kanshi. This makes the interface way more stable than
hoping that 'DP-3' and or 'DP-5' are discovered first. Thus, we default
to use swaybg and my screens, but if the program is not found on the
system we can still fall back to swww.
2025-02-14 10:48:00 +01:00
98dad64976
jj: Add jj insert alias for forgotten commits
Allows the user to just use the `ji` alias to quickly create a (previous) change,
commit whatever they forgot and move back to the current commit.
2025-02-14 10:48:00 +01:00
cfa59ae9df
jj: Add revset aliases 2025-02-14 10:47:54 +01:00
25c6788247
jj: Make aliased log revset default in config
Instead of aliasing the revset I am always using currently, we simply
set it to be the default for any log command. If we want a different
revset we can still supply it. Other aliases keep different revsets
(e.g. `jL` variants for `all()` revsets).
2025-02-14 10:47:54 +01:00
14e3364155
starship: Remove general custom component display 2025-02-14 10:47:53 +01:00
98c54443e9
git: Add pr alias which fetches a specific github pull request
Used like `g pr 1234` to create local pr/1234 branch.
2025-02-14 10:47:53 +01:00
43aefd2369
jj: Automatically show git diff for commit descriptions 2025-02-14 10:47:52 +01:00
9df2d06a06
nvim: Add previews for images and gifs to fzf-lua 2025-02-14 10:47:52 +01:00
0bd604298f
jj: Add git commit signing and private commits
Git commits, on push, will be signed by default (just like my git
configuration itself) but *not* every change is signed since that is a
hassle with the working copy technically also being an ever changing
git commit.

Additionally, added a private-commit option which will refuse to push
commits beginning with 'wip: ' to any remote, which is not super useful
for my current use cases but also a nice feature and fun to experiment
with for the future.
2025-02-14 10:47:51 +01:00
7922e5285f
jj: Add alias for showing a commit with description 2025-02-14 10:47:50 +01:00
2eccfe88ec
jj: Improve default log invocation
The default log invoked when hitting `j` is now composed of the working copy history as well as all
ancestors, recent commits to visible heads and the trunk.

`jl` shows the same view, only as oneline commits.
2025-02-14 10:47:50 +01:00
9f4b3b14e7 jj: Improve aliases 2025-02-07 23:10:38 +01:00
36232855cc nvim: Add hunk.nvim as jj difftool 2025-02-07 21:51:46 +01:00
d724d75bf7 nvim: Switch from telescope to fzf-lua for fuzzy picker 2025-02-07 21:18:16 +01:00
5952e32bce
git: Add pull request fetching alias
Gets a pull request for the repo by directly fetching from the pull
folder of the repository. Works perfectly with github (should also work
with gitlab, and gitea/forgejo).

Searches for a remote called github or uses the default origin one.
2025-02-07 16:45:00 +01:00
8b6e338fc2
git: Reformat config 2025-02-07 16:41:59 +01:00
8a57725f15
nvim: Limit indentscope to reasonable max lines
Stops looking for a scope after 2000 lines (instead of the default
10000).
2025-02-07 16:41:06 +01:00
d3e325db86
nvim: Fix small lsp issues 2025-02-07 16:27:50 +01:00
c4ecc41ab9
nvim: Update plugins 2025-02-07 16:04:11 +01:00
d501688031
nvim: Lazy load more plugins 2025-02-07 15:53:11 +01:00
a3a5488dcd
nvim: Add keymap to toggle rendering all images
By default we only render the image at the cursor. Should we want to
render all images instead we can now toggle this for image.nvim with
<localleader>pi.

To enable this we move the 'paste image' shortcut for prose formats onto
<localleader>pp instead.
2025-02-07 15:16:49 +01:00
9b7290c93c
jj: Use delta as diff pager 2025-02-07 15:05:24 +01:00
ebd247e765
nvim: Lazy load molten plugin 2025-02-07 15:05:23 +01:00
1e2246aa51
nvim: Disable additional builtin plugins 2025-02-07 14:36:57 +01:00
bff8f07e60
nvim: Update spellfile 2025-02-07 13:13:57 +01:00
1c49e52268
river: Update for current screen setup
HACK Still need to figure out a better way to identify and set displays.
2025-02-07 13:13:47 +01:00
3201039557
nvim: Remove leftover papis plugin comments 2025-02-07 13:13:08 +01:00
31dc3fa9b7
git: Change merge conflict to zdiff3 style 2025-02-07 13:12:47 +01:00
083ef0a6ad
zk: Move nvim wiki index opening to zk module
While technically invoking nvim, it belongs more into the zk module
since it is only to be added if zk exists.
2025-02-07 13:11:52 +01:00
fd01c8aac2
nvim: Add whichkey group for codecompanion 2025-02-06 14:10:56 +01:00
99eada00b8
nvim: Improve custom toggle terms
Added euporia term to split it from other python variations. Fixed
python command selection. Improved mapping and which key display.
Removed indentline settings since that is responsibility of indentline.
2025-02-06 14:10:55 +01:00
101937a8c2
nvim: Fix image.nvim functionality
Track master since no new version has been tagged. Change some settings
around and make installation more robust using the new lazy rocks
system.
2025-02-06 14:10:54 +01:00
9d15bc79f4
nvim: Clean up markdown/quarto key maps 2025-02-06 13:09:28 +01:00
7d616c1cb5
nvim: Improve indentscope disables
Improved conditional disabling of indentscope lines, e.g. in lazy and
mason floats, terminals and helpfiles.
2025-02-06 12:02:18 +01:00
50d78cbb2f
nvim: Overhaul prose preview keys 2025-02-05 19:05:50 +01:00
9421ef807d
nvim: Remove lsp-setup.nvim plugin
Removed the plugin since all its functionality can be replicated with an
equal amount of lines without it nowadays. Should be even simpler in the
future when we can just have individual lsp server config files in the
config dir.
2025-02-05 18:37:55 +01:00
ad3c8a6139
nvim: Lazy load completion on insert mode only 2025-02-05 18:28:51 +01:00
ba6a8c16ce
nvim: Simplify statusline python check 2025-02-05 18:28:17 +01:00
4d98c9ab46
nvim: Fix quarto jupyter kernel setup
Creates a hidden kernel file with the current filename and
'.kernel.json' suffix by default (in the file directory).
But 'JupyterStart' command can also be given an argument to use as the
filename / file path for the kernel file. That way we can also attach to
already running kernels for longer running projects.
2025-02-03 16:43:42 +01:00
6edd3143cb
nvim: Show markdown code blocks in full width 2025-02-03 16:38:38 +01:00
90161be418
nvim: Add check for local .venv python dir 2025-02-03 16:38:18 +01:00
8b5e4dc097
nvim: Do not always run ruff_fix
Ruff fix removes unused imports etc. which is sometimes more annoying
than helpful.
2025-02-01 10:46:22 +01:00
a5d28351cd
nvim: Ensure FeMaCo newline in codefence injections
When formatting femaco buffers it would sometimes remove the newline
necessary at the end of code fences to have the (```) remain on its own
line. This attempts to fix it.
2025-02-01 10:45:52 +01:00