diff options
-rw-r--r-- | _config.yml | 2 | ||||
-rw-r--r-- | _data/i18n.yml | 29 | ||||
-rw-r--r-- | _includes/footer.html | 28 | ||||
-rw-r--r-- | _includes/i18n/footer.ja.html | 16 | ||||
-rw-r--r-- | _includes/i18n/footer.nl.html | 16 | ||||
-rw-r--r-- | _includes/i18n/outdated.ja.html | 2 | ||||
-rw-r--r-- | _includes/i18n/outdated.nl.html | 3 | ||||
-rw-r--r-- | _includes/links.md | 81 | ||||
-rw-r--r-- | _includes/outdated.html | 6 | ||||
-rw-r--r-- | _includes/search.html | 5 | ||||
-rw-r--r-- | _items/avanswifi.md | 24 | ||||
-rw-r--r-- | _items/software.md | 408 | ||||
-rw-r--r-- | _layouts/default.html | 34 | ||||
-rw-r--r-- | _plugins/i18n.rb | 26 | ||||
-rw-r--r-- | _sass/color.scss | 2 | ||||
-rw-r--r-- | _sass/theme.scss | 2 | ||||
-rw-r--r-- | _sass/typography.scss | 13 | ||||
-rw-r--r-- | ja.md | 18 | ||||
-rw-r--r-- | nl.md | 20 | ||||
-rw-r--r-- | readme.md | 5 | ||||
-rw-r--r-- | tags.html | 13 |
21 files changed, 494 insertions, 259 deletions
diff --git a/_config.yml b/_config.yml index 99573cc..64fd89e 100644 --- a/_config.yml +++ b/_config.yml @@ -10,7 +10,7 @@ collections: output: true defaults: - scope: - type: items + path: "" values: layout: default lang: en diff --git a/_data/i18n.yml b/_data/i18n.yml new file mode 100644 index 0000000..370d9bc --- /dev/null +++ b/_data/i18n.yml @@ -0,0 +1,29 @@ +# header +home: + en: home + ja: ホーム +posts: + en: posts + ja: 記事 +tags: + en: tags + ja: タグ +top: + en: top + nl: kop + ja: 先頭 +bottom: + en: bottom + nl: staart + ja: 末尾 + +# posts/search page +search: + en: search + nl: zoekterm + ja: キーワード +go: + en: go + nl: zoeken + ja: 検索 + diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..a05e70a --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,28 @@ +<footer id="footer" class="plainlink"> + <div class="limitwidth"> + <div class="autocolumn"> + {% if page.lang == "ja" %} + {% include i18n/footer.ja.html %} + {% elsif page.lang == "nl" %} + {% include i18n/footer.nl.html %} + {% else %} + <div class="column"> + <span class="title">post info</span> + <ul> + <li>written by {{ page.authors | map: 'nick' | sentence_join: 'nobody?' }}</li> + <li>initially published on {{ page.meta.date_initial | datefmt }}</li> + <li>edited {{ page.meta.edits | plural: 'time' }}</li> + <li>last revised on {{ page.meta.date | datefmt }}</li> + </ul> + </div> + <div class="column"> + <a href="/" class="title">{{ site.domain }}</a> + <ul> + <li>version <code>{{ site.data.meta.slug }}</code> (<a href="https://git.pipeframe.xyz/lonkaars/blog">git</a>)</li> + <li>built {{ site.data.meta.build_date | datefmt }}</li> + </ul> + </div> + {% endif %} + </div> + </div> +</footer> diff --git a/_includes/i18n/footer.ja.html b/_includes/i18n/footer.ja.html new file mode 100644 index 0000000..8ec1a9b --- /dev/null +++ b/_includes/i18n/footer.ja.html @@ -0,0 +1,16 @@ +<div class="column"> + <span class="title">記事メタデータ</span> + <ul> + <li>{{ page.authors | map: 'nick' | sentence_join: 'nobody?' }}が書いた</li> + <li>最初{{ page.meta.date_initial | datefmt }}に投稿された</li> + <li>{{ page.meta.edits }}回変更された</li> + <li>最後{{ page.meta.date | datefmt }}にアップした</li> + </ul> +</div> +<div class="column"> + <a href="/" class="title">{{ site.domain }}</a> + <ul> + <li>バージョン<code>{{ site.data.meta.slug }}</code> (<a href="https://git.pipeframe.xyz/lonkaars/blog">git</a>)</li> + <li>{{ site.data.meta.build_date | datefmt }}でビルドされた</li> + </ul> +</div> diff --git a/_includes/i18n/footer.nl.html b/_includes/i18n/footer.nl.html new file mode 100644 index 0000000..1d7ae8a --- /dev/null +++ b/_includes/i18n/footer.nl.html @@ -0,0 +1,16 @@ +<div class="column"> + <span class="title">post info</span> + <ul> + <li>geschreven door {{ page.authors | map: 'nick' | sentence_join: 'niemand?' }}</li> + <li>voor het eerst op {{ page.meta.date_initial | datefmt }} gepubliceerd</li> + <li>{{ page.meta.edits }} keer bewerkt</li> + <li>laatste (huidige) versie {{ page.meta.date | datefmt }}</li> + </ul> +</div> +<div class="column"> + <a href="/" class="title">{{ site.domain }}</a> + <ul> + <li>versie <code>{{ site.data.meta.slug }}</code> (<a href="https://git.pipeframe.xyz/lonkaars/blog">git</a>)</li> + <li>op {{ site.data.meta.build_date | datefmt }} voor het laatst gebouwd</li> + </ul> +</div> diff --git a/_includes/i18n/outdated.ja.html b/_includes/i18n/outdated.ja.html new file mode 100644 index 0000000..9f987e8 --- /dev/null +++ b/_includes/i18n/outdated.ja.html @@ -0,0 +1,2 @@ +<p class="title">注意</p> +<p>この記事は{{ include.date | datefmt }}以降更新されていないため、情報が正確でない可能性があります。ご了承いただきありがとうございます。</p> diff --git a/_includes/i18n/outdated.nl.html b/_includes/i18n/outdated.nl.html new file mode 100644 index 0000000..aa056b8 --- /dev/null +++ b/_includes/i18n/outdated.nl.html @@ -0,0 +1,3 @@ +<p class="title">Pas op</p> +<p>Deze post is voor het laatst op {{ include.date | datefmt }} geupdatet, en kan daardoor +mogelijk incorrecte of niet langer actuele informatie bevatten.</p> diff --git a/_includes/links.md b/_includes/links.md new file mode 100644 index 0000000..f27e10e --- /dev/null +++ b/_includes/links.md @@ -0,0 +1,81 @@ +[AdAway]: https://adaway.org +[Aurora Droid]: https://gitlab.com/AuroraOSS/auroradroid +[Aurora Store]: https://gitlab.com/AuroraOSS/AuroraStore +[BetterDiscord]: https://github.com/rauenzi/BetterDiscordApp +[Bitwarden]: https://bitwarden.com +[Brave]: https://brave.com +[Bromite]: https://www.bromite.org +[CalyxOS]: https://calyxos.org +[Code OSS]: https://appimage.github.io/Code_OSS +[Dark Reader]: https://darkreader.org +[Dovecot]: https://www.dovecot.org +[Droid-ify]: https://droidify.eu.org +[EteSync]: https://www.etesync.com +[Figma]: https://figma.com +[Firefox]: https://www.mozilla.org/firefox +[Jellyfin]: https://jellyfin.org +[K-9 Mail]: https://k9mail.app +[LaTeX]: https://www.latex-project.org +[Leaflet]: https://github.com/PotatoProject/Leaflet +[LineageOS]: https://lineageos.org +[Magisk]: https://github.com/topjohnwu/Magisk +[Material Files]: https://github.com/zhanghai/MaterialFiles +[MoeList]: https://github.com/axiel7/MoeList +[NeoMutt]: https://neomutt.org +[Neovim]: https://neovim.io +[OpenDKIM]: http://www.opendkim.org +[OsmAnd]: https://osmand.net +[Persephone]: https://persephone.fm +[Polybar]: https://github.com/polybar/polybar +[Postfix]: http://www.postfix.org +[Radicale]: https://radicale.org/v3.html +[Shuttle]: https://www.shuttlemusicplayer.com +[Signal]: https://signal.org +[SpamAssassin]: https://spamassassin.apache.org +[Stylus]: https://github.com/openstyles/stylus +[Sync for Reddit]: https://play.google.com/store/apps/details?id=com.laurencedawson.reddit_sync +[Syncthing]: https://syncthing.net +[Tachiyomi]: https://tachiyomi.org +[Tampermonkey]: https://www.tampermonkey.net +[Tasks.org]: https://tasks.org +[Thunderbird]: https://www.thunderbird.net +[Transmission]: https://transmissionbt.com +[Violentmonkey]: https://violentmonkey.github.io +[XeTeX]: http://xetex.sourceforge.net +[Yomitan]: https://github.com/yomidevs/yomitan +[andOTP]: https://github.com/andOTP/andOTP +[cgit]: https://git.zx2c4.com/cgit/about +[cgit]: https://git.zx2c4.com/cgit/about +[dotfiles]: https://git.pipeframe.xyz/lonkaars/dots +[dunst]: https://dunst-project.org +[dwm]: https://dwm.suckless.org +[emailwiz]: https://github.com/LukeSmithxyz/emailwiz +[etar]: https://github.com/Etar-Group/Etar-Calendar +[fzf]: https://github.com/junegunn/fzf +[fzmp]: https://github.com/DanielFGray/fzf-scripts/blob/master/fzmp +[gitolite]: https://gitolite.com/gitolite +[gitolite]: https://gitolite.com/gitolite/index.html +[hass]: https://www.home-assistant.io +[i3-gaps]: https://github.com/Airblader/i3 +[i3]: https://i3wm.org +[imapnotify]: https://gitlab.com/shackra/goimapnotify +[latexmk]: https://www.cantab.net/users/johncollins/latexmk/index.html +[lf]: https://github.com/gokcehan/lf +[mbsync]: http://isync.sf.net +[mpd]: https://www.musicpd.org +[ncmpcpp]: https://github.com/ncmpcpp/ncmpcpp +[nginx]: https://nginx.org +[oh-my-zsh]: https://ohmyz.sh +[pass]: https://www.passwordstore.org +[picom]: https://github.com/yshui/picom +[ranger]: https://github.com/ranger/ranger +[rofi]: https://github.com/davatorium/rofi +[st-upstream]: https://st.suckless.org +[st]: https://git.pipeframe.xyz/fork/st +[substratum]: https://github.com/substratum/substratum +[sxiv]: https://github.com/xyb3rt/sxiv +[uBlock Origin]: https://ublockorigin.com +[unar]: https://github.com/MacPaw/XADMaster +[xbindkeys]: https://www.nongnu.org/xbindkeys/xbindkeys.html +[zathura]: https://pwmt.org/projects/zathura +[zsh]: https://www.zsh.org diff --git a/_includes/outdated.html b/_includes/outdated.html index a1c5489..954ad14 100644 --- a/_includes/outdated.html +++ b/_includes/outdated.html @@ -1,5 +1,11 @@ <blockquote class="admonition warning" hidden x-unhide-after="{{ include.date | date: "%s" | plus: site.stale_threshold }}"> + {% if page.lang == "ja" %} + {% include i18n/outdated.ja.html %} + {% elsif page.lang == "nl" %} + {% include i18n/outdated.nl.html %} + {% else %} <p class="title">Warning</p> <p>This post was last updated on {{ include.date | datefmt }}, and may no longer contain accurate or up-to-date information.</p> + {% endif %} </blockquote> diff --git a/_includes/search.html b/_includes/search.html index cc8cd56..ae48353 100644 --- a/_includes/search.html +++ b/_includes/search.html @@ -1,6 +1,5 @@ <form id="search" method="get" action="https://google.com/search"> - <input type="text" placeholder="search" name="q" spellcheck="false" autocomplete="off"> + <input type="text" placeholder="{% i18n search %}" name="q" spellcheck="false" autocomplete="off"> <input type="hidden" name="q" value="site:{{ site.domain }}"> - <input type="submit"> + <input type="submit" value="{% i18n go %}"> </form> - diff --git a/_items/avanswifi.md b/_items/avanswifi.md index 7576f65..26d6e3b 100644 --- a/_items/avanswifi.md +++ b/_items/avanswifi.md @@ -3,13 +3,16 @@ title: Avans eduroam wifi setup tags: software phone --- -I wasted 2 hours trying to set up my school's WiFi on my laptop, so here's a -quick reference for other students who might've tried connecting but ended up -giving up. +I wasted 2 hours trying to set up my school's WiFi on my laptop, so here's a quick reference +for other students who might've tried connecting but ended up giving up. -Keep in mind that your username isn't your student e-mail, but the first letter -of your first name, and 7 characters from your last name (not including a -middle name if you have one), i.e. `Loek Le Blansch -> lblansch`. +{:.admonition.info} +> {:.title} +> Note +> +> Keep in mind that your username isn't your student email, but the first letter of your first +> name, and 7 characters from your last name (not including a middle name if you have one), +> i.e. `Loek Le Blansch -> lblansch`. # Linux with NetworkManager @@ -29,9 +32,8 @@ nmcli> activate # Android -You can connect to eduroam without installing any additional apps by manually -adding a network in the Android WiFi settings using the following connection -settings: +You can connect to eduroam without installing any additional apps by manually adding a network +in the Android WiFi settings using the following connection settings: |field|value| |-|-| @@ -43,9 +45,9 @@ settings: |**Minimum TLS version**|TLS v1.0| |**Online Certificate Status**|Do not verify| |**Domain**|`wifi.avans.nl`| -|**Identity**|\<username\>| +|**Identity**|*\<username\>*| |**Anonymous identity**|anonymous| -|**Password**|\<password\>| +|**Password**|*\<password\>*| diff --git a/_items/software.md b/_items/software.md index 6aa1efc..4babc13 100644 --- a/_items/software.md +++ b/_items/software.md @@ -3,270 +3,248 @@ title: software that I use tags: [software, open source, server, phone] --- -## PC software - -All of the software on this page is cool and I think you should try it. I also -use all of this software, and will update this page when I find new, *even -cooler* software to use instead. Most if not all of my configuration files -(dotfiles) are on my [github](https://github.com/lonkaars/dotfiles). You can -clone these and edit them to fit your needs, or you can use them as a reference -for when you can't figure out how to configure something. - -### Regular software - -- **Email client**: [neomutt](https://neomutt.org/). It's fast and simple, - though configuring it was a pain in the ass. I'm currently using it in - combination with mbsync and imapnotify to get notifications for new emails, - and sync my mailbox for fast email viewing. - -- **Music player**: [mpd](https://www.musicpd.org/) with - [ncmpcpp](https://github.com/ncmpcpp/ncmpcpp). This is the best music setup - I've ever used. I download all my music in .flac format and mpd *just works*. - Since mpd has a server-client structure, I could also use this to set up - multiple devices that can add music to a central queue at a party or - something, but I just use it to launch [an fzf mpc - wrapper](https://github.com/DanielFGray/fzf-scripts/blob/master/fzmp) to - quickly add music while I'm doing something else. - -- **Text editor**: [nvim](https://neovim.io/). It's vim. If you don't like vim, - you should try using it longer. If you still don't like vim, you can use - [code oss](https://appimage.github.io/Code_OSS/) which is visual studio code - but without Microsoft's creepy telemetry features. - -- **PDF viewer**: [zathura](https://pwmt.org/projects/zathura/). It's a pdf - viewer with vim bindings, and it works with my TeX editing setup's live - reload thingy. - -- **Image viewer**: [sxiv](https://github.com/muennich/sxiv). It's like zathura - but for images, but it also does a bunch of other stuff that I don't use very +This page contains a list of open source software that I have used and have strong opinions +about. I'll try to keep this page up-to-date when I find new, *even cooler* software to use +instead. + +# Linux (Desktop) + +{:.admonition.info} +> {:.title} +> Note +> +> Most of the software listed here is configured using configuration files (dotfiles). Mine can +> be found [here][dotfiles]. + +## Regular software + +- **Email client**: [NeoMutt] or [Thunderbird] + + I generally use NeoMutt to check my inbox and read short messages. It's fast and simple, + though configuring it was a pain in the ass. I'm currently using it in combination with + [mbsync] and [imapnotify] to get notifications for new emails and sync my mailbox for fast + (offline) email viewing. + + NeoMutt's default keybinds are weird, and it's unresponsive while an error message is + visible? Whenever I need to search through archived messages or actually send mail I tend to + use Thunderbird instead. + +- **Music player**: [mpd] with [ncmpcpp] + + Hands-down the best music player I've ever used. I collect music in `.flac` format and mpd + *just works*. The only thing that sucks about mpd is the lack of graphical client + applications that don't look bad. The only graphical client I know of that doesn't suck is + [Persephone], which sadly only runs on MacOS. + +- **Text editor**: [Neovim] + + It's vim. If you don't like vim, you should try using it longer. If you still don't like vim, + I would recommend [Code OSS], which is Visual Studio Code but without Microsoft's creepy + telemetry features. + +- **PDF viewer**: [zathura] + + It's a pdf viewer with vim bindings, and it reloads files automatically when they're updated, + which is nice when writing LaTeX documents. + +- **Image viewer**: [sxiv] + + It's like zathura but for images. It also does a bunch of other stuff that I don't use very often. -- **Browser**: [brave](https://brave.com/). It's a normie-friendly chromium - fork with extra privacy features! I of course use brave (or any - chromium-based browser) with [tampermonkey](https://www.tampermonkey.net/), - [ublock origin](https://ublockorigin.com/), - [stylus](https://github.com/openstyles/stylus) and [dark - reader](https://darkreader.org/). - -- **Terminal**: [st](https://st.suckless.org/). It's fast and simple, nothing - to complain about. I have my [own st fork](https://github.com/lonkaars/st), - with a bunch of patches that make me happy. - -- **Password manager**: [bitwarden](https://bitwarden.com/). Open source - password manager that you can host yourself. It also has public servers which - are mostly free, but some features like time-based one-time passwords are - paid. All the clients are also open source. - -- **Document typesetting**: [LaTeX](https://www.latex-project.org/) (using - [latexmk](https://personal.psu.edu/~jcc8/software/latexmk/) with the - [XeTeX](http://xetex.sourceforge.net/) compiler). - -- **File browser**: [ranger](https://github.com/ranger/ranger). It's kind of - slow, but I use the bulkrename feature very often, and I haven't gotten used - to the perl `rename` script yet. - -- [unar](https://github.com/MacPaw/XADMaster). I like running `unar [archive]` - instead of using `7z`, `tar`, `unzip`, etc. It creates a new folder to unpack - to automatically so it does exactly what I need. - -### OS stuff - -- **Window manager**: [i3-gaps](https://github.com/Airblader/i3). I tried it - once and didn't switch back so this is a winner I guess. I've also heard good - things about [dwm](https://dwm.suckless.org/), though I haven't used it - myself. Most people complain about i3's limited configurability, but I - haven't ran into something that it doesn't do for me. - -- **Application launcher**: [rofi](https://github.com/davatorium/rofi). I've - been using rofi since I started using linux, and haven't switched to anything - else because it's *very* configurable, and has a dmenu mode for using it - instead of dmenu with other scripts. I use it primarily as my application - launcher, but I also have a hotkey setup to launch `bwmenu` which is a script - that fills in bitwarden passwords using rofi. - -- **Shell**: [zsh](https://www.zsh.org/) with [oh-my-zsh](https://ohmyz.sh/). - It's zsh, all the cool kids use it already. I do have `/usr/bin/sh` `ln -s`'d - to `/usr/bin/bash`, but I'd like to change that to `/usr/bin/dash`. Eh, I'll - get around to it someday. - -- **Status Bar**: [polybar](https://github.com/polybar/polybar). Simple bar, - gets the job done, the configuration files make me go insane though. It took - me a good half year of ricing to understand the polybar configuration files, - and I'm still not sure if I do. - -- **Notification daemon**: [dunst](https://dunst-project.org/). I used to use - deadd-notification-center, but that has waaaay too many haskell dependencies - on arch, so I don't use that anymore. +- **Browser**: [Brave] + + Yet another chromium fork, but with extra privacy features. I have a half-baked [Firefox] + rice, but still don't use it as my main browser due to the horrible trackpad support on X11. -- **Global keybinds**: - [xbindkeys](https://www.nongnu.org/xbindkeys/xbindkeys.html). Simple - configuration, works flawlessly, 10/10. +- **Terminal**: [st] -- **Compositor**: [picom](https://github.com/yshui/picom). It's a simple - compositor. I use it to enable vsync for desktop windows, and I have it set - up to only show a drop shadow on floating i3 windows. + The only fast and simple terminal emulator that does what I want and doesn't get in my way. I + forked [the upstream st source][st-upstream] and merged in a bunch of patches that make me + happy. -### Closed source +- **Password manager**: [pass] -- [discord](https://discord.com/). Gamer. The only reason this is listed here - is because I use discord with - [betterdiscord](https://github.com/rauenzi/BetterDiscordApp) (which *is* - open-source). Betterdiscord allows you to use custom css themes, custom - plugins and a whole bunch of other cool stuff that regular discord doesn't - do. It's technically against TOS, but I don't really care as I only use - quality of life improvement plugins. + TODO -- [figma](https://figma.com). It's the designing software that I use to create - user interface or website mockups. It's easily accessible though a browser, - and it uses webassembly so it's also decently fast. It's free for personal - use. +- **Document typesetting**: [LaTeX] with [latexmk] and the [XeTeX] compiler -## Server software + TODO -This is the software that runs on my home server. +## Utilities -### Email +- [fzmp] -I used [Luke Smith's](http://lukesmith.xyz/) -[emailwiz](https://github.com/LukeSmithxyz/emailwiz) to set up my email server. -The script installs and configures an email setup with -[postfix](http://www.postfix.org/), [dovecot](https://www.dovecot.org/), -[spamassassin](https://spamassassin.apache.org/) and -[opendkim](http://www.opendkim.org/). + This is a client for [mpd], which allows you to search your library using [fzf]. I sometimes + randomly think of a very specific song in my library, and fzmp allows me to find and queue + any song extremely efficiently. -### Etesync +- [lf] (terminal file manager) +- [unar] -I run my own [etesync](https://www.etesync.com/) server for synchronizing my -to-do lists, calendar and contacts. It's relatively easy to set up, and has a -web interface that you can use with your own self-hosted instance. + I like running `unar [archive]` instead of using `7z`, `tar`, `unzip`, etc. It creates a new + folder to unpack to automatically so it does exactly what I need. -### Bitwarden +- [BetterDiscord] -I also run my own [bitwarden](https://github.com/bitwarden/server) server. It -uses docker with docker-compose, which are two things that I'm supposed to know -about, but I don't. + BetterDiscord allows you to use custom css themes, custom plugins and a whole bunch of other + cool stuff that regular Discord doesn't do. It's technically against TOS, but I don't really + care as I only use quality of life improvement plugins. -I'm working on a connect 4 website myself, and I'm planning on learning to use -docker with docker-compose to make it easier to run the seperate parts that are -needed to host the project. +### Browser extensions -### Git +- [Violentmonkey] +- [uBlock Origin] +- [Stylus] +- [Dark Reader] +- [Yomitan] -I have a [cgit](https://git.zx2c4.com/cgit/about/) server to host my git -repositories on <https://git.pipeframe.xyz>, and I use -[gitolite](https://gitolite.com/gitolite/) for ssh git push access. Cgit is -very easy to set up, and I like it very much. Gitolite on the other hand is a -pain in the ass to set up, because the documentation is not that great. If -you're planning on using gitolite on your own server, set the umask in -`~/.gitolite.rc` of your server's git account to `0022`. +## OS stuff -### SFTP +- **Window manager**: [i3] -I have two semi-public sftp accounts set up on my server: `media` and `sftp`. -`sftp` is for generic file sharing, and `media` is for my media. Both accounts -have tty login disabled and are chroot-jailed to /var/media and /var/sftp. + I tried it once and didn't switch back so this is a winner I guess. I've also heard good + things about [dwm], though I haven't used it myself. Most people complain about i3's limited + configurability, but I haven't ran into something that it doesn't do for me. -## Phone apps +- **Application launcher**: [rofi] -These are the apps that I use on my phone. I recently upgraded my 2017 Nokia 6 -to a Google Pixel 4a (sunfish). It's a great phone! You can root it or flash -custom rom's very easily, and it gave me new appreciation for the basic -features of a smartphone. The Pixel 4a has really good haptics. They're almost -iPhone level, though I won't be using iPhones any time soon. + I've been using rofi since I started using linux, and haven't switched to anything else + because it's *very* configurable, and has a dmenu mode for using it instead of dmenu with + other scripts. I use it primarily as my application launcher, but I also have a hotkey setup + to launch `bwmenu` which is a script that fills in bitwarden passwords using rofi. -I flashed [CalyxOS](https://calyxos.org/) as soon as it was 5 minutes out of -the box, but ended up not liking it because of it's nonexistant root support. -I'm currently using [LineageOS](https://lineageos.org/) 18.1, rooted using -[magisk](https://github.com/topjohnwu/Magisk). +- **Shell**: [zsh] with [oh-my-zsh] -### Open source + It's zsh, all the cool kids use it already. I do have `/usr/bin/sh` `ln -s`'d to + `/usr/bin/bash`, but I'd like to change that to `/usr/bin/dash`. Eh, I'll get around to it + someday. -- **One-time password generator**: [andotp](https://github.com/andOTP/andOTP) +- **Status Bar**: [polybar] -- **App store**: [aurora store](https://gitlab.com/AuroraOSS/AuroraStore). This - app works better when you're rooted, but it's way better than the google play - store. + Simple bar, gets the job done, the configuration files make me go insane though. It took me a + good half year of ricing to understand the polybar configuration files, and I'm still not + sure if I do. -- **App store**: [aurora f-droid](https://gitlab.com/AuroraOSS/auroradroid) +- **Notification daemon**: [dunst] -- **Password manager**: [bitwarden](https://github.com/bitwarden/mobile) + I used to use `deadd-notification-center`, but that has waaaay too many haskell dependencies + on arch, so I don't use that anymore. -- **Browser**: [bromite](https://www.bromite.org/). This is basically ungoogled - chromium but for mobile. +- **Global keybinds**: [xbindkeys] -- **Calendar**: [etar](https://github.com/Etar-Group/Etar-Calendar) + Simple configuration, works flawlessly, 10/10. -- [etesync](https://github.com/etesync/android) +- **Compositor**: [picom] -- **File browser**: [material - files](https://github.com/zhanghai/MaterialFiles). It looks sexy, it's free, - it's awesome. + It's a simple compositor. I use it to enable vsync for desktop windows, and I have it set up + to only show a drop shadow on floating i3 windows. -- **Email client**: [k-9](https://k9mail.app/). +- [Figma] (**CLOSED SOURCE**) -- **Maps**: [osmand](https://osmand.net/). + It's the designing software that I use to create user interface or website mockups. It's + easily accessible though a browser, and it uses webassembly so it's also decently fast. It's + free for personal use. -- **Music player**: [shuttle](https://www.shuttlemusicplayer.com/). It looks - sexy, it's free, it's awesome. +# Linux (Server) -- **Instant messenger**: [signal](https://signal.org/). +- **Email server**: [dovecot] and [postfix] with [opendkim] and [spamassassin] + + I used [Luke Smith's emailwiz][emailwiz] to set up my email server and tweaked some settings + afterwards. +- **Contacts/calendar sync**: [Radicale] + + I used to self-host [EteSync] for synchronizing my to-do lists, calendar and contacts, but + moved to Radicale because CalDAV is generally supported better. EteSync has some neat + built-in journalling features, but is primarily built for privacy. I would still recommend it + if you don't have the option to self-host and want your data to remain private, but Radicale + is significantly easier to set up and works out-of-the box with all the CalDAV/CardDav + clients I tried, while EteSync mostly relies on an EteSync↔DAV adapter for compatibility. + +- **File sync**: [Syncthing] +- **Static HTTP host**: [nginx] +- **WebDAV**: [nginx] +- **Git**: [gitolite] and [cgit] ([see full post](/post/git)) +- **Media server**: [Jellyfin] +- **BitTorrent Client**: [Transmission] + +# Android + +These are the apps that I use on my phone. I've been daily driving a Google Pixel 4a (sunfish) +running [LineageOS]. It's honestly a great phone, and the only complaints I have about it are +software-related (and therefore self-inflicted). Pixel devices can easily be rooted or flashed +with custom roms. + +When I first got this phone I immediately tried flashing [CalyxOS], but I ended up switching to +LineageOS because CalyxOS doesn't have great root support. + +- **One-time password generator**: [andotp] + +- **App store**: [aurora]. This app works + better when you're rooted, but it's way better than the google play store. + +- **App store**: [aurora-fdroid] + +- **Password manager**: [Bitwarden] + +- **Browser**: [bromite]. This is basically ungoogled chromium but + for mobile. + +- **Calendar**: [etar] + +- [etesync] + +- **File browser**: [materialfiles]. It looks sexy, + it's free, it's awesome. + +- **Email client**: [K-9 mail][k9mail]. + +- **Maps**: [osmand]. + +- **Music player**: [shuttle]. It looks sexy, it's free, + it's awesome. -- **Manga reader**: [tachiyomi](https://tachiyomi.org/) +- **Instant messenger**: [signal]. -- **To-do lists**: [tasks.org](https://tasks.org/). This is easily the best - to-do app I've ever used, and it integrated very well with etesync. +- **Manga reader**: [tachiyomi] - If you're cheap (like me), you can get 'free' pro by downloading this app - through f-droid instead of the play store. It's still nice to donate. +- **To-do lists**: [tasks.org]. This is easily the best to-do app I've ever used, and it + integrated very well with etesync. -- **Smart home control**: [home assistant](https://www.home-assistant.io/). - [the whole spiel](/post/homeauto). + If you're cheap (like me), you can get 'free' pro by downloading this app through f-droid + instead of the play store. It's still nice to donate. -- **Notes**: [leaflet](https://github.com/PotatoProject/Leaflet). It's - basically Google Keep but open source and without Google. It's part of the - PotatoProject which is a custom Android rom, and there were plans for an open - source notes sync server that you could host yourself, but I haven't seen - that pop up yet. +- **Smart home control**: [home assistant][hass]. - The app is written in Flutter, and did have choppy scrolling animations on my - old phone. I'm not sure if that was a bug or my old phone just being - underpowered, but it's something I want to mention anyways. +- **Weather**: [geometric weather]. It's really good. Good animations, live + wallpaper, fast, etc. -- **Weather**: [geometric - weather](https://f-droid.org/en/packages/wangdaye.com.geometricweather/). - It's really good. Good animations, live wallpaper, fast, etc. +- **Myanimelist client**: [MoeList]. I don't know how I found this app but it's a real gem. If + you use MAL you should download this app. -- **RSS Reader**: [tiny tiny - rss](https://www.f-droid.org/en/packages/org.fox.tttrss/). This app requires - that you host your own tiny tiny rss server, but I do and the app works - great! +- **PDF reader**: [pdf viewer plus]. This is the only one that's actually + decent. Good UI, good UX, pretty fast rendering. 9/10 -- **Myanimelist client**: [moelist](https://github.com/axiel7/MoeList). I don't - know how I found this app but it's a real gem. If you use MAL you should - download this app. +## Requires root -- **PDF reader**: [pdf viewer - plus](https://f-droid.org/en/packages/com.gsnathan.pdfviewer/). This is the - only one that's actually decent. Good UI, good UX, pretty fast rendering. - 9/10 +- [adaway] -### Requires root + Blocks ads system-wide! It does have a rootless mode, though the app warns you that it's + slower and impacts your battery life negatively. -- **Ad-blocker**: [adaway](https://adaway.org/). It does have a rootless mode, - though the app warns you that it's slower and impacts your battery life - negatively. +# Sucks -- **Theme engine**: [substratum](https://github.com/substratum/substratum). - Substratum requires root on android 9+, unless you're on stock samsung (one - ui). Android 8 and under users can buy - [andromeda](https://play.google.com/store/apps/details?id=projekt.andromeda). - Samsung users can buy - [synergy](https://play.google.com/store/apps/details?id=projekt.samsung.theme.compiler). - They're both developed by the same people behind substratum, but they're not - open source. +This is software that I used before but have moved away from or recommend you stay away from +too. -### Closed source +- [Sync for Reddit] (Android) (**CLOSED SOURCE**) -- **Reddit client**: - [sync](https://play.google.com/store/apps/details?id=com.laurencedawson.reddit_sync) + Used to work fine on rooted devices with MicroG, but completely broke after the Material You + support update. I was able to restore an older version of the app without reinstalling, but + completely stopped using Reddit after [the whole 2023 API pricing + thing](https://en.wikipedia.org/wiki/2023_Reddit_API_controversy) anyways so never bothered + to find a good replacement app. +- [Bitwarden] +- [ranger] +{% include links.md %} diff --git a/_layouts/default.html b/_layouts/default.html index 09790ba..9688091 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -12,6 +12,7 @@ <title>{{ site.title }}</title> {% endif %} <link rel="stylesheet" href="/style.css"> + <noscript><style>.dispjs { display:none; }</style></noscript> <script src="/script.js" defer></script> </head> <body> @@ -22,12 +23,12 @@ </header> <nav class="plainlink"> <div class="limitwidth"> - <a href="/" class="item {% if page.id == "index" %}active{% endif %}">home</a> - <a href="/posts/by-date" class="item {% if page.id == "posts" %}active{% endif %}">posts</a> - <a href="/tags" class="item {% if page.id == "tags" %}active{% endif %}">tags</a> + <a href="/" class="item {% if page.id == "index" %}active{% endif %}">{% i18n home %}</a> + <a href="/posts/by-date" class="item {% if page.id == "posts" %}active{% endif %}">{% i18n posts %}</a> + <a href="/tags" class="item {% if page.id == "tags" %}active{% endif %}">{% i18n tags %}</a> <span class="right"> - {% if page.toc %}<a href="#" class="item">top</a>{% endif %} - {% if page.post %}<a href="#footer" class="item">bottom</a>{% endif %} + {% if page.toc %}<a href="#" class="item">{% i18n top %}</a>{% endif %} + {% if page.post %}<a href="#footer" class="item">{% i18n bottom %}</a>{% endif %} </span> </div> </nav> @@ -37,28 +38,7 @@ {{ content }} </article> {% if page.post %} - <footer id="footer" class="plainlink"> - <div class="limitwidth"> - <div class="autocolumn"> - <div class="column"> - <span class="title">post info</span> - <ul> - <li>last published on {{ page.meta.date | datefmt }}</li> - <li>written by {{ page.authors | map: 'nick' | sentence_join: 'nobody?' }}</li> - <li>first published on {{ page.meta.date_initial | datefmt }}</li> - <li>edited {{ page.meta.edits | plural: 'time' }}</li> - </ul> - </div> - <div class="column"> - <a href="/" class="title">{{ site.domain }}</a> - <ul> - <li>version <code>{{ site.data.meta.slug }}</code> (<a href="https://git.pipeframe.xyz/lonkaars/blog">git</a>)</li> - <li>built {{ site.data.meta.build_date | datefmt }}</li> - </ul> - </div> - </div> - </div> - </footer> + {% include footer.html %} {% endif %} </body> </html> diff --git a/_plugins/i18n.rb b/_plugins/i18n.rb new file mode 100644 index 0000000..1bfb8ce --- /dev/null +++ b/_plugins/i18n.rb @@ -0,0 +1,26 @@ +class I18N < Liquid::Tag + def initialize(tag_name, text, tokens) + super + @key = text.strip() + end + + def render(context) + # see _data/i18n.yml + db = context.registers[:site].data['i18n'] + lang = context.registers[:page]['lang'] + + entry = db[@key] + return @key if entry == nil + + # first translation is the preferred translation + translation = entry.values[0] + # return key as-is if the entry is an empty map + return @key if translation == nil + # return the correct translation if it is in the entry + return entry[lang] if entry.key?(lang) + # else, return the first translation + return translation + end +end + +Liquid::Template.register_tag('i18n', I18N) diff --git a/_sass/color.scss b/_sass/color.scss index 9a5caff..3b45c28 100644 --- a/_sass/color.scss +++ b/_sass/color.scss @@ -26,7 +26,7 @@ --bg-2: var(--bg-1); --fg-2: var(--fg-1); - --code-comment: #808b9bd9; + --code-comment: #abbfddde; --code-keyword: #d25a76; --code-string: #e4a87e; --code-number: #fa7d57; diff --git a/_sass/theme.scss b/_sass/theme.scss index a844858..b220ceb 100644 --- a/_sass/theme.scss +++ b/_sass/theme.scss @@ -117,5 +117,5 @@ input, button { display: inline-block; padding: 2px 8px; } -input[type=submit], buttom { cursor: pointer; } +input[type=submit], button { cursor: pointer; } diff --git a/_sass/typography.scss b/_sass/typography.scss index 335e433..db82dc9 100644 --- a/_sass/typography.scss +++ b/_sass/typography.scss @@ -15,3 +15,16 @@ aside, header { text-wrap: balance; } article { text-align: justify; } + +h1 { font-size: 2em; } + +html[lang^="ja"] { + * { font-style: normal !important; } + article { text-align: left; } + & { + line-height: 1.6; + font-size: 9pt; + hyphens: none; + } +} + @@ -0,0 +1,18 @@ +--- +title: blog.pipeframe.xyz +layout: default +id: index +lang: ja +--- + +俺のブログへようこそ! + +気が向いて何か書こうとしたら多分ここに投稿します。開発者あるあるの[バイク小屋の色][bikeshed]に気を使いすぎるので、未完成のプロジェクトや古い記事にご注意ください。 + +[bikeshed]: https://ja.wikipedia.org/wiki/パーキンソンの凡俗法則 + +RSS/atom: +``` +https://{{ site.domain }}/atom.xml +``` + @@ -0,0 +1,20 @@ +--- +title: blog.pipeframe.xyz +layout: default +id: index +lang: nl +--- + +Welkom op mijn blog! + +Als ik ooit zin heb om iets te schrijven is het redelijk waarschijnlijk dat ik het hier zal +posten. Zoals gebruikelijk bij programmeurs heb ik moeite met [bikeshedding][bikeshed], dus het +kan zijn dat er verwijzingen naar verouderde posts of onafgemaakte projecten zijn. + +[bikeshed]: https://nl.wikipedia.org/wiki/Trivialiteitswet_van_Parkinson + +RSS/atom: +``` +https://{{ site.domain }}/atom.xml +``` + @@ -2,3 +2,8 @@ Live at <https://blog.pipeframe.xyz> + +## TODO + +- generate build manifest with link dump (to check if dead links) + @@ -6,6 +6,19 @@ toc: false post: false --- +<div class="dispjs"> + <button onclick="toggle_open(this)" type="button">open all</button> +</div> +<script defer> + function toggle_open(btn) { + const open = btn.hasAttribute("open"); + btn[open ? "removeAttribute" : "setAttribute"]("open", ""); + for (let el of document.getElementsByTagName("details")) { + el[open ? "removeAttribute" : "setAttribute"]("open", ""); + } + btn.innerText = `${open ? "open" : "close"} all`; + } +</script> <ul> {% assign tags = site.data.tags %} {% for tag in tags %} |