The Living Thing / Notebooks :

Comfy ubuntu setup for science and such

syncthing

I think this can also be done with linuxbrew.sh. But here is the apt method.

# Add the release PGP keys:
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -

# Add the "stable" channel to your APT sources:
echo "deb https://apt.syncthing.net/ syncthing stable" | \
  sudo tee /etc/apt/sources.list.d/syncthing.list

# Update and install syncthing:
sudo apt-get update
sudo apt-get install syncthing

Now choose your autostart method. you probably want to do this as a user, not as a system service, because root access is from a different devops era.

But wait! Does it report your disk is full when you try to use filesystem monitors?

.. code::

$ cat /proc/sys/fs/inotify/max_user_watches
8192
$ sudo sh -c 'echo 204800 > /proc/sys/fs/inotify/max_user_watches'
$ echo "fs.inotify.max_user_watches=204800" | sudo tee -a /etc/sysctl.conf
$ cat /proc/sys/fs/inotify/max_user_watches
204800

Google Chrome

If you want profile sync or some other features not in plain chromium

askubuntu says

sudo bash
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | \
    apt-key add -
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> \
    /etc/apt/sources.list.d/google.list
apt-get update
apt-get install google-chrome-stable

Julia

download julia as an install; it’s too unstable for anything else.

python

I give in, just run anaconda. It is easy for science stuff.

Bonus: then you get pytorch and and other such tricky-GPU-dependency packages without messing about.

conda install pytorch torchvision cuda91 -c pytorch

Editors

Not all the good editors are packaged up.

Also, a good CLI editor:

sudo add-apt-repository ppa:neovim-ppa/stable
sudo apt-get update
sudo apt-get install neovim
sudo update-alternatives --install /usr/bin/vi vi /usr/bin/nvim 60
sudo update-alternatives --config vi
sudo update-alternatives --install /usr/bin/vim vim /usr/bin/nvim 60
sudo update-alternatives --config vim
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/nvim 60
sudo update-alternatives --config editor

Non-ubuntu-packaged stuff

linuxbrew

linuxbrew

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
test -d ~/.linuxbrew && PATH="$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin:$PATH"
test -d /home/linuxbrew/.linuxbrew && PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH"
test -r ~/.bash_profile && echo "export PATH='$(brew --prefix)/bin:$(brew --prefix)/sbin'":'"$PATH"' >>~/.bash_profile
echo "export PATH='$(brew --prefix)/bin:$(brew --prefix)/sbin'":'"$PATH"' >>~/.profile

Claims to support julia, but AFAICT that doesn’t work. node.js does, though.

Probably you want all the libraries which are too patent-encumbered or GPL’d to be bundled with your slightly-too-pure distribution. This means codecs and other content-related shit.

brew install libsamplerate libsndfile ffmpeg

Also linuxbrew will install fish, which is hopelessly outdated in e.g. Ubuntu 16.04.

Fish shell

Either use linuxbrew for an updated shell or use an updated PPA.

The former: Add /home/linuxbrew/.linuxbrew/bin/fish to /etc/shells. Then run

chsh -s /home/linuxbrew/.linuxbrew/bin/fish

The latter:

sudo apt-add-repository ppa:fish-shell/release-2
sudo apt-get update
sudo apt-get install fish
chsh -s /usr/bin/fish

flatpak

flatpak enables many nice sandboxed apps via flathub and is shiny and gui-friendly.

sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt update
sudo apt install flatpak
sudo apt install gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Also there are .AppImage files around.

password manager

How painful is passwordstore? Because it looks like the best one in terms of supporting everything, albeit clunkily.

sudo apt-get install pass

To mention, keybase.

clipboard manager

diodon (ubuntu unity) and CopyQ (everything) seem most popular.

Diodon:

sudo apt-get install diodon

Or CopyQ:

sudo add-apt-repository ppa:hluk/copyq
sudo apt update
sudo apt install copyq copyq-plugins

CopyQ Keyboard shortcuts

They both have various security problems, i.e. there is no way of marking passwords on the clipboard as secret unless they come from certain password apps.

Nice terminal

Hmmm. They are all a bit shit.

If you are worried that your current terminal doesn’t use enough RAM, you can use hyper which is a javascript app version of terminal. It’s not too bad for one of these “web technology desktop app things, compared to Atom, or Chromium or Firefox or whatever.

terminator seems to be an acceptable default option for a pure native app without many frills

Switching applications, why can’t it be smooth like on a Mac did they patent intuitiveness?

One could use a custom launcher, e.g. Zazu.

A fully extensible and open source launcher for hackers, creators and dabblers. It comes with sane defaults to make it useful out of the box. But everything can be changed to fit your needs. Don’t let others tell you the best way to be productive, configure it to be perfect for you.

It’s another fucking electron app, so you can kiss your RAM goodbye.

Unity desktop

Maybe you are jsut using the keyboard shortcuts wrong? here are some usable ones.

The default OS switcher is configurable

sudo apt-get install compizconfig-settings-manager compiz-plugins

I simply don’t like the default Unity alt-tab application switcher. It may work for a lot of people, but it just slows me down. For me it’s faster to have a single application switcher that cycles through all open windows, possibly withing one desktop, but I’m not sure about that. I am really not compatible with the default unity switcher that groups windows, for example terminals, together so when hitting alt-tab you can’t (in an effective way) switch between terminals. Having a different key combo for that slows my brain down. […] Open compizconfig-settings-manager with alt-F2, type ccsm.

Scroll down to “Ubuntu Unity Plugin”. Choose the tab “Switcher”. Disable the alt-tab and shift-alt-tab key bindings. (“Key to start the switcher” and “Key to switch to the previous window in the Switcher”. Click the “Back” button.

Scroll down to the “Window management” section. Here you can select another switcher. I enable the “Static Application Switcher”, resolve any potential conflicts by setting the setting for “Static Application Switcher”. Now you can tweak the switcher by clicking on it. I have changed alt-tab and shift-alt-tab to “Next window (All windows)” and “Prev window (All windows)”.

unity tweak tool does unity-specific tweaks of this kind of nonsense.

sudo add-apt-repository ppa:freyja-dev/unity-tweak-tool-daily
sudo apt-get install unity-tweak-tool

See also the nifty run-or-raise hack.

VMs

virtualbox is OK

.. code:: shell

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
sudo add-apt-repository 'https://download.virtualbox.org/virtualbox/debian contrib'
sudo apt-get install virtualbox virtualbox-ext-pack

don’t confuse Windows time/date when dual booting

windows updates the time not the time zone <https://www.howtogeek.com/323390/how-to-fix-windows-and-linux-showing-different-times-when-dual-booting/>_. Who knew. Linus has to bear the compatibility burden on this bit of arse-backwardsery.

.. code:: shell

timedatectl set-local-rtc 1 --adjust-system-clock

Razer-specific

See comfy razer.

oh shit i have to do design shit

install Scribus

.. code:: shell

sudo add-apt-repository ppa:scribus/ppa
sudo apt-get update
sudo apt-get install scribus-ng