pre-commit applying mess round one

This commit is contained in:
Aminda Suomalainen 2023-02-26 19:01:13 +02:00
parent b5137190cd
commit 40b44495fe
Signed by: Mikaela
SSH Key Fingerprint: SHA256:CXLULpqNBdUKB6E6fLA1b/4SzG0HvKD19PbIePU175Q
82 changed files with 1999 additions and 1858 deletions

View File

@ -3,13 +3,12 @@ root = true
[*]
# Future: https://github.com/editorconfig/editorconfig/issues/89
# Handled by git when not set
#end_of_line = lf
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
charset = utf-8
# Accessibility reasons. Vim: :%retab! (note also :set ts=4)
indent_style = tab
indent_size = tab
indent_style = space
#tab_width =
[*.{markdown,md}]

2
.gitattributes vendored
View File

@ -1,6 +1,6 @@
# Normalize line endings for text files
# https://www.git-scm.com/docs/gitattributes#_end_of_line_conversion
* text=auto linguist-detectable
* text=auto eol=lf linguist-detectable
# Unlikely to be ran under Windows, Linux line endings
*.bash text eol=lf

1
.gitignore vendored
View File

@ -303,4 +303,3 @@ TSWLatexianTemp*
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib

27
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,27 @@
# Remember to run `pre-commit install` at least once!
# Manual test run: `pre-commit run --all-files`
# Update? `pre-commit autoupdate`
#
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-added-large-files
- id: check-case-conflict
- id: check-executables-have-shebangs
- id: check-shebang-scripts-are-executable
- id: destroyed-symlinks
- id: detect-private-key
- id: end-of-file-fixer
- id: fix-byte-order-marker
- repo: https://github.com/pre-commit/mirrors-prettier
rev: "v3.0.0-alpha.4"
hooks:
- id: prettier
- repo: https://github.com/editorconfig-checker/editorconfig-checker.python
rev: "2.7.1"
hooks:
- id: editorconfig-checker
alias: ec

1
.prettierignore Normal file
View File

@ -0,0 +1 @@
associations

1
LaTeX/.gitignore vendored
View File

@ -302,4 +302,3 @@ TSWLatexianTemp*
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib

View File

@ -2,8 +2,8 @@
To possibly save your self from headache:
* Fedora: `sudo dnf install texlive-scheme-full -y`
* Debian: `sudo apt install texlive-full -y`
- Fedora: `sudo dnf install texlive-scheme-full -y`
- Debian: `sudo apt install texlive-full -y`
## Simple boilerplate
@ -14,8 +14,8 @@ answers.
## Package management
***Don't do this, use `YOURFAVOURITEPACKAGEMANAGER search texlive-moderncv`
or whatever***
**_Don't do this, use `YOURFAVOURITEPACKAGEMANAGER search texlive-moderncv`
or whatever_**
Fedora: remember to `sudo dnf install texlive-msg texlive-texlive-msg-translations` to
remove one nag. Which doesn't work with Finnish, naturally.
@ -28,10 +28,12 @@ tlmgr --ignore-warning --usermode install moderncv
## Installing custom templates
1. Put them to `~/texmf/tex/latex/local/` The `tlmgr init-usertree` might be useful?
* This can be verified with `kpsewhich -var-value=TEXMFHOME` in case this
happened to be not-Linux.
- This can be verified with `kpsewhich -var-value=TEXMFHOME` in case this
happened to be not-Linux.
2. Run `texhash ~/texmf`
### Noteworthy templates
* [Finnish standard document](https://github.com/datakurre/vakioasiakirja)
- [Finnish standard document](https://github.com/datakurre/vakioasiakirja)

View File

@ -9,7 +9,7 @@ their relationship with the
# LICENSING
`3ea1645f746abf8de4683aadf07202bce38480f5` (*Tue Feb 21 14:15:46 2023 +0200*) switches from BSD-3 clause to
`3ea1645f746abf8de4683aadf07202bce38480f5` (_Tue Feb 21 14:15:46 2023 +0200_) switches from BSD-3 clause to
CC0. I don't think anything here qualifies as original work or licensable
in general.

View File

@ -7,9 +7,9 @@ for multiple devices. They possibly should be in aminda.eu, but I don't
know what would be a good way to show them as browser integrated CSV
viewers are rare and I don't think these would be in so much demand.
*Note that as per the FAQ, the connection request needs to be accepted
_Note that as per the FAQ, the connection request needs to be accepted
within 48 hours by entering your Briar address. However after that
introductions can be made without timeout concerns.*
introductions can be made without timeout concerns._
Briar doesn't hold as big place in my heart as IRC or Matrix to have a
dedicated page either and my HTML table tendency is effort even if the page
@ -37,12 +37,12 @@ add new users)</s> or blogs.
## Further reading and quotes
* https://briarproject.org/quick-start/
* > Please note that Briar will only synchronize messages with your contacts, not with nearby strangers who are running Briar. And it will only sync the messages youve chosen to share with each contact. For example, if you invite your contacts X and Y to join a forum, and they accept, then messages in that forum will be synced with X or Y whenever theyre within range. So you can receive forum messages from X in one location, travel to another location, and deliver those messages to Y.
* > But this doesnt work for private messages: theyre only synchronized directly between the sender and recipient.
* https://code.briarproject.org/briar/briar/-/wikis/FAQ
* > Your Briar link contains a public key and it is safe to publish in the same way as a PGP public key. If you want to contact someone via Briar, both of you need to add each other's links.
* > No, your online status isn't exposed by publishing your `briar://` link. Only your contacts can tell whether you're online.
* > No. Unlike with adding contacts at a distance and its 48 hours timeout, there's no such thing for introductions.
* https://code.briarproject.org/briar/briar-desktop/-/wikis/Changelog
* > \[0.2.0-beta 2022-02-22\] Synchronize messages via local LAN
- https://briarproject.org/quick-start/
- > Please note that Briar will only synchronize messages with your contacts, not with nearby strangers who are running Briar. And it will only sync the messages youve chosen to share with each contact. For example, if you invite your contacts X and Y to join a forum, and they accept, then messages in that forum will be synced with X or Y whenever theyre within range. So you can receive forum messages from X in one location, travel to another location, and deliver those messages to Y.
- > But this doesnt work for private messages: theyre only synchronized directly between the sender and recipient.
- https://code.briarproject.org/briar/briar/-/wikis/FAQ
- > Your Briar link contains a public key and it is safe to publish in the same way as a PGP public key. If you want to contact someone via Briar, both of you need to add each other's links.
- > No, your online status isn't exposed by publishing your `briar://` link. Only your contacts can tell whether you're online.
- > No. Unlike with adding contacts at a distance and its 48 hours timeout, there's no such thing for introductions.
- https://code.briarproject.org/briar/briar-desktop/-/wikis/Changelog
- > \[0.2.0-beta 2022-02-22\] Synchronize messages via local LAN

View File

@ -3,18 +3,18 @@
Briar Forums are groups where anyone can add anyone. They have no further
moderation options than people cutting contact with abusive users.
* `PandaCoderPL` introduced many to Briar forums and messages from them are
- `PandaCoderPL` introduced many to Briar forums and messages from them are
visible in many forums especially those they list. To avoid duplication,
I have included their repository as a submodule.
* `started-by-me.csv` has those I created, but due to the way how Briar
- `started-by-me.csv` has those I created, but due to the way how Briar
works I have no special access/power over others there.
* This is intentionally missing forums that contain just me and another
- This is intentionally missing forums that contain just me and another
person with multiple devices as Briar doesn't have multidevice support
and groups being untransferrable is too painful to use them, although
it carries risk of someone accidentally oversharing forums and thus
revealing past messages. A dead friend forum where everyone else may
have stopped using Briar is also omitted.
* I mostly have `date +%Y-%j` in the end of forums I create so in case
- I mostly have `date +%Y-%j` in the end of forums I create so in case
someone else has the same idea, there is unlikely to be two forums with
the exact same name (which is possible and not a problem for Briar).

View File

@ -1,9 +1,9 @@
# Call forwarding, relevant commands edition
*This is widely documented around the internet, but everything has a lot
of details irrelevant to my case of two phones and it's always effort to
cherry-pick the relevant parts. This file may be unintentionally Finland
specific.*
_This is widely documented around the internet, but everything has a lot
of details irrelevant to my case of two phones and it's always effort to
cherry-pick the relevant parts. This file may be unintentionally Finland
specific._
1. Open dialer
2. Enter command. +358 is Finnish international format, remove leading 0 from
@ -12,11 +12,11 @@
## Commands
* `##002#` - Remove all call forwards
* `**61*+358…**30#` - forward if call is not answered in 30 seconds
* 30 may be replaced with multiples of 5 between 5 and 30.
* `**62*+358…#` - forward if phone is not connected to network.
* `**67*+358…#` - forward if phone is on another call.
- `##002#` - Remove all call forwards
- `**61*+358…**30#` - forward if call is not answered in 30 seconds
- 30 may be replaced with multiples of 5 between 5 and 30.
- `**62*+358…#` - forward if phone is not connected to network.
- `**67*+358…#` - forward if phone is on another call.
Copy-paste template for text editor:
@ -28,18 +28,18 @@ Copy-paste template for text editor:
## Status check
* `*#002#` - Supposedly status for all forwards. Will respond with everything
- `*#002#` - Supposedly status for all forwards. Will respond with everything
has failed.
* `*#61#` - Status for forward while not answered. Doesn't show the amount of seconds as
- `*#61#` - Status for forward while not answered. Doesn't show the amount of seconds as
that would likely make life too easy?
* `*#62#` - Status for forward when not connected to network.
* `*#67#` - Status for when being in other calls.
- `*#62#` - Status for forward when not connected to network.
- `*#67#` - Status for when being in other calls.
## GUI
* Apple: has no proper GUI for the cases above, only on/off toggle on forwarding
- Apple: has no proper GUI for the cases above, only on/off toggle on forwarding
every call. https://support.apple.com/guide/iphone/iphe9bdd027a/ios
* Android: likely OEM-dependent and I don't have an Android with a SIM.
* SailfishOS: Settings → Applications → Phone → Call forwarding. Case forward when
- Android: likely OEM-dependent and I don't have an Android with a SIM.
- SailfishOS: Settings → Applications → Phone → Call forwarding. Case forward when
not answered in X time has no option how long to wait and I am not going to try
whether it forwards in 5 or 30 seconds.

View File

@ -3,9 +3,9 @@
Finnish identity cards have been electronic for ages and as I tend to forget
how to use it on Linux again, here are my notes.
* Official application: https://dvv.fi/en/card-reader-software
* Fedora/rpm is hidden under "All versions", "Linux versions"
* DVV certificate newsletter: https://uutiskirjeet.dvv.fi/uutiset/varmennepalvelut.html
- Official application: https://dvv.fi/en/card-reader-software
- Fedora/rpm is hidden under "All versions", "Linux versions"
- DVV certificate newsletter: https://uutiskirjeet.dvv.fi/uutiset/varmennepalvelut.html
## Requirements for everything
@ -30,15 +30,15 @@ the browser was started.
## Firefox and Thunderbird
***This doesn't apply if the above libcryptoki.so is created
and preferably `libcryptoki.so` would be loaded anyway***
**_This doesn't apply if the above libcryptoki.so is created
and preferably `libcryptoki.so` would be loaded anyway_**
In Settings, Advanced, Security devices load the module from (DVV app) `/usr/lib64/libcryptoki.so` or (OpenSC):
* Debian: `/usr/lib/x86_64-linux-gnu/onepin-opensc-pkcs11.so`
* Package: `opensc-pkcs11`
* Fedora: `/usr/lib64/onepin-opensc-pkcs11.so`
* Package: `opensc`
- Debian: `/usr/lib/x86_64-linux-gnu/onepin-opensc-pkcs11.so`
- Package: `opensc-pkcs11`
- Fedora: `/usr/lib64/onepin-opensc-pkcs11.so`
- Package: `opensc`
`onepin` is a workaround to not ask for PIN2 which is only used for legal agreements,
email signing also uses PIN1.
@ -47,17 +47,17 @@ email signing also uses PIN1.
Okular is the KDE document viewer and supports signing PDF files using FINEID!
There are three ways to go, they all begin with *Settings* menu, *Configure backends*
and *PDF*.
There are three ways to go, they all begin with _Settings_ menu, _Configure backends_
and _PDF_.
Set the certificate database to one of the three:
* `/etc/nssdb` with password that I don't know.
* `~/.pki/nssdb` which password theoretically reads in `~/.digisign/Seed.txt` assuming the official DigiSignApplication is used.
* `~/.mozilla/firefox/<randomString>.<ProfileName>` - when Firefox is used (may require the configuration above), didn't ask me for a password, which may be the main password and directly offers the certificates from FINEID.
- `/etc/nssdb` with password that I don't know.
- `~/.pki/nssdb` which password theoretically reads in `~/.digisign/Seed.txt` assuming the official DigiSignApplication is used.
- `~/.mozilla/firefox/<randomString>.<ProfileName>` - when Firefox is used (may require the configuration above), didn't ask me for a password, which may be the main password and directly offers the certificates from FINEID.
Next Apply or OK and restart Okular, open *Tools* menu and select
*Digitally sign...*, draw an area for the signature (which FINEID wants to be big),
Next Apply or OK and restart Okular, open _Tools_ menu and select
_Digitally sign..._, draw an area for the signature (which FINEID wants to be big),
select where to save the signed .pdf and enter the signing PIN a few times.
These signed documents can then be verified at [English](https://dvv.fi/en/validate-pdf-document),
@ -82,18 +82,20 @@ Time of signature: ... (Time stamp not validated by a time stamp authority (TSA)
While I don't think the user necessarily needs them, my notes mention `DVV Gov. Root CA`.
* https://dvv.fi/en/ca-certificates
- https://dvv.fi/en/ca-certificates
## Testing
* https://dvv.fineid.fi/en/authentication
- https://dvv.fineid.fi/en/authentication
## FINEID as SSH key
0. I would start by `ssh-add -D` to remove other keys from the ssh-agent.
1. Add the key to the agent
* Debian: `ssh-add -s /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so`
* Fedora: `ssh-add -s /usr/lib64/opensc-pkcs11.so`
- Debian: `ssh-add -s /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so`
- Fedora: `ssh-add -s /usr/lib64/opensc-pkcs11.so`
2. Export the public key by `ssh-add -L|head -n1` (the comment should be "todentamis- ja salausavain" ("authentication and encryption key"))
3. Naturally put it into `~/.ssh/authorized_keys`, but SSH should detect
it automatically. The file could also be mentioned in `ssh_config`

View File

@ -25,8 +25,8 @@ gamescope --steam --borderless -- %command%
See also `gamescope --help`
* `--steam` - enables Steam integration, whatever that is
* `--borderless` borderless full-screen mode (that Sway may be making
- `--steam` - enables Steam integration, whatever that is
- `--borderless` borderless full-screen mode (that Sway may be making
windowed though)
##### Graphics corruption such as display full of black dots
@ -44,4 +44,4 @@ which says it's tracked at [freedesktop.org/mesa/mesa#6029](https://gitlab.freed
Close/logoff friends window/network or disable its animations.
* https://github.com/ValveSoftware/steam-for-linux/issues/7245#issuecomment-897417115
- https://github.com/ValveSoftware/steam-for-linux/issues/7245#issuecomment-897417115

View File

@ -5,30 +5,30 @@ help with mainly resolution and bitrate.
## resolution & bitrate
* Settings --> Output:
* Video Bitrate: CHECK BELOW!
* [x] Enable Advanced Encoder Settings
* [x] Enforce streaming site bitrate limits
* Encoder preset: Low-Latency Performance
* Settings --> Video:
* Base (Canvas) Resolution: DEPENDS ON STREAMED GAME OR FULL DESKTOP RESOLUTION, CHECK GAME/DISPLAY SETTINGS!
* *I was mainly playing Final Fantasy X with 1280x720 base/canvas resolution.*
* Output (Scaled) Resolution: WHAT VIEWERS WILL SEE, SEE BELOW
* Downscale filter: Bilinear (Fastest, but blurry if scaling)
* Common FPS Values: 30
- Settings --> Output:
- Video Bitrate: CHECK BELOW!
- [x] Enable Advanced Encoder Settings
- [x] Enforce streaming site bitrate limits
- Encoder preset: Low-Latency Performance
- Settings --> Video:
- Base (Canvas) Resolution: DEPENDS ON STREAMED GAME OR FULL DESKTOP RESOLUTION, CHECK GAME/DISPLAY SETTINGS!
- _I was mainly playing Final Fantasy X with 1280x720 base/canvas resolution._
- Output (Scaled) Resolution: WHAT VIEWERS WILL SEE, SEE BELOW
- Downscale filter: Bilinear (Fastest, but blurry if scaling)
- Common FPS Values: 30
### Suggestions
* DVD quality? 250 Kbps bitrate with output scaled 424x240
* Steam minimums: 750 Kbps & 640x350 (360p)
* Note that the second number in resolution is the quality
* Twitch suggested: 3000 Kbps for 1280x720p
* *I may have been trying 1080p but potential settings were lost with hardware issue.*
- DVD quality? 250 Kbps bitrate with output scaled 424x240
- Steam minimums: 750 Kbps & 640x350 (360p)
- Note that the second number in resolution is the quality
- Twitch suggested: 3000 Kbps for 1280x720p
- _I may have been trying 1080p but potential settings were lost with hardware issue._
### External links
* https://stream.twitch.tv/?kbid=100005
* https://support.google.com/youtube/answer/2853702
- https://stream.twitch.tv/?kbid=100005
- https://support.google.com/youtube/answer/2853702
***NOTE: written from memory and [my TODO entry for this file](https://gitea.blesmrt.net/mikaela/gist/issues/6)
without actually having OBS Studio or anything in front of me.***
**_NOTE: written from memory and [my TODO entry for this file](https://gitea.blesmrt.net/mikaela/gist/issues/6)
without actually having OBS Studio or anything in front of me._**

View File

@ -19,4 +19,4 @@ patch=1,EE,20116FE0,extended,3C032062
patch=1,EE,20116FE4,extended,3C024461
patch=1,EE,20116FE8,extended,AC623020
// Invisible health results to black screen, PCSX2 doesn't like it.
// Invisible health results to black screen, PCSX2 doesn't like it.

View File

@ -39,4 +39,4 @@ comment=Cheat Codes
//patch=1,EE,200FFF28,extended,3C0142C8
//patch=1,EE,200FFF2C,extended,AC41FE34
//patch=1,EE,200FFF30,extended,03E00008
//patch=1,EE,20126F18,extended,0803FFC0
//patch=1,EE,20126F18,extended,0803FFC0

View File

@ -18,7 +18,7 @@ patch=1,EE,20166CD8,extended,0C03F800
//patch=1,EE,201D5F84,extended,3C0F0009
//patch=1,EE,201D5F88,extended,240F0009
// Drive without party members
// Drive without party members
patch=1,EE,201C9A80,extended,0000102D
// Party don't disappear when driving
patch=1,EE,201C99A0,extended,0000102D

View File

@ -48,7 +48,7 @@ room_save_file = ~/.wesnothd/rooms
# Does the server save replays of saved games? See replay_save_path.
save_replays = true
# Which versions of Wesnoth can connect?
# Which versions of Wesnoth can connect?
versions_accepted="*"
# What is used as database for login details? I don't know how to specify the database so server doesn't have registering.

View File

@ -1,7 +1,7 @@
# Random git files
* `gitignore` - `.gitignore` templates I may or may not use
* `etc/gitconfig` - a `/etc/gitconfig` for accepting signed pushes
- `gitignore` - `.gitignore` templates I may or may not use
- `etc/gitconfig` - a `/etc/gitconfig` for accepting signed pushes
## Tracking GitHub pull requests with `git`
@ -12,6 +12,6 @@ git config --add remote.GITHUB.fetch '+refs/pull/*/head:refs/remotes/GITHUB/pr/*
Replace `GITHUB` with the `git remote` name. I have picked this up from a
dead `git.io` link.
* TODO: Figure out if this also works for GitLab or what is the GitLab version?
- TODO: Figure out if this also works for GitLab or what is the GitLab version?
Gitea too.
* https://gitea.blesmrt.net/mikaela/gist/issues/39
- https://gitea.blesmrt.net/mikaela/gist/issues/39

View File

@ -1,10 +1,9 @@
*This work by <NAME> is licensed under a
[Creative Commons Attribution 4.0 International License].*
_This work by <NAME> is licensed under a
[Creative Commons Attribution 4.0 International License]._
[Creative Commons Attribution 4.0 International License]:https://creativecommons.org/licenses/by/4.0/
[creative commons attribution 4.0 international license]: https://creativecommons.org/licenses/by/4.0/
Creative Commons Attribution 4.0 International Public License
=============================================================
# Creative Commons Attribution 4.0 International Public License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
@ -15,76 +14,72 @@ these terms and conditions, and the Licensor grants You such rights in
consideration of benefits the Licensor receives from making the
Licensed Material available under these terms and conditions.
## Section 1 -- Definitions.
Section 1 -- Definitions.
-------------------------
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
c. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
d. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
d. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
e. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
e. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
f. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
f. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
g. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
g. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
h. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
h. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
i. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
i. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
j. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
j. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
k. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
k. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
## Section 2 -- Scope.
Section 2 -- Scope.
-------------------
a. License grant.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
@ -138,7 +133,7 @@ Section 2 -- Scope.
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
@ -158,14 +153,12 @@ Section 2 -- Scope.
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
Section 3 -- License Conditions.
--------------------------------
## Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
@ -211,70 +204,64 @@ following conditions.
License You apply must not prevent recipients of the Adapted
Material from complying with this Public License.
Section 4 -- Sui Generis Database Rights.
-----------------------------------------
## Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material; and
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material; and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
## Section 5 -- Disclaimer of Warranties and Limitation of Liability.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
------------------------------------------------------------------
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
## Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
Section 6 -- Term and Termination.
----------------------------------
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
@ -286,46 +273,42 @@ Section 6 -- Term and Termination.
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
## Section 7 -- Other Terms and Conditions.
Section 7 -- Other Terms and Conditions.
----------------------------------------
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
## Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
Section 8 -- Interpretation.
----------------------------
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.

View File

@ -5,15 +5,15 @@ Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

View File

@ -1,13 +1,13 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="UTF-8"/>
<!-- This is just stupid page to put to web browser homepage to have some
<head>
<meta charset="UTF-8" />
<!-- This is just stupid page to put to web browser homepage to have some
content on start page while not being empty or pointing to any external
location... -->
<title>OK.</title>
</head>
<body>
<p>Your browser has loaded this page.</p>
</body>
<title>OK.</title>
</head>
<body>
<p>Your browser has loaded this page.</p>
</body>
</html>

View File

@ -3,18 +3,17 @@
This is unlike the Atheme cstemplate as Anope doesn't have similar template
system, but these are the pre-defined ones on irc.anope.org
XOP
===
# XOP
* QOP = owner
* GREET, AUTOOP, GETKEY, HALFOP, INVITE, OPME, PROTECTME, SAY, TOPIC
* SOP = admin
* ACCESS_CHANGE, AKICK, AUTOPROTECT, BADWORDS, MEMO, OP
* AOP = op
* GREET, AUTOOP, GETKEY, HALFOP, INVITE, OPME, PROTECTME, SAY, TOPIC
* HOP = half op
* AUTOHALFOP, BAN, HALFOPME, KICK, UNBAN, VOICE
* VOP = voice
* ACCESS_LIST, AUTOVOICE, FANTASIA, NOKICK, VOICEME
- QOP = owner
- GREET, AUTOOP, GETKEY, HALFOP, INVITE, OPME, PROTECTME, SAY, TOPIC
- SOP = admin
- ACCESS_CHANGE, AKICK, AUTOPROTECT, BADWORDS, MEMO, OP
- AOP = op
- GREET, AUTOOP, GETKEY, HALFOP, INVITE, OPME, PROTECTME, SAY, TOPIC
- HOP = half op
- AUTOHALFOP, BAN, HALFOPME, KICK, UNBAN, VOICE
- VOP = voice
- ACCESS_LIST, AUTOVOICE, FANTASIA, NOKICK, VOICEME
Higher privilege also includes the lower ones.

View File

@ -84,7 +84,7 @@ echo "/cs flags $1 *!*@* +A"
## How GroupServ is configured
# We have group !piraatti-opit (as revealed earlier) that is closed
# (/msg GroupServ set !piraatti-opit open off).
#
#
# The founder currently has flags +FfscmviA and normal ops are given
# +cmvA. There are also $oper and bot with +cA and $registered with +A.

View File

@ -1,24 +1,24 @@
# HexChat configs
* Timestamp format: `[%Y-%j %H.%M.%S]` or `[%G-W%V-%u %H:%M:%S]`
* Example: `2021-173 19.40.50` or `2021-W34-5 13:44:50`
* Nickname length: `/set text_max_indent 640`
* so huge nicknames (especially with RELAYMSG) won't overlap timestamps
* source: https://hexchat.readthedocs.io/en/latest/faq.html#why-does-the-timestamp-overlap-some-nicknames
* Auto-reconnect: `/set net_ping_timeout 90`
* https://hexchat.readthedocs.io/en/latest/faq.html#how-do-i-auto-reconnect-after-my-computer-wakes-up-from-being-in-sleep-hibernate-mode
- Timestamp format: `[%Y-%j %H.%M.%S]` or `[%G-W%V-%u %H:%M:%S]`
- Example: `2021-173 19.40.50` or `2021-W34-5 13:44:50`
- Nickname length: `/set text_max_indent 640`
- so huge nicknames (especially with RELAYMSG) won't overlap timestamps
- source: https://hexchat.readthedocs.io/en/latest/faq.html#why-does-the-timestamp-overlap-some-nicknames
- Auto-reconnect: `/set net_ping_timeout 90`
- https://hexchat.readthedocs.io/en/latest/faq.html#how-do-i-auto-reconnect-after-my-computer-wakes-up-from-being-in-sleep-hibernate-mode
## Settings changes
* When using playback script (might be undesirable due to Ergo with
- When using playback script (might be undesirable due to Ergo with
@clientid behaving better)
* Disable logging?
* Disable scrollback
* Realname (or `/set irc_real_name Mikaela <email@example.net>`
- Disable logging?
- Disable scrollback
- Realname (or `/set irc_real_name Mikaela <email@example.net>`
### Settings → Text events
* Channel messages to show prefix
* original: `%C18%H<%H$4$1%H>%H%O$t$2`
* new: `%C18%H<%H$4$3$1%H>%H%O$t$2`
* source: https://hexchat.readthedocs.io/en/latest/faq.html#how-do-i-show-and-in-front-of-nicknames-that-are-op-and-voice-when-they-talk
- Channel messages to show prefix
- original: `%C18%H<%H$4$1%H>%H%O$t$2`
- new: `%C18%H<%H$4$3$1%H>%H%O$t$2`
- source: https://hexchat.readthedocs.io/en/latest/faq.html#how-do-i-show-and-in-front-of-nicknames-that-are-op-and-voice-when-they-talk

View File

@ -1,65 +1,69 @@
var realuserConfig = {
Mikaela: {
aliases: ['Mkaysi Mkays| Mkaysi- Mkaysi_ TDA_Anima Ciblia Mikaela Mikaela_ Michaela *Mikaela* Ciblia*'],
},
notifico: {
aliases: ['Not-*'],
},
onnz423: {
aliases: ['Onni*'],
},
foxiepaws: {
aliases: ['foxwolfblood'],
},
Nikashi: {
aliases: ['Nikashi Nikashi2']
},
}
var GA = {
customHeadHtml: '<script>\r\n (function(i,s,o,g,r,a,m){i[\'GoogleAnalyticsObject\']=r;i[r]=i[r]||function(){\r\n (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\r\n m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\r\n })(window,document,\'script\',\'\/\/www.google-analytics.com\/analytics.js\',\'ga\');\r\n\r\n ga(\'create\', \'UA-40171169-4\', \'kapsi.fi\');\r\n ga(\'send\', \'pageview\');\r\n\r\n<\/script>'
}
var config = {
channels: [
{
name: '##Mikaela',
theme: 'default',
destination: '/home/users/mkaysi/public_html/jsis/mikaela',
logFormat: 'supybot',
logEncoding: 'UTF-8',
logTimezone: '+00:00',
logPath: '/home/users/mkaysi/Yvzabevn3/logs/ChannelLogger/freenode/##mikaela',
logFileFilter: /\.log/,
recursive: true,
maxLogFiles: Infinity,
statsTimezoneText: 'Europe/Helsinki',
userConfig: realuserConfig,
customHeadHtml: GA
},
{
name: '#refud0ge',
theme: 'default',
destination: '/home/users/mkaysi/public_html/jsis/refud0ge',
logFormat: 'weechat',
logEncoding: 'UTF-8',
logPath: '/home/users/mkaysi/.weechat/logs/',
logFileFilter: /\/irc.freenode.#refud0ge.weechatlog[^/]*/i ,
recursive: true,
maxLogFiles: Infinity,
statsTimezoneText: 'Europe/Helsinki',
userConfig: realuserConfig,
customHeadHtml: GA
},
Mikaela: {
aliases: [
"Mkaysi Mkays| Mkaysi- Mkaysi_ TDA_Anima Ciblia Mikaela Mikaela_ Michaela *Mikaela* Ciblia*",
],
log: {
'DEBUG': ['STDOUT'],
'INFO': ['STDOUT'],
'MESSAGE': ['STDOUT'],
'WARNING': ['errors.log', 'STDERR'],
'ERROR': ['errors.log', 'STDERR'],
'CRITICAL': ['errors.log', 'STDERR']
}
},
notifico: {
aliases: ["Not-*"],
},
onnz423: {
aliases: ["Onni*"],
},
foxiepaws: {
aliases: ["foxwolfblood"],
},
Nikashi: {
aliases: ["Nikashi Nikashi2"],
},
};
module.exports = config;
var GA = {
customHeadHtml:
"<script>\r\n (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\r\n (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\r\n m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\r\n })(window,document,'script','//www.google-analytics.com/analytics.js','ga');\r\n\r\n ga('create', 'UA-40171169-4', 'kapsi.fi');\r\n ga('send', 'pageview');\r\n\r\n</script>",
};
var config = {
channels: [
{
name: "##Mikaela",
theme: "default",
destination: "/home/users/mkaysi/public_html/jsis/mikaela",
logFormat: "supybot",
logEncoding: "UTF-8",
logTimezone: "+00:00",
logPath:
"/home/users/mkaysi/Yvzabevn3/logs/ChannelLogger/freenode/##mikaela",
logFileFilter: /\.log/,
recursive: true,
maxLogFiles: Infinity,
statsTimezoneText: "Europe/Helsinki",
userConfig: realuserConfig,
customHeadHtml: GA,
},
{
name: "#refud0ge",
theme: "default",
destination: "/home/users/mkaysi/public_html/jsis/refud0ge",
logFormat: "weechat",
logEncoding: "UTF-8",
logPath: "/home/users/mkaysi/.weechat/logs/",
logFileFilter: /\/irc.freenode.#refud0ge.weechatlog[^/]*/i,
recursive: true,
maxLogFiles: Infinity,
statsTimezoneText: "Europe/Helsinki",
userConfig: realuserConfig,
customHeadHtml: GA,
},
],
log: {
DEBUG: ["STDOUT"],
INFO: ["STDOUT"],
MESSAGE: ["STDOUT"],
WARNING: ["errors.log", "STDERR"],
ERROR: ["errors.log", "STDERR"],
CRITICAL: ["errors.log", "STDERR"],
},
};
module.exports = config;

View File

@ -1,10 +1,10 @@
# Hardening Limnoria
* Upstream documentation: https://docs.limnoria.net/use/security.html
- Upstream documentation: https://docs.limnoria.net/use/security.html
## Passwordless users
*This is subject to moving to the upstream documentation, see [Limnoria/Limnoria-doc#91](https://github.com/Limnoria/Limnoria-doc/issues/91)*
_This is subject to moving to the upstream documentation, see [Limnoria/Limnoria-doc#91](https://github.com/Limnoria/Limnoria-doc/issues/91)_
Passwordless user accounts have been supported since version 2021-05-27.
They must login by some other mechanism such as NickAuth, GPG or hostmasks.

View File

@ -10,9 +10,11 @@ However this is easy to avoid with a couple of plugins
1. `load Aka`
1. `load <Reply|Utilities>` meaning to load either Reply or Utilities
1. `aka add announce "<reply reply|utilities echo> You didn't mean for me to send that message everywhere, so I am hijacking it instead"`
* here again one is picked, "utilities echo" will just repeat the message
on channel while "reply reply" will ping you. The name of the plugin is
specified in case the command "echo" or "reply" was in multiple plugins.
- here again one is picked, "utilities echo" will just repeat the message
on channel while "reply reply" will ping you. The name of the plugin is
specified in case the command "echo" or "reply" was in multiple plugins.
1. `defaultplugin announce aka` so that when `announce` is called, it's
assumed that our new `aka` is meant instead of Owner which is an important
plugin and loaded by default.
assumed that our new `aka` is meant instead of Owner which is an important
plugin and loaded by default.

View File

@ -14,14 +14,14 @@ config channel #CHAN supybot.reply.whenAddressedBy.strings ""
config channel #CHAN supybot.reply.whenNotAddressed False
```
* disables prefix char (note how "" means empty by default
- disables prefix char (note how "" means empty by default
(`supybot.commands.quotes`), not to be confused with """)
* disables nick as prefix
* disables nick as suffix (disabled by default)
* disables replying with other nicks as prefix (disabled by default)
* disables replying with strings as prefix (disabled by default, I think,
- disables nick as prefix
- disables nick as suffix (disabled by default)
- disables replying with other nicks as prefix (disabled by default)
- disables replying with strings as prefix (disabled by default, I think,
might be an option in `supybot-wizard`)
* disables replying to all messages on channel (disabled by default and I
- disables replying to all messages on channel (disabled by default and I
have no idea why one would enable that globally anyway)
Here also `channel #CHAN` could be `network NETWORKNAME` to disable

View File

@ -20,7 +20,7 @@ channel-specific
config channel #CHAN supybot.plugins.RSS.notice False
```
* RSS announces as NOTICEs
- RSS announces as NOTICEs
### Reverting

View File

@ -11,17 +11,17 @@ config supybot.protocols.http.userAgents "Limnoria UrlPreviewBot"
config supybot.protocols.http.peekSize 1048576
```
* enables the plugin (shipped with Limnoria)
* enables titlefetching for all links on line, not just the first one
* disables showing domain (small protection against multiple titlesfetcherrs
- enables the plugin (shipped with Limnoria)
- enables titlefetching for all links on line, not just the first one
- disables showing domain (small protection against multiple titlesfetcherrs
entering a loop or simply not annoying users with clientside link previews
(Matrix/Telegram bridges/relays included))
* disables showing redirect target (see previous point)
* sets user-agent to "Limnoria UrlPreviewBot" instead of ['Mozilla/5.0 (compatible; utils.web python module)' from 2005](https://github.com/ProgVal/Limnoria/blame/2990fcd302afdc6a3b741594017c3959fd5da2fd/src/utils/web.py#L120)
* I have heard that it's bad to pretend to be something you aren't and
- disables showing redirect target (see previous point)
- sets user-agent to "Limnoria UrlPreviewBot" instead of ['Mozilla/5.0 (compatible; utils.web python module)' from 2005](https://github.com/ProgVal/Limnoria/blame/2990fcd302afdc6a3b741594017c3959fd5da2fd/src/utils/web.py#L120)
- I have heard that it's bad to pretend to be something you aren't and
Twitter will only give you HTML `<title>`s if your user-agent contains
`UrlPreviewBot`, [thanks Tulir's Synapse patch](https://mau.dev/maunium/synapse/-/commit/55d926999cffee893cb4951890a33985beaf70ba)
* search for HTML titles from the first MEGABYTE of the webpage as modern
- search for HTML titles from the first MEGABYTE of the webpage as modern
web is horrible (looking at you [HS](https://hs.fi) & [YouTube](https://youtube.com))
## Actually enabling it
@ -30,11 +30,11 @@ config supybot.protocols.http.peekSize 1048576
config channel #CHAN plugins.web.titleSnarfer True
```
* enables titlefetching per-channel, on #CHAN to be accurate
- enables titlefetching per-channel, on #CHAN to be accurate
(avoiding unwanted channels in case of botloop)
* `"channel #CHAN"` could also be replaced with `network NETWORKNAME` for
- `"channel #CHAN"` could also be replaced with `network NETWORKNAME` for
every channel on network or `config` (or omitted entirely) for
everywhere (channel takes priority over network which *probably* takes
everywhere (channel takes priority over network which _probably_ takes
priority over global)
## Excluding domains from titlefetching
@ -43,7 +43,7 @@ config channel #CHAN plugins.web.titleSnarfer True
config supybot.plugins.Web.nonSnarfingRegexp m/(t.me|matrix.to|facebook.com|instagram.com|imgur.com)/
```
* regexp to block the listed domains, which are the first useless
- regexp to block the listed domains, which are the first useless
examples I have encountered recently. I just stole the regexp from
[canonical Limnoria](https://github.com/ProgVal/Limnoria/wiki/Canonical-%23limnoria-doc)

View File

@ -1,19 +1,20 @@
# Matterbridge resources
Mainly *myrelays.md* documenting what my personal matterbridge instance is
doing and *matterbridge-example.toml* as an example on what config file
Mainly _myrelays.md_ documenting what my personal matterbridge instance is
doing and _matterbridge-example.toml_ as an example on what config file
could look like.
## My other resources
* systemd units (including timers to not have to use cron and to see specific
- systemd units (including timers to not have to use cron and to see specific
restart times, even randomized, before they happen in `systemctl status`)
* [matterbridge.service](https://gitea.blesmrt.net/mikaela/shell-things/src/branch/master/etc/systemd/system/matterbridge.service)
* [matterbridge-restart.service](https://gitea.blesmrt.net/mikaela/shell-things/src/branch/master/etc/systemd/system/matterbridge-restart.service) and to run it [matterbirdge-restart.timer](https://gitea.blesmrt.net/mikaela/shell-things/src/branch/master/etc/systemd/system/matterbridge-restart.timer)
* [matterbridge-cleanup.service](https://gitea.blesmrt.net/mikaela/shell-things/src/branch/master/etc/systemd/system/matterbridge-cleanup.service) and to run it [matterbridge-cleanup.timer](https://gitea.blesmrt.net/mikaela/shell-things/src/branch/master/etc/systemd/system/matterbridge-cleanup.timer)
- [matterbridge.service](https://gitea.blesmrt.net/mikaela/shell-things/src/branch/master/etc/systemd/system/matterbridge.service)
- [matterbridge-restart.service](https://gitea.blesmrt.net/mikaela/shell-things/src/branch/master/etc/systemd/system/matterbridge-restart.service) and to run it [matterbirdge-restart.timer](https://gitea.blesmrt.net/mikaela/shell-things/src/branch/master/etc/systemd/system/matterbridge-restart.timer)
- [matterbridge-cleanup.service](https://gitea.blesmrt.net/mikaela/shell-things/src/branch/master/etc/systemd/system/matterbridge-cleanup.service) and to run it [matterbridge-cleanup.timer](https://gitea.blesmrt.net/mikaela/shell-things/src/branch/master/etc/systemd/system/matterbridge-cleanup.timer)
to not store media uploads for longer than a week.
* [sudoers.d/matterbridge-restart](https://gitea.blesmrt.net/mikaela/shell-things/src/branch/master/etc/sudoers.d/restart-matterbridge)
- [sudoers.d/matterbridge-restart](https://gitea.blesmrt.net/mikaela/shell-things/src/branch/master/etc/sudoers.d/restart-matterbridge)
for passwordless `sudo systemctl restart matterbridge.service`
## Other resources
* [Upstream wiki](https://github.com/42wim/matterbridge/wiki/)
- [Upstream wiki](https://github.com/42wim/matterbridge/wiki/)

View File

@ -9,16 +9,16 @@ knows everyone and more people aren't likely to appear).
In format label (shown as source of the message), proper name and address.
IRC labels begin with IRC for easier ignoring by bots.
* ircErgo - ErgoChat - ircs://irc.ergo.chat:6697
* ircEtro - IRC@Etro - ircs://etro.mikaela.info:6697
* ircIn - IRCnet - irc://open.ircnet.net:6667
* ircLc - LiberaChat - ircs://irc.libera.chat:6697
* ircLca - LibertaCasa - ircs://irc.liberta.casa:6697
* `[m]` - Matrix - https://matrix.org
* ircPirate - PirateIRC - ircs://irc.pirateirc.net:6697
* Tg - Telegram - https://telegram.org
* Twitch - Twitch - https://twitch.tv
* XMPP - XMPP - https://xmpp.org
- ircErgo - ErgoChat - ircs://irc.ergo.chat:6697
- ircEtro - IRC@Etro - ircs://etro.mikaela.info:6697
- ircIn - IRCnet - irc://open.ircnet.net:6667
- ircLc - LiberaChat - ircs://irc.libera.chat:6697
- ircLca - LibertaCasa - ircs://irc.liberta.casa:6697
- `[m]` - Matrix - https://matrix.org
- ircPirate - PirateIRC - ircs://irc.pirateirc.net:6697
- Tg - Telegram - https://telegram.org
- Twitch - Twitch - https://twitch.tv
- XMPP - XMPP - https://xmpp.org
## Gateways
@ -26,37 +26,37 @@ Sorted in order of popularity or likeliness to be asked about.
### Mikaela.info
* ircEtro
* ircLc
* ircLca
* `[m]`
* ircPirate
* Tg
* Twitch
* XMPP
- ircEtro
- ircLc
- ircLca
- `[m]`
- ircPirate
- Tg
- Twitch
- XMPP
### Tanukis (or "Pillow Fortress")
* ircEtro
* ircLc
* ircLca
* `[m]`
* ircPirate
* Tg
* XMPP
- ircEtro
- ircLc
- ircLca
- `[m]`
- ircPirate
- Tg
- XMPP
### ABGILPQT+
* ircEtro
* ircLc
* `[m]`
- ircEtro
- ircLc
- `[m]`
### Test
Handled by different instance, please see its csv's
* https://git.piraattipuolue.fi/Pikaviestimet/Pikaviestimet/src/branch/master/kanavat.csv
* mirror https://gitea.blesmrt.net/mikaela/public-ppfi-im/src/branch/master/kanavat.csv
- https://git.piraattipuolue.fi/Pikaviestimet/Pikaviestimet/src/branch/master/kanavat.csv
- mirror https://gitea.blesmrt.net/mikaela/public-ppfi-im/src/branch/master/kanavat.csv
### Antikupla
@ -72,5 +72,5 @@ TBD
## borni
* ircEtro
* ircIn
- ircEtro
- ircIn

View File

@ -2,17 +2,17 @@
Upstream: https://palaverapp.com/guides/commands/set.html
* `/set ui.time_format YY-'W'w-e HH.mm.ss`
* e.g. 21-W50-2 14.59.12 (on 2021, week 50, the second day (Tuesday) of the week)
* `/set ui.nick_show_mode on`
* makes prefixes visible
* `/set ui.nick_prefix <`
* `/set ui.nick_suffix >`
* `/set ui.browser system_default`
- `/set ui.time_format YY-'W'w-e HH.mm.ss`
- e.g. 21-W50-2 14.59.12 (on 2021, week 50, the second day (Tuesday) of the week)
- `/set ui.nick_show_mode on`
- makes prefixes visible
- `/set ui.nick_prefix <`
- `/set ui.nick_suffix >`
- `/set ui.browser system_default`
## Other timestamp formats
Detailed spec: https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns
* `/set ui.time_format yy-D HH.mm.ss`
* e.g. 21-173 19.51.30 (on 2021-06-22, 173th day of 2021)
- `/set ui.time_format yy-D HH.mm.ss`
- e.g. 21-173 19.51.30 (on 2021-06-22, 173th day of 2021)

File diff suppressed because it is too large Load Diff

View File

@ -7,16 +7,16 @@ other directories around them and
I won't promise to keep this up-to-date, but I think it might be better
than nothing.
***READ ALSO https://wiki.piraattipuolue.fi/K%C3%A4ytt%C3%A4j%C3%A4:Mikaela !***
**_READ ALSO https://wiki.piraattipuolue.fi/K%C3%A4ytt%C3%A4j%C3%A4:Mikaela !_**
Notes:
* teleirc.service is not used by the PirateIRC instance that I run. It has
- teleirc.service is not used by the PirateIRC instance that I run. It has
to be started manually as I don't have root on Kapsi and they don't have
systemd or user services at the time of writing and without lithing that
would require logging in once after every reboot for it to start doing
anything
* discord-irc assumes that you have cloned the git repo and installed using
- discord-irc assumes that you have cloned the git repo and installed using
npm there.
* offtopic, but remember to enable Discord developer mode in settings
for being able to right click channel name to copy ID.
- offtopic, but remember to enable Discord developer mode in settings
for being able to right click channel name to copy ID.

View File

@ -1,68 +1,66 @@
[
{
"nickname": "D6",
"server": "fi.pirateirc.net",
"discordToken": "CENSORED",
"autoSendCommands": [
["NICKSERV", "IDENTIFY D6 CENSORED"],
["NICKSERV", "REGAIN D6 CENSORED"],
["MODE", "D6", "-i"]
],
"webhooks": {
},
"channelMapping": {
"374659905983873025": "#piraattinuoret",
"374867585868496897": "#pinu_hallitus",
"375207988459470849": "#test",
"381011785962225664": "#aaltopiraatit",
"389413571831791626": "#hepihalko",
"412240406902865920": "#helsinki",
"412254021521506305": "#mediaseuranta",
"412254070150135808": "#toiminta",
"412258283546476555": "#piraatit",
"412258307647078401": "#ppfi",
"412293076917288970": "#messi",
"412511326766759936": "#keski-suomi",
"431034872333598720": "#uusimaa",
"413041315270492160": "#likakaivo",
"413247653015715840": "#verkkopalvelut",
"414400615591051274": "#sivusto",
"416285084912451595": "#grafiikka",
"417031598685552640": "#akateemisetpiraatit",
"424514192113008650": "#hallituskokous",
"426034481095376926": "#sateenkaaripiraatit",
"426703063970086912": "#antikupla",
"426703083574394881": "#syotteet",
"432465953293336579": "#puoluetoimisto",
"444816560150937610": "#pirkanmaa",
"449854986919084032": "#piraattivpn",
"451295033488965652": "#hame",
"422390844612411402": "#suomiareena",
"482982233649446926": "#satakunta",
"504190490086998026": "#viestinta_markkinointi CENSORED",
"511566906843463680": "#oulu",
"511566931837321216": "#kaakko",
"511801896478965772": "#varsinais-suomi",
"511825011951140865": "#savo-karjala",
"511826019464904704": "#vaasa",
"511827216397631490": "#lappi"
},
"ircOptions": {
"userName": "D6",
"realName": "mailto:pikaviestimet+DiscordRele@piraattipuolue.fi",
"password": "CENSORED",
"port": "6697",
"secure": "true",
"sasl": "true",
"stripColors": "true",
"debug": "false",
"encoding": null
},
"format": {
"ircText": "<{$displayUsername}> {$text}",
"discord": "<`{$author}`> {$withMentions}"
},
"ircNickColor": false
}
{
"nickname": "D6",
"server": "fi.pirateirc.net",
"discordToken": "CENSORED",
"autoSendCommands": [
["NICKSERV", "IDENTIFY D6 CENSORED"],
["NICKSERV", "REGAIN D6 CENSORED"],
["MODE", "D6", "-i"]
],
"webhooks": {},
"channelMapping": {
"374659905983873025": "#piraattinuoret",
"374867585868496897": "#pinu_hallitus",
"375207988459470849": "#test",
"381011785962225664": "#aaltopiraatit",
"389413571831791626": "#hepihalko",
"412240406902865920": "#helsinki",
"412254021521506305": "#mediaseuranta",
"412254070150135808": "#toiminta",
"412258283546476555": "#piraatit",
"412258307647078401": "#ppfi",
"412293076917288970": "#messi",
"412511326766759936": "#keski-suomi",
"431034872333598720": "#uusimaa",
"413041315270492160": "#likakaivo",
"413247653015715840": "#verkkopalvelut",
"414400615591051274": "#sivusto",
"416285084912451595": "#grafiikka",
"417031598685552640": "#akateemisetpiraatit",
"424514192113008650": "#hallituskokous",
"426034481095376926": "#sateenkaaripiraatit",
"426703063970086912": "#antikupla",
"426703083574394881": "#syotteet",
"432465953293336579": "#puoluetoimisto",
"444816560150937610": "#pirkanmaa",
"449854986919084032": "#piraattivpn",
"451295033488965652": "#hame",
"422390844612411402": "#suomiareena",
"482982233649446926": "#satakunta",
"504190490086998026": "#viestinta_markkinointi CENSORED",
"511566906843463680": "#oulu",
"511566931837321216": "#kaakko",
"511801896478965772": "#varsinais-suomi",
"511825011951140865": "#savo-karjala",
"511826019464904704": "#vaasa",
"511827216397631490": "#lappi"
},
"ircOptions": {
"userName": "D6",
"realName": "mailto:pikaviestimet+DiscordRele@piraattipuolue.fi",
"password": "CENSORED",
"port": "6697",
"secure": "true",
"sasl": "true",
"stripColors": "true",
"debug": "false",
"encoding": null
},
"format": {
"ircText": "<{$displayUsername}> {$text}",
"discord": "<`{$author}`> {$withMentions}"
},
"ircNickColor": false
}
]

View File

@ -9,4 +9,3 @@ User=discord-irc
[Install]
WantedBy=default.target

View File

@ -16,6 +16,6 @@ discordpirateirc.service - Discord IRC at PirateIRC (D6)
telefreenode.service - TBD
limnoria.service - TBD
Automatic restart at cron as ugly hack for things being broken:
Automatic restart at cron as ugly hack for things being broken:
telepirateirc discordpirateirc
Also see "crontab -l"

View File

@ -7,7 +7,7 @@ Description=teleirc
# Ex. /usr/local/bin/teleirc
# ExecStart=/usr/bin/env node /usr/local/bin/teleirc
#ExecStart=/usr/local/bin/node /usr/local/bin/teleirc
ExecStart=/usr/local/bin/node /home/teleirc-freenode/teleirc/bin/teleirc
ExecStart=/usr/local/bin/node /home/teleirc-freenode/teleirc/bin/teleirc
-vvv
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
@ -15,4 +15,3 @@ User=teleirc-freenode
[Install]
WantedBy=default.target

View File

@ -1 +1,44 @@
{"Antikupla":"-1001235442861","Global Pirates":"-1001057453853","Helsinki":-1001116081415,"Mediaseuranta":-1001106763853,"Mikaela - supergroup":"-1001149130394","PPFI - Aaltopiraatit":"-1001090737719","PPFI - Grafiikka":"-1001133635073","PPFI - Helsingin Hallituskokoukset":"-1001122135183","PPFI - Helsinki":"-1001116081415","PPFI - Keski-Suomi":"-1001121256763","PPFI - Mediaseuranta":"-1001106763853","PPFI - Messi":"-1001137586553","PPFI - Sivusto":"-1001379936008","PPFI - Toiminta":"-1001103875498","PPFI - Uusimaa":"-1001096588605","PPFI - Varsinais-Suomi":"-1001139315365","PPFI - Verkkopalvelut":"-1001115432082","PPFI - Yleiskeskustelu (EI EDUSTA PUOLUEEN LINJAA!)":-1001128288801,"PiNu hallitus":"-1001142160911","Piraatit":"-1001102075786","Piraattinuoret":"-1001117962134","Pirate Party Finland":"-1001136883228","Sateenkaaripiraatit":"-1001125413651","Syötteet":"-1001116457229","TEST":"-1001228320159","Toiminta":-1001103875498,"Uusimaa":-1001096588605,"Likakaivo":"-1001128288801","PPFI - Häme":"-1001374071099","Akateemiset Piraatit":"-1001185661848","PIR - Hallituksen kokoukset":"-1001172132698","PPFI - Puoluetoimisto":"-1001193123558","silta.piraatit.fi":"-1001198260672","SPAM-TELEIRC-PRIVAT":"-1001249769430","PPFI - Suomiareena":"-1001184954189","[READ-ONLY] PirateIRC #opers":"-1001173866260","PirateIRC Telegram Opers":"-1001176463928","PIR - Satakunta":"-1001159836952","##Mikaela":"-1001149130394","PPFI - Viestintä ja Markkinointi":"-1001298673578","Tech Pirates":"-1001166389528","PirateIRC Telegram Opers/Staff":"-1001176463928"}
{
"Antikupla": "-1001235442861",
"Global Pirates": "-1001057453853",
"Helsinki": -1001116081415,
"Mediaseuranta": -1001106763853,
"Mikaela - supergroup": "-1001149130394",
"PPFI - Aaltopiraatit": "-1001090737719",
"PPFI - Grafiikka": "-1001133635073",
"PPFI - Helsingin Hallituskokoukset": "-1001122135183",
"PPFI - Helsinki": "-1001116081415",
"PPFI - Keski-Suomi": "-1001121256763",
"PPFI - Mediaseuranta": "-1001106763853",
"PPFI - Messi": "-1001137586553",
"PPFI - Sivusto": "-1001379936008",
"PPFI - Toiminta": "-1001103875498",
"PPFI - Uusimaa": "-1001096588605",
"PPFI - Varsinais-Suomi": "-1001139315365",
"PPFI - Verkkopalvelut": "-1001115432082",
"PPFI - Yleiskeskustelu (EI EDUSTA PUOLUEEN LINJAA!)": -1001128288801,
"PiNu hallitus": "-1001142160911",
"Piraatit": "-1001102075786",
"Piraattinuoret": "-1001117962134",
"Pirate Party Finland": "-1001136883228",
"Sateenkaaripiraatit": "-1001125413651",
"Syötteet": "-1001116457229",
"TEST": "-1001228320159",
"Toiminta": -1001103875498,
"Uusimaa": -1001096588605,
"Likakaivo": "-1001128288801",
"PPFI - Häme": "-1001374071099",
"Akateemiset Piraatit": "-1001185661848",
"PIR - Hallituksen kokoukset": "-1001172132698",
"PPFI - Puoluetoimisto": "-1001193123558",
"silta.piraatit.fi": "-1001198260672",
"SPAM-TELEIRC-PRIVAT": "-1001249769430",
"PPFI - Suomiareena": "-1001184954189",
"[READ-ONLY] PirateIRC #opers": "-1001173866260",
"PirateIRC Telegram Opers": "-1001176463928",
"PIR - Satakunta": "-1001159836952",
"##Mikaela": "-1001149130394",
"PPFI - Viestintä ja Markkinointi": "-1001298673578",
"Tech Pirates": "-1001166389528",
"PirateIRC Telegram Opers/Staff": "-1001176463928"
}

View File

@ -6,12 +6,12 @@ module.exports = config;
/////////////////////
// paste the bot API token you got from BotFather here:
config.tgToken = 'CENSORED';
config.tgToken = "CENSORED";
// only relay IRC events present in array
// possible values include:
// message, notice, action, topic, join, part, kick, quit
config.relayIRCEvents = ['message', 'notice', 'action', 'kick', 'topic'];
config.relayIRCEvents = ["message", "notice", "action", "kick", "topic"];
// enable HTTP server which hosts sent media files, links to files are
// forwarded to IRC
@ -21,7 +21,7 @@ config.showMedia = true;
config.httpPort = 61825;
// HTTP server location, URLs are generated from this
config.httpLocation = 'http://silta.piraatit.fi' + ':' + config.httpPort;
config.httpLocation = "http://silta.piraatit.fi" + ":" + config.httpPort;
//config.httpLocation = 'https://t4.mikaela.info';
//////////////////
@ -34,240 +34,246 @@ config.httpLocation = 'http://silta.piraatit.fi' + ':' + config.httpPort;
// - %firstName% (first name of sender)
// - %lastName% (last name of sender)
// - %username% (optional Telegram username of sender)
config.nameFormat = '%username%';
config.nameFormat = "%username%";
// fallback format string for %username% if sender lacks username
config.usernameFallbackFormat = '%firstName% (MISSING @USERNAME! telegram.org/faq#usernames-and-t-me)';
config.usernameFallbackFormat =
"%firstName% (MISSING @USERNAME! telegram.org/faq#usernames-and-t-me)";
config.ircNick = 'T4';
config.ircNick = "T4";
//config.ircServer = 'fi.pirateirc.net';
// Yggdrasil
config.ircServer = '201:677d:1809:c5eb:202a:d39:e598:305';
config.ircServer = "201:677d:1809:c5eb:202a:d39:e598:305";
// array of commands to send to IRC server as soon as we're connected,
// example: config.ircPerformCmds = [
// 'PRIVMSG Q@CServe.quakenet.org :AUTH <username> <password>'
// ]
config.ircPerformCmds = ['NICKSERV identify T4 CENSORED', 'NICKSERV regain T4', 'mode T4 -i+RQ', 'CHANSERV invite #messi', 'JOIN #messi'];
config.ircPerformCmds = [
"NICKSERV identify T4 CENSORED",
"NICKSERV regain T4",
"mode T4 -i+RQ",
"CHANSERV invite #messi",
"JOIN #messi",
];
//config.ircPerformCmds = [];
config.channels = [
{
ircChan: "#piraattinuoret",
tgGroup: "Piraattinuoret",
},
{
ircChan: '#piraattinuoret',
tgGroup: 'Piraattinuoret'
},
{
ircChan: "#piraatit",
tgGroup: "Piraatit",
},
{
ircChan: '#piraatit',
tgGroup: 'Piraatit'
},
{
ircChan: "#mediaseuranta",
tgGroup: "PPFI - Mediaseuranta",
},
{
ircChan: '#mediaseuranta',
tgGroup: 'PPFI - Mediaseuranta'
},
{
ircChan: "#helsinki",
tgGroup: "PPFI - Helsinki",
},
{
ircChan: '#helsinki',
tgGroup: 'PPFI - Helsinki'
},
{
ircChan: "#uusimaa",
tgGroup: "PPFI - Uusimaa",
},
{
ircChan: '#uusimaa',
tgGroup: 'PPFI - Uusimaa'
},
{
ircChan: "#toiminta",
tgGroup: "PPFI - Toiminta",
},
{
ircChan: '#toiminta',
tgGroup: 'PPFI - Toiminta'
},
{
ircChan: "#puoluetoimisto",
tgGroup: "PPFI - Puoluetoimisto",
},
{
ircChan: '#puoluetoimisto',
tgGroup: 'PPFI - Puoluetoimisto'
},
{
ircChan: "#verkkopalvelut",
tgGroup: "PPFI - Verkkopalvelut",
},
{
ircChan: '#verkkopalvelut',
tgGroup: 'PPFI - Verkkopalvelut'
},
{
ircChan: "#pinu_hallitus",
tgGroup: "PiNu hallitus",
},
{
ircChan: '#pinu_hallitus',
tgGroup: 'PiNu hallitus'
},
{
ircChan: "#keski-suomi",
tgGroup: "PPFI - Keski-Suomi",
},
{
ircChan: '#keski-suomi',
tgGroup: 'PPFI - Keski-Suomi'
},
{
ircChan: "#sateenkaaripiraatit",
tgGroup: "Sateenkaaripiraatit",
},
{
ircChan: '#sateenkaaripiraatit',
tgGroup: 'Sateenkaaripiraatit'
},
{
ircChan: "#suomiareena",
tgGroup: "PPFI - Suomiareena",
},
{
ircChan: '#suomiareena',
tgGroup: 'PPFI - Suomiareena'
},
{
ircChan: "#Mikaela",
ircChanReadOnly: true,
ircChanOverrideReadOnly: true,
tgGroup: "##Mikaela",
tgGroupReadOnly: true,
tgGroupOverrideReadOnly: true,
},
{
ircChan: '#Mikaela',
ircChanReadOnly: true,
ircChanOverrideReadOnly: true,
tgGroup: '##Mikaela',
tgGroupReadOnly: true,
tgGroupOverrideReadOnly: true,
},
{
ircChan: "#aaltopiraatit",
tgGroup: "PPFI - Aaltopiraatit",
},
{
ircChan: '#aaltopiraatit',
tgGroup: 'PPFI - Aaltopiraatit'
},
{
ircChan: "#ppfi",
tgGroup: "Pirate Party Finland",
},
{
ircChan: '#ppfi',
tgGroup: 'Pirate Party Finland'
},
{
ircChan: "#grafiikka",
tgGroup: "PPFI - Grafiikka",
},
{
ircChan: '#grafiikka',
tgGroup: 'PPFI - Grafiikka'
},
{
ircChan: "#messi",
tgGroup: "PPFI - Messi",
},
{
ircChan: '#messi',
tgGroup: 'PPFI - Messi'
},
{
ircChan: "#varsinais-suomi",
tgGroup: "PPFI - Varsinais-Suomi",
},
{
ircChan: '#varsinais-suomi',
tgGroup: 'PPFI - Varsinais-Suomi'
},
{
ircChan: "#syotteet",
tgGroup: "Syötteet",
},
{
ircChan: '#syotteet',
tgGroup: 'Syötteet'
},
{
ircChan: "#sivusto",
tgGroup: "PPFI - Sivusto",
},
{
ircChan: '#sivusto',
tgGroup: 'PPFI - Sivusto'
},
{
ircChan: "#globalPirates",
tgGroup: "Global Pirates",
},
{
ircChan: '#globalPirates',
tgGroup: 'Global Pirates'
},
{
ircChan: "#antikupla",
tgGroup: "Antikupla",
},
{
ircChan: '#antikupla',
tgGroup: 'Antikupla'
},
{
ircChan: "#hame",
tgGroup: "PPFI - Häme",
},
{
ircChan: '#hame',
tgGroup: 'PPFI - Häme'
},
{
ircChan: "#akateemisetpiraatit",
tgGroup: "Akateemiset Piraatit",
},
{
ircChan: '#akateemisetpiraatit',
tgGroup: 'Akateemiset Piraatit'
},
{
ircChan: "#hallituskokous",
tgGroup: "PIR - Hallituksen kokoukset",
},
{
ircChan: '#hallituskokous',
tgGroup: 'PIR - Hallituksen kokoukset'
},
{
ircChan: "T4",
tgGroup: "SPAM-TELEIRC-PRIVAT",
tgGroupReadOnly: true,
},
{
ircChan: 'T4',
tgGroup: 'SPAM-TELEIRC-PRIVAT',
tgGroupReadOnly: true
},
{
ircChan: "*",
tgGroup: "SPAM-TELEIRC-PRIVAT",
tgGroupReadOnly: true,
},
{
ircChan: '*',
tgGroup: 'SPAM-TELEIRC-PRIVAT',
tgGroupReadOnly: true
},
{
ircChan: "#opers",
tgGroup: "PirateIRC Telegram Opers/Staff",
tgGroupReadOnly: true,
tgGroupOverrideReadOnly: true,
},
{
ircChan: '#opers',
tgGroup: 'PirateIRC Telegram Opers/Staff',
tgGroupReadOnly: true,
tgGroupOverrideReadOnly: true
},
{
ircChan: "#satakunta",
tgGroup: "PIR - Satakunta",
},
{
ircChan: '#satakunta',
tgGroup: 'PIR - Satakunta'
},
{
ircChan: "#viestinta_markkinointi",
chanPwd: "CENSORED",
tgGroup: "PPFI - Viestintä ja Markkinointi",
},
{
ircChan: '#viestinta_markkinointi',
chanPwd: 'CENSORED',
tgGroup: 'PPFI - Viestintä ja Markkinointi'
},
{
ircChan: "#TechPirates",
tgGroup: "Tech Pirates",
},
{
ircChan: '#TechPirates',
tgGroup: 'Tech Pirates'
}
//{
// ircChan: '#teleirc',
// tgGroup: 'teleirc'
//}
//{
// ircChan: '#teleirc',
// tgGroup: 'teleirc'
//}
// example of a password-protected IRC channel:
//{
//ircChan: '#channel2',
//chanPwd: 'passwd',
//tgGroup: 'Tg_Group_2'
//},
// example of a password-protected IRC channel:
//{
//ircChan: '#channel2',
//chanPwd: 'passwd',
//tgGroup: 'Tg_Group_2'
//},
// example of an IRC channel with an alias:
// channel name will be displayed as '!channel3' instead of '!XXXXXchannel3'
//{
//ircChan: '!XXXXXchannel3',
//chanAlias: '!channel3',
//tgGroup: 'Tg_Group_3'
//}
// example of an IRC channel with an alias:
// channel name will be displayed as '!channel3' instead of '!XXXXXchannel3'
//{
//ircChan: '!XXXXXchannel3',
//chanAlias: '!channel3',
//tgGroup: 'Tg_Group_3'
//}
];
// see https://node-irc.readthedocs.org/en/latest/API.html#client for
// documentation
config.ircOptions = {
userName: 'Telegram',
realName: 'mailto:pikaviestimet+PircTGRelay@piraattipuolue.fi',
port: 6697,
localAddress: null,
debug: false,
showErrors: true,
autoRejoin: true,
autoConnect: true,
channels: [], // auto generated, do not touch
secure: true,
// TRUE JOS EPÄKELPO!
// Yggdrasil
//selfSigned: false,
//certExpired: false,
selfSigned: true,
certExpired: true,
floodProtection: true,
floodProtectionDelay: 1000,
sasl: true,
//sasl: false,
stripColors: true,
channelPrefixes: '&#!',
messageSplit: 512,
encoding: '',
//password: ''
password: 'CENSORED'
userName: "Telegram",
realName: "mailto:pikaviestimet+PircTGRelay@piraattipuolue.fi",
port: 6697,
localAddress: null,
debug: false,
showErrors: true,
autoRejoin: true,
autoConnect: true,
channels: [], // auto generated, do not touch
secure: true,
// TRUE JOS EPÄKELPO!
// Yggdrasil
//selfSigned: false,
//certExpired: false,
selfSigned: true,
certExpired: true,
floodProtection: true,
floodProtectionDelay: 1000,
sasl: true,
//sasl: false,
stripColors: true,
channelPrefixes: "&#!",
messageSplit: 512,
encoding: "",
//password: ''
password: "CENSORED",
};
// if you wish to relay every irc message to telegram, set this to true.
@ -276,8 +282,8 @@ config.ircRelayAll = true;
// the default hilight regexp will match lines containing the bot nick, or
// lines starting with '! '
var regex = '^ *(?:' + config.ircNick + '[:,]?|!) +(.*\\S.*)$';
config.hlRegexp = new RegExp(regex, 'i');
var regex = "^ *(?:" + config.ircNick + "[:,]?|!) +(.*\\S.*)$";
config.hlRegexp = new RegExp(regex, "i");
// automatically added by config upgrade:
config.logLevel = "error";
@ -285,7 +291,22 @@ config.mediaRandomLength = 10;
config.maxMsgAge = 60;
config.allowCommands = true;
config.nickcolor = false;
config.palette = ["white","silver","navy","green","red","brown","purple","olive","yellow","lime","teal","cyan","pink","blue"];
config.palette = [
"white",
"silver",
"navy",
"green",
"red",
"brown",
"purple",
"olive",
"yellow",
"lime",
"teal",
"cyan",
"pink",
"blue",
];
config.soloUse = false;
config.replaceNewlines = " … ";
config.hlOnlyShowMatch = false;
@ -298,7 +319,7 @@ config.imgurClientId = "CENSORED";
// automatically added by config upgrade:
config.replySnippetLength = 46;
config.mediaConversions = {
'webp': 'png'
webp: "png",
};
config.emphasizeAction = true;
config.relayEdited = true;

View File

@ -7,4 +7,4 @@
ga('create', 'UA-40171169-4', 'kapsi.fi');
ga('send', 'pageview');
</script>
</script>

View File

@ -106,4 +106,4 @@
Network="chat.freenode.net"
OutputFile="/home/users/mkaysi/public_html/pisg/matrixiumn.html"
</channel>
# vim : set ft=xml:
# vim : set ft=xml:

View File

@ -1 +1,15 @@
{"#sailfishos-porters":"-156634556","Mer-meeting":"-1001100500036","Mikaela - group":-1001149130394,"Mikaela - supergroup":"-1001149130394","NemoMobile":"-1001100341174","Sailfish Hackclub Helsinki":"-146527899","Sailfish OS Fan Club":"-1001094603738","akunapu":"-1001067264661","##castellano":"-1001121244297","SPAM-TELEIRC-PRIVAT":"-1001249769430","Akun apu ja #akubuntu":"-1001067264661","Sailfish OS Porters":"-1001173638408","##Mikaela":"-1001149130394"}
{
"#sailfishos-porters": "-156634556",
"Mer-meeting": "-1001100500036",
"Mikaela - group": -1001149130394,
"Mikaela - supergroup": "-1001149130394",
"NemoMobile": "-1001100341174",
"Sailfish Hackclub Helsinki": "-146527899",
"Sailfish OS Fan Club": "-1001094603738",
"akunapu": "-1001067264661",
"##castellano": "-1001121244297",
"SPAM-TELEIRC-PRIVAT": "-1001249769430",
"Akun apu ja #akubuntu": "-1001067264661",
"Sailfish OS Porters": "-1001173638408",
"##Mikaela": "-1001149130394"
}

View File

@ -8,15 +8,15 @@ module.exports = config;
// verbosity of console output
// possible options from most to least verbose:
// silly, debug, verbose, info, warn, error
config.logLevel = 'error';
config.logLevel = "error";
// paste the bot API token you got from BotFather here:
config.tgToken = 'CENSORED';
config.tgToken = "CENSORED";
// only relay IRC events present in array
// possible values include:
// message, notice, action, topic, join, part, kick, quit
config.relayIRCEvents = ['message', 'notice', 'action', 'kick'];
config.relayIRCEvents = ["message", "notice", "action", "kick"];
// enable HTTP server which hosts sent media files, links to files are
// forwarded to IRC
@ -26,7 +26,7 @@ config.showMedia = true;
// To be able to convert from WebP, install imagemagick and the dwebp tool
// (e.g. sudo apt install imagemagick webp)
config.mediaConversions = {
//'webp': 'png'
//'webp': 'png'
};
// Add some randomness to url when relaying media
@ -43,14 +43,14 @@ config.httpPort = 9090;
// HTTP server location, URLs are generated from this
//config.httpLocation = 'http://149.202.119.142' + ':' + config.httpPort;
//config.httpLocation = 'https://3das7vpgt73yxclb6agz4sz2a2bt7bqqfjucjhhbb5jnndxcd4o4lfid.onion';
config.httpLocation = 'https://af42kgggd3mfqvgy.tor2web.io';
config.httpLocation = "https://af42kgggd3mfqvgy.tor2web.io";
// Upload sent photos to Imgur, links to Imgur uploads are
// forwared to IRC
config.uploadToImgur = false;
// Imgur client id required for uploading photos to Imgur
config.imgurClientId = 'YOUR-CLIENT-ID';
config.imgurClientId = "YOUR-CLIENT-ID";
// Whether to allow sending messages to IRC without nick prefix
config.allowCommands = true;
@ -64,11 +64,20 @@ config.nickcolor = false;
// Nick color palette
config.palette = [
'white', 'silver', 'navy',
'green', 'red', 'brown',
'purple', 'olive', 'yellow',
'lime', 'teal', 'cyan',
'pink', 'blue'
"white",
"silver",
"navy",
"green",
"red",
"brown",
"purple",
"olive",
"yellow",
"lime",
"teal",
"cyan",
"pink",
"blue",
];
// If soloUse is true, send all messages without username preview, intented
@ -81,88 +90,88 @@ config.soloUse = false;
// - %firstName% (first name of sender)
// - %lastName% (last name of sender)
// - %username% (optional Telegram username of sender)
config.nameFormat = '%username%';
config.nameFormat = "%username%";
// fallback format string for %username% if sender lacks username
config.usernameFallbackFormat = '%firstName% (MISSING @USERNAME! telegram.org/faq#usernames-and-t-me)';
config.usernameFallbackFormat =
"%firstName% (MISSING @USERNAME! telegram.org/faq#usernames-and-t-me)";
// Replace newline characters in Telegram messages with this string before
// relaying them to IRC, prevents flood from long messages.
//
// Tip: you can set this to \n if you want them as separate messages on IRC
config.replaceNewlines = ' … ';
config.replaceNewlines = " … ";
config.ircNick = 'T4';
config.ircNick = "T4";
//config.ircServer = 'chat.freenode.net';
config.ircServer = '127.0.0.1';
config.ircServer = "127.0.0.1";
// array of commands to send to IRC server as soon as we're connected,
// example: config.ircPerformCmds = [
// 'PRIVMSG Q@CServe.quakenet.org :AUTH <username> <password>'
// ]
//config.ircPerformCmds = ['NICKSERV identify T4 CENSORED', 'NICKSERV regain T4', 'mode T4 -i+RQ'];
config.ircPerformCmds = ['ZNC *perform execute'];
config.ircPerformCmds = ["ZNC *perform execute"];
config.channels = [
// example of a barebones IRC channel:
// '#channel1' will be bridged to a Telegram group called 'Tg_Group_1'
{
ircChan: '##Mikaela',
tgGroup: '##Mikaela'
},
// example of a barebones IRC channel:
// '#channel1' will be bridged to a Telegram group called 'Tg_Group_1'
{
ircChan: "##Mikaela",
tgGroup: "##Mikaela",
},
{
ircChan: '#nemomobile',
tgGroup: 'NemoMobile'
},
{
ircChan: "#nemomobile",
tgGroup: "NemoMobile",
},
//{
// ircChan: '#akunapu',
// tgGroup: 'akunapu'
// tgGroup: 'Akun apu ja #akubuntu'
// },
//{
// ircChan: '#akunapu',
// tgGroup: 'akunapu'
// tgGroup: 'Akun apu ja #akubuntu'
// },
{
ircChan: '#mer-meeting',
tgGroup: 'Mer-meeting',
tgGroupReadOnly: true
},
{
ircChan: "#mer-meeting",
tgGroup: "Mer-meeting",
tgGroupReadOnly: true,
},
{
ircChan: '#jollafanclub',
tgGroup: 'Sailfish OS Fan Club'
},
{
ircChan: "#jollafanclub",
tgGroup: "Sailfish OS Fan Club",
},
{
ircChan: '#sailfishos-porters',
tgGroup: 'Sailfish OS Porters'
},
{
ircChan: "#sailfishos-porters",
tgGroup: "Sailfish OS Porters",
},
{
ircChan: '#sailfish-hackclub-hki',
tgGroup: 'Sailfish Hackclub Helsinki'
},
{
ircChan: "#sailfish-hackclub-hki",
tgGroup: "Sailfish Hackclub Helsinki",
},
{
ircChan: '##castellano',
tgGroup: '##castellano'
},
{
ircChan: "##castellano",
tgGroup: "##castellano",
},
{
ircChan: 'T4',
tgGroup: 'SPAM-TELEIRC-PRIVAT',
tgGroupReadOnly: true
},
{
ircChan: "T4",
tgGroup: "SPAM-TELEIRC-PRIVAT",
tgGroupReadOnly: true,
},
{
ircChan: '*',
tgGroup: 'SPAM-TELEIRC-PRIVAT',
tgGroupReadOnly: true
}
{
ircChan: "*",
tgGroup: "SPAM-TELEIRC-PRIVAT",
tgGroupReadOnly: true,
},
];
]
// example of a readOnly IRC channel and Telegram Group:
// example of a readOnly IRC channel and Telegram Group:
/* {
ircChan: '#channel3',
ircChanReadOnly: true, // if true, irc can not send to telegram
@ -185,32 +194,32 @@ config.channels = [
// see https://node-irc.readthedocs.org/en/latest/API.html#client for
// documentation
config.ircOptions = {
userName: 'T4',
realName: 'mailto:pikaviestimet+FreTGRelay@piraattipuolue.fi',
port: 5621,
localAddress: null,
showErrors: true,
autoRejoin: true,
autoConnect: true,
channels: [], // auto generated, do not touch
secure: false,
selfSigned: false,
certExpired: false,
floodProtection: true,
floodProtectionDelay: 1000,
sasl: false,
stripColors: true,
channelPrefixes: '&#!',
messageSplit: 512,
encoding: '',
//password: 'CENSORED'
password: 'CENSORED'
userName: "T4",
realName: "mailto:pikaviestimet+FreTGRelay@piraattipuolue.fi",
port: 5621,
localAddress: null,
showErrors: true,
autoRejoin: true,
autoConnect: true,
channels: [], // auto generated, do not touch
secure: false,
selfSigned: false,
certExpired: false,
floodProtection: true,
floodProtectionDelay: 1000,
sasl: false,
stripColors: true,
channelPrefixes: "&#!",
messageSplit: 512,
encoding: "",
//password: 'CENSORED'
password: "CENSORED",
};
// the default hilight regexp will match lines containing the bot nick, or
// lines starting with '! '
var regex = '^ *(?:' + config.ircNick + '[:,]?|!) +(.*\\S.*)$';
config.hlRegexp = new RegExp(regex, 'i');
var regex = "^ *(?:" + config.ircNick + "[:,]?|!) +(.*\\S.*)$";
config.hlRegexp = new RegExp(regex, "i");
// if there was a match, should we only show the parenthesized substring match?
// with the default regexp this would hide the bot nickname in messages when

View File

@ -1,6 +1,6 @@
I use `/set irc.look.nick_color_hash djb2` (*"hash algorithm used to find
I use `/set irc.look.nick_color_hash djb2` (_"hash algorithm used to find
the color for a nick: djb2 = variant of djb2 (position of letters matters:
anagrams of a nick have different color), sum = sum of letters"*)
anagrams of a nick have different color), sum = sum of letters"_)
## WeeChat colours for dark background
@ -33,7 +33,7 @@ This is copied from @tracphil's gist which you can find at https://gist.github.c
/set buffers.color.hotlist_message_fg 7
```
* * * * *
---
2022-04-15: I am using Selenized Dark and highlights are a bit difficult to see
considering they are yellow on magenta;

View File

@ -1,7 +1,7 @@
# WeeChat Triggers
* [WeeChat Trigger plugin documentation](https://weechat.org/files/doc/stable/weechat_user.en.html#trigger)
* [Triggers at WeeChat GitHub Wiki](https://github.com/weechat/weechat/wiki/Triggers)
- [WeeChat Trigger plugin documentation](https://weechat.org/files/doc/stable/weechat_user.en.html#trigger)
- [Triggers at WeeChat GitHub Wiki](https://github.com/weechat/weechat/wiki/Triggers)
## msgid visibility

View File

@ -3,6 +3,6 @@
I never remember these and then I take ages to find my notes, so in hopes
of finding these faster the next time, I am git committing it.
* Bedsheets & other bed things, 60 C (cotton)
* Day cover (big blue) 40 C, (cotton)
* Clothes: 40 C (mixed)
- Bedsheets & other bed things, 60 C (cotton)
- Day cover (big blue) 40 C, (cotton)
- Clothes: 40 C (mixed)

View File

@ -5,12 +5,13 @@ Initially copied from https://develop.element.io/config.json, but modified.
Placement:
Flatpak: `~/.var/app/im.riot.Riot/config/Riot/config.json`
* or `~/.var/app/im.riot.Riot/config/Element-PROFILENAMEHERE/config.json`
* Linux: `~/.config/Element/config.json` or `~/.config/Element-PROFILENAMEHERE/config.json`
* failing that it appears to read `~/.config/Riot/*` should that exist.
* Windows: `%APPDATA%\Element\config.json`
- or `~/.var/app/im.riot.Riot/config/Element-PROFILENAMEHERE/config.json`
- Linux: `~/.config/Element/config.json` or `~/.config/Element-PROFILENAMEHERE/config.json`
- failing that it appears to read `~/.config/Riot/*` should that exist.
- Windows: `%APPDATA%\Element\config.json`
Labs features:
* https://github.com/vector-im/element-web/blob/develop/docs/labs.md
* https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.tsx
- https://github.com/vector-im/element-web/blob/develop/docs/labs.md
- https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.tsx

View File

@ -1,4 +1,3 @@
{
"showLabsSettings": true,
"defaultDeviceDisplayName": "HostnameOS-Client-YYYY-WXX-D",
@ -9,24 +8,24 @@
}
},
"features": {
"feature_report_to_moderators": "enable",
"feature_latex_maths": "enable",
"feature_mjolnir": "enable",
"feature_roomlist_preview_reactions_all": "enable",
"feature_roomlist_preview_reactions_dms": "enable",
"feature_dehydration": "enable",
"feature_extensible_events": "enable",
"feature_threadstable": "enable",
"feature_message_right_click_context_menu": "enable",
"feature_hidden_read_receipts": "enable",
"feature_custom_themes": "labs",
"feature_pinning": "enable",
"feature_state_counters": "labs",
"feature_mjolnir": "labs",
"feature_bridge_state": "enable",
"feature_exploring_public_spaces": "enable"
"feature_report_to_moderators": "enable",
"feature_latex_maths": "enable",
"feature_mjolnir": "enable",
"feature_roomlist_preview_reactions_all": "enable",
"feature_roomlist_preview_reactions_dms": "enable",
"feature_dehydration": "enable",
"feature_extensible_events": "enable",
"feature_threadstable": "enable",
"feature_message_right_click_context_menu": "enable",
"feature_hidden_read_receipts": "enable",
"feature_custom_themes": "labs",
"feature_pinning": "enable",
"feature_state_counters": "labs",
"feature_mjolnir": "labs",
"feature_bridge_state": "enable",
"feature_exploring_public_spaces": "enable"
},
"jitsi": {
"preferredDomain": "jitsi.effi.org"
}
"jitsi": {
"preferredDomain": "jitsi.effi.org"
}
}

View File

@ -22,8 +22,10 @@ once space is pressed after the prefix char.
6. Search for and select `im.fluffychat.account_bundles`
7. Above (or below, doesn't matter) the `"bundles": [` line, add `"prefix": "M",` where `M` is your
prefix to quickly switch to this account.
* If this is confusing, see the example of finalized event in the bottom
of this file.
- If this is confusing, see the example of finalized event in the bottom
of this file.
8. Optionally if you wish to sort your account, add a `,` to the line where
your bundle is named and to the next line: `"priority": 0`
9. Start/restart FluffyChat
@ -32,13 +34,13 @@ once space is pressed after the prefix char.
General notes:
* 0.4.1 had a bug where using automatic server discovery through well-known
- 0.4.1 had a bug where using automatic server discovery through well-known
causes all accounts to get logged out. Use server name instead, e.g. `https://matrix-client.matrix.org` (discovered from https://matrix.org/.well-known/matrix/client)
* This is fixed in 0.4.2.
* Quick account switching will only work within a bundle, which by default is implied to be the MXID, so by default it's disabled
* Note the avatar next to the input bar showing which account you are using. It can also be used for switching accounts.
* Tapping it to change account will also change which account will send any other events like media/reaction etc.
* Long tapping a message and editing a message send as another account will
- This is fixed in 0.4.2.
- Quick account switching will only work within a bundle, which by default is implied to be the MXID, so by default it's disabled
- Note the avatar next to the input bar showing which account you are using. It can also be used for switching accounts.
- Tapping it to change account will also change which account will send any other events like media/reaction etc.
- Long tapping a message and editing a message send as another account will
auto-set the indicator and action-sender as your roleplay character.
Big thank you to FluffyChat contributors who made this feature and Sorunome
@ -66,18 +68,18 @@ on account `@mikaela:feneas.org`
```json
{
"prefix": "P",
"priority": 5,
"bundles": [
{
"name": "💼",
"priority": 5
},
{
"name": "😺"
}
]
"prefix": "P",
"priority": 5,
"bundles": [
{
"name": "💼",
"priority": 5
},
{
"name": "😺"
}
]
}
```
on account `@mikaela.suomalainen:matrix.org`
on account `@mikaela.suomalainen:matrix.org`

View File

@ -12,8 +12,8 @@ on terminal. `account-data` is an exception for appearing that way in `/devtools
### Account migration
* [EMS Matrix account migration tool](https://ems.element.io/tools/matrix-migration)
* Centralized, propietary, service, works less well since Synapse 1.11.0rc1
- [EMS Matrix account migration tool](https://ems.element.io/tools/matrix-migration)
- Centralized, propietary, service, works less well since Synapse 1.11.0rc1
made PL50 requirement for inviting users to new rooms.
* [Variate](https://github.com/ShadowJonathan/variate) is planning to be
a tool for *migrating between different Matrix server implementations*.
- [Variate](https://github.com/ShadowJonathan/variate) is planning to be
a tool for _migrating between different Matrix server implementations_.

View File

@ -8,7 +8,7 @@ Requires room version 7
```json
{
"join_rule": "knock"
"join_rule": "knock"
}
```
@ -18,13 +18,13 @@ Requires room version <del>8</del> 9. Offers only Spaces in room settings
```json
{
"allow": [
{
"room_id": "!whatever:example.net",
"type": "m.room_membership"
}
],
"join_rule": "restricted"
"allow": [
{
"room_id": "!whatever:example.net",
"type": "m.room_membership"
}
],
"join_rule": "restricted"
}
```
@ -38,85 +38,85 @@ Practically the same, but requires room version 10 and new `join_rule` known as
```json
{
"allow": [
{
"room_id": "!ddFNqIRUacwdicInJz:feneas.org",
"type": "m.room_membership"
},
{
"room_id": "!fGtopoZuCySnTsSdsU:matrix.org",
"type": "m.room_membership"
},
{
"room_id": "!IVRSynLjDUQRVOHnbE:pikaviestin.fi",
"type": "m.room_membership"
},
{
"room_id": "!ruWhXaXgrPjaSSecvb:matrix.org",
"type": "m.room_membership"
},
{
"room_id": "!watercooler-v10:maunium.net",
"type": "m.room_membership"
},
{
"room_id": "!etDMqntYVqugEClPcE:artemislena.eu",
"type": "m.room_membership"
},
{
"room_id": "!KMbEUhVQHLwZHmwzKX:matrix.org",
"type": "m.room_membership"
},
{
"room_id": "!rCWNvpCTZHQkiRYUDE:matrix.org",
"type": "m.room_membership"
},
{
"room_id": "!AUKUBkWpbVaNhXJhuD:vi.fi",
"type": "m.room_membership"
},
{
"room_id": "!MHqztrxnQriEOyNLjW:pirateriot.net",
"type": "m.room_membership"
},
{
"room_id": "!WDaMZSVinTZRLOTajM:hacklab.fi",
"type": "m.room_membership"
},
{
"room_id": "!IwPxifXSjBLghpVEMh:matrix.org",
"type": "m.room_membership"
},
{
"room_id": "!iQaStEQNwaqxQfyhZi:sorunome.de",
"type": "m.room_membership"
},
{
"room_id": "!ESKEvwumMpSRZTnJOI:pikaviestin.fi",
"type": "m.room_membership"
},
{
"room_id": "!azROMLeGEMPdbdWnbk:matrix.org",
"type": "m.room_membership"
}
],
"join_rule": "knock_restricted"
"allow": [
{
"room_id": "!ddFNqIRUacwdicInJz:feneas.org",
"type": "m.room_membership"
},
{
"room_id": "!fGtopoZuCySnTsSdsU:matrix.org",
"type": "m.room_membership"
},
{
"room_id": "!IVRSynLjDUQRVOHnbE:pikaviestin.fi",
"type": "m.room_membership"
},
{
"room_id": "!ruWhXaXgrPjaSSecvb:matrix.org",
"type": "m.room_membership"
},
{
"room_id": "!watercooler-v10:maunium.net",
"type": "m.room_membership"
},
{
"room_id": "!etDMqntYVqugEClPcE:artemislena.eu",
"type": "m.room_membership"
},
{
"room_id": "!KMbEUhVQHLwZHmwzKX:matrix.org",
"type": "m.room_membership"
},
{
"room_id": "!rCWNvpCTZHQkiRYUDE:matrix.org",
"type": "m.room_membership"
},
{
"room_id": "!AUKUBkWpbVaNhXJhuD:vi.fi",
"type": "m.room_membership"
},
{
"room_id": "!MHqztrxnQriEOyNLjW:pirateriot.net",
"type": "m.room_membership"
},
{
"room_id": "!WDaMZSVinTZRLOTajM:hacklab.fi",
"type": "m.room_membership"
},
{
"room_id": "!IwPxifXSjBLghpVEMh:matrix.org",
"type": "m.room_membership"
},
{
"room_id": "!iQaStEQNwaqxQfyhZi:sorunome.de",
"type": "m.room_membership"
},
{
"room_id": "!ESKEvwumMpSRZTnJOI:pikaviestin.fi",
"type": "m.room_membership"
},
{
"room_id": "!azROMLeGEMPdbdWnbk:matrix.org",
"type": "m.room_membership"
}
],
"join_rule": "knock_restricted"
}
```
## Note to self
* `!fGtopoZuCySnTsSdsU:matrix.org` - eu.aminda.space v10
* `!ruWhXaXgrPjaSSecvb:matrix.org` - aminda.eu v10
* `!IVRSynLjDUQRVOHnbE:pikaviestin.fi` - Nova Fervoro v10
* `!watercooler-v10:maunium.net` - WaterDuck v10
* `!etDMqntYVqugEClPcE:artemislena.eu` - Community Moderation Effort v9
* `!KMbEUhVQHLwZHmwzKX:matrix.org` - Matrix Haters v9
* `!rCWNvpCTZHQkiRYUDE:matrix.org` - Matrix.fi v5
* `!AUKUBkWpbVaNhXJhuD:vi.fi` - Olohuone v6
* `!MHqztrxnQriEOyNLjW:pirateriot.net` - GlobalPirates v10
* `!WDaMZSVinTZRLOTajM:hacklab.fi` - Matrix Suomi (Space) v6
* `!IwPxifXSjBLghpVEMh:matrix.org` - FluffyChat (room) v5
* `!iQaStEQNwaqxQfyhZi:sorunome.de` - FluffyChat Space v6
* `!ESKEvwumMpSRZTnJOI:pikaviestin.fi` - Piraattipuolue v10
* `!azROMLeGEMPdbdWnbk:matrix.org` - Piraattipuolueen työrauha v9
- `!fGtopoZuCySnTsSdsU:matrix.org` - eu.aminda.space v10
- `!ruWhXaXgrPjaSSecvb:matrix.org` - aminda.eu v10
- `!IVRSynLjDUQRVOHnbE:pikaviestin.fi` - Nova Fervoro v10
- `!watercooler-v10:maunium.net` - WaterDuck v10
- `!etDMqntYVqugEClPcE:artemislena.eu` - Community Moderation Effort v9
- `!KMbEUhVQHLwZHmwzKX:matrix.org` - Matrix Haters v9
- `!rCWNvpCTZHQkiRYUDE:matrix.org` - Matrix.fi v5
- `!AUKUBkWpbVaNhXJhuD:vi.fi` - Olohuone v6
- `!MHqztrxnQriEOyNLjW:pirateriot.net` - GlobalPirates v10
- `!WDaMZSVinTZRLOTajM:hacklab.fi` - Matrix Suomi (Space) v6
- `!IwPxifXSjBLghpVEMh:matrix.org` - FluffyChat (room) v5
- `!iQaStEQNwaqxQfyhZi:sorunome.de` - FluffyChat Space v6
- `!ESKEvwumMpSRZTnJOI:pikaviestin.fi` - Piraattipuolue v10
- `!azROMLeGEMPdbdWnbk:matrix.org` - Piraattipuolueen työrauha v9

View File

@ -36,10 +36,10 @@ This has the rest event in two forms, but doesn't duplicate the above.
Generic notes:
* Don't have anything in `events {}` as `0` or otherwise users will be
able to send state events with that name including gigabytes of
data breaking the room.
* Refer to security considerations of MSC 3779.
- Don't have anything in `events {}` as `0` or otherwise users will be
able to send state events with that name including gigabytes of
data breaking the room.
- Refer to security considerations of MSC 3779.
### Reasonable version
@ -47,125 +47,125 @@ This is not the Element/Synapse default as that would be pointless to list.
```json5
{
"ban": 50,
"events": {
"im.vector.modular.widgets": 50,
"m.room.avatar": 50,
"m.room.canonical_alias": 13,
"m.room.encryption": 100,
"m.room.history_visibility": 99,
"m.room.join_rules": 50,
"m.room.name": 50,
"m.room.pinned_events": 25,
"m.room.power_levels": 50,
"m.room.retention": 100,
"m.room.server_acl": 100,
"m.room.tombstone": 100,
"m.room.topic": 25,
"m.space.child": 50
},
"events_default": 0,
"historical": 100,
"invite": 0,
"kick": 25,
"redact": 25,
"state_default": 50,
"users": {
// READ THE BEGINNING OF THE FILE FOR THIS SECTION AND PROPER FORMAT! OR SEE YOUR CURRENT EVENT!
},
"users_default": 0
ban: 50,
events: {
"im.vector.modular.widgets": 50,
"m.room.avatar": 50,
"m.room.canonical_alias": 13,
"m.room.encryption": 100,
"m.room.history_visibility": 99,
"m.room.join_rules": 50,
"m.room.name": 50,
"m.room.pinned_events": 25,
"m.room.power_levels": 50,
"m.room.retention": 100,
"m.room.server_acl": 100,
"m.room.tombstone": 100,
"m.room.topic": 25,
"m.space.child": 50,
},
events_default: 0,
historical: 100,
invite: 0,
kick: 25,
redact: 25,
state_default: 50,
users: {
// READ THE BEGINNING OF THE FILE FOR THIS SECTION AND PROPER FORMAT! OR SEE YOUR CURRENT EVENT!
},
users_default: 0,
}
```
* `m.room.history_visibility` is lowered to 99 as it's a less permanent action than
many of the others. I am not sure on my initial logic, but it's documented in
PPFI repo as PL100 vs PL99.
* `m.room.power_levels` is set to `50` so moderators can raise others to moderators
for example matrix-appservice-irc, which I would then give PL51 for ops syncing.
On matrix side immune mods, could be PL52.
* invite commonly defaults to `50`, but I haven't seen abuse through it
* PL25, half-moderator is introduced (inspired from Ergo/IRC halfop), with powers to:
change room topic, pinned messages, remove messages and kick users (but not ban).
* Maybe this could be used e.g. in an association where a secretary/someone
unwilling to be a full moderator wants to update room topic for next
meeting time or update a version number? :shrug:
Alternatively someone not wanting full moderator responsibility could remove
spam while not participating in banning discussions.
* PL13 gets access to change main alias and add/remove published room aliases alongside
(at least on Synapse) [un/publish the room in the room directory](https://github.com/vector-im/element-web/issues/13835).
* This can be used with e.g. [altalias maubot plugin](https://matrix.org/blog/2020/06/19/this-week-in-matrix-2020-06-19#alt-alias-maubot-plugin).
I don't care about room directory or the main alias as it doesn't affect ctrl-k that much anyway,
rooms are generally discovered through Spaces and I use Matrix URI scheme
which takes room internal ID and servers to find it from instead of caring about
the alias. Most importantly **don't give permissions to entirely untrusted users.**
- `m.room.history_visibility` is lowered to 99 as it's a less permanent action than
many of the others. I am not sure on my initial logic, but it's documented in
PPFI repo as PL100 vs PL99.
- `m.room.power_levels` is set to `50` so moderators can raise others to moderators
for example matrix-appservice-irc, which I would then give PL51 for ops syncing.
On matrix side immune mods, could be PL52.
- invite commonly defaults to `50`, but I haven't seen abuse through it
- PL25, half-moderator is introduced (inspired from Ergo/IRC halfop), with powers to:
change room topic, pinned messages, remove messages and kick users (but not ban).
- Maybe this could be used e.g. in an association where a secretary/someone
unwilling to be a full moderator wants to update room topic for next
meeting time or update a version number? :shrug:
Alternatively someone not wanting full moderator responsibility could remove
spam while not participating in banning discussions.
- PL13 gets access to change main alias and add/remove published room aliases alongside
(at least on Synapse) [un/publish the room in the room directory](https://github.com/vector-im/element-web/issues/13835).
- This can be used with e.g. [altalias maubot plugin](https://matrix.org/blog/2020/06/19/this-week-in-matrix-2020-06-19#alt-alias-maubot-plugin).
I don't care about room directory or the main alias as it doesn't affect ctrl-k that much anyway,
rooms are generally discovered through Spaces and I use Matrix URI scheme
which takes room internal ID and servers to find it from instead of caring about
the alias. Most importantly **don't give permissions to entirely untrusted users.**
### Medium version
```json5
{
"ban": 50,
"events": {
"im.vector.modular.widgets": 50,
"m.room.avatar": 50,
"m.room.canonical_alias": 13,
"m.room.encryption": 100,
"m.room.history_visibility": 99,
"m.room.join_rules": 50,
"m.room.name": 50,
"m.room.pinned_events": 25,
"m.room.power_levels": 50,
"m.room.retention": 100,
"m.room.server_acl": 100,
"m.room.tombstone": 100,
"m.room.topic": 25,
"m.space.child": 50
},
"events_default": 0,
"historical": 100,
"invite": 50,
"kick": 25,
"redact": 25,
"state_default": 50,
"users": {
// READ THE BEGINNING OF THE FILE FOR THIS SECTION AND PROPER FORMAT! OR SEE YOUR CURRENT EVENT!
},
"users_default": 0
ban: 50,
events: {
"im.vector.modular.widgets": 50,
"m.room.avatar": 50,
"m.room.canonical_alias": 13,
"m.room.encryption": 100,
"m.room.history_visibility": 99,
"m.room.join_rules": 50,
"m.room.name": 50,
"m.room.pinned_events": 25,
"m.room.power_levels": 50,
"m.room.retention": 100,
"m.room.server_acl": 100,
"m.room.tombstone": 100,
"m.room.topic": 25,
"m.space.child": 50,
},
events_default: 0,
historical: 100,
invite: 50,
kick: 25,
redact: 25,
state_default: 50,
users: {
// READ THE BEGINNING OF THE FILE FOR THIS SECTION AND PROPER FORMAT! OR SEE YOUR CURRENT EVENT!
},
users_default: 0,
}
```
* Otherwise "Reasonable version", but
* Only moderators can invite
- Otherwise "Reasonable version", but
- Only moderators can invite
### Paranoid version
```json5
{
"ban": 50,
"events": {
"im.vector.modular.widgets": 100,
"m.room.avatar": 100,
"m.room.canonical_alias": 100,
"m.room.encryption": 100,
"m.room.history_visibility": 100,
"m.room.join_rules": 100,
"m.room.name": 100,
"m.room.pinned_events": 100,
"m.room.power_levels": 100,
"m.room.retention": 100,
"m.room.server_acl": 100,
"m.room.tombstone": 100,
"m.room.topic": 100,
"m.space.child": 100
},
"events_default": 0,
"historical": 100,
"invite": 100,
"kick": 50,
"redact": 50,
"state_default": 100,
"users": {
// READ THE BEGINNING OF THE FILE FOR THIS SECTION AND PROPER FORMAT! OR SEE YOUR CURRENT EVENT!
},
"users_default": 0
ban: 50,
events: {
"im.vector.modular.widgets": 100,
"m.room.avatar": 100,
"m.room.canonical_alias": 100,
"m.room.encryption": 100,
"m.room.history_visibility": 100,
"m.room.join_rules": 100,
"m.room.name": 100,
"m.room.pinned_events": 100,
"m.room.power_levels": 100,
"m.room.retention": 100,
"m.room.server_acl": 100,
"m.room.tombstone": 100,
"m.room.topic": 100,
"m.space.child": 100,
},
events_default: 0,
historical: 100,
invite: 100,
kick: 50,
redact: 50,
state_default: 100,
users: {
// READ THE BEGINNING OF THE FILE FOR THIS SECTION AND PROPER FORMAT! OR SEE YOUR CURRENT EVENT!
},
users_default: 0,
}
```

View File

@ -3,7 +3,7 @@
This event type controls which servers can access the room at all. Be very careful
adjusting this.
* https://matrix.org/docs/guides/moderation#banning-servers-from-rooms-server-acls
- https://matrix.org/docs/guides/moderation#banning-servers-from-rooms-server-acls
Note: when sending the custom event via `/devtools` for the first time, click
the `Event` so it says `State Event` and asks for `State key` in addition to `type`,
@ -11,40 +11,38 @@ which can/is left empty as usual.
```json
{
"allow": [
"*"
],
"allow_ip_literals": false,
"deny": [
"disroot.org",
"privacytools.io",
"feneas.org",
"glowers.club",
"*.glowers.club",
"midov.pl",
"*.midov.pl",
"kiwifarms.net",
"*.kiwifarms.net",
"liberta.casa",
"nitro.chat",
"*.nitro.chat",
"nerdsin.space",
"*.nerdsin.space",
"thisisjoes.site",
"*.thisisjoes.site",
"pp13.space",
"*.pp13.space"
]
"allow": ["*"],
"allow_ip_literals": false,
"deny": [
"disroot.org",
"privacytools.io",
"feneas.org",
"glowers.club",
"*.glowers.club",
"midov.pl",
"*.midov.pl",
"kiwifarms.net",
"*.kiwifarms.net",
"liberta.casa",
"nitro.chat",
"*.nitro.chat",
"nerdsin.space",
"*.nerdsin.space",
"thisisjoes.site",
"*.thisisjoes.site",
"pp13.space",
"*.pp13.space"
]
}
```
Explanations:
* Legacy servers that have discontinued, are in progress of discontinuing or
- Legacy servers that have discontinued, are in progress of discontinuing or
are just closed for public, that have PL100 in my rooms. They don't need subdomains
to be denylisted as the subdomain MXIDs wouldn't have power.
* `disroot.org`, `privacyguides.io`, `feneas.org`.
* The rest are connected to abusive raids on communities that I am a part of,
- `disroot.org`, `privacyguides.io`, `feneas.org`.
- The rest are connected to abusive raids on communities that I am a part of,
sometimes even moderate.
## Allowlist
@ -53,21 +51,20 @@ This configuration only lets servers I have accounts on in.
```json
{
"allow": [
"pikaviestin.fi",
"matrix.org",
"mozilla.org",
"tedomum.net",
"pirateriot.net",
"tchncs.de",
"fedora.im",
"jae.fi",
"converser.eu",
"artemislena.eu",
"the-apothecary.club"
],
"allow_ip_literals": false,
"deny": []
"allow": [
"pikaviestin.fi",
"matrix.org",
"mozilla.org",
"tedomum.net",
"pirateriot.net",
"tchncs.de",
"fedora.im",
"jae.fi",
"converser.eu",
"artemislena.eu",
"the-apothecary.club"
],
"allow_ip_literals": false,
"deny": []
}
```

View File

@ -8,8 +8,8 @@ Synapse versions before [1.11.0 (2020-02-21), technically 1.11.0rc1 (2020-02-19)
allowed power level 50 to set tombstones and thus hijack rooms. Thus this is
dependent on the Synapse version used at the time of room creation.
* [PR](https://github.com/matrix-org/synapse/pull/6834)
* [commit](https://github.com/matrix-org/synapse/commit/3404ad289b1d2e5bc5c7f277f519b9698dbdaa15)
- [PR](https://github.com/matrix-org/synapse/pull/6834)
- [commit](https://github.com/matrix-org/synapse/commit/3404ad289b1d2e5bc5c7f277f519b9698dbdaa15)
In the same context invites were changed to require PL50 by default, and ACL
also got the requirement for PL100.

View File

@ -1,5 +1,5 @@
{
"min_lifetime": 3600000,
"max_lifetime": 3600000,
"expire_on_clients": true
"min_lifetime": 3600000,
"max_lifetime": 3600000,
"expire_on_clients": true
}

View File

@ -1,5 +1,5 @@
{
"min_lifetime": 86400000,
"max_lifetime": 86400000,
"expire_on_clients": true
"min_lifetime": 86400000,
"max_lifetime": 86400000,
"expire_on_clients": true
}

View File

@ -1,5 +1,5 @@
{
"min_lifetime": 86400000,
"max_lifetime": 2678400000,
"expire_on_clients": true
"min_lifetime": 86400000,
"max_lifetime": 2678400000,
"expire_on_clients": true
}

View File

@ -1,14 +1,14 @@
# Room history retention settings / state event `m.room.retention`
* https://brendan.abolivier.bzh/matrix-retention-policies/
- https://brendan.abolivier.bzh/matrix-retention-policies/
Read that, it explains what is actually done etc.
## Notes
* Not part of spec. https://github.com/matrix-org/matrix-spec-proposals/pull/1763
* Matrix uses milliseconds, keep that in mind!
* Everything requires every server involved to have rention support enabled,
- Not part of spec. https://github.com/matrix-org/matrix-spec-proposals/pull/1763
- Matrix uses milliseconds, keep that in mind!
- Everything requires every server involved to have rention support enabled,
otherwise the messages go nowhere and are fetchable upon request.
* 86400000 = 1 day (seen in min lifetimes)
* Helpful: https://unitchefs.com/milliseconds/days/ / https://unitchefs.com/days/milliseconds/
- 86400000 = 1 day (seen in min lifetimes)
- Helpful: https://unitchefs.com/milliseconds/days/ / https://unitchefs.com/days/milliseconds/

View File

@ -1,5 +1,5 @@
{
"min_lifetime": 86400000,
"max_lifetime": 604800000,
"expire_on_clients": true
"min_lifetime": 86400000,
"max_lifetime": 604800000,
"expire_on_clients": true
}

View File

@ -1,34 +1,34 @@
# Potentially useful progressive web apps
Method for distinguishing PWAs from normal websites: adding them to
iOS homescreen and seeing which open as "their own apps" *or* having
iOS homescreen and seeing which open as "their own apps" _or_ having
Chromium suggest "installing" them without manually "installing" them.
Proper identification: `view-source` (`CTRL - U`) and `CTRL - F` for
`manifest` e.g. `<link rel="manifest" href="/manifest.webmanifest">` in `<head>`.
* https://caniuse.com/web-app-manifest
* https://developer.mozilla.org/docs/Web/Manifest
- https://caniuse.com/web-app-manifest
- https://developer.mozilla.org/docs/Web/Manifest
It looks like `about:apps` on Edge (or all Chromiums?) has a
`Show applications menu on toolbar` button which then when pressed on a tab
has more details for PWAs. "App whatever is available" with logo and "Publisher:"
fields.
***TODO: Some of these may be miscategorized while not fullfilling the criteria of PWA.***
**_TODO: Some of these may be miscategorized while not fullfilling the criteria of PWA._**
## Events
* Mobilizon - all instances of the federated event & group site function as
- Mobilizon - all instances of the federated event & group site function as
PWAs.
* https://events.nixnet.services/ - the only still alive instance I registered on
* https://calendar.google.com/ - Google's Calendar app
- https://events.nixnet.services/ - the only still alive instance I registered on
- https://calendar.google.com/ - Google's Calendar app
## Food
* https://menu.unicafe.fi/ - menu for UniCafes
* https://resq-club.com/app/ - waste food pickup ordering app
* https://www.fiksuruoka.fi/ - Finnish waste/expiring grocery store
- https://menu.unicafe.fi/ - menu for UniCafes
- https://resq-club.com/app/ - waste food pickup ordering app
- https://www.fiksuruoka.fi/ - Finnish waste/expiring grocery store
## Instant messaging
@ -36,61 +36,61 @@ fields.
#### Instant messaging
* https://fluffychat.im/web/ - Matrix client with multiaccount support
* https://hydrogen.element.io/ - very basic Matrix client for lowend devices
* Element Web - Matrix web client with most features such as /devtools, essential for modding
* https://app.element.io/ - stable
* https://staging.element.io/ - rc/beta?
* https://develop.element.io/ - bleeding edge
* https://app.cinny.in/ - yet another Matrix client (very discordy)
- https://fluffychat.im/web/ - Matrix client with multiaccount support
- https://hydrogen.element.io/ - very basic Matrix client for lowend devices
- Element Web - Matrix web client with most features such as /devtools, essential for modding
- https://app.element.io/ - stable
- https://staging.element.io/ - rc/beta?
- https://develop.element.io/ - bleeding edge
- https://app.cinny.in/ - yet another Matrix client (very discordy)
#### Social media
* https://app.minestrix.henri2h.fr/ - social media based on Matrix
- https://app.minestrix.henri2h.fr/ - social media based on Matrix
### Telegram
* https://web.telegram.org/z/
* https://web.telegram.org/k/
- https://web.telegram.org/z/
- https://web.telegram.org/k/
### Misc
* https://latest.glowing-bear.org/ - WeeChat Relay (protocol) client
- https://latest.glowing-bear.org/ - WeeChat Relay (protocol) client
## Learning
* https://www.duolingo.com/ - language learning website
- https://www.duolingo.com/ - language learning website
## Localization
* https://hosted.weblate.org/ - Translation platform popular amongst FOSS projects
- https://hosted.weblate.org/ - Translation platform popular amongst FOSS projects
## Music
* https://music.youtube.com/ - YouTube Music (Player)
- https://music.youtube.com/ - YouTube Music (Player)
## Shopping
* https://www.verkkokauppa.com/ - Finnish online retailer
- https://www.verkkokauppa.com/ - Finnish online retailer
## Social media
* Lemmy - federated social news aggregator (Reddit clone)
* https://lemmy.tedomum.net/ - the instance my account is on.
- Lemmy - federated social news aggregator (Reddit clone)
- https://lemmy.tedomum.net/ - the instance my account is on.
## Travel
* https://guide.suomenlinna.fi/ - mobile guide for Suomenlinna (UNESCO World Heritage site),
- https://guide.suomenlinna.fi/ - mobile guide for Suomenlinna (UNESCO World Heritage site),
which is also a neighbourhood in Helsinki, Finland.
## Not PWAs but still possibly useful for homescreens
Continuing the previous method, these open in Safari.
* http://http.badssl.com - essential captive portal trigger
* https://1.1.1.1/help - Cloudflare DNS debug
* https://mullvad.net/check - Mullvad leak test
* https://www.junat.net/ - Finnish train staton information displays (including arrivals)
* https://perille.fi - Finnish long distance transport comparison site
* https://pikavuorot.fi - Finnish long distance transport comparison site
* https://sanakirja.org - Finnish dictionary for translating languages
- http://http.badssl.com - essential captive portal trigger
- https://1.1.1.1/help - Cloudflare DNS debug
- https://mullvad.net/check - Mullvad leak test
- https://www.junat.net/ - Finnish train staton information displays (including arrivals)
- https://perille.fi - Finnish long distance transport comparison site
- https://pikavuorot.fi - Finnish long distance transport comparison site
- https://sanakirja.org - Finnish dictionary for translating languages

View File

@ -1,5 +1,5 @@
Finnish or webradios that I listen
* `~/.local/share/radiotray/bookmarks.xml`
- `~/.local/share/radiotray/bookmarks.xml`
NOTE: Yle doesn't work and selecting their station seems to freeze the app.

View File

@ -1,11 +1,23 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta charset="utf-8" />
<title>etro.mikaela.info</title>
</head>
<body>
<p><em>Come, pity poor Etro, she was left all alone. Her blood pouring forth, in Chaos to atone. Queen of nothing, goddess of death—so let her be known.</em></p>
<p><em><a href="https://finalfantasy.fandom.com/wiki/Etro">Etro on Final Fantasy Wiki</a></em></p>
<p>
<em
>Come, pity poor Etro, she was left all alone. Her blood pouring forth,
in Chaos to atone. Queen of nothing, goddess of death—so let her be
known.</em
>
</p>
<p>
<em
><a href="https://finalfantasy.fandom.com/wiki/Etro"
>Etro on Final Fantasy Wiki</a
></em
>
</p>
</body>
</html>

View File

@ -2,13 +2,13 @@
# Turn vcards into QR codes
# loop through all vcard files
for vcard in *.vcard; do
if [ -f "$vcard" ]; then
for vcard in *.vcard; do
if [ -f "$vcard" ]; then
# -l H - high error correction
# -t utf8 - output to terminal
# -r - read file
# -o output file
qrencode -l H -t utf8 -r $vcard
qrencode -l H -o $vcard.png -r $vcard
fi
fi
done

View File

@ -4,24 +4,24 @@ I am considering getting a 5G (mobile network) capable one, but as none
satisfies my requirements, I might as well write them here for reference
when looking at options.
* WPA3 support as certification began in 2018 already.
* WPA2/WPA3 Transitional mode
* WiFi Enhanced Open (OWE) transition mode would be nice
* Multiple SSIDs (including OWE/transition)
* Option to have lower priority for the guest network
* Transmit power control to set it to low
* 2.4 GHz / 5 GHz dualband (should be obvious in 2022)
* ***Ability to set same SSID for both*** (looking at you Huawei)
* If the SSIDs differ, devices won't be able to decide between frequency
- WPA3 support as certification began in 2018 already.
- WPA2/WPA3 Transitional mode
- WiFi Enhanced Open (OWE) transition mode would be nice
- Multiple SSIDs (including OWE/transition)
- Option to have lower priority for the guest network
- Transmit power control to set it to low
- 2.4 GHz / 5 GHz dualband (should be obvious in 2022)
- **_Ability to set same SSID for both_** (looking at you Huawei)
- If the SSIDs differ, devices won't be able to decide between frequency
and either 2.4 or 5 GHz must be chosen. 5 GHz is mostly subject to
*Dynamic Frequency Selection* which means no WiFi for 10 minutes
_Dynamic Frequency Selection_ which means no WiFi for 10 minutes
on boot.
* Quality of Service (QoS)
- Quality of Service (QoS)
## See also
* [Apple: Recommended settings for Wi-Fi routers and access points](https://support.apple.com/HT202068)
* [EFF: Open Wireless Movement](https://openwireless.org/)
* [Metis: 8 reasons to turn down the transmit power of your Wi-Fi](https://metis.fi/en/2017/10/txpower/)
* [Metis: Increase your cell phone battery life with a small change in the Wi-Fi network](https://metis.fi/en/2018/05/dtim-en/)
* > Buried deep in the advanced settings of the Wi-Fi access point there is a setting with a friendly title like DTIM Interval or DTIM Period. The default setting is typically one. Change it to three, five or slightly larger, but dont go over ten. Often you can set it separately for 2.4GHz and 5GHz, but use the same value for both. This is the short answer. Read on to find out what this is all about.
- [Apple: Recommended settings for Wi-Fi routers and access points](https://support.apple.com/HT202068)
- [EFF: Open Wireless Movement](https://openwireless.org/)
- [Metis: 8 reasons to turn down the transmit power of your Wi-Fi](https://metis.fi/en/2017/10/txpower/)
- [Metis: Increase your cell phone battery life with a small change in the Wi-Fi network](https://metis.fi/en/2018/05/dtim-en/)
- > Buried deep in the advanced settings of the Wi-Fi access point there is a setting with a friendly title like DTIM Interval or DTIM Period. The default setting is typically one. Change it to three, five or slightly larger, but dont go over ten. Often you can set it separately for 2.4GHz and 5GHz, but use the same value for both. This is the short answer. Read on to find out what this is all about.

View File

@ -1,10 +1,12 @@
{ "name": "y.etro.mikaela.info",
"type": "server",
"location": "Hetzner, Tuusula, Finland",
"peering": "Ask me? I don't know yet",
"contact": {
"name": "Aminda Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"email-deltachat": "delta@aminda.eu",
"public keys": "https://www.aminda.eu/keys/"}
{
"name": "y.etro.mikaela.info",
"type": "server",
"location": "Hetzner, Tuusula, Finland",
"peering": "Ask me? I don't know yet",
"contact": {
"name": "Aminda Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"email-deltachat": "delta@aminda.eu",
"public keys": "https://www.aminda.eu/keys/"
}
}

View File

@ -1,8 +1,10 @@
{ "name": "y.jitsi.piraattipuolue.fi",
"type": "server",
"location": "OVH, Roubaix, France",
"peering": "Please contact us, if you are a Pirate Party activist",
"contact": {
"email": "pikaviestimet+JitsiYggdrasil@piraattipuolue.fi",
"irc": "ircs://y.irc.pirateirc.net:6697/#verkkopalvelut"}
{
"name": "y.jitsi.piraattipuolue.fi",
"type": "server",
"location": "OVH, Roubaix, France",
"peering": "Please contact us, if you are a Pirate Party activist",
"contact": {
"email": "pikaviestimet+JitsiYggdrasil@piraattipuolue.fi",
"irc": "ircs://y.irc.pirateirc.net:6697/#verkkopalvelut"
}
}

View File

@ -1,8 +1,10 @@
{ "name": "y.jolly-roger.hel.piraattipuolue.internal",
"type": "desktop",
"contact": {
"name": "Aminda Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"email-deltachat": "delta@aminda.eu",
"public keys": "https://www.aminda.eu/keys/"}
{
"name": "y.jolly-roger.hel.piraattipuolue.internal",
"type": "desktop",
"contact": {
"name": "Aminda Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"email-deltachat": "delta@aminda.eu",
"public keys": "https://www.aminda.eu/keys/"
}
}

View File

@ -1,8 +1,10 @@
{ "name": "y.lumina.aminda.eu",
"type": "laptop",
"contact": {
"name": "Aminda Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"email-deltachat": "delta@aminda.eu",
"public keys": "https://www.aminda.eu/keys/"}
{
"name": "y.lumina.aminda.eu",
"type": "laptop",
"contact": {
"name": "Aminda Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"email-deltachat": "delta@aminda.eu",
"public keys": "https://www.aminda.eu/keys/"
}
}

View File

@ -1,8 +1,10 @@
{ "name": "y.rbtpzn.mikaela.info",
"type": "desktop",
"contact": {
"name": "Aminda Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"email-deltachat": "delta@aminda.eu",
"public keys": "https://www.aminda.eu/keys/"}
{
"name": "y.rbtpzn.mikaela.info",
"type": "desktop",
"contact": {
"name": "Aminda Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"email-deltachat": "delta@aminda.eu",
"public keys": "https://www.aminda.eu/keys/"
}
}

View File

@ -1,8 +1,10 @@
{ "name": "y.sedric.mikaela.info",
"type": "laptop",
"contact": {
"name": "Aminda Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"email-deltachat": "delta@aminda.eu",
"public keys": "https://www.aminda.eu/keys/"}
{
"name": "y.sedric.mikaela.info",
"type": "laptop",
"contact": {
"name": "Aminda Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"email-deltachat": "delta@aminda.eu",
"public keys": "https://www.aminda.eu/keys/"
}
}

View File

@ -1,9 +1,11 @@
{ "name": "y.silta.piraatit.fi",
"type": "server",
"location": "OVH, Roubaix, France",
"peering": "Please contact us, if you are a Pirate Party activist and a PirateIRC user",
"IRC port": "6697, TLS required",
"contact": {
"email": "pikaviestimet+SiltaYggdrasil@piraattipuolue.fi",
"irc": "ircs://y.irc.pirateirc.net:6697/#verkkopalvelut"}
{
"name": "y.silta.piraatit.fi",
"type": "server",
"location": "OVH, Roubaix, France",
"peering": "Please contact us, if you are a Pirate Party activist and a PirateIRC user",
"IRC port": "6697, TLS required",
"contact": {
"email": "pikaviestimet+SiltaYggdrasil@piraattipuolue.fi",
"irc": "ircs://y.irc.pirateirc.net:6697/#verkkopalvelut"
}
}

View File

@ -1,8 +1,10 @@
{ "name": "y.zaldaryn.mikaela.info",
"type": "desktop",
"contact": {
"name": "Aminda Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"email-deltachat": "delta@aminda.eu",
"public keys": "https://www.aminda.eu/keys/"}
{
"name": "y.zaldaryn.mikaela.info",
"type": "desktop",
"contact": {
"name": "Aminda Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"email-deltachat": "delta@aminda.eu",
"public keys": "https://www.aminda.eu/keys/"
}
}

View File

@ -1,7 +1,9 @@
{ "name": "y.itwjyg.mikaela.info",
"type": "laptop",
"contact": {
"name": "Mikaela Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"public keys": "https://mikaela.info/keys/"}
{
"name": "y.itwjyg.mikaela.info",
"type": "laptop",
"contact": {
"name": "Mikaela Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"public keys": "https://mikaela.info/keys/"
}
}

View File

@ -1,7 +1,9 @@
{ "name": "y.kincarron.mikaela.info",
"type": "laptop",
"contact": {
"name": "Mikaela Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"public keys": "https://mikaela.info/keys/"}
{
"name": "y.kincarron.mikaela.info",
"type": "laptop",
"contact": {
"name": "Mikaela Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"public keys": "https://mikaela.info/keys/"
}
}

View File

@ -1,9 +1,11 @@
{ "name": "y.relpda.mikaela.info",
"type": "server",
"location": "i-83.net, Gravelines, France",
"peering": "Ask me, AllowedEncryptionPublicKeys is set",
"contact": {
"name": "Mikaela Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"public keys": "https://mikaela.info/keys/"}
{
"name": "y.relpda.mikaela.info",
"type": "server",
"location": "i-83.net, Gravelines, France",
"peering": "Ask me, AllowedEncryptionPublicKeys is set",
"contact": {
"name": "Mikaela Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"public keys": "https://mikaela.info/keys/"
}
}

View File

@ -1,9 +1,11 @@
{ "name": "y.roubaix-fr.pirateirc.net",
"type": "server",
"location": "OVH, Roubaix, France",
"peering": "Please contact us, if you are a Pirate Party activist and a PirateIRC user",
"IRC port": "6697, TLS required",
"contact": {
"email": "pikaviestimet+RoubaixFRYggdrasil@piraattipuolue.fi",
"channel": "ircs://y.irc.pirateirc.net:6697/#opers,#verkkopalvelut"}
{
"name": "y.roubaix-fr.pirateirc.net",
"type": "server",
"location": "OVH, Roubaix, France",
"peering": "Please contact us, if you are a Pirate Party activist and a PirateIRC user",
"IRC port": "6697, TLS required",
"contact": {
"email": "pikaviestimet+RoubaixFRYggdrasil@piraattipuolue.fi",
"channel": "ircs://y.irc.pirateirc.net:6697/#opers,#verkkopalvelut"
}
}

View File

@ -1,10 +1,12 @@
{ "name": "y.tezagm.mikaela.info",
"type": "RaspberryPiB+",
"location": "Kotka, Finland",
"peering": "socks://127.0.0.1:9050/xvkw4rj7wzy7t75kkanr54zftudlbtpjbavxcsri5irkavclynaw3xqd.onion:1234",
"note": "Behind CGN and unreliable IPv6 (4G router problem), Tor has HiddenServiceSingleHopMode & HiddenServiceNonAnonymousMode enabled.",
"contact": {
"name": "Mikaela Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"public keys": "https://mikaela.info/keys/"}
}
{
"name": "y.tezagm.mikaela.info",
"type": "RaspberryPiB+",
"location": "Kotka, Finland",
"peering": "socks://127.0.0.1:9050/xvkw4rj7wzy7t75kkanr54zftudlbtpjbavxcsri5irkavclynaw3xqd.onion:1234",
"note": "Behind CGN and unreliable IPv6 (4G router problem), Tor has HiddenServiceSingleHopMode & HiddenServiceNonAnonymousMode enabled.",
"contact": {
"name": "Mikaela Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"public keys": "https://mikaela.info/keys/"
}
}

View File

@ -1,7 +1,9 @@
{ "name": "y.vietnam.hel.piraattipuolue.internal",
"type": "laptop",
"contact": {
"name": "Mikaela Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"public keys": "https://mikaela.info/keys/"}
{
"name": "y.vietnam.hel.piraattipuolue.internal",
"type": "laptop",
"contact": {
"name": "Mikaela Suomalainen",
"xmpp": "mikaela@blesmrt.net",
"public keys": "https://mikaela.info/keys/"
}
}

View File

@ -1,4 +1,5 @@
{ "name": "y.wtop.mikaela.info",
"type": "laptop",
"usage": "work try-out practice"
{
"name": "y.wtop.mikaela.info",
"type": "laptop",
"usage": "work try-out practice"
}