Firefox Now Lets You Add Custom Images to New Tab Page

13 hours 9 minutes ago

A number of new personalisation features have been added to the Firefox New Tab page in the past year, including the ability to pick a background image from a small set of hand-picked pics and solid colours. Pleasant though those curated images are, they’re not to everyone’s tastes. This is why Mozilla’s engineers have been beavering away on a few enhancements to provide greater customisation — you can “test” them in the latest stable release, which is Firefox 138 at the time I write this. The big change is that you can now “upload your own image” to use as […]

You're reading Firefox Now Lets You Add Custom Images to New Tab Page, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Joey Sneddon

Beyond Basics: Unlocking the Power of Advanced Bash Scripting

19 hours 51 minutes ago
by George Whittaker

Bash scripting is often seen as a convenient tool for automating repetitive tasks, managing simple file operations, or orchestrating basic system utilities. But beneath its surface lies a trove of powerful features that allow for complex logic, high-performance workflows, and robust script behavior. In this article, we’ll explore the lesser-known but incredibly powerful techniques that take your Bash scripting from basic automation to professional-grade tooling.

Mastering Arrays for Structured Data Indexed and Associative Arrays

Bash supports both indexed arrays (traditional, numeric indexes) and associative arrays (key-value pairs), which are ideal for structured data manipulation.

# Indexed array fruits=("apple" "banana" "cherry") # Associative array declare -A user_info user_info[name]="Alice" user_info[role]="admin"

Looping Through Arrays

# Indexed for fruit in "${fruits[@]}"; do echo "Fruit: $fruit" done # Associative for key in "${!user_info[@]}"; do echo "$key: ${user_info[$key]}" done

Use Case: Managing dynamic options or storing configuration mappings, such as service port numbers or user roles.

Indirect Expansion and Parameter Indirection

Ever needed to reference a variable whose name is stored in another variable? Bash allows this with indirect expansion using the ${!var} syntax.

user1="Alice" user2="Bob" var="user1" echo "User: ${!var}" # Outputs: Alice

Use Case: When parsing dynamically named variables from a configuration or runtime-generated context.

Process Substitution: Piping Like a Pro

Process substitution enables a command’s output to be treated as a file input for another command.

diff <(ls /etc) <(ls /var)

Instead of creating temporary files, this technique allows on-the-fly data streaming into commands that expect filenames.

Use Case: Comparing outputs of two commands, feeding multiple inputs to grep, diff, or custom processors.

Using Traps for Cleanup and Signal Handling

Traps let you capture signals (like script termination or interruption) and execute custom handlers.

temp_file=$(mktemp) trap "rm -f $temp_file" EXIT # Do something with $temp_file

Common signals:

  • EXIT: Always triggered when the script ends

  • ERR: Triggered on any command failure (with set -e)

  • INT: Triggered by Ctrl+C

Use Case: Cleaning up temporary files, resetting terminal states, or notifying external systems on exit.

Go to Full Article
George Whittaker

Ubuntu Security Reinvented: Hardening Your System with AppArmor

2 days 19 hours ago
by George Whittaker

In an age where data breaches and cyber threats are growing both in frequency and sophistication, securing your Linux system is more important than ever. Ubuntu, one of the most popular Linux distributions, comes with a powerful security tool that many users overlook — AppArmor. Designed to provide a robust layer of defense, AppArmor enhances Ubuntu's built-in security model by confining programs with access control profiles.

This article will walk you through the ins and outs of AppArmor, explain why it's a crucial part of a hardened Ubuntu system, and teach you how to leverage it to protect your environment.

Understanding AppArmor: What It Is and Why It Matters

AppArmor (Application Armor) is a Mandatory Access Control (MAC) system that supplements the traditional Discretionary Access Control (DAC) provided by Linux file permissions. While DAC relies on user and group ownership for access control, MAC goes a step further by enforcing rules that even privileged users must obey.

AppArmor operates by loading security profiles for individual applications, specifying exactly what files, capabilities, and system resources they are allowed to access. This approach prevents compromised or misbehaving applications from harming the rest of the system.

AppArmor vs. SELinux

While SELinux (Security-Enhanced Linux) is another MAC system popular on Red Hat-based distributions, AppArmor is often preferred in Ubuntu environments for its ease of use, human-readable syntax, and simple profile management. Where SELinux can be daunting and complex, AppArmor offers a more user-friendly approach to strong security.

Core Concepts of AppArmor

Before diving into how to use AppArmor, it's important to understand its core concepts:

Profiles

A profile is a set of rules that define what an application can and cannot do. These are usually stored in the /etc/apparmor.d/ directory and loaded into the kernel at runtime.

Modes
  • Enforce: The profile is actively enforced, and actions outside the defined rules are blocked.

  • Complain: The profile logs rule violations but doesn’t enforce them, which is useful for debugging.

Profile Components

Profiles specify permissions for:

  • File access (read, write, execute)

  • Capabilities (e.g., net_admin, sys_admin)

  • Network operations

  • Signals and inter-process communications

Go to Full Article
George Whittaker

NordVPN Linux App Updated with New GUI

2 days 21 hours ago

NordVPN has announced a major update to its Linux app, adding a much-requested GUI front-end that makes it easier to control, configure and monitor secure connections. Linux users have been able to use an official, comprehensive command-line interface for NordVPN for many years. The addition of a graphical user-interface (which can be used alongside the command-line one) should help the company broaden access to its services by making it easier to use NordVPN without needing to look up commands and type them in. NordVPN say the Linux GUI provides “visually rich elements and ease of use without compromising advanced features. […]

You're reading NordVPN Linux App Updated with New GUI, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Joey Sneddon

Ubuntu 25.04 Upgrades Have Been Re-Enabled

3 days 12 hours ago

If you’ve been itching to do an in-place upgrade to Ubuntu 25.04 from 24.10, your patience has paid off — upgrades have been re-enabled. For those unaware, Ubuntu was forced to halt upgrades to the new Ubuntu 25.04 release a few hours after its release on April 17 after major bugs were reported, affecting users across different Ubuntu flavours were discovered. Users were left with broken desktops (environments, that is – upgrading didn’t smash motherboards); had third-party packages removed that shouldn’t have been, and users on Qt-based flavours couldn’t upgrade using the GUI tool due to missing dependencies. Less Plucky, […]

You're reading Ubuntu 25.04 Upgrades Have Been Re-Enabled, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Joey Sneddon

Kagi’s Orion Browser Linux Port Uses GTK4/libadwaita

3 days 21 hours ago

A few months back I reported that Kagi, the company behind the paid, private and privacy-focused search engine of the same time, is porting its Orion web browser to Linux – now we have our first look at how its Linux GUI is shaping up. A recent development screenshot of Orion’s WIP Linux build was shared by Kagi devs—pictured in the hero image above—and it reveals that Orion for Linux will use GTK4/libadwaita for its GUI. A logical (and expected) choice: GTK4 is a modern, widely-used toolkit across Linux distros, with consistency at its core. And libadwaita provides widgets and […]

You're reading Kagi’s Orion Browser Linux Port Uses GTK4/libadwaita, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Joey Sneddon

KDE Plasma 6.3.5 Update Available to Kubuntu Users

4 days 13 hours ago

If you’re running Kubuntu 25.04 and want the latest fixes the KDE Plasma 6.3.5 release, you can use the Kubuntu backports PPA to get ’em. KDE Plasma 6.3.5 popped out a few weeks back, serving as the fifth and (likely) final bug-fix release prior to the next major release, KDE Plasma 6.4. Over the weekend, Kubuntu developers announced that the Kubuntu backports PPA has added the requisite packages for Kubuntu 25.04. Thus, Kubuntu users can add (or enable) the PPA to get the update now, rather than wait for the update to filter out through the usual software channels. The […]

You're reading KDE Plasma 6.3.5 Update Available to Kubuntu Users, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Joey Sneddon

RISC-V AI PC Delivers 50 TOPS, Runs Ubuntu 24.04

6 days 20 hours ago

Ubuntu is one of the leading Linux distributions for RISC-V hardware thanks to Canonical’s strategic partnerships with companies like DeepComputing – who just announced a powerful new RISC-V AI PC running Ubuntu 24.04 LTS. The DC-ROMA RISC-V AI PC—apologies for the caps, it’s how it’s stylised—is built around the company’s new RISC-V Mainboard II, which is designed for use in the Framework 13″ and 14.2″ laptops. Though designed for Framework laptops, owning one isn’t a requirement. A nifty enclosure allows this mainboard to be used as a regular PC you connect to a monitor, keyboard and mouse. The board itself […]

You're reading RISC-V AI PC Delivers 50 TOPS, Runs Ubuntu 24.04, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Joey Sneddon

GNOME Replace Totem Video Player with Showtime

1 week ago

Roll credits on Totem, roll camera on Showtime — GNOME developers have officially cast a new video player in GNOME 49, out in September. Per an upstream merge, GNOME has formally replaced the aged GTK3 Totem video player with the newer, fresher and all-the-more modern GTK4/libadwaita app Showtime in its Core Apps1 lineup. Like its predecessor, Showtime’s user-facing name in GNOME 49 will be changed to the generic moniker of Video Player (I’d wager most of us will continue to call it by its codename, the same way we refer to Files as Nautilus). Showtime may be new in GNOME’s Core Apps, but it’s […]

You're reading GNOME Replace Totem Video Player with Showtime, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Joey Sneddon

Easily Toggle Ubuntu’s New Wellbeing Reminders On/Off

1 week ago

The Wellbeing controls available in Ubuntu 25.04 make it easy to get periodic prompts to move your butt or look away from your screen — you might not want them enabled all the time, though. Wellbeing controls were one of the flagship features of GNOME 48. As well as screen time monitoring (with controls to set a screen time limit, and turn the display greyscale when it’s reached), you can enable reminders to take a break and move. Alerts telling you to get up and move may be helpful during the day, but at nighttime when you’re, say, engrossed in […]

You're reading Easily Toggle Ubuntu’s New Wellbeing Reminders On/Off, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Joey Sneddon

Beyond APT: Software Management with Flatpak on Ubuntu

1 week ago
by George Whittaker

Ubuntu has long relied on APT and DEB packages for software management, with Snap becoming increasingly prevalent in recent releases. However, a third contender has risen to prominence in the Linux world: Flatpak. Designed as a universal software packaging and distribution framework, Flatpak offers a fresh, sandboxed approach to application management that works seamlessly across distributions. In this article, we’ll dive into how to manage software with Flatpak on Ubuntu, providing everything you need to get started, optimize your workflow, and compare it with existing solutions.

What is Flatpak?

Flatpak is a modern application packaging system developed by the Free Desktop Project. Its goal is to enable the distribution of desktop applications in a sandboxed environment, ensuring greater security, consistency, and compatibility across Linux distributions.

Key Benefits of Flatpak
  • Cross-distribution compatibility: A single Flatpak package works on any Linux distribution with Flatpak support.

  • Sandboxing: Applications run in isolation, reducing the risk of affecting or being affected by other software or the host system.

  • Bundle dependencies: Flatpak packages include all necessary dependencies, reducing compatibility issues.

  • Version control: Developers can ship and maintain multiple versions easily.

Limitations
  • Storage overhead: Applications may use more disk space due to bundled runtimes.

  • Redundancy: Ubuntu users already have Snap, which can lead to confusion or duplication.

Installing Flatpak on Ubuntu

Although Flatpak isn't pre-installed on Ubuntu, setting it up is straightforward.

Step 1: Install Flatpak

Open a terminal and run:

sudo apt update sudo apt install flatpak

Step 2: Install GNOME Software Plugin (Optional)

To integrate Flatpak apps into the Ubuntu Software GUI:

sudo apt install gnome-software-plugin-flatpak

This step allows Flatpak apps to appear alongside APT and Snap apps in GNOME Software.

Step 3: Reboot or Log Out

Restart your session to apply system changes and enable Flatpak integration fully.

Adding the Flathub Repository

Most Flatpak applications are hosted on Flathub, the central repository for Flatpak packages.

To add Flathub:

Go to Full Article
George Whittaker

Linux Mint 22.2 Modernises its Default Theme

1 week ago

More details on the makeup of the upcoming Linux Mint 22.2 release have been revealed, including its new codename (for those who track those). Linux Mint 22.2 (due to be released in late July or early August) has been officially named ‘Zara’, so continuing distro lead Clem’s codename convention of choosing female names in (somewhat) alphabetical order for each new version. I only say somewhat since Linux Mint 22.1 release was dubbed ‘Xia‘, while Linux Mint 22.2 jumps straight to ‘Zara’. Even with my lackadaisical attention to letter ordering, I know a ‘Y’ comes between ‘X’ and ‘Z’. Perhaps Clem […]

You're reading Linux Mint 22.2 Modernises its Default Theme, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Joey Sneddon

Linux Boot Process? Best Geeks Know It!

1 week 2 days ago
by Nawaz Abbasi

The Linux boot process is a sequence of events that initializes a Linux system from a powered-off state to a fully operational state. The knowledge of Linux boot process is essential when it comes to technical interviews, but sometimes it becomes difficult to remember or recall the key steps in the process. This article discusses a quick and easy way to remember it - Best Geeks Know It! Yes, you only need to remember that.

Best Geeks Know It -> B – G – K – I -> BIOS – GRUB – KERNEL – INIT

This BGKI acronym provides a high-level overview of the Linux boot process. Each step builds upon the previous one, gradually bringing the system to a fully operational state. Of course, there are more detailed processes within each step, but this simplified version should give you a good foundation for understanding and remembering the Linux boot sequence.

 

Here's a concise expansion of B-G-K-I:

B - BIOS/UEFI

  • Performs Power-On Self-Test (POST)
  • Checks hardware: CPU, RAM, storage
  • Loads MBR (Master Boot Record) or GPT (GUID Partition Table)
  • Transfers control to bootloader

G - GRUB

  • Located in first 512 bytes of boot drive
  • Reads /boot/grub/grub.conf
  • Shows menu with kernel options
  • Loads selected kernel + initramfs (temporary root filesystem) into RAM
  • Passes boot parameters to kernel
  • Can handle multiple OS boot options

K - KERNEL

  • Decompresses itself into RAM
  • Initializes hardware and drivers
  • Mounts root filesystem, loads initramfs
  • Sets up memory management
  • Starts device detection
  • Creates kernel threads

I - INIT (systemd in modern systems)

  • PID 1 (first process)
  • Reads /etc/inittab (traditional) or unit files (systemd)
  • Sets default runlevel/target
  • Starts essential services in order:
    • System services
    • Network services
    • Display manager
    • User interface (CLI/GUI)
  • Reaches default target state

 

Key files to remember

/boot/grub/grub.conf  - GRUB configuration

/etc/systemd/system/  - systemd unit files

/etc/inittab                  - Init configuration (traditional)

Go to Full Article
Nawaz Abbasi

Huawei MateBook X Pro 2024 (Linux Edition) Goes on Sale

1 week 2 days ago

Huawei has unwrapped its latest Linux notebook, the MateBook X Pro 2024 Linux Edition — alas, it’s only available in China. The Windows-free MateBook X Pro 2024 uses the same hardware as the Windows version, but clocks in at CN¥300 cheaper thank to a lack of Windows license fee and a government subsidy discounting tech that, from what I can gather, use a domestic OS. Chinese consumers can reportedly claim an extra discount of CN¥2000 on the purchase price as part of a national subsidy to promote usage of homegrown tech in general. With US sanctions in play, Microsoft is reportedly not […]

You're reading Huawei MateBook X Pro 2024 (Linux Edition) Goes on Sale, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Joey Sneddon

System Cleaner BleachBit Gets First ‘Major Update’ Since 2023

1 week 3 days ago

Open source system cleaning app BleachBit has put out its first major update in more than a year, adding improved cleaning capabilities, security fixes, and stability buffs. For the benefit of those with dusty memories, BleachBit is a free, open source system cleaner for Windows and Linux, written in Python and GTK 3. Similar to other apps of its type, BleachBit helps free up disk space by cleaning out caches, cookies, and other transient cruft. It can also delete files securely, wipe unallocated disk space, and squeeze Firefox and Chrome’s SQLite databases to improve performance. BleachBit 5.0, released this week, expands its […]

You're reading System Cleaner BleachBit Gets First ‘Major Update’ Since 2023, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Joey Sneddon

Google Search Deal Critical to Firefox’s Future

1 week 3 days ago

Google’s search deal with Mozilla is such a sizeable portion of its overall income that without it, Firefox would struggle to compete – or even survive, say Mozilla. It’s no secret that Google has paid Mozilla handsomely for its search engine to be set default in the Firefox web browser for decades. Mozilla’s financial report for 2023 revealed that the amount of money accrued from its “search deals” that year made up roughly three quarters of its entire income (specific amounts and from whom is confidential; it’s lumped together). While that figure is a bit less than it used to be, […]

You're reading Google Search Deal Critical to Firefox’s Future, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Joey Sneddon