Matrix is a modern, decentralized, federated real-time communication protocol and open standard. It has a thriving ecosystem of servers, clients, and applications. Synapse is the reference server and Element is the reference client for the web, desktop and mobile platforms.

Matrix protocol logo

This is something that I have been interested in using and self-hosting for a few years now. I have had an account on the main matrix.org instance for a while now and wanted to switch to a self-hosted instance.

Since I have been using docker, docker-compose, and Ansible to deploy and run a wide range of self-hosted applications for my personal use, the spantaleev/matrix-docker-ansible-deploy was my choice for setting up my instance. I chose to use Synapse over Dendrite, the second-generation server because though it is lightweight, it is not feature-complete. All the other third-party implementations have a lot of catching up to do as well, at the time of writing this post.

I learned a bit of Terraform in my previous job, but never had a chance to learn it properly or build something from scratch using it. So armed with my little knowledge of Terraform, I created a small Terraform project to automate setting up a new Matrix instance. It provisions the DNS records needed for Matrix on Namecheap — my domain registrar and DNS host, provisions an appropriately sized Hetzner cloud instance with a floating IP address, and runs the deployment playbook in the matrix-docker-ansible-deploy repository with the provided Ansible variables file. I used the hcloud and the namecheap Terraform providers to do this.

With this, I was able to provision and set up my Matrix instance in under 10 minutes by just running

$ terraform plan -out=matrix-plan
$ terraform apply "matrix-plan"

I have released the source code for this project here on GitLab under the GNU Affero General Public License v3.0 (AGPLv3) or later. Since this project contains the matrix-docker-ansible-deploy repository as a git submodule, running git submodule update --init should automatically pull in a known good commit of that repository to use for the deployment. The README file has the instructions for using the project to set Matrix instances from scratch.

I hope it is useful for those who are looking to set up a new Matrix instance.

I use KDE Plasma on my Arch desktop and I’ve had some issues with getting my dual-monitor, mixed DPI setup to work properly as mentioned in my previous post.

I nuked and paved my existing installation a few weeks ago and set up Arch afresh on the same computer on a new SSD. On the previous install, I had set up the root filesystem on a hard drive with LVM and the system startup was very slow – ~45 seconds to reach SDDM, an additional ~30 seconds to drop to a usable desktop, and then ~5 seconds to run my xrandr script.

The boot time and the time taken to reach a usable desktop was significantly lesser with the SSD – ~8 seconds to start SDDM, ~5 seconds to the desktop, ~3 seconds to run the xrandr script. So I was happy.

As exciting as that was, I still had many rough edges and paper cuts, most of them persisting across multiple re-installations. Thanks to the posts by various posts by fellow Plasma users, I was able to solve them 🙂


Monitor layout

When SDDM started, it always did with my monitor layout and DPI configured wrong. My secondary 1080p monitor is placed to the left of my primary 4K monitor and SDDM always placed the former to the right of the latter.

Thanks to this useful post, I was able to create a custom Xsetup script by adding the xrandr command from my previous post and configuring SDDM to run it when starting the display server.

# /etc/sddm.conf


I don’t like the default theme used by SDDM, maui. Since Arch is a DIY distro, it doesn’t automatically set up the default Plasma theme, breeze, like many other distros do when Plasma is installed.

Previously, I was using the Chili login theme to make the SDDM greeter look nice. I was unsure why and how, the Manjaro installation on my laptop, had a nice Plasma theme for SDDM. But I didn’t spend any time investigating at all till now.

I checked the Arch wiki page on SDDM theming to check if there are nice themes listed there that I could use and found that it is possible to configure the SDDM theme using the Plasma System Settings application after installing the sddm-kcm package. I found the default Breeze theme which I liked very much and set it as the theme. But that didn’t work. So I went ahead and configured it manually in sddm.conf and voilà, it worked! 😀

# /etc/sddm.conf


Desktop scaling

I was pleasantly surprised to see that Plasma automatically scaled my 4K monitor without having to configure scaling manually via the Display settings application. Everything in the secondary monitor looked large as expected and I had to run my xrandr command from the previous post, with some changes to restart Plasma shell for making the wallpaper fit the scaled display, manually every time due to something in the Plasma startup process resetting the screen configuration irrespective of when my xrandr auto-start script ran.

Thanks to this post on Reddit by a fellow Plasma user, I found that the kscreen2 service was the culprit and disabling it ensured that the display configuration set up by the SDDM Xsetup script persisted and as a result, I didn’t have to manually run my xrandr script 😀 😌

There could be some side-effects caused by disabling the kscreen2 service, but I haven’t run into any till now 🙂

Emoji picker

The built-in emoji picker, introduced in Plasma 5.18, is very convenient and something that Plasma was sorely missing before. However, in spite of installing an appropriate emoji font, the emoji picker had a lot of missing emoji with blank squares and the color/gender variants of some emoji looked broken with those showing up as two separate symbols (one for the emoji and the other for the color/gender variant) overlapping each other.

Thanks to this Reddit post, I was able to solve the issue by creating a custom fontconfig configuration file, ~/.config/fontconfig/fonts.conf, with the configuration below and by forcefully rebuilding the font info cache files by running fc-cache -f.

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
	<match target="font">
		<edit mode="assign" name="rgba">
	<match target="font">
		<edit mode="assign" name="hinting">
	<match target="font">
		<edit mode="assign" name="hintstyle">
	<match target="font">
		<edit mode="assign" name="antialias">
	<match target="font">
		<edit mode="assign" name="lcdfilter">
	<match target="font">
		<edit name="autohint" mode="assign">
	<match target="pattern"> 
		<edit name="family" mode="prepend"> 
		<string>Noto Color Emoji</string> 

It looks nice after the fix 👌🏼

விண்ணை தாண்டி வருவாயா’ as a movie doesn’t even score the pass mark. But as something portraying a relationship between 2 persons with their own faults, it scores much more. But love is much more than ‘love at first sight’, ‘hugs’ and ‘kisses’ that come a bit too often in the movie. The hesitations and indecisiveness are very much there in real life love too though many can’t appreciate it. The movie was irritating at a lot of times with a lot of cliches and a gross portrayal of love at times – but real life can be more unrealistic at times. So ‘விண்ணை தாண்டி வருவாயா’ doesn’t deserve the ‘likes’ and ‘hates’ it has got. It is just a movie, go watch it. If you can’t take it, just feel free to walk out any time. 🙂

The music is really wonderful as ever with A.R. Rahman and the visuals were really nice, so the credit goes to the cameraman. This is an effort that needs to be appreciated for breaking away from the paradigms of Tamil cinema, though it is nowhere near perfection.

English language has always been a passion for me in terms of its beauty, depth, sounds, accents and etc. I’ve also been privileged to read some wonderful works in English language and still want to go ahead in that direction very often. This passion burst out into a huge flame when I had a chance to hear the native speakers speaking the language so effortlessly and fluently imparting it a charm on it that left me dazed.With such a good quality of English with the so natural accents, pronounciations, modulations, I fell in love with the pure language again.

Of course in India, we seldom get to hear such wonderful English ( even if the speaker is only speaking small and simple sentences) and there is always an overdose of Indianized English – Hinglish, Tanglish and etc.. I know for sure that non-native speakers of English like Indians can never even come near the natives and that makes hearing such a language even more wonderfully attractive. Of course, Indians can talk and write correct and good English with our own distinct flavour, but still English at its purest is the very best.

P.S.: I was so charmed by hearing to the speaker that I didn’t even realize that the function in the auditorium was over and he was asking me to leave! 😀

I have always been unlike most of the students who are so crazy about social networking in its various forms. And the fact that a lot of popular social networking sites are banned inside my campus where I am residing has ensured that I’m away from social networking. But suddenly out of nowhere I started to use Twitter and gradually revived my Facebook activities too. Nowadays I tweet regularly and I’m close to the 200 mark and in Facebook too I perform a lot of activities out of which Mafia Wars takes up the majority of time. 🙂

My Twitter profile is at http://twitter dot com slash LGuruprasad

Searing pain at the sides of the nose where the eyebrows and the nose meet, inability to sit in front of the computer for reasonable periods without headaches, sugar level that is everywhere except under control and more things have clearly ensured that my health is really really poor and is going down.
Being a diabetic, I am supposed to very restrictive and careful with my health, but my health condition rarely ever lets me do so. Though I want to sit in front of the computer and work/learn/waste time, my present health condition doesn’t let me. I feel frustrated with it and increased frustration isn’t going to help anything. With the exams approaching, I have loads to memorize and make up for my poor performance at memorizing and writing loads of pages in the test, also known as preparing and doing well in the exam! I can’t take it anymore and I quit!

Normally we download Sun JDK installation binaries and install them. Then we configure the PATH environment variable to point to our JDK installation. But some times there will be conflicts between the native gcj and Sun JDK. So it is always better to install Sun JDK through debian repositories.

But unfortunately, the Debian repositories have Sun JDK in non-free repositories and do not always have the latest JDK.

So this is how we can install the latest JDK natively on Debian.

Steps to be followed:

1. We have to download the JDK or JRE binaries (a .bin file) appropriate for our architecture.

2. Then we have to create a .deb package from the Sun JDK binaries we have downloaded


a.Install java-package which will help us to convert the Sun JDK .bin file to a  .deb file installable on Debian.

b. Install fakeroot.

3. Then do as non-root user,

fakeroot make-jpkg <Sun JDK binary filename>

If there is an error like ‘Plugins not found’ or similar errors, it means that the version of the Sun JDK you are trying to install may not be supported by ‘java-package’. Fortunately, there is a work-around for this:

Edit usr/share/java-package/sun-j2sdk.sh like this:

Add the following to that file:

"<Your Sun JDK/JRE bin file name") # SUPPORTED

at the end of the list of similar directives for various versions of JDK/JRE and save the file.

Now repeat step 3 and it will not give the ‘Plugins not found error’ and a .deb package will be created with some warnings which you can ignore safely.

4. Then install the .deb file as a root user by the command:

dpkg -i <generated .deb file name>

5. After the JDK is installed, we have to configure the installed Sun JDK as the default JDK. So we use the following commands:

update-alternatives –config java

This command will show a list of Java installations available (including gcj) and prompt for a choice.

Choose the choice which corresponds to your Sun JDK installation. In my case it was something like this:


Now your Sun JDK installation will be the default JDK. 🙂

I have got so used to life with Internet at college that when at home without hi-speed internet connectivity, I feel so uncomfortable. I can’t check emails very frequently, I can’t download stuff, I can’t google and find out answers, I can’t do this and I can’t do that etc.. Life away from the Internet now seems so alien to me and without google I only feel half alive.

When at home I have to go to nearby browsing centers to surf the internet at moderate speeds, whereas at college I have unlimited, free, hi-speed internet round the clock which I am so used to using. Life without Internet seems so different and eerie, but I do realise that I live a more orderly, proper life at home without Internet connectivity than at college.Of course Internet is a great boon and an unlimited reservoir of knowledge and information, but most of the times I am so immersed into the Internet that I spend too little or no time for other essential things.’

Thus, the stay at home is kind of a welcome break for me from the Internet and I do realise now that such breaks are really good for me than bad. So I am shelving my plan to get a broadband Internet connection at home for now, so that home remains home!

This year has been so tortuous for me with regards to academics and the trend clearly reflected in my results of the 6th semester exams. I scored 8.39 GPA, my lowest ever! This semester subjects involved a lot of memorising and writing loads and loads of pages. Unfortunately for me, I am miserably poor at memorising stuff. I can write pages and pages of stories, but even that is inhibited by my small handwriting due to which I write in 1 page what my friends write in 2-3 pages. So memory-wise and pages-wise I had a severe handicap. Also I didn’t do my internal tests properly which resulted in poor internal marks which virtually ruled out scoring above 90.

In fact, my highest internal mark was in ‘Numerical Methods’ subject at 25/30 which tells a big story in itself. The subject was one of the enjoyable ones in the semester and we had our beloved Dean who taught us so wonderfully that we didn’t realise the semester ended and the course for that subject was over. Hats off to the great man!

I didn’t do the exams well as my preparations weren’t there at all. I am happy and relieved that I didn’t fail in any of the subjects which would have been a big indelible blot that would have affected my life totally in all possible ways. Even in the last semester, I had noticed the beginning of the downfall but I didn’t do anything about it. Even in things that were in my control, I went astray and out of control and as a result, the results are there for all to see.

I am getting more and more interested in the real learning rather than what & how I learn in college courses. Being a server administrator in my college helps me learn a lot of wonderful things than the things which I can’t memorize from the book and reproduce verbatim in the exam.

All this apart, I have to pick myself up from the free fall I am in and score some very good marks to satisfy myself and all my near dear ones and of course for a better career.
Luckily for me, my CGPA has not gone below 9 and I am glad about it as probably this is the CGPA which I have to enter in my resume when I face placement interviews in this semester and immediately after this semester hopefully.


On 13 May 2009, I participated in the democratic process of the world’s largest democracy. The election process has become so cliched and ripped apart by the insatiable politicians that electors feel in fool’s paradise only till they cast their vote. This time I cast my vote and felt somewhat emotionless and empty. Come whatever may, the political parties will woo the voters during the time of elections and make political issues out of anthills and bend truth as they wish and create so much of a ruckus to fool the normal ignorant Indian voters.

The moment the results are out, we get to see a different persona of the politicians. I can’t help feeling like crap as whomever I vote for, even if he is going to get elected, is not going to any good at all or the good-bad ratio is going to be hopelessly bad for the good things.

So when a provision like ’49-O’ was present, I was hopeful that many people could use it to express their displeasure at such a meaningless exercise called ‘General Elections’. But unfortunately, the voters have to fill in a form and submit it to be able to cast a ‘Do not wish to vote for any of the candidates’ vote, which is starkly against the secret ballot system being followed in our country. An individual casting such a vote can be at mortal peril too as his choice of vote is not a secret.I heard rumours that a button for ’49-O’ option will be present in the EVM itself from the next elections, I don’t know if it will be implemented and even if it is implemented, how effective and useful it will be is a big question.

The political parties try to woo the voters by showering them with illegal bribes and compete fiercely with competing parties. It is no longer the agenda of the parties, what they have done for the people and what they promise to do, that matter, but only the damn money! In a world where extremes like counting more votes than polled happens so silently and easily, bribing voters is absolutely normal and sane.

The ink mark on my nail hasn’t vanished yet and it is still dark and black looking to stay on a lot more days. It will go off in some time, but our nation is getting newer indelible and permanent blackmarks every instant that people like me tend to lose faith in democracy. I can’t help feeling that good-bad ratio is far more better in cases of a monarchy or a dictatorship rather than “Democracy”