Category Archives: Uncategorized

GitHub Get Public Keys for a User

Will return

    "id": 11647754,
    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDhoeoQelGjp0Oz3m64SV8AszPTyxlK1jJ8lYlW28WaSK5hu79BemIibekO06P2aA47vhI8hc4R90aqE0Ja1qG6A+jkezn2jeSzZZq7/dvoYFC0i96ljlJTKoOY5E0P4/259giTL1wtMbJrYfFutmVMBidHiOzA1dnLTrZthOuYGlanZL7oazfrz4Ht+ZdvoMoIFqU8yRnW/E903dn2DjH6Wk2dhsdP1QssbOtu3BNguhpcuVksrKw7hqrxCpiJW7Eo7z8yg6qP+KbzGF6G4UmA1/VDn5RFwNC7bvSShirYasEyAOrMHcUiCyvvvtT0a+SlsVfYbyH8wm5Ci38D9HK1"
    "id": 26992755,
    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJDZbFgT04IDx5SECPFnHlJfwq/aHkhGr2sgSl0gqo3fOy48du/DPy4VH5cAk0qiLbT8dfzgMmkQm8EourUidZHORlbfbzzptMhWnbwEQbfXBuVyVa1Us5MV6Y0IV0TDOjNIALi6z3QTqJPtoOOfuRnDoumGCnl7bqxaKNrreoVm2vc7ep6yKuBR9HqDBJ6cN6KZ08IYFWjora1CscwsKC2EP6LWcnLsLVh2x4ZgJI0mDtnQ8hHedWmvQGhcyctKg1WdtcrrsVQESwlwDCiEVK9MypThYdZfVhh8d0JTApw37+QVkDW/oQeSMkKEyfss3wuOCCoGiJmurwM18Q/6V7"

Should return them in the same order as

Ubuntu Theme – Arc or Materia

# Install Arc soft fork
sudo add-apt-repository ppa:fossfreedom/arc-gtk-theme-daily
sudo apt-get install arc-theme
gsettings set org.gnome.desktop.interface gtk-theme 'Arc-Dark'

sudo add-apt-repository ppa:dyatlov-igor/materia-theme
sudo apt install materia-gtk-theme
gsettings set org.gnome.desktop.interface gtk-theme 'Materia-dark-compact'

sudo add-apt-repository ppa:daniruiz/flat-remix
sudo apt-get install flat-remix
gsettings set org.gnome.desktop.interface icon-theme 'Flat-Remix-Dark'

Ubuntu Bash Git Branch Prompt!

# Git branch in prompt.
parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'

export PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]:\[\033[32m\]\$(parse_git_branch)\[\033[00m\]\$ "

This is compatible with the default colour prompt in Ubuntu 16.04, put this in you ~/.bashrc.

Original version (non Ubuntu specific)

Rebuilding FFmpeg with NVENC and AAC on Ubuntu

This mini guide will show you how to rebuild the exact version of FFmpeg that comes with your version of Ubuntu and just add support for NVidia GPU encoding via the NVENC API and ACC via libfdk_aac.

# Download and unzip the NVIDIA Video Codec SDK from

# Copy the headers files from the SDK so FFmpeg can find them
sudo cp nvidia_video_sdk_6.0.1/Samples/common/inc/*.h /usr/local/include/

# Make sure "Source code" is enabled in System Settings... -> Software & Updates
# Download the build dependencies for FFmpeg
sudo apt-get build-dep ffmpeg

# Install libfdk_aac
sudo apt-get install libfdk-aac-dev

# Download the source for the exact version of FFmpeg you already have installed (not as root)
apt-get source ffmpeg

# Go into the ffmpeg source you just downloaded
cd ffmpeg-2.8.6

# Find out the exact command the ffmpeg was originally built with
ffmpeg -buildconf

# Copy the single line "configuration:" and pass it to ".configure" but add "--enable-nonfree --enable-nvenc --enable-libfdk-aac" on the end
# Mine looks like this:
./configure --prefix=/usr --extra-version=1ubuntu2 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv --enable-nonfree --enable-nvenc --enable-libfdk-aac

# Now build it

# And finally install it over the original
sudo make install

Linking Nvidia GPU temperature with a motherboard PWM fan in Linux

So I have a closed loop water cooler on my GPU and I replaced the stock single speed fan with two Noctua PWM fans (doing push/pull) connected to my motherboard. Even though the fans can be seen by lm_sensors and fancontrol the Nvidia GPU does not appear as it’s proprietary driver.

I knew nvidia-settings could be used to query the temperature (and the pump speed if you care) so I wrote a script to tie it all together:

#!/usr/bin/env bash
set -e

# This is the path to the PWM controlled fan (use lm_sensors/fancontrol to help you identify this)
# Read for your PWM chip to find the correct values (I have a nct6792)
# Temperature at which to run fan at 100% speed

# Re-enable automatic fan control on exit
trap "echo ${automatic} > ${fan}_enable; exit" SIGHUP SIGINT SIGTERM ERR EXIT

# Enable manual fan control
echo ${manual} > ${fan}_enable

function temperature() {
        nvidia-settings -q [gpu:0]/gpucoretemp -t

function fan_speed() {
        echo Setting FAN Speed to $1%
        echo $(((($1 * 255)) / 100)) > ${fan}

while true; do
        echo GPU Temperature: $temp

        if [ "$temp" -ge "$max" ] ; then
                fan_speed 100
                fan_speed $(($temp + ((100 - $max))))

        sleep 1

Then make the script sudoable without password and run on login. Now my fans run at 600rpm at idle and go up to 1100rpm when running a GPU burn in tool.