Commit graph

1742 commits

Author SHA1 Message Date
89737536ea
jj: Revert js to simple jj status alias
I have gotten more used to using `jw` to 'show' the current changes in
the working copy, and having `js` be _both_ status and show has become
more confusing than helpful. For now, we just revert it to be a simple
alias for the status command.
2025-02-22 19:35:37 +01:00
5a9be5479d
jj: Add an alias to abandon a commit
I have begun abandoning more commits recently, so this seems a good time
to introduce an alias for it. It is not _so_ common as to require a 1 or
2-letter alias so we can go with the mnemonic `jab` for jj abandon.
2025-02-22 19:35:36 +01:00
dc7bf66052
jj: Add revset alias for current git head
Adds a very simple 'githead' revset alias. This is not much simpler than
directly invoking `git_head()` but it will remind me in the future of
its existence.
2025-02-22 19:35:36 +01:00
98dca7ec04
jj: Extend log aliases
The new log aliases follow one logic: small letters are default and
capital letters show 'all' changes. Thus, `j` defaults to showing the
simple log and `J` the same log but for all changes.
`jl` shows oneline logs, `JL` oneline logs for all changes.
`jlo` shows log summaries, `JLO` for all changes.
And finally `jloo` and `JLOO` show the details patches for each change.
2025-02-22 19:35:35 +01:00
f9d0401132
jj: Mirror edit next with edit previous alias
This new alias setup provides four quick traversal options:
Moving ahead one commit (`jen` for edit next), backwards (`jep` for edit
previous), as well as doing the same but creating new 'working copies'
instead of going directly to a commit (`jenn` and `jepp`).
2025-02-22 19:35:35 +01:00
66005a9948
jj: Switch manual commit splitting alias to use split
Currently `ji` (for jj insert) does a 'manual' `jj split` by creating an
empty commit underneath, squasing interactively and then moving back to
the original. All of that is done by the existing `jj split` command.

So we simply use it. I am keeping the `ji` alias for now, could still be
'jj insert' or 'jj spl(I)t' I suppose.
2025-02-22 19:35:34 +01:00
612b92d148
jj: Make private commit matching case insensitive
Whether you prefix your commit with 'WIP:' or 'wip:',
'private:' or 'PRIVATE:' it will be caught.
2025-02-22 19:35:34 +01:00
86306afc08
qutebrowser: Manually redirect to FOSS genius frontends
Since farside linking currently does not work we take the work into our
own hands.
2025-02-22 19:35:33 +01:00
dc1a02ebeb
jrnl: Move default location to be under notes 2025-02-22 19:35:32 +01:00
18ce017b8a
nvim: Add djot filetype to prose plugins
Since it is (basically) markdown, we add it to markdown-like filetypes.
2025-02-18 22:41:41 +01:00
395bf80abe
zk: Fix note dir location and add cd alias
The note dir is in fact our `$WIKIROOT` so we set it to that by default.
Also took the chance and added a small 'cd' command into the note dir,
using `ncd`
2025-02-18 22:41:40 +01:00
65bb7aa034
nvim: Add djot filetype detection 2025-02-18 22:41:39 +01:00
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