Changing Sound Output Device Command Line Gnome

Abstract: Resolve silent playback on digital signage by manually setting the PulseAudio default sink via pactl to prevent automatic switching when monitors power off.

Created: 2026-08-25 by
Use the command line tool pactl to switch the active sink in Gnome on Ubuntu 20.04 LTS by identifying the correct device index and setting it as default. This method ensures reliable audio routing for digital signage players, even when connected monitors are powered off at night, preventing silent playback issues that occur with automatic device switching.

Understanding PulseAudio Sink Management

Ubuntu 20.04 LTS utilizes PulseAudio as its primary sound server, which manages audio streams and output devices. The graphical interface in Gnome typically handles this automatically, but headless or semi-headless environments like digital signage require manual intervention. The core concept here is the sink, which represents an audio output device such as a monitor's HDMI audio, a USB headset, or a built-in speaker.

When a monitor is turned off, the operating system may detect the loss of the HDMI signal and automatically switch the active sink to a dummy device or mute the output entirely. To maintain consistent behavior, you must explicitly set the desired sink as the default using command-line utilities. This bypasses the dynamic detection logic that often fails in unattended scenarios.

Identifying Available Audio Devices

Before changing the output, you need to know exactly which sink corresponds to your hardware. Open a terminal and run the following command to list all available sinks:

pactl list short sinks

This command outputs a concise list containing the index number, name, description, and state of each audio device. Look for the entry that matches your target hardware, such as "HDMI" for a monitor or "ALSA" for internal speakers. Note the index number (the first column) of the device you wish to use. For example, if your HDMI device is listed as index 1, you will need this number for the next step.

If you encounter multiple similar devices or are unsure which one is active, you can also use pactl info to see the currently active sink profile. However, listing all sinks provides a complete inventory, allowing you to choose the most appropriate one for your signage setup. This is particularly useful if you have both analog and digital outputs available simultaneously.

Setting the Default Output Device

Once you have identified the correct index, use the pactl command to set it as the default sink. Replace <index> with the actual number you noted earlier:

pactl set-default-sink <index>

For instance, if your HDMI device is index 1, the command would be pactl set-default-sink 1. This change takes effect immediately for new audio streams. Existing applications might not switch until they are restarted, so it is good practice to restart your media player or signage software after making this change.

To verify that the change was successful, run pactl info again and check the Default Sink field. It should now display the name of the device you selected. If the output does not change, ensure that the device is not suspended. You can resume a suspended sink by running pactl suspend-sink <index> 0.

Automating for Digital Signage

For digital signage players, manual intervention is not feasible. You should automate this process using a startup script or a systemd service. Create a simple shell script that contains the pactl set-default-sink command with the hardcoded index of your preferred device.

#!/bin/bash
# Set HDMI output as default
pactl set-default-sink 1
# Optional: Adjust volume
pactl set-sink-volume 1 80%

Save this script and make it executable with chmod +x script.sh. Then, add it to your user’s autostart directory (~/.config/autostart) or create a systemd user service to ensure it runs every time the system boots. This guarantees that even if the system reboots or the audio server restarts, the correct output device is always selected.

This approach solves the common issue where audio stops playing because the system defaults to a non-existent or muted device. By hardcoding the sink index, you eliminate ambiguity. If your hardware configuration changes, you simply update the index in the script. This is far more robust than relying on GUI settings which may reset after updates.

For related troubleshooting, if you find that no sound cards are detected at all, you might need to investigate kernel modules or driver installations. See our guide on Solving No Sound Issue in Ubuntu: A Tech Support Guide for deeper diagnostic steps. Additionally, if you are dealing with complex audio routing or virtual devices, creating dummy sound cards can help isolate audio issues, as detailed in Creating Four Dummy Sound Cards on Ubuntu 24.04.

Frequently Asked Questions

How do I find the sink index if pactl list short sinks shows nothing?

If the list is empty, your PulseAudio server may not be running or has failed to detect any hardware. Try restarting the PulseAudio daemon with pulseaudio -k and then check the system logs for ALSA errors. Ensure that your audio cables are securely connected and that the monitor is powered on before checking.

Will this command affect other users on the same system?

No, pactl commands only affect the current user session. Each user has their own PulseAudio instance and default sink settings. If multiple users are logged in simultaneously via different terminals, they will each maintain their own audio preferences independently.

What if the HDMI audio drops out when the monitor sleeps?

Monitor sleep modes can cause the HDMI audio link to drop, leading PulseAudio to switch to a dummy sink. Setting a persistent default sink helps, but you may also need to configure your monitor to stay awake or adjust power management settings in GNOME to prevent the display from sleeping during critical operations.

Can I set the volume level along with the sink?

Yes, you can combine commands in a script. After setting the default sink, use pactl set-sink-volume <index> <percentage> to adjust the volume. For example, pactl set-sink-volume 1 80% sets the volume to 80% for sink index 1. This ensures consistent loudness levels for signage content.

Why does my audio still not play after changing the sink?

The application may be holding onto the old sink reference. Restart the application to force it to query the new default sink. Also, check if the specific sink is muted using pactl list sinks and look for the mute flag. Unmute it if necessary using pactl set-sink-mute <index> false.

Latest News

How to Display Output of xterm Command in Terminal Screen using Cron

Resolve the inability to display xterm output in a terminal screen from cron by redirecting logs or using wall instead of insecure X11 workarounds.

Read More
Expose Local Server on VPS Preserving Real Client IPs (OS Level)

Resolve VPS logging showing only gateway IPs by configuring reverse proxies to forward real client addresses via X-Forwarded-For headers.

Read More
How to Clear Recent Files History in Linux without Deleting Actual Files?

Clear recent files history in Linux by deleting ~/.local/share/recently-used.xbel without removing the actual files.

Read More
Best HDD Copy Strategy: Manually Syncing and Rewriting Scratch

Resolve data drift between two 4TB hard drives by using rsync with the --delete flag to manually sync and rewrite scratch data for an exact mirror.

Read More
Understanding Bash Prompt Abbreviations: An Overview

Resolve repetitive typing errors by creating and persisting Bash aliases in the .bashrc file for improved command-line efficiency.

Read More
Free Tools and Methods to Log Real-Time Performance Details in Task Manager

Log real-time CPU and memory metrics to CSV files using Windows Performance Monitor Data Collector Sets to troubleshoot system slowness.

Read More
Contact Qatar Airways Customer Service: Phone Number, Help Center, and More

Resolve urgent Qatar Airways reservation issues like flight changes and baggage claims using the US phone number +1801-855-5905 or online self-service tools.

Read More
Windows 11: Alt Codes Displaying Wrong Characters - Solutions

Resolve Windows 11 Alt codes showing wrong characters by verifying the US keyboard layout and enabling Num Lock.

Read More
Run Programs with Elevated Privileges: A Comprehensive Guide

Eliminates the need to type sudo for frequent administrative tasks by configuring .bashrc aliases or functions.

Read More
Dynamically Changing Dates in Excel Formulas Using Cells

Eliminate manual date updates in Excel by using cell references to create dynamic formulas that automatically adjust calculations when input dates change.

Read More
Granting Edit Access to a Specific Excel Sheet in an Office 365 User Email ID-Based Login

Excel Online lacks native sheet-level permissions, so users must split workbooks or use worksheet protection to isolate edit access for specific tabs.

Read More
Creating Network Load on Local Wi-Fi from One PC

Generate sustained Wi-Fi bandwidth load from a single PC using a VM SFTP server to test router stability and throughput.

Read More
Changing the Default Editor for Batch Files in Windows 11's File Explorer

Resolve the issue of batch files opening in Notepad by changing the default editor to a preferred application like VS Code.

Read More
Gain WiFi Connection Minutes Before Losing it by Changing MAC Address

Bypass MAC address filtering to restore WiFi connectivity temporarily when a device is blocked by network administrators.

Read More
Photos Folders Turned Black: Troubleshooting Picture Applications on Windows

Resolve black screens in Windows Photos by resetting the app, updating graphics drivers, and repairing system files.

Read More
Troubleshooting High CPU Temperature Values: A Step-by-Step Guide

Resolve high CPU temperatures and thermal throttling by monitoring with Speedfan, cleaning dust from cooling components, and replacing degraded thermal paste.

Read More
Make cURL establish TLS connection with CA unknown

Resolve cURL TLS connection failures with unknown or self-signed certificates by using the --insecure flag to bypass CA validation.

Read More
Troubleshooting Incorrect Network Metrics Values in Grafana, Prometheus, InfluxDB, and Telegraf

Fix incorrect network metrics in Grafana, Prometheus, InfluxDB, and Telegraf by verifying interface selection, resolving unit mismatches, and handling counter resets.

Read More
Start Another Terminal Window (cmd.exe) Windows Repair/Troubleshoot

Provides step-by-step instructions to access the Windows Command Prompt via bootable media for advanced system repair and troubleshooting.

Read More
Thinkpad P1 Gen 6: Sudden Thunderbolt 3 Dock USB-C Charging Stopped Working

Resolve sudden Thunderbolt 3 dock USB-C charging and internet failure on ThinkPad P1 Gen 6 by updating firmware, resetting the dock, and adjusting power settings.

Read More
ASUS Windows 11 Laptop: Internet Connection Issue with Hotspot

Resolve ASUS Windows 11 laptop spinning wheel issue when connecting to mobile hotspot by resetting network stack, disabling IPv6, and adjusting power settings.

Read More
Developing iOS Project with Firebase: Logging in and Sending Push Notifications

Integrates Firebase to enable secure user authentication and push notifications in iOS applications.

Read More
Troubleshooting Bash Script with Suspected Issues of Spaces, Dashes, Filenames and Quoting

Resolve Bash script failures caused by word splitting, globbing, and special characters in filenames by applying proper quoting techniques.

Read More
Populating OneDrive Folder for Local Backup without Affecting Remote Files

Prevent OneDrive from deleting remote files during Windows reinstallation by unlinking the account or using symbolic links to isolate local data.

Read More
Force First Frame as Keyframe Without Re-encoding: A Quick Solution

Resolve inaccurate seeking and playback glitches by re-encoding video to ensure the first frame is a valid keyframe.

Read More
Find Information in Database Using WSL (Ubuntu) on Windows-10

Resolve database connection issues from WSL Ubuntu on Windows 10 by configuring client tools and network access to query remote or local servers.

Read More
Configuring a New Router with Different Networks: One Family, One Guest

Resolve IP conflicts and isolate guest traffic by configuring a second router with a distinct subnet via its WAN port.

Read More
Quickly Open Multiple Stock Websites with a Single Command

Solve the problem of manually opening multiple stock research websites by creating a single command to launch them simultaneously on Windows, macOS, or Linux.

Read More
Improved Adobe Acrobat Search Experience: Access Advanced Search with Ease

Access advanced search filters like case sensitivity and regex in Adobe Acrobat by clicking More Options in the Find bar.

Read More
Port Forwarding VM via OpenVPN: A Comprehensive Guide

Configure OpenVPN server and iptables to forward specific ports from VPN clients to a virtual machine's internal IP address.

Read More
Understanding Partitions in the 1980s: A Look Back at MS-DOS and Master Boot Record

Explains how the Master Boot Record and partition table enabled MS-DOS to manage multiple disk volumes on a single physical drive.

Read More
Windows 10 Enterprise: Keyboard Not Detected in Managed Organization with Admin Privileges

Resolve Windows 10 Enterprise keyboard detection failures caused by Group Policy restrictions, driver corruption, or USB enumeration errors.

Read More
Can't Find x86_64 Versions of Applications on MacOS arm64 (M1)

Resolve missing x86_64 app issues on M1 Macs by installing Rosetta 2 and reinstalling apps as universal binaries.

Read More
How to Hide Installation Source for an Android App

Manage Android app installation source visibility by using USB transfers or file managers to reduce browser traces and isolate data via work profiles.

Read More
Connecting Momentus 4200.2 ST9808210A Hard Drive via USB Cable

Resolve inability to access Seagate Momentus 4200.2 ST9808210A hard drive by connecting it via USB using a compatible SATA-to-USB adapter and configuring the disk in Windows.

Read More