move to hugo

This commit is contained in:
Luke Smith 2023-01-19 20:11:26 -05:00
parent 52d28bd439
commit 1c7878843c
38 changed files with 855 additions and 221 deletions

4
.gitignore vendored
View File

@ -1 +1,3 @@
web
.hugo_build.lock
public
themes

6
archetypes/default.md Normal file
View File

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

10
config.toml Normal file
View File

@ -0,0 +1,10 @@
baseURL = 'https://larbs.xyz/'
languageCode = 'en-us'
title = 'LARBS'
theme = 'lugo'
[markup]
[markup.goldmark]
[markup.goldmark.renderer]
unsafe = true

67
content/_index.md Normal file
View File

@ -0,0 +1,67 @@
---
title: "LARBS"
layout: single
---
{{< img src="/pix/larbs.png" class=normal >}}
LARBS is an efficient shell script that will install a fully-featured tiling window manager-based system on any Arch or [Artix](https://artixlinux.org) Linux-based system, without any of the routine of manual post-install processes and configuration.
## Two types of LARBS users
Is LARBS for you? Probably yes. I don't know how else you would've found this site. The script is for two types of people:
1. People who already know their stuff and just want to automate installing a system without doing the boring stuff you've done a million times.
2. Novices who want to use and learn about a leet hackerman computer setup like those in the movies for either efficiency or looking cool.
No actual phonies allowed though.
The goal of the system for novices is helping you understand how a good Unix system works and how it is modified.
I give huge amounts of documentation for this, but this is not a hand-holding distro that does things automatically for you.
Instead, you realize how easy it is to set things up automatically yourself.
## Installation
On a fresh installation of Arch Linux or Artix Linux, run the following:
```fish
curl -LO larbs.xyz/larbs.sh
sh larbs.sh
```
LARBS will then guide you through installation, which is typically relatively snappy. On my slow internet, it takes around 10 minutes.
Note that the LARBS scripts will not partition any drives or wipe anything, **but** when it deploys the dotfiles, it will overwrite any preexisting files: e.g. the LARBS bashrc will replace your old bashrc, etc. To avoid even this risk, you can tell LARBS to install for a new username and nothing will be overwritten.
## No un-features
- No proprietary software or spyware.
- No snaps or flatpaks or Mac-lite garbage. GNU/Linux the way it's supposed to be.
- No branding cringe. Once you run LARBS, you have **your own** system, not mine!
## Programs
Here are the main programs, all with extra information here:
- [dwm](/dwm) -- the main graphical environment
- [st](/st) -- the terminal
- [dwmblocks](/dwmblocks) -- statusbar
- [zsh](zsh) -- the shell
- [Librewolf](librewolf) with the Arkenfox.js -- browser
- [lf](/lf) -- file manager
- [neomutt](/neomutt) -- email
- [abook](/abook) -- extensible address book
- [ncmpcpp](/ncmpcpp) -- music
- [newsboat](newsboat) -- RSS feeds and news
- [htop](htop) -- to look cool in screencaps... err... system monitor
- [mpv](/mpv) -- video player
- sxiv -- image viewer
## Learning the system is fun and easy!
You can figure out about the system in a lot of different ways:
- LARBS has a built-in readme document and list of all the many efficient keybindings that you can read [here](/larbs-dwm.pdf). By pressing <kbd>super + F1</kbd> at any time while in the system you can read this document.
- The many illustrative videos on [Luke's YouTube channel](https://youtube.com/lukesmithxyz), some of which are easily watchable in LARBS by pressing <kbd>super + F2</kbd>.
- The documentation on the <a href="https://github.com/lukesmithxyz/voidrice">Github</a> page.
- By just installing it and diving in!

50
content/abook.md Normal file
View File

@ -0,0 +1,50 @@
---
title: "Abook"
date: 2023-01-17T11:54:20-05:00
draft: true
---
The address book.
Why let Google or Apple keep your contacts? Keep an archive on your computer and export them when you need them.
Abook is a minimal and local store of your contacts, including emails, phone numbers, addressess and whatever you might need.
Abook integrates with neomutt's autofill as well and you can script more functionality into it.
## Documentation
`man abook`
## Running
Press <kbd>super + shift + e</kbd> or run `abook` in the terminal.
## Bindings
Thankfully, abook is self-documenting: press <kbd>?</kbd> at any time to see its binds. Here are some of the most common:
- <kbd>a</kbd> -- add a contact.
- <kbd>j</kbd>/<kbd>k</kbd> -- move up and down.
- <kbd>enter</kbd> -- enter a contact.
- <kbd>h</kbd>/<kbd>l</kbd> -- (on a contact page) move from tab to tab.
- <kbd>0-9</kbd> -- (on a contact page) edit/change contact information in a field.
- <kbd>d</kbd> -- delete a contact.
- <kbd>D</kbd> -- duplicate a contact.
- <kbd>S</kbd> -- sort existing contacts.
## Extending
Using with email
: abook works out of the box with [neomutt](/neomutt). In neomutt, when you compose a new message, if you press tab, neomutt will automatically tab-complete from your abook contacts.
Using telephone numbers
: There are some services that offer computer-based calling. Since abook can export a list of contacts with data, you can use programs like dmenu to select one you want:
```fish
abook --convert --infile ~/.abook/addressbook --outformatstr="\!{name} {mobile}" --outformat=custom | dmenu -i -l 30
```
This can easily be integrated into a script.
## Links
- [website](https://abook.sourceforge.io/)
- GPLv2

22
content/dwm.md Normal file
View File

@ -0,0 +1,22 @@
---
title: "dwm"
date: 2023-01-19T09:55:19-05:00
---
dwm (the dynamic window manager) is the backbones of LARBS and its graphical environment.
## Using
LARBS has built-in documentation for dwm, which can be obtain by pressing `super + F1` or by clicking the small ❓ in the top right corner.
If you're viewing this online, [click here to see the pdf](/larbs-dwm.pdf) which is a full guide to dwm.
That should be your guide for upping your dwm power-level, but here are some generalities:
- dwm automatically tiles windows by the pattern of your choosing, and most active windows are given visual preference. You can turn off tiling if you need, or float individual windows.
- Everything is a keybinding, including all the main programs used in LARBS. The goal is to minimize the distance between mind and matter, so that computing becomes reflexive: you can think up an email to send, and have it sent in 10 seconds.
## Source code
- [dwm for LARBS](https://github.com/lukesmithxyz/dwm)
- [original build of dwm](https://dwm.suckless.org)

68
content/dwmblocks.md Normal file
View File

@ -0,0 +1,68 @@
---
title: "dwmblocks"
date: 2023-01-19T09:15:59-05:00
---
dwmblocks is the statusbar command which hosts many customizable and extensible modules.
{{< img src="/pix/dwmblocks.png" class=normal link="/pix/dwmblocks.png" caption="dwmblocks and its weather forecast, doppler radar and Bitcoin price monitors open." >}}
## Using
dwmblocks runs automatically when dwm starts, appearing as many modules in the top right, and will update as needed.
Right click on the active modules for an informational message about them.
Left and middle clicking, and sometime scrolling, often have some functional reaction, like bringing up a relevant program.
## Modules
There are modules for time and date, laptop battery, internet and volume that should be self-explanatory.
There are also modules a three-day weather forecast from [wttr.in](https://wttr.in) and the module with a 🌅 even allows you to view a Doppler RADAR of your chosen location.
There are other user-submitted modules, for IP locations, keyboard selection, memory and CPU monitoring and more.
## Files
- `~/.local/src/dwmblocks/` -- the source code.
- `~/.local/src/dwmblocks/config.h` -- where modules can be added. You can open this file automatically by shift right clicking on the status bar.
- `~/.local/bin/statusbar/` -- the scripts made for the statusbar. Note that not all are activated by default and you can add new ones as desired. You can also open an individual module's script by shift left clicking on the module.
## Signals and updating
In the `config.h` file, you will notice that each statusbar module should have a unique "Update Signal."
For modules that need to update at set events, you
For example, the `sb-volume` module has the update signal `10` by default. If we manually run the command:
```fish
wpctl set-volume @DEFAULT_AUDIO_SINK@ 3%+
```
This happens to increase the volume, but the module *does not* update with the new volume by default.
We also want to signal to dwmblocks to update this module by sending it signal `10`:
```fish
pkill -RTMIN+10 dwmblocks
```
This will now update the module.
Although, `pkill` is slightly slower than the command `kill`, which can make a big difference if we are making semi-frequent changes in a script. To signal with `kill`, we must send the value **plus 34**.
Just remember 34.
So `10 + 34 = 44`, so we use this command:
```fish
kill -44 $(pidof dwmblocks)
```
(Note also we send the signal to the process ID of dwmblocks as well.)
## Source code
- [The build for LARBS](https://github.com/lukesmithxyz/dwmblocks)
- [the original dwmblocks](https://github.com/torrinfail/dwmblocks)
- ISC License.

43
content/htop.md Normal file
View File

@ -0,0 +1,43 @@
---
title: "htop"
date: 2023-01-19T10:38:41-05:00
---
htop is an absolutely useless program.
{{< img src="/pix/htop.png" link="/pix/htop.png" class=normal >}}
## What is htop?
htop is theoretically a system-monitor program, but no one uses it for that.
What it actually is is a program that produces a bunch of smart-looking and multicolor lines and shapes with important-seeming process names.
This is the ultimate weapon against impressionable normies if you want to impress them by pretending to be some kind of hacker.
htop is only found (1) in screencaps to show your "set-up" to other losers on the internet and (2) when a normie girl is nearby to hopefully goad her into a conversation you were otherwise too awkward to initiate yourself.
## You wouldn't do it in Windows.
Look at how stupid this image looks.
{{< img src="/pix/windows-htop.jpg" link="/pix/windows-htop.jpg" class=normal >}}
"Oh what, he just pulled up some command prompts, a file browser and a system monitor? Why? Is he actually doing something with those empty prompts? Why does he need a system monitor filling up a third of his screen for this alleged work he's doing?"
All sensible questions that a person naturally asks when he sees the familiar world of Windows.
Yet for newfriends who HECKIN' LOVE GNU/LINUX, for what ever reason, they do the same stuff, take a screencap of it and post it.
This is only possible because even of those people use use GNU/Linux, even in a fancy tiling window manager, so many of them are still struggling to figure things out, so a couple htop windows and a silly file manager open and the brain degrades to a lower, confusion-induced operating level which makes it fawn at the mystery of it.
I mean really---obviously I think tiling window managers are useful, that's what LARBS is about, but when you are *actually working on something* do you *ever* have more than three windows tiled on the same workspace at one time?
Seriously, for most things, I have one thing per workspace unless another prompt is strictly visually necessary. Three or *maybe* four is definitely the maximum.
So it goes without saying that people who pull up seven windows and some pics of anime girls baking pancakes are not doing anything with their computers looking like that.
## Running
Run `htop` by typing it in the terminal.
I even bound it to <kbd>super + shift + r</kbd> just for fun because I wasn't using that key for anything important.

54
content/lf.md Normal file
View File

@ -0,0 +1,54 @@
---
title: "lf"
date: 2022-12-21T17:07:04-05:00
---
lf is the file manager used in LARBS.
It was original inspired by the program ranger, but unlike ranger, lf is written in Go instead of Python, so is significantly snappier and adds better features for interaction between different lf instances.
{{< img src="/pix/lf.png" class=normal caption="Note that lf uses ueberzug to produce previews of images, or here, a .pdf." >}}
## Running
Run lf by pressing <kbd>super + r</kbd>, or type `lf` manually in the termianl.
## Bindings
- <kbd>h</kbd>, <kbd>j</kbd>, <kbd>k</kbd> <kbd>l</kbd> (vim keys) to move around and enter directories and open files.
- <kbd>g</kbd>, <kbd>G</kbd>, <kbd>ctrl-d</kbd>, <kbd>ctrl-u</kbd> -- movement like in vim.
- <kbd>w</kbd> -- drop into a terminal in the current directory. If you `exit` or press <kbd>ctrl-d</kbd> in the termianl, you will return to `lf`.
- <kbd>ctrl-n</kbd> -- new directory.
- <kbd>V</kbd> -- new file with `nvim`.
- <kbd>space</kbd> -- select files:
- <kbd>d</kbd> -- cut files to lf's clipboard.
- <kbd>y</kbd> -- yank files to lf's clipboard.
- <kbd>p</kbd> -- paste/move copied/cut files.
- <kbd>C</kbd> -- copy selected files to a bookmarked directory.
- <kbd>M</kbd> -- move selected files to a bookmarked directory.
- <kbd>Y</kbd> -- copy text names of selected files to the system clipboard.
- Renaming files:
- <kbd>c</kbd> -- rename the selected file.
- <kbd>A</kbd> -- rename the selected file, starting at end.
- <kbd>a</kbd> -- rename the selected file, starting after the extension.
- <kbd>I</kbd> -- rename the selected file, starting at beginning.
- <kbd>i</kbd> -- rename the selected file, starting before extension.
- <kbd>B</kbd> -- **bulk rename**: use vidir to mass edit all files in the directory.
- <kbd>s</kbd> -- sort files by a different metric.
- <kbd>z</kbd> -- show extra data or hidden files.
This list is not necessarily exhaustive. See `man lf` and the lf configuration file for more.
## lf's configuration files
- `~/.confif/lf/lfrc` -- The main lf configuration.
- `~/.config/lf/scope` -- The file that determines which commands generates previews for files.
The other files in the `~/.config/lf/` directory are run automatically when needed.
---
## Notes
Notice that `alias lf` will tell you that technically you are running the
wrapper script `lfub` when you run `lf`. This has to do with `ueberzug`, the
program that generates image previews.

33
content/librewolf.md Normal file
View File

@ -0,0 +1,33 @@
---
title: "Librewolf"
date: 2023-01-19T08:51:04-05:00
---
Librewolf is a version of Firefox with Mozilla's odious spyware removed.
## Running
Press <kbd>super + w</kbd> or run `librewolf` in dmenu.
## Improvements to Librewolf in LARBS
### Arkenfox's user.js
With LARBS, [Arkenfox's user.js](https://github.com/arkenfox/user.js) is installed by default.
This is a set of default settings that set settings that increase user privacy and decrease the possibility of fingerprinting.
### Other tweaks
Other annoying Firefox features have been disabled, such as push notifications and the pocket.
With any of these settings or the Arkenfox ones, they can be changed in `about:config`.
### Add-ons
Several add-ons come installed by default.
Note that they can be immediately enabled by the user in the top right corner, but might not come enabled.
- [uBlock Origin](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/) -- ad-blocker.
- [Decentraleyes](https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/) -- third-party tracking protection.
- [I still don't care about cookies](https://addons.mozilla.org/en-US/firefox/addon/istilldontcareaboutcookies/) -- removes those stupid cookie notifications that the EU forced on us.
- [Vim Vixen](https://addons.mozilla.org/en-US/firefox/addon/vim-vixen/) -- vim key-bindings.

45
content/mpv.md Normal file
View File

@ -0,0 +1,45 @@
---
title: "mpv"
date: 2023-01-17T11:39:29-05:00
draft: true
---
mpv is a video-player so simple, it really just shows the video.
It is controlled by the keyboard and only shows even the progress bar and other interfaces when needed.
It is also used in LARBS to play single audio files if [mpd](/mpd) is not used.
## Documentation
`man mpv`
## Running
mpv is opened automatically when you select a video or audio file to open from [lf](/lf) or another program.
Obviously you can run it from the command line by running `mpv filename.mp4`, etc.
## Bindings
These are custom bindings for ease:
- <kbd>h</kbd>/<kbd>l</kbd> -- jump back/foward 10 seconds.
- <kbd>j</kbd>/<kbd>k</kbd> -- jump back/foward 60 seconds.
- <kbd>space</kbd> -- toggle pause.
- <kbd>S</kbd> -- toggle subtitles.
- <kbd>o</kbd> -- briefly view progress bar and time.
- <kbd>O</kbd> -- toggle time visibility.
- <kbd>i</kbd> -- show file and video information.
## Configuration
- `~/.config/mpv/input.conf` -- key bindings.
- `~/.config/mpv/` -- many other plugins can be added to mpv.
## Other
- If you download films, I recommend installing the program `subdl`, which you can run on a movie file and it will automatically check online for subtitle files. Give it the `-i` option to choose from the closest matches if the first result is slightly off.
- The LARBS binding <kbd>super + shift + P</kbd> will not only pause you music played in `mpd`, but also all audio/video instances of `mpv`.
- Press <kbd>super + F11</kbd> to see your webcam. This uses an instance of `mpv` as well.
GPLv2

42
content/ncmpcpp.md Normal file
View File

@ -0,0 +1,42 @@
---
title: "Ncmpcpp"
date: 2023-01-16T22:24:03-05:00
---
ncmpcpp is the main music player that interacts with the [music player daemon](/mpd).
ncmpcpp stands for *NCurses Music Player Client ++*.
Yes. I'm sorry it's unpronounceable, but it's the best at what it does...
{{< img src="/pix/ncmpcpp-02.png" class=normal >}}
## Running
Press <kbd>super + m</kbd>, or type `ncmpcpp` in the terminal.
For ncmpcpp to run, you should have [mpd](/mpd) set up and have audio files in your mpd directory.
## Bindings
Firstly, ncmpcpp has many different screens accessible through the number keys <kbd>1</kbd> to <kbd>8</kbd>. The most important of these have also been mapped to mneumonic letter keys:
- <kbd>m</kbd> -- main music library (press key again to alternate album/album artist views).
- <kbd>v</kbd> -- visualizer.
- <kbd>f</kbd> -- library by directory structure.
- <kbd>t</kbd> -- tagger.
- <kbd>s</kbd> -- detailed search.
- <kbd>1</kbd> -- current playlist.
{{< img src="/pix/ncmpcpp-03.png" class=normal >}}
- <kbd>h</kbd>/<kbd>j</kbd>/<kbd>k</kbd>/<kbd>l</kbd> -- navigate the music library view or select directories and songs.
- <kbd>enter</kbd> -- add selected to playlist and play now.
- <kbd>space</kbd> -- add to end of playlist.
- <kbd>.</kbd> -- show/download lyrics.
## Configuration
- `~/.config/ncmpcpp/config` -- main file controlling formatting and colors and other details.
- `~/.config/ncmpcpp/bindings` -- file customizing key bindings.

94
content/neomutt.md Normal file
View File

@ -0,0 +1,94 @@
---
title: "Neomutt"
date: 2023-01-16T16:15:58-05:00
---
Neomutt is a fast terminal-based email client.
{{< img src="/pix/neomutt.png" class=normal >}}
## Setup with Mutt Wizard
Use [mutt-wizard](https://muttwizard.com) (`mw`) to add mail accounts. This is already installed on LARBS. Added accounts will be accessible from neomutt. To add your first account, just run the following:
```fish
mw -a your@email.com
```
Once you have installed accounts, sync them with the command `mailsync`, or by pressing <kbd>super + F8</kbd>.
## Running
Press <kbd>super + e</kbd> or type `neomutt` manually in the terminal.
## Bindings
Note also that neomutt automatically documents itself: you can press <kbd>?</kbd> at any time in the program and you will see a list of all shortcuts for the screen you are on.
### In the mail index...
- <kbd>j</kbd>, <kbd>k</kbd> -- move up and down in mail.
- <kbd>l</kbd> or <kbd>enter</kbd> -- open mail, or return to index.
- <kbd>h</kbd> or <kbd>esc</kbd> -- return from mail to index.
- <kbd>m</kbd> -- compose new mail.
- <kbd>r</kbd> -- reply to selected mail.
- <kbd>R</kbd> -- reply all to selected mail.
- <kbd>ctrl-j</kbd>/<kbd>ctrl-k</kbd> -- move up or down in the sidebar.
- <kbd>ctrl-o</kbd> -- open the box highlighted in the sidebar.
- <kbd>space</kbd> -- select mail. (See below).
mutt-wizard automatically sets automatic binds to move to or move mail to other boxes. Press one of these keys:
- <kbd>g</kbd> -- go to...
- <kbd>M</kbd> -- move selected mail to...
- <kbd>C</kbd> -- copy selected mail to...
And then follow it with one of these keys:
- <kbd>i</kbd> -- ...the inbox.
- <kbd>d</kbd> -- ...drafts.
- <kbd>s</kbd> -- ...the sent box.
- <kbd>a</kbd> -- ...the archive.
- <kbd>j</kbd> -- ...junk.
### With mail open...
Some binds above are shared.
- <kbd>j</kbd>/<kbd>k</kbd> -- scroll up and down.
- <kbd>J</kbd>/<kbd>K</kbd> -- next or previous mail.
- <kbd>v</kbd> -- view attachments. This can be used for opening annoying HTML ad emails in the browser. You can also save the selected attachment with <kbd>s</kbd>.
### On the compose screen...
- <kbd>a</kbd> -- attach a file.
- <kbd>m</kbd> -- edit highlighted attachment in text editor.
- <kbd>S</kbd> -- choose to sign or encrypt mail (usually with PGP).
- <kbd>y</kbd> -- send mail.
## Configuration
- `~/.config/mutt/muttrc` -- main configuration file
- `~/.config/mutt/accounts/` -- where mutt-wizard will put account-specific configuration files, named after your email addresses
- `~/.local/share/mail/` -- where your mail is stored.
## Extending
Neomutt is one of the most extensible programs on the planet. I am constantly surprised by what you can do with it. If you are ever bored, yet hungry for efficiency, check out the neomutt and neomuttrc manuals.
One nice little thing is how widely aliases can be used. For example, we can add a line like this to our muttrc:
```muttrc
alias besties luke@email.com, richard@email.com, linus@email.com
```
This aliases the sequence `besties` to the following text/email addresses. So we can just type `besties` as a recipient of a mail, and the other addresses will be filled in.
Note also that neomutt is configured to tab complete contact information stored with [abook](/abook) automatically.
## Documentation
`man neomutt` or `man neomuttrc`.
[Mutt/Neomutt on the ArchWiki](https://wiki.archlinux.org/title/Mutt)

45
content/newsboat.md Normal file
View File

@ -0,0 +1,45 @@
---
title: "Newsboat"
date: 2023-01-19T11:37:10-05:00
---
Newsboat is an RSS-reader.
A normal person asks: "What is an RSS reader?"
It's a way to follow sites and social media updates without needing social media.
## Documentation
`man newsboat`
## Running
Press <kbd>super + shift + n</kbd> or run `newsboat` in the terminal.
## Bindings
- <kbd>j</kbd>/<kbd>k</kbd> -- move up and down.
- <kbd>enter</kbd> -- enter feed or article.
- <kbd>q</kbd> -- return to previous screen or quit.
- <kbd>h</kbd>/<kbd>l</kbd> -- open feed or return (same as <kbd>q</kbd> and <kbd>enter</kbd>).
- <kbd>a</kbd> -- mark as read.
- <kbd>n</kbd> -- go to next unread.
- <kbd>A</kbd> -- mark all as read.
- <kbd>,,</kbd> -- open the main link of an article. (Usually opens in a browser, or if a video, will play the video in [mpv](mpv).)
- <kbd>u</kbd>/<kbd>d</kbd> -- page up and down.
- <kbd>g</kbd>/<kbd>G</kbd> -- go to top or bottom of screen.
To follow a visible link, use the [st](st) binding <kbd>alt + l</kbd>, or to just copy it, <kbd>alt + k</kbd>.
## Files
- `~/.config/newsboat/urls` -- the file holding your RSS feeds. Add URLs here to make them appear in newsboat. Open itquickly by typing `cfu` in the terminal.
- `~/.config/newsboat/config` -- the general newsboat config. Type `cfn` in the terminal. You can set granulated coloring and effects here, as well as change key bindings.
- `~/.local/bin/linkhandler` -- the opener file used by newsboat for dealing with URLs with the <kbd>,,</kbd> binding. This can be modified as needed. By default, it opens normal URLs in a browser, opens videos with [mpv](mpv), downloads audio/podcast files and downloads and opens images with [sxiv](sxiv), etc.
## Links
- [newsboat website](https://newsboat.org/)
- MIT License

56
content/programs.md Normal file
View File

@ -0,0 +1,56 @@
---
title: "Programs"
date: 2023-01-16T14:32:25-05:00
draft: true
---
## dwm
The **D**ynamic **W**indow **M**anager.
This is the window manager that tiles and organizes windows and binds keybindings.
[dwm used in LARBS](https://github.com/lukesmithxyz/dwm)
MIT License
## lf
The file browser.
An extremely fast file manager written in Go.
Originally inspired by the program ranger, and working in a similar way, lf has now surpassed its slower master in interactivity and functionality.
[source code](https://github.com/gokcehan/lf)
MIT License
## neomutt
The email client.
LARBS also comes with the [mutt-wizard](https://muttwizard.com) script, which does the annoying task of configuring mail accounts with mutt and even easily allows offline email storage for fast, local processing and indexing of mail.
[website](https://neomutt.org/), [source code](https://github.com/neomutt/neomutt)
GPLv2
## abook
The address book.
Why let Google or Apple keep your contacts? Keep an archive on your computer and export them when you need them.
Abook is a minimal and local store of your contacts, including emails, phone numbers, addressess and whatever you might need.
Abook integrates with neomutt's autofill as well and you can script more functionality into it.
[website and source code](https://abook.sourceforge.io/)
GPLv2
## mpv
## ncmpcpp/mpd
mpd is a music player daemon, and ncmpcpp is a client for it.

40
content/st.md Normal file
View File

@ -0,0 +1,40 @@
---
title: "st"
date: 2023-01-19T10:02:07-05:00
---
st (the simple terminal) is a simple terminal.
{{< img src=/pix/st.png link=/pix/st.png caption="Doesn't get simpler than this." class=normal >}}
## Running
Press <kbd>super + enter</kbd> for a basic terminal window.
## Documentation
`man st`
## Bindings
- <kbd>alt + j/k</kbd>/<kbd>alt + Up/Down</kbd>/<kbd>alt + mouse wheel</kbd> -- scroll up or down in the terminal history.
- <kbd>alt + u/d</kbd>/<kbd>alt + pageup/pagedown</kbd> -- faster scroll.
- <kbd>alt + shift + j/k</kbd> -- decrease or increase font size.
- <kbd>alt + c</kbd> -- copy selected text to clipboard.
- <kbd>shift + insert</kbd> -- paste clipboard contents.
- <kbd>alt + l</kbd> -- **open a link/URL**: pulls all URLs from terminal and allows you to pick one to open via dmenu.
- <kbd>alt + y</kbd> -- copy a link/URL: same as above, but copies the URL.
- <kbd>alt + o</kbd> -- **copy the output from a recent command.**
- <kbd>alt + a/s</kbd> -- decrease/increase transparency.
## Readline
Note that readline will use vim bindings by default.
Technically this is not part of `st`, but people get it confused.
If you don't like it, remove the `bindkey -v` line from the [zsh](/zsh) configuration.
## Source Code
- [st for LARBS](https://github.com/lukesmithxyz/st)
- [original st at suckless's website](https://st.suckless.org)
- MIT License

24
content/zsh.md Normal file
View File

@ -0,0 +1,24 @@
---
title: "Zsh"
date: 2023-01-19T10:24:07-05:00
---
zsh is the shell used by LARBS.
## Files
- `~/.config/zsh/.zshrc` -- the main zshrc file. Run `cfz` in the terminal for quick access.
- `~/.config/shell/aliasrc` -- a separate file called by the zshrc for loading aliases that might be shared in common with bash or other shells. This is kept separate merely for organizational purposes. You can add aliases to this file or the zsh file. Run `cfa` for quick access. By default, it mostly sets aliases that will yield more colorful output and verbosity in interactive shells.
- `~/.zprofile` -- the profile file, where environmental variables are set. This is only run on login. Do not put your custom settings here unless you know what you are doing.
- `~/.config/shell/inputrc` -- This file shouldn't be edited, but contains special settings for the vi-mode in zsh that allow you to clear the screen with <kbd>ctrl + l</kbd> and also to have a different cursor for each mode: a thick bar for normal mode and a thin line for insert.
## Little features
- Press <kbd>ctrl + o</kbd> to open a special instance of [lf](/lf). It works like normal lf, but if you press <kbd>q</kbd> to quit, zsh will automatically change directory to the directory you ended up in. Useful to quickly navigate directories without typing.
- <kbd>ctrl + f</kbd> -- use `fzf` to search for a file deep in this directory structure. Selecting it will change the directory to where it is.
- <kbd>ctrl + a</kbd> -- open an instance of `bc` to do some arithmetic if needed. Press <kbd>ctrl + d</kbd> to exit.
## Source code
- [website](https://zsh.sourceforge.io/)
- Permissive license with copyleft components

View File

@ -0,0 +1,49 @@
<!DOCTYPE html>
<html lang="{{ .Site.Language }}">
<head>
<title>{{ if not .IsHome }}{{ .Title }} | {{ end }}{{ .Site.Title }}</title>
<link rel="canonical" href="{{ .Site.BaseURL }}">
<link rel='alternate' type='application/rss+xml' title="{{ .Site.Title }} RSS" href='/index.xml'>
<link rel='stylesheet' type='text/css' href='/style.css'>
{{ with .Site.Params.favicon }}<link rel="icon" href="{{ . }}">
{{ end -}}
<meta name="description" content="{{ with .Params.description }}{{ . }}{{ else }}{{ .Summary }}{{ end }}">
{{ if isset .Params "tags" }}<meta name="keywords" content="{{ with .Params.tags }}{{ delimit . ", " }}{{ end }}">
{{ end -}}
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="index, follow">
<meta charset="utf-8">
</head>
<body>
{{ if .Site.Menus.main }}{{ partial "nav.html" . }}{{ end -}}
<main>
<a href="{{ .Site.Home.RelPermalink }}"><header>
<h1 id="tag_{{ .Title }}">{{ block "title" . }}{{ end }}</h1>
{{- with .Param "subtitle" }}
<h2>{{ . }}</h2>
{{- end }}
</header></a>
<article>
{{ block "main" . -}}
{{- .Content -}}
{{ end -}}
{{ if .Param "taglist" }}{{ partial "taglist.html" . }}{{ end -}}
{{ if .Param "nextprev" }}{{ partial "nextprev.html" . -}}{{ end -}}
</article>
</main>
{{ block "footer" . -}}
<footer>
<hr>
<a href="{{ .Site.BaseURL }}"><img src="/pix/larbs.gif" title="LARBS: Because n00buntu is bloated." ></a>
<br>
<em>official larbs donation fund:</em>
<ul>
<li>xmr: <code style="font-size:x-small;overflow-wrap:break-word">8A2cBbmN9p9Ruz8e1526Nscz28gfPS1GveitMY3V7RnpLwdExmQNddY4a49Hi7wNbM2yV8vrBZF8zcKCTHMqRUb82CUMEJj</code></li>
<li>btc: <code class="">bc1qhx0elzzpyxy5fvz0x662zh9efghcxgt4knc7w4</code></li>
</ul>
{{- if .Param "showrss" }}<br><br><a href="/index.xml"><img src="/rss.svg" style="max-height:1.5em" alt="RSS Feed" title="Subscribe via RSS for updates."></a>{{ end }}
</footer>
{{ end -}}
</body>
</html>

BIN
static/larbs-dwm.pdf Normal file

Binary file not shown.

BIN
static/pix/dwmblocks.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

BIN
static/pix/htop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

BIN
static/pix/larbs.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
static/pix/larbs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
static/pix/lf.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

BIN
static/pix/ncmpcpp-01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

BIN
static/pix/ncmpcpp-02.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

BIN
static/pix/ncmpcpp-03.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
static/pix/ncmpcpp-04.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
static/pix/neomutt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

BIN
static/pix/st.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

BIN
static/pix/windows-htop.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 KiB

104
static/style.css Normal file
View File

@ -0,0 +1,104 @@
html {
background: black ;
padding-bottom: 400px;
}
body {
max-width: 750px;
margin-left: auto;
margin-right: auto;
margin-top: 30px;
background: #011 ;
color: #eee;
border-style: solid;
border-width: 5px;
border-color: #555;
}
main {
padding: 1em ;
}
h1,h2,h3,h4 {
text-align: center;
}
h1 {
font-size: 48px;
text-shadow: 3px 0 black, 3px 3px black, 0 3px black;
color: #00ccff ;
}
h2 {
color: #00bbdd ;
}
h3 {
color: #00aabb ;
}
a { color: lightblue; }
.image {
margin: auto;
}
.qr { max-width: 150px ; padding: 10px }
p img, li img, h1 img, h2 img, h3 img, h4 img {
max-height: 1em;
max-width: 1em;
}
pre {
border: 1px solid lime ;
border-radius: 20px ;
padding: 1em ;
margin: 1em ;
white-space: pre-wrap;
}
code {
border-radius: 5px ;
overflow-wrap: break-word ;
}
code:not(pre code) {
color: lime ;
}
aside {
color: gray ;
font-style: italic ;
font-size: small ;
}
footer {
text-align: center ;
}
.normal {
align: center ;
}
.normal img {
margin: auto ;
max-width: 90% ;
max-height: 400px ;
display: block ;
}
figcaption {
text-align: center ;
display: block ;
font-style: italic ;
}
kbd {
border-radius: 5px;
padding: 1px 2px ;
min-width: 1em ;
border: 1px solid black ;
background: #222 ;
color: white ;
}

View File

@ -1,78 +0,0 @@
#!/bin/bash
#This is a lazy script I have for auto-installing Arch.
#It's not officially part of LARBS, but I use it for testing.
#DO NOT RUN THIS YOURSELF because Step 1 is it reformatting /dev/sda WITHOUT confirmation,
#which means RIP in peace qq your data unless you've already backed up all of your drive.
pacman -Sy --noconfirm dialog || { echo "Error at script start: Are you sure you're running this as the root user? Are you sure you have an internet connection?"; exit; }
dialog --defaultno --title "DON'T BE A BRAINLET!" --yesno "This is an Arch install script that is very rough around the edges.\n\nOnly run this script if you're a big-brane who doesn't mind deleting your entire /dev/sda drive.\n\nThis script is only really for me so I can autoinstall Arch.\n\nt. Luke" 15 60 || exit
dialog --defaultno --title "DON'T BE A BRAINLET!" --yesno "Do you think I'm meming? Only select yes to DELET your entire /dev/sda and reinstall Arch.\n\nTo stop this script, press no." 10 60 || exit
dialog --no-cancel --inputbox "Enter a name for your computer." 10 60 2> comp
dialog --defaultno --title "Time Zone select" --yesno "Do you want use the default time zone(America/New_York)?.\n\nPress no for select your own time zone" 10 60 && echo "America/New_York" > tz.tmp || tzselect > tz.tmp
dialog --no-cancel --inputbox "Enter partitionsize in gb, separated by space (swap & root)." 10 60 2>psize
IFS=' ' read -ra SIZE <<< $(cat psize)
re='^[0-9]+$'
if ! [ ${#SIZE[@]} -eq 2 ] || ! [[ ${SIZE[0]} =~ $re ]] || ! [[ ${SIZE[1]} =~ $re ]] ; then
SIZE=(12 25);
fi
timedatectl set-ntp true
cat <<EOF | fdisk /dev/sda
o
n
p
+200M
n
p
+${SIZE[0]}G
n
p
+${SIZE[1]}G
n
p
w
EOF
partprobe
yes | mkfs.ext4 /dev/sda4
yes | mkfs.ext4 /dev/sda3
yes | mkfs.ext4 /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2
mount /dev/sda3 /mnt
mkdir -p /mnt/boot
mount /dev/sda1 /mnt/boot
mkdir -p /mnt/home
mount /dev/sda4 /mnt/home
pacman -Sy --noconfirm archlinux-keyring
pacstrap /mnt base base-devel
genfstab -U /mnt >> /mnt/etc/fstab
cat tz.tmp > /mnt/tzfinal.tmp
rm tz.tmp
mv comp /mnt/etc/hostname
curl https://raw.githubusercontent.com/LukeSmithxyz/LARBS/master/testing/chroot.sh > /mnt/chroot.sh && arch-chroot /mnt bash chroot.sh && rm /mnt/chroot.sh
dialog --defaultno --title "Final Qs" --yesno "Reboot computer?" 5 30 && reboot
dialog --defaultno --title "Final Qs" --yesno "Return to chroot environment?" 6 30 && arch-chroot /mnt
clear

View File

@ -1,115 +0,0 @@
#!/bin/bash
#This is a lazy script I have for auto-installing Arch.
#It's not officially part of LARBS, but I use it for testing.
#DO NOT RUN THIS YOURSELF because Step 1 is it reformatting /dev/sda WITHOUT confirmation,
#which means RIP in peace qq your data unless you've already backed up all of your drive.
pacman -S --noconfirm dialog || { echo "Error at script start: Are you sure you're running this as the root user? Are you sure you have an internet connection?"; exit; }
dialog --defaultno --title "DON'T BE A BRAINLET!" --yesno "This is an Arch install script that is very rough around the edges.\n\nOnly run this script if you're a big-brane who doesn't mind deleting your entire /dev/sda drive.\n\nThis script is only really for me so I can autoinstall Arch.\n\nt. Luke" 15 60 || exit
dialog --defaultno --title "DON'T BE A BRAINLET!" --yesno "Do you think I'm meming? Only select yes to DELET your entire /dev/sda and reinstall Arch.\n\nTo stop this script, press no." 10 60 || exit
dialog --no-cancel --inputbox "Enter a name for your computer." 10 60 2> comp
dialog --defaultno --title "Time Zone select" --yesno "Do you want use the default time zone(America/New_York)?.\n\nPress no for select your own time zone" 10 60 && echo "America/New_York" > tz.tmp || tzselect > tz.tmp
dialog --no-cancel --inputbox "Enter partitionsize in gb, separated by space (swap & root)." 10 60 2>psize
pass1=$(dialog --no-cancel --passwordbox "Enter a root password." 10 60 3>&1 1>&2 2>&3 3>&1)
pass2=$(dialog --no-cancel --passwordbox "Retype password." 10 60 3>&1 1>&2 2>&3 3>&1)
while true; do
[[ "$pass1" != "" && "$pass1" == "$pass2" ]] && break
pass1=$(dialog --no-cancel --passwordbox "Passwords do not match or are not present.\n\nEnter password again." 10 60 3>&1 1>&2 2>&3 3>&1)
pass2=$(dialog --no-cancel --passwordbox "Retype password." 10 60 3>&1 1>&2 2>&3 3>&1)
done
export pass="$pass1"
IFS=' ' read -ra SIZE <<< $(cat psize)
re='^[0-9]+$'
if ! [ ${#SIZE[@]} -eq 2 ] || ! [[ ${SIZE[0]} =~ $re ]] || ! [[ ${SIZE[1]} =~ $re ]] ; then
SIZE=(12 25);
fi
timedatectl set-ntp true
cat <<EOF | fdisk /dev/sda
o
n
p
+200M
n
p
+${SIZE[0]}G
n
p
+${SIZE[1]}G
n
p
w
EOF
partprobe
yes | mkfs.ext4 /dev/sda4
yes | mkfs.ext4 /dev/sda3
yes | mkfs.ext4 /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2
mount /dev/sda3 /mnt
mkdir -p /mnt/boot
mount /dev/sda1 /mnt/boot
mkdir -p /mnt/home
mount /dev/sda4 /mnt/home
pacstrap /mnt base base-devel
genfstab -U /mnt >> /mnt/etc/fstab
cp tz.tmp /mnt/tzfinal.tmp
rm tz.tmp
curl https://raw.githubusercontent.com/LukeSmithxyz/LARBS/master/testing/chroot.sh > /mnt/chroot.sh && arch-chroot /mnt bash chroot.sh && rm /mnt/chroot.sh
### BEGIN
arch-chroot /mnt echo "root:$pass" | chpasswd
TZuser=$(cat tzfinal.tmp)
ln -sf /usr/share/zoneinfo/$TZuser /etc/localtime
hwclock --systohc
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "en_US ISO-8859-1" >> /etc/locale.gen
locale-gen
pacman --noconfirm --needed -S networkmanager
systemctl enable NetworkManager
systemctl start NetworkManager
pacman --noconfirm --needed -S grub && grub-install --target=i386-pc /dev/sda && grub-mkconfig -o /boot/grub/grub.cfg
pacman --noconfirm --needed -S dialog
larbs() { curl -O https://raw.githubusercontent.com/LukeSmithxyz/LARBS/master/src/larbs.sh && bash larbs.sh ;}
dialog --title "Install Luke's Rice" --yesno "This install script will easily let you access Luke's Auto-Rice Boostrapping Scripts (LARBS) which automatically install a full Arch Linux i3-gaps desktop environment.\n\nIf you'd like to install this, select yes, otherwise select no.\n\nLuke" 15 60 && larbs
### END
mv comp /mnt/etc/hostname
dialog --defaultno --title "Final Qs" --yesno "Reboot computer?" 5 30 && reboot
dialog --defaultno --title "Final Qs" --yesno "Return to chroot environment?" 6 30 && arch-chroot /mnt
clear

View File

@ -1,24 +0,0 @@
#Potential variables: timezone, lang and local
passwd
TZuser=$(cat tzfinal.tmp)
ln -sf /usr/share/zoneinfo/$TZuser /etc/localtime
hwclock --systohc
echo "LANG=en_US.UTF-8" >> /etc/locale.conf
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "en_US ISO-8859-1" >> /etc/locale.gen
locale-gen
pacman --noconfirm --needed -S networkmanager
systemctl enable NetworkManager
systemctl start NetworkManager
pacman --noconfirm --needed -S grub && grub-install --target=i386-pc /dev/sda && grub-mkconfig -o /boot/grub/grub.cfg
pacman --noconfirm --needed -S dialog
larbs() { curl -O https://raw.githubusercontent.com/LukeSmithxyz/LARBS/master/larbs.sh && bash larbs.sh ;}
dialog --title "Install Luke's Rice" --yesno "This install script will easily let you access Luke's Auto-Rice Boostrapping Scripts (LARBS) which automatically install a full Arch Linux i3-gaps desktop environment.\n\nIf you'd like to install this, select yes, otherwise select no.\n\nLuke" 15 60 && larbs

View File

@ -1,3 +0,0 @@
#!/bin/bash
pacman -S --needed pacman-contrib
pacman -R $(comm -23 <(pacman -Qq | sort) <((for i in $(pacman -Qqg base); do pactree -ul "$i"; done) | sort -u)