diff --git a/config.toml b/config.toml index 5e91d0f..2d03e20 100644 --- a/config.toml +++ b/config.toml @@ -14,5 +14,5 @@ nav_links = [ { url = "/", text = "home" }, { url = "/pages/about", text = "about" }, { url = "/pages", text = "all pages" }, - { url = "https://git.iptq.io/michael", text = "projects" }, + { url = "https://git.iptq.io/michael", text = "projects »" }, ] diff --git a/content/_index.md b/content/_index.md index 7b941a1..4d09c62 100644 --- a/content/_index.md +++ b/content/_index.md @@ -3,5 +3,6 @@ title = "home" template = "blog.html" page_template = "post.html" +insert_anchor_links = "right" sort_by = "date" +++ diff --git a/content/pages/_index.md b/content/pages/_index.md index fe14926..d629dd3 100644 --- a/content/pages/_index.md +++ b/content/pages/_index.md @@ -2,4 +2,5 @@ title = "all pages" template = "listing.html" page_template = "post.html" +insert_anchor_links = "right" +++ diff --git a/content/pages/about.md b/content/pages/about.md index 17248a5..72c043f 100644 --- a/content/pages/about.md +++ b/content/pages/about.md @@ -6,22 +6,6 @@ Hi there! I'm a Computer Science student at the University of Minnesota, and I'v In an effort to rely on less services, I started doing a lot of self-hosting and rewriting of software. Check out some of the projects I'm doing over on my public [Gitea](https://git.iptq.io)! -### setup - -My setup can be found [here](/pages/setup). - -### languages - -Here's some of the languages I like, in approximate order of my skill/confidence in using them: - -- **Rust** I can't say I'm fluent in Rust, but writing code in Rust just feels right. Most of my recent projects have been done in Rust. -- **Go** I like the way this language is opinionated, and makes for very clean code. Unfortunately, because of their design decisions it's relatively lacking in language features. -- **Python** One of my favorite languages by far. Aside from its weakness in performance, I love how the language looks. I do have several bones to pick, especially towards its dependency ecosystem. -- **JavaScript** Although I'm trying to step away from JavaScript, I find myself using it from time to time simply out of ease of use and plethora of libraries. -- **C** Largely prefer this over C++ because of much finer control over what's happening. -- **OCaml** Learned this from a functional programming class, and I still use it from time to time; I kinda see it as the "Python" of functional languages. -- **C++** Good for when I did competitive programming because of its very comprehensive standard library. - If you want my resume, contact me through one of these means: ## contact @@ -29,3 +13,7 @@ If you want my resume, contact me through one of these means: - Discord: **iptq#8440** - Email: (I sign all my Git commits with this email) - PGP Key: [hosted on Keybase](https://keybase.io/michaelz/pgp_keys.asc?fingerprint=2a323c176e16b8c25ade02d447033f6c0a02f24a) + +## setup + +My setup can be found [here](/pages/setup). diff --git a/content/pages/setup.md b/content/pages/setup.md index e8e5916..0640ba1 100644 --- a/content/pages/setup.md +++ b/content/pages/setup.md @@ -1,37 +1,43 @@ +++ title = "my setup" + +[extra] +toc = true +++ -## desktop +## laptop I'm using Arch Linux on my personal machine. Here's a neofetch: ``` -# michael @ arch in ~ [16:42:51] +# michael @ kawa in ~ [12:42:16] $ neofetch - -` michael@arch + -` michael@kawa .o+` ------------ `ooo/ OS: Arch Linux x86_64 `+oooo: Host: K501UX 1.0 - `+oooooo: Kernel: 4.18.5-arch1-1-ARCH - -+oooooo+: Uptime: 1 hour, 47 mins - `/:-:++oooo+: Packages: 1143 (pacman) - `/++++/+++++++: Shell: zsh 5.5.1 + `+oooooo: Kernel: 5.1.8-arch1-1-ARCH + -+oooooo+: Uptime: 10 hours, 32 mins + `/:-:++oooo+: Packages: 960 (pacman), 242 (nix) + `/++++/+++++++: Shell: zsh 5.7.1 `/++++++++++++++: Resolution: 1920x1080 - `/+++ooooooooooooo/` WM: i3 - ./ooosssso++osssssso+` Theme: Adwaita [GTK2/3] - .oossssso-````/ossssss+` Icons: Adwaita [GTK2/3] - -osssssso. :ssssssso. Terminal: alacritty - :osssssss/ osssso+++. Terminal Font: Roboto Mono for Powerline - /ossssssss/ +ssssooo/- CPU: Intel i7-6500U (4) @ 3.100GHz - `/ossssso+/:- -:/+osssso+- GPU: NVIDIA GeForce GTX 950M - `+sso+:-` `.-/+oso: GPU: Intel Skylake GT2 [HD Graphics 520] - `++:. `-/+/ Memory: 6708MiB / 7871MiB + `/+++ooooooooooooo/` Theme: Adwaita [GTK2/3] + ./ooosssso++osssssso+` Icons: Adwaita [GTK2/3] + .oossssso-````/ossssss+` Terminal: alacritty + -osssssso. :ssssssso. CPU: Intel i7-6500U (4) @ 3.100GHz + :osssssss/ osssso+++. GPU: NVIDIA GeForce GTX 950M + /ossssssss/ +ssssooo/- GPU: Intel Skylake GT2 [HD Graphics 520] + `/ossssso+/:- -:/+osssso+- Memory: 3789MiB / 7867MiB + `+sso+:-` `.-/+oso: + `++:. `-/+/ .` `/ - ``` -For my desktop environment, I've got [i3](https://i3wm.org/), a tiling window manager. I like it because it's lightweight and doesn't use much battery. My config can be found [here](https://git.iptq.io/michael/dotfiles/src/branch/master/.config/i3/config). I tried i3gaps at one point but didn't feel like trying to fix the rendering artifacts so I switched back. +My desktop environment is [i3](https://i3wm.org) on X11. I like it because it's lightweight and doesn't use much battery. Even after many years my laptop can still sustain 5-6 hours of prolonged usage. + +### email + + ### coding @@ -43,19 +49,37 @@ For passwords, I'm using [pass](https://www.passwordstore.org/), which is a GPG- ### music -On my personal computer, I'm using [mpd](https://www.musicpd.org/), the music player daemon along with [sonata](https://www.nongnu.org/sonata/), which is a GTK frontend. I like using mpd because this also allows me to display my current playing song in my i3 bar. +On my personal computer, I'm using [mpd](https://www.musicpd.org/), the music player daemon along with [Cantata](https://github.com/CDrummond/cantata), which is a Qt frontend. I like using mpd because this also allows me to display my current playing song in my i3 bar. ### screenshot -I'm using a [custom screenshot tool](https://git.iptq.io/michael/leanshot). +I'm using a [custom screenshot tool](https://git.iptq.io/michael/leanshot), written by myself using Rust. The advantage of this over something like scrot or maim would be the ability to first freeze the screen before selecting a region. + +## my phone + +My phone is running the latest version of LineageOS without Google Apps, in a small effort to liberate myself from Google services. Most of the apps that I need notifications from on my phone can contact servers directly without going through Google's Firebase Cloud Messaging, which is where push notifications traditionally go. + +First, here's a list of free software that I use, available from [F-Droid](https://f-droid.org/en/), a free-software app store: + +- [DAVx5](https://f-droid.org/en/packages/at.bitfire.davdroid/). Great for syncing my calendar, contacts, and todo list between my computer and my phone. With a self-hosted CalDAV server, my data is in my hands. +- [DNSFilter](https://f-droid.org/en/packages/dnsfilter.android). Creates a local VPN and selectively blocks requests based on existing blacklists. This actually filters a lot of advertising and tracking data on the regular. +- [Termux](https://f-droid.org/en/packages/com.termux/). It's a terminal on your phone. Why not? +- [Weechat Android](https://f-droid.org/en/packages/com.ubergeek42.WeechatAndroid/). Weechat is an IRC client that can act like a server. With this app, my phone connects to that server and retrieves messages, including sending me notifications for new highlights and such. + +Other software I use include: + +- [Authy](https://authy.com/). Unfortunately, until I figure out my 2-factor backup plan, I'm going to have to stick with Authy since it handles backups well. The long-term solution here is to use backup codes, but I haven't gotten around to sorting that out yet. +- [Firefox](https://www.mozilla.org/en-US/firefox/mobile/). Yes, Firefox is on Android. +- [Signal](https://signal.org/). Encrypted chat that uses phone numbers for identity so you can basically replace SMS with almost no user-interface changes. + +And a slew of other non-free apps that have pretty specific uses, though I think I've crippled my phone to the point where many of those apps are unusable. One of these days I'll go in and purge them again. ## this website The stack for this website looks like: - The [source code](https://git.iptq.io/michael/blog) is written as a set of Gutenberg config files. -- This is then transpiled into static HTML + resources using [Gutenberg](https://www.getgutenberg.io/), a static site generator. +- This is then transpiled into static HTML + resources using [Zola](https://getzola.org/), a static site generator written with Rust. +- Changes are deployed using Git hooks. - Static files are served from a web root using [nginx](https://nginx.org/en/) through a virtual host. - And here it is! - -For deployment, I'm using [dip](https://github.com/acmumn/dip), a customizable webhook server that I wrote that rebuilds the source code on push. diff --git a/sass/main.scss b/sass/main.scss index d942f4d..f4167c8 100644 --- a/sass/main.scss +++ b/sass/main.scss @@ -1,5 +1,7 @@ @import "syntax.scss"; +$monofont: "Roboto Mono", "Roboto Mono for Powerline", "Inconsolata", "Consolas", monospace; + html { background-color: lightskyblue; } @@ -36,9 +38,19 @@ a { &:hover { text-decoration: underline; } + + &.permalink { + color: lighten(royalblue, 25%); + font-size: 0.65em; + } +} + +#content { + line-height: 1.25em; } pre { padding: 5px; overflow-x: auto; + font-family: $monofont; } diff --git a/templates/anchor-link.html b/templates/anchor-link.html new file mode 100644 index 0000000..791df7d --- /dev/null +++ b/templates/anchor-link.html @@ -0,0 +1,2 @@ +  + diff --git a/templates/macros/layout.html b/templates/macros/layout.html index 05137a0..6f2081c 100644 --- a/templates/macros/layout.html +++ b/templates/macros/layout.html @@ -5,7 +5,7 @@ diff --git a/templates/post.html b/templates/post.html index af147c1..e8955d3 100644 --- a/templates/post.html +++ b/templates/post.html @@ -18,10 +18,10 @@ {% endif %} - {% if page.extra.toc and page.toc | length %} + {% if page.extra.toc and toc | length %}
table of contents - {{ post::render_toc(toc=page.toc) }} + {{ post::render_toc(toc=toc) }}
{% endif %}