diff --git a/.gitignore b/.gitignore index c077218..2ac8977 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -web +.hugo_build.lock +public +themes diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..00e77bd --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,6 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +--- + diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..c8155e8 --- /dev/null +++ b/config.toml @@ -0,0 +1,10 @@ +baseURL = 'https://larbs.xyz/' +languageCode = 'en-us' +title = 'LARBS' + +theme = 'lugo' + +[markup] + [markup.goldmark] + [markup.goldmark.renderer] + unsafe = true diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..b5b060b --- /dev/null +++ b/content/_index.md @@ -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 super + F1 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 super + F2. +- The documentation on the Github page. +- By just installing it and diving in! diff --git a/content/abook.md b/content/abook.md new file mode 100644 index 0000000..972d82a --- /dev/null +++ b/content/abook.md @@ -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 super + shift + e or run `abook` in the terminal. + +## Bindings + +Thankfully, abook is self-documenting: press ? at any time to see its binds. Here are some of the most common: + +- a -- add a contact. +- j/k -- move up and down. +- enter -- enter a contact. +- h/l -- (on a contact page) move from tab to tab. +- 0-9 -- (on a contact page) edit/change contact information in a field. +- d -- delete a contact. +- D -- duplicate a contact. +- S -- 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 diff --git a/content/dwm.md b/content/dwm.md new file mode 100644 index 0000000..51171b6 --- /dev/null +++ b/content/dwm.md @@ -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) diff --git a/content/dwmblocks.md b/content/dwmblocks.md new file mode 100644 index 0000000..134924f --- /dev/null +++ b/content/dwmblocks.md @@ -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. diff --git a/content/htop.md b/content/htop.md new file mode 100644 index 0000000..17011ea --- /dev/null +++ b/content/htop.md @@ -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 super + shift + r just for fun because I wasn't using that key for anything important. diff --git a/content/lf.md b/content/lf.md new file mode 100644 index 0000000..b3d7968 --- /dev/null +++ b/content/lf.md @@ -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 super + r, or type `lf` manually in the termianl. + +## Bindings + +- h, j, k l (vim keys) to move around and enter directories and open files. +- g, G, ctrl-d, ctrl-u -- movement like in vim. +- w -- drop into a terminal in the current directory. If you `exit` or press ctrl-d in the termianl, you will return to `lf`. +- ctrl-n -- new directory. +- V -- new file with `nvim`. +- space -- select files: + - d -- cut files to lf's clipboard. + - y -- yank files to lf's clipboard. + - p -- paste/move copied/cut files. + - C -- copy selected files to a bookmarked directory. + - M -- move selected files to a bookmarked directory. + - Y -- copy text names of selected files to the system clipboard. +- Renaming files: + - c -- rename the selected file. + - A -- rename the selected file, starting at end. + - a -- rename the selected file, starting after the extension. + - I -- rename the selected file, starting at beginning. + - i -- rename the selected file, starting before extension. + - B -- **bulk rename**: use vidir to mass edit all files in the directory. +- s -- sort files by a different metric. +- z -- 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. diff --git a/content/librewolf.md b/content/librewolf.md new file mode 100644 index 0000000..d508da9 --- /dev/null +++ b/content/librewolf.md @@ -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 super + w 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. diff --git a/content/mpv.md b/content/mpv.md new file mode 100644 index 0000000..cbf2152 --- /dev/null +++ b/content/mpv.md @@ -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: + +- h/l -- jump back/foward 10 seconds. +- j/k -- jump back/foward 60 seconds. +- space -- toggle pause. +- S -- toggle subtitles. +- o -- briefly view progress bar and time. +- O -- toggle time visibility. +- i -- 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 super + shift + P will not only pause you music played in `mpd`, but also all audio/video instances of `mpv`. +- Press super + F11 to see your webcam. This uses an instance of `mpv` as well. + +GPLv2 diff --git a/content/ncmpcpp.md b/content/ncmpcpp.md new file mode 100644 index 0000000..83b684f --- /dev/null +++ b/content/ncmpcpp.md @@ -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 super + m, 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 1 to 8. The most important of these have also been mapped to mneumonic letter keys: + +- m -- main music library (press key again to alternate album/album artist views). +- v -- visualizer. +- f -- library by directory structure. +- t -- tagger. +- s -- detailed search. +- 1 -- current playlist. + +{{< img src="/pix/ncmpcpp-03.png" class=normal >}} + +- h/j/k/l -- navigate the music library view or select directories and songs. +- enter -- add selected to playlist and play now. +- space -- add to end of playlist. + + +- . -- show/download lyrics. + +## Configuration + +- `~/.config/ncmpcpp/config` -- main file controlling formatting and colors and other details. +- `~/.config/ncmpcpp/bindings` -- file customizing key bindings. diff --git a/content/neomutt.md b/content/neomutt.md new file mode 100644 index 0000000..049eaef --- /dev/null +++ b/content/neomutt.md @@ -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 super + F8. + +## Running + +Press super + e or type `neomutt` manually in the terminal. + + +## Bindings + +Note also that neomutt automatically documents itself: you can press ? 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... + +- j, k -- move up and down in mail. +- l or enter -- open mail, or return to index. +- h or esc -- return from mail to index. +- m -- compose new mail. +- r -- reply to selected mail. +- R -- reply all to selected mail. +- ctrl-j/ctrl-k -- move up or down in the sidebar. +- ctrl-o -- open the box highlighted in the sidebar. +- space -- select mail. (See below). + +mutt-wizard automatically sets automatic binds to move to or move mail to other boxes. Press one of these keys: + +- g -- go to... +- M -- move selected mail to... +- C -- copy selected mail to... + +And then follow it with one of these keys: + +- i -- ...the inbox. +- d -- ...drafts. +- s -- ...the sent box. +- a -- ...the archive. +- j -- ...junk. + +### With mail open... + +Some binds above are shared. + +- j/k -- scroll up and down. +- J/K -- next or previous mail. +- v -- view attachments. This can be used for opening annoying HTML ad emails in the browser. You can also save the selected attachment with s. + +### On the compose screen... + +- a -- attach a file. +- m -- edit highlighted attachment in text editor. +- S -- choose to sign or encrypt mail (usually with PGP). +- y -- 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) diff --git a/content/newsboat.md b/content/newsboat.md new file mode 100644 index 0000000..ea901b7 --- /dev/null +++ b/content/newsboat.md @@ -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 super + shift + n or run `newsboat` in the terminal. + +## Bindings + +- j/k -- move up and down. +- enter -- enter feed or article. +- q -- return to previous screen or quit. +- h/l -- open feed or return (same as q and enter). +- a -- mark as read. +- n -- go to next unread. +- A -- mark all as read. +- ,, -- open the main link of an article. (Usually opens in a browser, or if a video, will play the video in [mpv](mpv).) +- u/d -- page up and down. +- g/G -- go to top or bottom of screen. + +To follow a visible link, use the [st](st) binding alt + l, or to just copy it, alt + k. + + +## 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 ,, 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 diff --git a/content/programs.md b/content/programs.md new file mode 100644 index 0000000..adb7f33 --- /dev/null +++ b/content/programs.md @@ -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. diff --git a/content/st.md b/content/st.md new file mode 100644 index 0000000..df1eb07 --- /dev/null +++ b/content/st.md @@ -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 super + enter for a basic terminal window. + +## Documentation + +`man st` + +## Bindings + +- alt + j/k/alt + Up/Down/alt + mouse wheel -- scroll up or down in the terminal history. +- alt + u/d/alt + pageup/pagedown -- faster scroll. +- alt + shift + j/k -- decrease or increase font size. +- alt + c -- copy selected text to clipboard. +- shift + insert -- paste clipboard contents. +- alt + l -- **open a link/URL**: pulls all URLs from terminal and allows you to pick one to open via dmenu. +- alt + y -- copy a link/URL: same as above, but copies the URL. +- alt + o -- **copy the output from a recent command.** +- alt + a/s -- 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 diff --git a/content/zsh.md b/content/zsh.md new file mode 100644 index 0000000..3dfab86 --- /dev/null +++ b/content/zsh.md @@ -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 ctrl + l 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 ctrl + o to open a special instance of [lf](/lf). It works like normal lf, but if you press q to quit, zsh will automatically change directory to the directory you ended up in. Useful to quickly navigate directories without typing. +- ctrl + f -- use `fzf` to search for a file deep in this directory structure. Selecting it will change the directory to where it is. +- ctrl + a -- open an instance of `bc` to do some arithmetic if needed. Press ctrl + d to exit. + +## Source code + +- [website](https://zsh.sourceforge.io/) +- Permissive license with copyleft components diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html new file mode 100644 index 0000000..8b3dab2 --- /dev/null +++ b/layouts/_default/baseof.html @@ -0,0 +1,49 @@ + + + + {{ if not .IsHome }}{{ .Title }} | {{ end }}{{ .Site.Title }} + + + + {{ with .Site.Params.favicon }} + {{ end -}} + + {{ if isset .Params "tags" }} + {{ end -}} + + + + + +{{ if .Site.Menus.main }}{{ partial "nav.html" . }}{{ end -}} +
+
+

{{ block "title" . }}{{ end }}

+ {{- with .Param "subtitle" }} +

{{ . }}

+ {{- end }} +
+
+{{ block "main" . -}} +{{- .Content -}} +{{ end -}} +{{ if .Param "taglist" }}{{ partial "taglist.html" . }}{{ end -}} +{{ if .Param "nextprev" }}{{ partial "nextprev.html" . -}}{{ end -}} +
+
+{{ block "footer" . -}} + +{{ end -}} + + diff --git a/static/larbs-dwm.pdf b/static/larbs-dwm.pdf new file mode 100644 index 0000000..55b505a Binary files /dev/null and b/static/larbs-dwm.pdf differ diff --git a/larbs.sh b/static/larbs.sh similarity index 100% rename from larbs.sh rename to static/larbs.sh diff --git a/static/pix/dwmblocks.png b/static/pix/dwmblocks.png new file mode 100644 index 0000000..72ef857 Binary files /dev/null and b/static/pix/dwmblocks.png differ diff --git a/static/pix/htop.png b/static/pix/htop.png new file mode 100644 index 0000000..04154e4 Binary files /dev/null and b/static/pix/htop.png differ diff --git a/static/pix/larbs.gif b/static/pix/larbs.gif new file mode 100644 index 0000000..b218d2f Binary files /dev/null and b/static/pix/larbs.gif differ diff --git a/static/pix/larbs.png b/static/pix/larbs.png new file mode 100644 index 0000000..8914940 Binary files /dev/null and b/static/pix/larbs.png differ diff --git a/static/pix/lf.png b/static/pix/lf.png new file mode 100644 index 0000000..50faf48 Binary files /dev/null and b/static/pix/lf.png differ diff --git a/static/pix/ncmpcpp-01.png b/static/pix/ncmpcpp-01.png new file mode 100644 index 0000000..a4308da Binary files /dev/null and b/static/pix/ncmpcpp-01.png differ diff --git a/static/pix/ncmpcpp-02.png b/static/pix/ncmpcpp-02.png new file mode 100644 index 0000000..4adbb31 Binary files /dev/null and b/static/pix/ncmpcpp-02.png differ diff --git a/static/pix/ncmpcpp-03.png b/static/pix/ncmpcpp-03.png new file mode 100644 index 0000000..88e3dac Binary files /dev/null and b/static/pix/ncmpcpp-03.png differ diff --git a/static/pix/ncmpcpp-04.png b/static/pix/ncmpcpp-04.png new file mode 100644 index 0000000..f3cda28 Binary files /dev/null and b/static/pix/ncmpcpp-04.png differ diff --git a/static/pix/neomutt.png b/static/pix/neomutt.png new file mode 100644 index 0000000..5d0b0a7 Binary files /dev/null and b/static/pix/neomutt.png differ diff --git a/static/pix/st.png b/static/pix/st.png new file mode 100644 index 0000000..7c48f35 Binary files /dev/null and b/static/pix/st.png differ diff --git a/static/pix/windows-htop.jpg b/static/pix/windows-htop.jpg new file mode 100644 index 0000000..79fcf6b Binary files /dev/null and b/static/pix/windows-htop.jpg differ diff --git a/progs.csv b/static/progs.csv similarity index 100% rename from progs.csv rename to static/progs.csv diff --git a/static/style.css b/static/style.css new file mode 100644 index 0000000..4ecd0d8 --- /dev/null +++ b/static/style.css @@ -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 ; +} diff --git a/testing/arch.sh b/testing/arch.sh deleted file mode 100755 index b264e13..0000000 --- a/testing/arch.sh +++ /dev/null @@ -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 <> /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 diff --git a/testing/archtest.sh b/testing/archtest.sh deleted file mode 100755 index 2c138c0..0000000 --- a/testing/archtest.sh +++ /dev/null @@ -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 <> /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 diff --git a/testing/chroot.sh b/testing/chroot.sh deleted file mode 100755 index 6268f50..0000000 --- a/testing/chroot.sh +++ /dev/null @@ -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 diff --git a/testing/fullreset.sh b/testing/fullreset.sh deleted file mode 100755 index 37672a6..0000000 --- a/testing/fullreset.sh +++ /dev/null @@ -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)