Posts in category “Linux”

fcitx on debian 11 missing tray icon solution:

This is because Debian 11 with Gnome does not ship with the packages to display tray icons. To install and enable the correct packages to display tray icons, run the following command:

sudo apt install gnome-shell-extension-appindicator

Then either reboot or log out and back in to Gnome, and run the following command:

gnome-extensions enable [email protected]


Toshiba chromebook2 CB35-B3340 / Dell Chromebook 11 P22T: Debian 11 setup

I managed to set up debian 11 on a Toshiba Chromebook2, model CB35-B3340 and a Dell Chromebook 11 3120 P22T00 WIFI/Sound/HDMI all work well, which satisfies me.

  • Firstly, switch Chromebook into developer mode
    • Visit Debian and use dd command to create a bootable usb stick with a minimal iso
  • Visit MrChromebox
    • Install/Update UEFI (Full ROM) firmware (the Sea bios)
  • Boot from the usb stick and setup the minimal system
    • Allow debian use all 15G space with LVM, no separate partitions
    • Skip wifi setup as we don't have the firmware at that moment
  • Boot from the chromebook into debian without GUI, without network
  • Plug a usb realteck 8139 ethernet card and so I get internet connection:
    • add non-free and main contrib source line to /etc/apt/sources.list file:
      deb bullseye main contrib non-free
    • apt install firmware-iwlwifi, firmware-intel-sound
    • apt install gnome-core (wifi works from now)
    • plug off the usb ethernet card and reboot
      • wifi works
  • Other settings
    • Remove old kernels to save space, Help Reference
    • Settings => Power => Disable auto suspend when plug in
    • Run sudo apt clean
    • Restrict journal log max size by vim /etc/systemd/journald.conf and uncomment the SystemMaxUser=50M line, and then systemctl restart systemd-journald

Ubuntu 22.04 setup chyrp lite environment and more

You must have known that I just migrated this blog site to a VPS hosted on oracle cloud, while this wiki page is too brief to get a workable environment easily.

Here is the note for this migration.

  1. sudo -i
  2. Install packages that chyrp will need
     apt install php8.1 php8.1-xml php8.1-fpm php8.1-mysql php8.1-mbstring mysql-server nginx certbot python3-certbot-nginx
  3. Set a password for 'root'@'localhost' account on this new mysql server
     ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
  4. Run mysql_secure_installation to
    • Remove anonymous users
    • Disallow root login remotely
    • Remove test database and access to it
  5. Create a common user for the blog database, and the blog database
     CREATE USER 'blog'@'localhost' IDENTIFIED BY 'superdifficultpassword';
     GRANT ALL PRIVILEGES ON blog.* To 'blog'@'localhost' WITH GRANT OPTION;
     CREATE DATABASE `blog` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
  6. Put .my.cnf with the following content in home directory
  7. Restore the database backup
     mysql blog < blog_20230408-030501.sql
  8. Setup nginx and https certificate with certbot
  9. Setup renew the certificate by crontab
    15 0 * * * /usr/bin/certbot --nginx renew > /dev/null
  10. Restore previous installation, overwrite with the latest version, do the upgrade, that's it!

Tailscale on Ubuntu put too many logs into /var/log/syslog


  1. Edit the file /etc/systemd/system/,
  2. Add the line "LogLevelMax=3" in the [Service] section.
  3. systemctl daemon-reload
  4. systemctl restart tailscaled


Linux: How do I keep my laptop running when the lid is closed?

In short,

sudo vim /etc/systemd/logind.conf

Find and uncomment the following lines, and change the values


Save and exit, and 

sudo systemctl restart systemd-logind