Firefox: Enabling pixel scrolling with touchpads.
There is a bug in Firefox on Ubuntu
that prevents precise scrolling when using a touchpad or a trackpoint.
One way to fix[1] this is to start Firefox with MOZ_USE_XINPUT2=1 firefox
, or put
MOZ_USE_XINPUT2=1
in /etc/environment
.
[1] In fact this may trigger other bugs when a notification appears while scrolling.
tags: computers, documentation, ubuntu
Enabling presentation mode via the command line
I recently added the following command to my ~/.profile
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/presentation-mode -s false
It disables the xfce presentation mode on startup, because I frequently forget
that I enabled it.
The option -s true
enables presentation mode, and -T
toggles it.
One can alse bind this to a key shortcut.
tags: computers, xfce, documentation
Convert pdf to png with ImageMagick
ImageMagick allows an easy conversion between image files with the convert
command.
This also works with pdf
-files, but by default the quality of a converted pdf
-file will not allow one to read text.
So fix this, use the -density
option, adjusted to ones liking. I had good results with the following
convert -density 300 <file.pdf> <output.png>
Of course, one can also output to jpg
or other file formats.
tags: pdf, convert, imagemagick, computers
Automatically switch Xfce panel layout when pluggin in a monitor
This is my documentation of this blog post by Colin Robins. I’m quite thankful for his explanation, and really happy that it now works for me. His post is ~5 years old and I found a few things that don’t work exactly the same anymore. I tested everything on Xubuntu 20.04.
Panel configurations
The handy tool Xfce Panel profiles allows you to backup and export your different desired panel configurations.
I named mine laptop.tar.bz2
and external-monitor.tar.bz2
.
You can load a different panel profile from the command line with
xfce4-panel-profiles load <profile>.tar.bz2
udev
rule
udev
is responsible for starting our service after connecting or disconnecting the external monitor.
To use it we have write a udev
rule, i.e. put the following into the file /etc/udev/rules.d/95-monitor-hotplug.rules
ACTION=="change", KERNEL=="card0", RUN+="/usr/bin/systemctl start hot_plug.service"
So I’m no expert on udev
but AFAIK this tells udev
to start the service hot_plug.service
whenever there is a “change” concerning the video card output.
systemd
service
So now we still have to write the systemd
service hot_plug.service
.
Here are some basics about systemd
services.
To create our service write the following into the file /etc/systemd/system/hot_plug.service
[Unit]
Description=Monitor hotplug
[Service]
Type=simple
RemainAfterExit=no
User=jonas
ExecStart=/usr/bin/bash /usr/local/bin/hotplug_monitor.sh
[Install]
WantedBy=multi-user.target
Replace jonas by your username.
So this service calls a script /usr/local/bin/hotplug_monitor.sh
, which will do the actual work.
For me this script is
#!/bin/bash
X_USER=jonas
export DISPLAY=:0
export XAUTHORITY=/home/$X_USER/.Xauthority
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
function connect()
{
xfce4-panel-profiles load /home/jonas/.config/xfce4-panel-profiles/external-monitor.tar.bz2
}
function disconnect()
{
xfce4-panel-profiles load /home/jonas/.config/xfce4-panel-profiles/laptop.tar.bz2
}
if [ $(cat /sys/class/drm/card0-HDMI-A-1/status) == "connected" ] ; then
connect
elif [ $(cat /sys/class/drm/card0-HDMI-A-1/status) == "disconnected" ] ; then
disconnect
else
exit
fi
Things you might want to adapt:
- You should change
X_USER
to your username - I store the panel profiles in
/home/jonas/.config/xfce4-panel-profiles/
- Check if your external monitor is
card0-HDMI-A-1
. If you use VGA this might be something different.
Further adaptions
If you want you can add other things that should be done when connecting the external monitor. I mostly use this with my Wacom tablet, so I also want to set the drawing area only on the tablet. So I added the line
# map the tablet input to the tablet's display
xsetwacom --set "Wacom One Pen Display 13 Pen stylus" MapToOutput HDMI-A-0
To change the button on the pen to right click instead of middle click I use
# map the button on the pen to right click
xsetwacom --set "Wacom One Pen Display 13 Pen stylus" Button 2 "button +3"
tags: computers, udev, systemd, xfce
Sonos and Samba on Ubuntu 20.04
Googling around, one easily finds a bunch of complaints, that Sonos devices only support SMBv1, which is pretty outdated and supposedly insecure. If you use a recent Samba installation, SMBv1 is disabled by default, e.g. in Ubuntu 20.04. Most posts claim that putting the line
ntlm auth = ntlmv1-permitted
in the Samba configuration /etc/samba/smb.conf
will
reenable SMBv1, so that your Sonos can access your music library.
I have found that this does not work, at least with Ubuntu 20.04.
Maybe something was different with 18.04?
To enable SMBv1 on Ubuntu 20.04, you can use the line
server min protocol = NT1
This works, and you don't even need the ntlm auth
parameter.
Thanks to Nelson, who wrote about the same thing in this blog post.
Some power series
Today I studied genera, which provide a way to produce toopological invariants of manifolds. Genera are intimately related to invertible power series which start with \(1 + \dotsb\). For example the common genus \(L\)-genus belongs to the power series of \[ \frac{x}{\tanh(x)}. \] The so called Â-genus looks even more intimidating, it belongs to the power series of \[ \frac{\sqrt{x}/2}{\tanh(\sqrt{x}/2)}. \] So this leaves the question: Why are those functions above analytic? Formally, they are not even defined at \(x = 0\), because you end up with \(\frac{0}{0}\). Nevertheless both functions are indeed defined at \(x = 0\), and both are analytic, meaning that you can write them as a power series \[ \sum_{k=0}^\infty c_k x^k \] for certain coefficients \(c_k\). I want to explain how to derive the power series representation, i.e. how to compute the \(c_k\) for both series.
Let's start with unrolling the definitions: \[ \tanh(x) = \frac{\sinh(x)}{\cosh(x)}, \] and \(\cosh\) and \(\sinh\) are defined by \[ \sinh = \frac{1}{2}(e^x - e^{-x}) \text{ and } \cosh = \frac{1}{2}(e^x + e^{-x}). \] Using the well-known series expansion of \(e^x\), we can write \[ \sinh = \frac{1}{2}\left(\sum_{k=0}^\infty \frac{x^k}{k!} - \sum_{k=0}^\infty (-1)^k \frac{x^k}{k!}\right) = \frac{1}{2} \left(\sum_k \frac{x^{2k+1}}{(2k+1)!} \right) \] and \[ \cosh = \frac{1}{2}\left(\sum_{k=0}^\infty \frac{x^k}{k!} + \sum_{k=0}^\infty (-1)^k \frac{x^k}{k!}\right) = \frac{1}{2} \left(\sum_k \frac{x^{2k}}{(2k)!} \right). \] The next stop is to compute the
tags: math
Some drawings
When this semester started during the Covid-19 pandemic, I got a Wacom graphics tablet to be able to discuss mathematics over the internet. But I also enjoyed playing around with it in Krita, which is a free drawing program. So here I want to share some of my drawings, in chronological order.
This palm tree was one of my first experiments with my new tablet, and I like how it turned out.
This faces where drawn for an art exchange I did with some friends.
This one is named Rotschopf, which is German for Redhead. It was supposed to represent one of my roleplaying characters, a male seer that knows some magic, but nothing too fancy. Unfortunately it turned out to be more feminine than anticipated. Nevertheless it inspired me to create this post.
tags: art
KaTeX Test
Just some math tests: \(a^2 + b^2 = c^2\). And so on \[ \int_a^b f(x) dx = F(b) - F(a) \]
Let's see how basic number theory looks: \(a \mid b\).
tags: math