Archives For jimingkui

Want to let “Open in Terminal” context (right-click) menu option work for another terminal emulator? Here’s an extension to do the similar job for Nautilus.

When right-clicking on either a folder or blank area in file manager, there’s an “Open in Terminal” menu option to launch system default terminal with that folder as working directory.

The option in Ubuntu so far is provided by the built-in gnome-terminal package. Meaning no way to use the option for another terminal emulator. However, there’s an extension can add similar option to open terminal from in-side folder.

And not only for Gnome Terminal, the extension supports many other terminal emulators:

  • alacritty
  • blackbox
  • cool-retro-term
  • deepin-terminal
  • foot/footclient
  • guake
  • hyper
  • kermit
  • kgx (GNOME Console)
  • kitty
  • konsole
  • mate-terminal
  • mlterm
  • qterminal
  • sakura
  • st properly patched
  • tabby
  • terminator
  • terminology
  • termite
  • tilix (the package itself supports this stuff)
  • urxvt
  • urxvtc
  • wezterm
  • xfce4-terminal

The extension adds the menu option “Open XXX Here“, with XXX changes automatically according which terminal emulator is in use.

How to Install the Nautilus Extension

This tutorial is tested and works in Ubuntu 22.04, Ubuntu 23.04, and Ubuntu 20.04. It should also work in Fedora Workstation and other Linux with GNOME & Nautilus.

1. First, press Ctrl+Alt+T on keyboard to open terminal. Then run command to install git and python3-nautilus package:

sudo apt install git python3-nautilus

2. Then, clone the source code from Github project page, by running command:

git clone https://github.com/Stunkymonkey/nautilus-open-any-terminal.git

3. Finally, run the installer in the source code to install the extension:

cd nautilus-open-any-terminal && ./tools/update-extension-user.sh install

It installs the extension for current user only. If you would like to make it work for all users in system, run sudo ./tools/update-extension-system.sh install instead.

Apply and Set your Terminal Emulator

After installed the extension, apply it by running command to quit Nautilus:

nautilus -q

Then, open “Dconf Editor” (install it from Ubuntu Software) and navigate to ‘com/github/stunkymonkey/nautilus-open-any-terminal‘. Finally, set the value of ‘terminal’ to tell which terminal emulator to use.

You can of course choose another terminal emulator by running command (replace kgx with yours):

gsettings set com.github.stunkymonkey.nautilus-open-any-terminal terminal "kgx"

Tip: You may also remove the built-in ‘Open in Terminal’ option by running command:

sudo apt remove nautilus-extension-gnome-terminal

Uninstall

There seems no uninstaller script at the moment of writing. User can however manually removed the installed files by running command:

rm ~/.local/share/nautilus-python/extensions/open_any_terminal_extension.py
rm ~/.local/share/glib-2.0/schemas/com.github.stunkymonkey.nautilus-open-any-terminal.gschema.xml
rm ~/.local/share/localenautilus-open-any-terminal.mo

If you installed the extension system wide for all users, use the commands below instead to remove all the files:

sudo rm /usr/share/nautilus-python/extensions/open_any_terminal_extension.py
sudo rm /usr/share/glib-2.0/schemas/com.github.stunkymonkey.nautilus-open-any-terminal.gschema.xml
sudo rm /usr/share/locale/.nautilus-open-any-terminal.mo

Also quit file manager via nautilus -q command to apply change.

This simple tutorial shows how to install brave browser via the new apt source policy in Ubuntu 23.04 & 22.04.

Due to security issue, Debian changed its policy for adding apt sources. Ubuntu is changing the rules too. Since Ubuntu 22.04, it uses more secure key files with digital signature for system repositories and PPAs.

In Ubuntu 23.10 (in development at the moment),  it now uses deb822 .sources file instead of the previous .list file for third-party repositories. And, the new source files include ‘Signed-by’ section to specify the key file.

Step 1: Install curl command line download tool

First, press Ctrl+Alt+T on keyboard to open terminal. When it opens, run command to install curl and apt-transport-https package:

sudo apt install apt-transport-https curl

Type user password (no asterisk feedback) when it asks.

Step 2: Download & Install the key

Then, run curl command to download the key file and save it into /usr/share/keyrings folder.

This can be done by running the single command below in terminal:

sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg

Step 3: Add the brave apt source repository

The previous .list file with or without ‘Signed-By’ is still working! But here I’m going to show the new .sources file.

1. First, run command to create a .sources file under ‘/etc/apt/sources.list.d’:

sudo gedit /etc/apt/sources.list.d/brave-browser-release.sources

Replace gedit with gnome-text-editor for Ubuntu 23.04 and higher.

2. Then in the pop-up text editor window, paste following lines:

Types: deb
URIs: https://brave-browser-apt-release.s3.brave.com/
Suites: stable
Components: main
Architectures: amd64
Signed-By: /usr/share/keyrings/brave-browser-archive-keyring.gpg

As you see, the new source file is easy to read, but a bit hard to write for beginners. See this thread for more about it.

Step 4: Update cache & install Brave Browser

After saving the file in last step, you can now run commands below to refresh the system package cache:

sudo apt update

And, finally install the web browser via command:

sudo apt install brave-browser

You don’t have to run the command every time when a new release is out. Just launch “Software Updater”, newer release of the browser package will be available there along with system package updates.

Uninstall Brave:

To remove brave browser package, open terminal (Ctrl+Alt+T) and run command:

sudo apt remove --autoremove brave-browser

And remove the apt source repository by running command:

sudo rm /etc/apt/sources.list.d/brave-browser-release.list

Also remove the key file via command:

sudo rm /usr/share/keyrings/brave-browser-archive-keyring.gpg

Finally, run sudo apt update to refresh system package index.

For developers who want to prepare their project for the latest Python releases, here’s how to install Python 3.12 in all current Ubuntu releases.

Python 3.12 now is in Beta development stage. It features more flexible f-string parsing, new type annotation syntax for generic classes, support for the Linux perf profiler, and many performance improvements, but removed the distutils package and wstr from Unicode. See more about Python 3.12.

How to Install Python 3.12

Python is easy to install in Ubuntu by either using the popular Deadsnakes PPA or building from the source. Choose either one that you prefer.

Option 1: Install Python 3.12 from PPA

For Ubuntu 22.04, Ubuntu 20.04, and their derivatives such as Linux Mint 21, the Deadsnakes PPA has made the packages for all supported CPU architecture types: amd64, arm64/armhf, ppc64el, and s390x.

1. First, press Ctrl+Alt+T on keyboard to open terminal. Then paste the command below and hit run to add PPA:

sudo add-apt-repository ppa:deadsnakes/ppa

Type user password (no asterisk feedback) when it asks and hit Enter to continue.

2. Ubuntu 20.04+ automatically refresh package cache while adding PPA. However, Linux Mint user may need to do this job manually by running command:

sudo apt update

3. Finally, run command to install Python 3.12:

sudo apt install python3.12

Option 2: Compile and install Python 3.12 from source

Don’t trust third-party repositories or you’re running Ubuntu 23.04 or Ubuntu 18.04? It’s easy to build Python from the source tarball.

1. First download the source tarball from its ftp download page:

2. Then open ‘Downloads’ folder, extract the source tarball, finally right-click on source folder and select “Open in Terminal”.

3. When terminal opens, run the commands below one by one to configure and build Python:

./configure --enable-optimizations
sudo make -j4 && sudo make altinstall

NOTE: You have to first install all build dependency libraries before running last 2 commands. See this tutorial for details.

Verify:

Once installed Python 3.12, verify by running command:

python3.12 --version && pip3.12 --version

Set Python 3.12 as default

It’s NOT recommended to set non-preinstalled Python package as default for Python3, since it will break some core applications.

However, you may try to set python3.12 as python by running the commands below one by one:

  • First, run command to find out where Python 3.12 executable is installed to:
    whereis python3.12

    It’s either /usr/bin/python3.12 or /usr/local/bin/python3.12.

  • Then, add Python 3.12 as an alternative link to python (replace /usr/local/bin/python3.12 according last command output).
    sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.12 1
  • Finally, run command to set default for /usr/bin/python executable if more then one available:
    sudo update-alternatives --config python

Uninstall Python 3.12:

If you installed Python 3.12 using the PPA repository, simply open terminal and run command to remove it:

sudo apt remove --autoremove python3.12

For the PPA, run command to remove it:

sudo add-apt-repository --remove ppa:deadsnakes/ppa

If you built the Python 3.12 from source tarball, then there’s no uninstaller script to automate the job.

However, you may manually remove the installed files by running commands:

cd /usr/local/bin && sudo rm python3.12* pip3.12 idle3.12 pydoc3.12 2to3-3.12
cd /usr/local/lib && sudo rm -R python3.12 pkgconfig libpython3.12.a

RedHat announced the release of Podman Desktop 1.0 general availability (GA) on Tuesday. Here’s how to install it in all current Ubuntu releases.

Podman Desktop is a container management tool.  It provides a simple and user friendly user interface to easily create, manage, and deploy Podman, Docker, Lima, Openshift Local, Kind, etc containers and complex container configurations all in one place.

The app provides out-of-the-box Kubernetes environment based on Kind, allowing to create a multi-node Kubernetes cluster on local machine, and test applications without having to install and configure Kubernetes manually.

Other features include:

  • Install and run in Windows, macOS, and Linux
  • Keep Podman and other dependencies up to date
  • Manage multiple container engines at the same time.
  • Compatabile with Docker Compose
  • VPN and proxies configuration
  • And more and more, see release note for details.

How to Install Podman Desktop 1.0 in Ubuntu:

The application is available to install in most Linux using Flatpak package. Fedora 38 & Linux Mint 21 can simply search for and install it from either Gnome Software or Software Manager.

For all current Ubuntu users, follow the steps below one by one to get it.

1. First, open terminal either by searching from ‘Activities’ overview or by pressing Ctrl+Alt+T on keyboard.

2. Then, run command to enable flatpak support.

sudo apt install flatpak

Ubuntu 18.04 user need to run the 2 sudo commands to add the Flatpak PPA first.

3. Finally, install Podman Desktop by running command:

flatpak install https://dl.flathub.org/repo/appstream/io.podman_desktop.PodmanDesktop.flatpakref

NOTE: Besides the software package itself, there may be other run-time libraries to install automatically.

Once installed, search for and launch it from ‘Activities’ overview and enjoy!

NOTE: first time installing a flatpak app may needs a log out and back in to make app icon visible.

Uninstall Podman Desktop

To remove the software package, also press Ctrl+Alt+T on keyboard to open terminal and run command:

flatpak uninstall io.podman_desktop.PodmanDesktop

Also run flatpak uninstall --unused to remove useless runtime libraries.

The ‘Tab’ key bash auto-completion does not work for you? Here’s how to re-enable this feature in Ubuntu.

When typing in terminal/command console, user can press ‘Tab’ key to auto-complete command, options, file path & name. This feature is quite useful and available out-of-the-box for every user with home directory.

If you broke something done and the feature does no longer work, then this tutorial could help.

Step 1: Install bash-completion package

For Debian, Ubuntu, and most other Linux, this feature is implemented by bash-completion package files. So the first step is to make sure that package is installed on your system.

To do so, open terminal/command console and run command:

sudo apt install bash-completion

Step 2: Enable Bash Completion

For each user, there’s a .bashrc file in user home directory. The file runs automatically on every login, and it contains the rule to enable bash completion.

1. First, run command to edit the file:

nano ~/.bashrc

2. When the file opens, add the following lines or make sure the lines below exist:

if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

To save file, press Ctrl+X, type y and hit Enter.

You can alternatively edit the system wide config file:

sudo nano /etc/bash.bashrc

Then enable the corresponding lines (remove # at the beginning for each line), so it applies to all users at login.

After saving the change, it should work immediately in new terminal window or command console.

In addition

The default configuration files for bash completion is located in “/usr/share/bash-completion”. However, some Linux Distro or may be 3rd party program may add rules by creating files under “/etc/bash_completion.d/”.

So, if the feature does not work for a specific command, go check the config file under “/etc/bash_completion.d/”.