mirror of
https://gitlab.com/EternalWanderer/voidcruiser.nl
synced 2025-06-08 14:14:24 +02:00
Initial commit with whole thing in Hugo
This commit is contained in:
commit
e3eb14eded
15 changed files with 323 additions and 0 deletions
79
content/rambles/browsers.md
Normal file
79
content/rambles/browsers.md
Normal file
|
@ -0,0 +1,79 @@
|
|||
---
|
||||
title: Browsers
|
||||
date: 2022-04-04T02:54:33+02:00
|
||||
author: $HUMANOID
|
||||
description: "A little ramble mainly about browsers with Vi-like bindings"
|
||||
tags: ["vim", "linux", "technology"]
|
||||
---
|
||||
|
||||
# Web Browsers With Vim Bindings
|
||||
|
||||
If there's one thing I like it's Vim bindings everywhere.
|
||||
Since all Vim browser extentions suck on some level, the remaining choice I have is to use browser with built in vim bindings.
|
||||
To that end, there are technically a few options.
|
||||
|
||||
Those being:
|
||||
|
||||
- [Qutebrowser](https://qutebrowser.org)
|
||||
- [Vieb](https://vieb.dev)
|
||||
- [Vimb](https://fanglingsu.github.io/vimb)
|
||||
- [Nyxt](https://nyxt.atlas.engineer)
|
||||
|
||||
These projects are great but all have their problems.
|
||||
Let's go through them bottom-to-top.
|
||||
|
||||
## Nyxt
|
||||
|
||||
Nyxt is written in Common Lisp, making it very easy to hack on.
|
||||
Supports either QtWebEngine or WebKitGTK.
|
||||
It also appeals more to the Emacs world then the Vim world.
|
||||
Much like Emacs, Nyxt _does_ have the option of Vim bindings, but they feel somewhat half baked.
|
||||
Then there is the problem of what little interface there is not being particularly clear.
|
||||
To be fair, I haven't really given it a proper shot because it's configured on Common fucking Lisp.
|
||||
Not being much of an Emacs user, I have little to no interest in learning Lisp to configure a browser.
|
||||
|
||||
## Vimb
|
||||
|
||||
The suckless option.
|
||||
|
||||
Uses WebKitGTK.
|
||||
Is written in C and configured in a vimscript-esque syntax.
|
||||
The thing that turns me off from this browser is it being _too_ suckless.
|
||||
It almost feels like surf with a slightly more accessible way of configuring it through something that _isn't_ a header file.
|
||||
|
||||
Practical reasons that prevent me from using it are the lack of proper ad blocking and tabs.
|
||||
By default, it also uses the number keys for URL hinting instead of the home row.
|
||||
It also has similar performance to suckless' surf
|
||||
In other words, it takes quite a long time to load pages, especially if they contain a large amount of JavaScript (though you shouldn't be visiting those pages unless strictly necessary) and rather quickly hogs quite a lot of resources.
|
||||
|
||||
## Vieb
|
||||
|
||||
An Electron based browser.
|
||||
|
||||
Say whatever you want about Vimb's performance, but Vieb makes Google Chrome seem like a well balanced product.
|
||||
I've seen it eat 25% of a CPU thread with a single tab containing nothing but the Vieb documentation.
|
||||
|
||||
It has a rather pretty interface and could (if the github page is to be believed) be used to interact with other Electron applications like the Discord client as if it were ran natively (don't quote me on that, I'm too lazy to check and probably wrong).
|
||||
|
||||
## Qutebrowser
|
||||
|
||||
Which brings us here.
|
||||
Qutebrowser is written and configured in Python; and uses the QtWebEngine.
|
||||
It's extremely flexible and easy to configure.
|
||||
It has reasonable ad blocking that allows for the addition of blocklists in a plain text file.
|
||||
A problem I have with it are that I can't choose which JavaScript elements to block and which to allow, like UMatrix.
|
||||
But then I did see plans to add support for Firefox extensions which would solve this problem.
|
||||
Another minor gripe I have is that scrolling through long pages can look a little sluggish.
|
||||
|
||||
With these changes and (if it weren't a gigantic nightmare) Gecko support, it would be the perfect browser for me.
|
||||
|
||||
# Other Web Browsers
|
||||
|
||||
When I need to use a site that requires some JS, but still functions without enabling everything, my choice of browser is either Librewolf or a heavily configured Firefox.
|
||||
|
||||
From there I use the following list of extensions to make the web usable:
|
||||
|
||||
- [vim-vixen](https://github.com/ueokande/vim-vixen)
|
||||
- [uBlockOrigin](https://github.com/gorhill/uBlock) (Installed by default on Librewolf)
|
||||
- [redirector](https://github.com/einaregilsson/Redirector)
|
||||
- [ToS;DR](https://github.com/tosdr/browser-extensions)
|
73
content/rambles/vim.md
Normal file
73
content/rambles/vim.md
Normal file
|
@ -0,0 +1,73 @@
|
|||
---
|
||||
title: Vim
|
||||
date: 2022-03-21T01:17:06+02:00
|
||||
author: $HUMANOID
|
||||
tags: ["technology", "linux", "vim"]
|
||||
---
|
||||
|
||||
# Vim Cheat sheet
|
||||
|
||||
This is a little Vim cheat sheet with thing people generally don't seem to be particularly familiar with when it comes to Vim.
|
||||
This is about Vim, not NeoVim, but I most things with still apply to NeoVim.
|
||||
|
||||
## Self-explanatory things
|
||||
These are a few bindings that I don't feel require an extensive explanation.
|
||||
|
||||
| binding | action |
|
||||
| --- | --- |
|
||||
| Z Z | write and quit; equivalent to :wq |
|
||||
| Z Q | quit; equivalent to :q! |
|
||||
| :x | write and quit; equivalent to :wq |
|
||||
| g u | swap characters to lower case |
|
||||
| g u u | swap characters to lower case on current line |
|
||||
| g U | swap characters to upper case |
|
||||
| g U U | swap characters to upper case on current line |
|
||||
| g {j,k} | if the current line you're on spans more then the width of your screen, go down to the portion that's past the linebreak |
|
||||
| ~ | toggle case |
|
||||
| z g | add word to current dictionary |
|
||||
| [ s | highlight previous misspelled word |
|
||||
| ] s | highlight next misspelled word |
|
||||
| z = | open spelling suggestions based on current dictionary and highlighted word |
|
||||
| . | repeat last modify operation |
|
||||
| ; | repeat last move operation |
|
||||
|
||||
## Splits and Terminals
|
||||
You can split your vim window with somewhat Emacs-like chords by default; I don't bother changing them because I use with quite a few different computers, not all of which have my Vim dotfiles installed.
|
||||
|
||||
| binding | action |
|
||||
| --- | --- |
|
||||
| C-w s | Horizontal split |
|
||||
| C-w v | Vertical split |
|
||||
| C-w {h,j,k,l} | Move focus to split {left,down,up,right} |
|
||||
| C-w S-{h,j,k,l} | Move split to {left,down,up,right} |
|
||||
|
||||
Another usefull thing I don't see a lot of people do is open a terminal session in vim.
|
||||
This can be really quite useful if you quickly need to change or check something.
|
||||
You do this with the `:terminal` command.
|
||||
In Vim, this will horizontally split your current window and open a terminal session in the top half.
|
||||
(Yes, you can also open Vim sessions in these terminal sessions if you feel like it).
|
||||
You can navigate to and from it just like any other splits.
|
||||
In NeoVim terminals are handled significantly worse and is the main reason I went back to base Vim.
|
||||
|
||||
## Tips
|
||||
|
||||
Something I came across some time ago is that you can interpet the current line with whatever you want using
|
||||
```
|
||||
:.!<interpeter>
|
||||
```
|
||||
So for instance running...
|
||||
```
|
||||
:.!bash
|
||||
```
|
||||
...while highlighting the line...
|
||||
``` bash
|
||||
echo Line{1..5} | sed 's/ /\n/g'
|
||||
```
|
||||
...will result in:
|
||||
```
|
||||
Line1
|
||||
Line2
|
||||
Line3
|
||||
Line4
|
||||
Line5
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue