HON’s Wiki # PC Applications

Home / Personal Devieces

Contents

Note: Unless specified, Debian/Ubuntu is assumed.

Companion (for Streamdeck) (Linux)

Installed such that its run by logged in users (no system service).

Using v3 beta.

Install

  1. Download:
    1. Download: Bitfocus downloads
      • Requires Bitfocus user.
    2. Unzip: tar xvf companion-linux-x64*
    3. Move to permanent dir: sudo mv companion-64* /opt/companion
    4. Fix owner: sudo chown -R root:root /opt/companion
  2. Add group:
    1. Create group: sudo groupadd -r companion
    2. Add youtself to it: sudo usermod -aG companion $USER
    3. Update your groups for the current shell: newgrp companion
  3. Setup udev rules:
    1. Find your USB vendor and product ID: lsusb | grep -i elgato (look for ID <idVendor>:<idProduct>)
    2. Create /etc/udev/rules.d/50-companion.rules, containing the udev rules snippet below, with updated idVendor and idProduct values.
    3. Reload the udev rules: sudo udevadm control --reload-rules
    4. Connect/reconnect the device.
    5. Make sure at least one of the hidraw devices has the companion group: ls -l /dev/hidraw*
  4. Manually start the application to make sure it’s working:
    1. Run (as your user): /opt/companion/companion-launcher
    2. A taskbar icon and GUI should appear.
    3. Make sure it’s running on 127.0.0.1 only.
    4. Open the webpage (localhost:8000).
    5. Go to “surfaces” and check that the device has appeared. Press “rescan USB” if not. Check the output if nothing appears.
  5. Run on login (using i3 WM in my case):
    1. Add the app to your i3 config: exec --no-startup-id /opt/companion/companion-launcher >>$HOME/.log/companion.txt 2>>$HOME/.log/companion.err (create $HOME/.log)
    2. Relog and make sure it started correctly.

**Udev rules (50-companion.rules):

SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="008f", MODE="0660", GROUP="companion"
KERNEL=="hidraw*", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="008f", MODE="0660", GROUP="companion"

Fancontrol (Linux)

Warning: Don’t use this. The fan controller IDs may change on every reboot which breaks the config.

Configure Sensors

  1. Install lm-sensors.
  2. Run sensors-detect.
    1. Answer with the default answers.
    2. At the end, allow it to add the modules to /etc/modules.
  3. Reload the kmod service to reload the modules.
  4. Watch the kernel log to check for sensor errors. If so, try to remove the modules added to /etc/modules with modprobe -r <module> to see if the error goes away. If so, remove it from the modules file.

Configure Fancontrol

  1. Install fancontrol.
  2. (Optional) Install gnuplot if you want pwmconfig to generate graphical plots.
  3. Run pwmconfig.
    1. Use manual mode for when asked.
    2. Generate detailed correlations when asked.
    3. Set up the config file when asked (/etc/fancontrol).
    4. Decide which sensor each controller should depend on.
    5. Configure all fan controllers.
    6. Save and quit.
  4. Tweak the config:
    1. Open /etc/fancontrol.
    2. Round up all numbers, just to make it a little cleaner.
    3. Set interval to around 2 seconds.
  5. Restart the fancontrol service.

Firefox

Config

CUPS

Setup for SMB

For Manjaro. Assumes CUPS is already installed.

  1. Install required programs: pacman -Sy smbclient cifs-utils
  2. Enable SMB authentication: In /etc/cups/printers.conf, set AuthInfoRequired username,password.
  3. Add the printer using the smb:// schema. It should prompt for authentication when printing stuff.

Git

Config

Nvidia Settings (Linux)

i3

Installation

See my Arch setup with i3.

Configuration

Keyboard Bindings

Usage

Assuming default keybinds.

Files

Basics

Kdenlive (Linux)

Setup

Arch Linux:

  1. Install: sudo pacman -S kdenlive breeze
  2. Open Kdenlive.
  3. Fix theme:
    1. “Settings” > “Color Scheme” > “Breeze Dark”.

Piper (Linux)

GUI for configuring gaming mice.

Setup

  1. Install the piper PPA.
  2. Install piper.
  3. Configure the mouse using the GUI application.

Project

  1. Press “new project”.
  2. Select a profile (e.g. “4K UHD 2160p 30fps”).
  3. Import media to use.
  4. Add image:
    1. Import as “clip”.
    2. Add to video track.
    3. Add transform effect to scale and move it (make sure to “show edit mode” in the video preview).
  5. Etc.
  6. Export to video file.

PipeWire (Linux)

A modern audio server replacement for PulseAudio, JACK and ALSA. Comes with adapters for compatibility with existing applications and such that existing tools can be used.

Resources

Usage

Installation

See the Arch (i3) or Kubuntu config notes.

Configuration

General

  1. Set the sample rate:
    1. Find the card’s current rate and supported rates: cat /proc/asound/UMC1820/stream0 (for card UMC1820)
    2. Create /etc/pipewire/pipewire.conf.d/10-clock-rate.conf containing the snippet below, with your chosen sample rate.
  2. Set sample depth:
    1. TODO
  3. TODO Fix stuttering. When using loopback module only? Weird playback of old buffer for a split second when opening new audio application?
  4. Restart PipeWire to apply changes: systemctl --user restart pipewire.service

Example contents of /etc/pipewire/pipewire.conf.d/10-clock-rate.conf:

context.properties = {
   default.clock.rate = 96000
}

Disable ALSA Card Profiles (ACP) for a Card

Disabling ACP for an ALSA card means that all of its inputs and outputs will be provided as raw channels without surround mixing etc. The same result (seemingly) may also be achieved by setting the card profile to “pro audio” in e.g. pavucontrol, although the pro audio profile seems to mess up my sink/source routing.

  1. In /etc/pipewire/media-session.d/alsa-monitor.conf, add the snippet below in the rules list.
    • device.vendor.id should be set to the vendor ID of the USB device. Use lsusb to find it. Behringer typically uses 1397.
  2. Restart PipeWire: systemctl --user restart pipewire.service

Snippet for /etc/pipewire/media-session.d/alsa-monitor.conf:

# Add into the existing section below
# rules = [
    # ...
    {
        matches= [
            {
                # Behringer
                device.name = "~alsa_card.*"
                device.vendor.id = "1397"
            }
        ]
        actions = {
            update-props = {
                api.alsa.use-acp = false
            }
        }
    }
# ]

Setup Virtual Sinks and Sources Using Channels from a Multi-Channel Card

Split e.g. an 8-channel output device into four stereo devices. Requires PipeWire v3.27 or newer.

  1. (Note) See Virtual Devices (PipeWire Wiki).
  2. Disable ACP for the card (see above). (Or change to the “pro audio” profile, but that didn’t work for me.)
  3. In /etc/pipewire/media-session.d/media-session.conf, add the snippet below in the context.modules list.
    • Add a module instance for each virtual input/output device.
    • Find the target device using pactl list sinks or pactl list sources.
  4. Restart PipeWire: systemctl --user restart pipewire.service

Snippets for /etc/pipewire/media-session.d/media-session.conf:

# Add into the existing section below
# context.modules = [
    # ...

    # Virtual output example
    {   name = libpipewire-module-loopback
        args = {
            node.name = "BEHRINGER_UMC1820_0102"
            node.description = "Behringer UMC1820 (1-2)"
            capture.props = {
                media.class = "Audio/Sink"
                audio.position = [ FL FR ]
            }
            playback.props = {
                audio.position = [ AUX0 AUX1 ]
                node.target = "alsa_output.usb-BEHRINGER_UMC1820_B572BD9B-00.pro-output-0"
                stream.dont-remix = true
                node.passive = true
            }
        }
    }

    # Virtual input example
    # TODO

#]

PuTTY (Windows)

Screen

Usage

Serial

SMB

Troubleshooting

Speedfan (Windows)

SSH

Usage

Config

Steam (Linux)

Installation (Kubuntu)

Using Kubuntu Repos or Downloading the Officlal DEB File

Note: Since Steam requires 32-bit (i386) variants of certain NVIDIA packages, and NVIDIA not releasing i386 variants any more as of driver version 465 ish, any normal installation is impossible. The Ubuntu dudes have a PPA containing unofficial i386 variants for the relevant NVIDIA driver packages, but it conflicts with official CUDA packages, which is not nice if you need CUDA.

Using Flatpak

Miscellanea

tmux

Setup

Usage

Vim

Config

VS Code

Setup

  1. Install it.
  2. (Linux) Increase the handle count limit:
    1. Ref.: “Visual Studio Code is unable to watch for file changes in this large workspace” (error ENOSPC).
    2. Get current limit: cat /proc/sys/fs/inotify/max_user_watches
    3. In /etc/sysctl.conf, set fs.inotify.max_user_watches=524288.
    4. Reload the config: sysctl -p

Some Extensions

Config

ZSH (Linux)

This is my ZSH setup preference, using Oh-My-ZSH with the Powerlevel10k theme and some recommended font.

  1. Install ZSH:
    1. apt install zsh
  2. Install Oh-My-ZSH:
    1. See ohmyz.sh.
    2. When it asks, set it as your default shell. This won’t take effect until the next login.
  3. Setup fonts:
    1. Download and install the suggested fonts (MesloLGS NF): Fonts (powerlevel10k)
      • For manual installation, move the .ttf files to /usr/share/fonts/TTF/.
      • For KDE Plasma, download and open with the font installer.
    2. Configure your terminal to use the font.
  4. Setup Powerlevel10k theme:
    1. Clone the theme: git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/.oh-my-zsh/themes/powerlevel10k
    2. In ~/.zshrc, set ZSH_THEME="powerlevel10k/powerlevel10k".
    3. Open a new ZSH session (or restart your terminal).
    4. Configure the theme (if it didn’t automatically start): p10k configure
  5. Make zprofile include profile (to avoid breaking certain things):
    1. In ~/.zprofile, add: emulate sh -c "source /etc/profile"
  6. (Optional) Setup syntax highlighting plugin:
    1. Clone it: git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
    2. Add zsh-syntax-highlighting it to plugins in ~/.zshrc.
  7. (Optional) Setup fuzzy search plugin:
    1. Install: yay -S fzf-git
    2. Add to your zshrc: source /etc/profile.d/fzf.zsh
  8. Setup plugins:
    1. In ~/.zshrc, set e.g. plugins=(git docker docker-compose golang rust).
  9. Further customize configs:
    1. Example zsh configs.

hon.one | HON95/wiki | Edit page