Skip to content

Instantly share code, notes, and snippets.

@Koc
Last active December 11, 2022 23:22
Show Gist options
  • Save Koc/3e0d099361677b25a09843146600d8a5 to your computer and use it in GitHub Desktop.
Save Koc/3e0d099361677b25a09843146600d8a5 to your computer and use it in GitHub Desktop.
Configure php dev env

https://medium.com/@iagodiogenes/how-to-solve-poor-quality-audio-with-bluetooth-devices-in-ubuntu-f497a4e10943

multi-touch gestunes https://github.com/iberianpig/fusuma

fish for rich autocomplete in terminal https://launchpad.net/~fish-shell/+archive/ubuntu/release-3

http://ubuntuhandbook.org/index.php/2020/02/install-guake-37-ubuntu-18-04/

Consolas font https://gist.github.com/sigoden/d01ad118da677f796bab01781b7eae23

alt+tab replacement https://github.com/small-tech/catts

Fix alt+tilde https://askubuntu.com/a/466403

fix alt+f7

dconf write /org/gnome/desktop/wm/keybindings/begin-move '[]'
dconf write /org/gnome/desktop/wm/keybindings begin-resize '[]'

# org.gnome.desktop.wm.keybindings minimize ['']
# org.gnome.desktop.wm.keybindings lower ['<Super>Down']
# org.gnome.desktop.wm.keybindings show-desktop ['<Super>Tab']
# org.gnome.desktop.wm.keybindings switch-group []
# org.gnome.desktop.wm.keybindings switch-group-backward []
# org.gnome.desktop.wm.keybindings toggle-on-all-workspaces []
# org.gnome.desktop.wm.keybindings unmaximize []

Make Shift+NumPad work like Windows

https://askubuntu.com/a/1170742

Increase Inotify Limits

echo "fs.inotify.max_user_watches = 524288" | sudo tee /etc/sysctl.d/idea.conf \
  && sudo sysctl -p --system

Ctop: top for Docker

https://github.com/bcicen/ctop

Enable history search by pressing arrow key

vi ~/.inputrc

# Key bindings, up/down arrow searches through history
"\e[A": history-search-backward
"\e[B": history-search-forward
"\eOA": history-search-backward
"\eOB": history-search-forward

Sync date

sudo date -s "$(curl -sD - google.com | grep '^Date:' | cut -d' ' -f3-6)Z"

Enable alt+tilde

https://askubuntu.com/questions/521423/how-can-i-disable-altclick-window-dragging
https://askubuntu.com/questions/132304/how-to-disable-alt

Fix ctrl+shift+ hotkeys

sudo add-apt-repository ppa:nrbrtx/xorg-hotkeys \
  && sudo apt-get update \
  && sudo apt-get upgrade

Uninstall avahi daemot

sudo apt-get remove avahi-daemon

Guake

# install via apt

sudo apt-get install guake

# or install via pip
sudo apt-get install \
    gir1.2-keybinder-3.0 \
    gir1.2-notify-0.7 \
    gir1.2-vte-2.91 \
    libkeybinder-3.0-0 \
    libutempter0 \
    python3-setuptools \
    python3-cairo \
    python3-dbus \
    python3-gi \
    python3-pbr \
    python3-pip \
    python3
    
pip3 install --user guake

# autostart (or add using guake-twoaks)
gedit ~/.config/autostart/guake.desktop

[Desktop Entry]
Name=Guake Terminal
Comment=Use the command line in a Quake-like terminal
Exec=~/.local/bin/guake
Icon=~/.local/bin/guake
Type=Application
Categories=GNOME;GTK;System;Utility;TerminalEmulator;
StartupNotify=true
X-Desktop-File-Install-Version=0.22

Common

sudo apt-get update \
  && sudo apt-get -y upgrade \
  && sudo apt-get install -y \
    git mercurial subversion \
    dconf-editor \
    gnome-tweaks \
    ubuntu-restricted-extras \
    mc htop ncdu curl wget \
    vim \
    redis-tools \
    mysql-client \
    postgresql-client

Nodejs

https://github.com/nodesource/distributions/blob/master/README.md

Bash Aliases Per Directory

https://github.com/carlosV2/bash-aliases-per-directory

Powerline-shell

sudo apt-get install fonts-powerline

sudo -H pip3 install powerline-shell

vi ~/.bashrc

###
export LC_ALL=en_US.UTF-8
###

###
function _update_ps1() {
    PS1=$(powerline-shell $?)
}

if [[ $TERM != linux && ! $PROMPT_COMMAND =~ _update_ps1 ]]; then
    PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi
###

Vscode

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg \
  && sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg \
  && sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" \ > /etc/apt/sources.list.d/vscode.list' \
  && sudo apt-get update \
  && sudo apt-get install code \
  && sudo update-alternatives --config editor \
  && xdg-mime default code.desktop text/plain

Screenshot tool

apt install flameshot

Then configure hotkeys flameshot-org/flameshot#200 (comment)

Chrome

curl -SL https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -o /tmp/google-chrome.deb \
  && sudo dpkg -i /tmp/google-chrome.deb || true \
  && sudo apt-get update \
  && sudo apt-get install -f
  
# disable new ui chrome://flags/#top-chrome-md

Git

git config --global core.excludesfile ~/.gitignore \
  && curl -sSL https://gist.githubusercontent.com/jacobtomlinson/aace65a6920e44348d501da5e13a5a17/raw/f12f72c08f2d3ff169f77e6419f9fb6d26b838b2/.gitignore_global > ~/.gitignore
# Commiter Name and Email
git config --global user.name "%FULL NAME%"
git config --global user.email "%EMAIL%"

Skype

# https://repo.skype.com/deb/pool/main/s/skypeforlinux/
curl -SL https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_8.27.76.16_amd64.deb -o /tmp/skypeforlinux.deb \
  && sudo dpkg -i /tmp/skypeforlinux.deb || true \
  && sudo apt-get update \
  && sudo apt-get install -f

IDE

# https://www.jetbrains.com/toolbox/app/
curl -SL https://download-cf.jetbrains.com/toolbox/jetbrains-toolbox-1.5.2871.tar.gz -o /tmp/jetbrains-toolbox.tar.gz \
  && sudo mkdir -p /opt/jetbrains-toolbox \
  && sudo tar -xzf /tmp/jetbrains-toolbox.tar.gz --directory /opt/ \
  && sudo mv /opt/jetbrains-toolbox-1.5.2871/* /opt/jetbrains-toolbox \
  && /opt/jetbrains-toolbox/jetbrains-toolbox

Docker

curl -sSL https://get.docker.com/ | sh \
  && sudo curl -SL "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose \
  && sudo chmod +x /usr/local/bin/docker-compose \
  && sudo groupadd docker || true \
  && sudo usermod -aG docker $USER \
  && sudo shutdown -r now
# https://docs.docker.com/engine/installation/linux/linux-postinstall/

# configure vm for boot2docker
https://github.com/boot2docker/boot2docker/issues/1216

Teamviewer

curl -SL https://download.teamviewer.com/download/teamviewer_i386.deb -o /tmp/teamviewer.deb \
  && sudo dpkg -i /tmp/teamviewer.deb || true \
  && sudo apt-get update \
  && sudo apt-get install -f

Devbox

sudo apt-get update \
  && sudo apt-get install -y python3-pip \
  && sudo -H pip3 install --upgrade git+https://github.com/Koc/devbox.git

Deploy Global Services

sudo mkdir -p /var/www/global \
  && sudo chown $USER:$(id -gn) /var/www/global \
  && cd /var/www/global \
  && curl -sS https://gist.githubusercontent.com/Koc/3e0d099361677b25a09843146600d8a5/raw/260ef5c536e7bd5b1d1ce45d0acda59f12b93415/docker-compose.global.yaml -o /var/www/global/docker-compose.yaml \
  && devbox up

Deploy Project

sudo chown $USER:$(id -gn) /var/www
mkdir -p /var/www/%PROJECT_NAME%
cd /var/www/%PROJECT_NAME%
git clone %URL% .
cp docker/.env.dist docker/.env
devbox up
devbox ssh
cd /var/www/html
composer install
cat app/DoctrineMigrations/dump.sql | psql -h %PROJECT_NAME%-postgres -U %PROJECT_NAME% %PROJECT_NAME%
zcat app/DoctrineMigrations/dump.sql.gz | psql -h %PROJECT_NAME%-postgres -U %PROJECT_NAME% %PROJECT_NAME%
zcat app/DoctrineMigrations/dump.sql.gz | mysql -h %PROJECT_NAME%-mysql -u %PROJECT_NAME% -p %PROJECT_NAME%
version: '3'
services:
mailcatcher:
image: yappabe/mailcatcher
container_name: mailcatcher
networks:
- default
- global_default
environment:
HTTP_PORT: 80
SMTP_PORT: 25
EXPOSE_HOSTS: |-
mailcatcher.dev
blackfire:
image: blackfire/blackfire
container_name: blackfire
networks:
- default
- global_default
networks:
global_default:
external: true
version: '3'
services:
apksnd-web:
image: brouzie/php:7.1
container_name: apksnd-web
hostname: apksnd-web
depends_on:
- apksnd-postgres
links:
- apksnd-postgres
external_links:
- mailcatcher
- apkwf-web
- apkwf-web:apkwf.test
networks:
- default
- apkwf_default
- global_default
volumes:
- composer-cache-volume:/home/dev/.composer/cache
- ./mount/var/log/apache2:/var/log/apache2
- ./mount/etc/apache2/sites-enabled:/etc/apache2/sites-enabled
- ./..:/var/www/html
environment:
PASSWORD: 112233
EXPOSE_HOSTS: |-
apksnd.test
apksnd-postgres:
image: postgres:9.6
container_name: apksnd-postgres
volumes:
- postgres-data-volume:/var/lib/postgresql/data
environment:
POSTGRES_DB: apksnd
POSTGRES_USER: apksnd
POSTGRES_PASSWORD: apksnd
volumes:
postgres-data-volume:
composer-cache-volume:
external: true
networks:
global_default:
external: true
apkwf_default:
external: true
# system settings
127.0.0.0/8, ::1

/etc/environment

http_proxy="http://USER:PASSWORD@proxy.pbank.com.ua:8080/"
https_proxy="http://USER:PASSWORD@proxy.pbank.com.ua:8080/"
ftp_proxy="http://USER:PASSWORD@proxy.pbank.com.ua:8080/"
no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com,.ll,.test,.pb.ua,.privatbank.ua,.it.loc"


/etc/bash.bashrc

export http_proxy="http://USER:PASSWORD@proxy.pbank.com.ua:8080/"
export https_proxy="http://USER:PASSWORD@proxy.pbank.com.ua:8080/"
export ftp_proxy="http://USER:PASSWORD@proxy.pbank.com.ua:8080/"
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com,.ll,.test,.pb.ua,.privatbank.ua,.it.loc"

npm config set proxy "http://USER:PASSWORD@proxy.pbank.com.ua:8080/"
npm config set https-proxy "http://USER:PASSWORD@proxy.pbank.com.ua:8080/"



https://stackoverflow.com/questions/23111631/cannot-download-docker-images-behind-a-proxy
https://docs.docker.com/config/daemon/systemd/#httphttps-proxy


sudo mkdir -p /etc/systemd/system/docker.service.d

/etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://USER:PASSWORD@proxy.pbank.com.ua:8080/"
Environment="HTTPS_PROXY=http://USER:PASSWORD@proxy.pbank.com.ua:8080/"
Environment="FTP_PROXY=http://USER:PASSWORD@proxy.pbank.com.ua:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,localaddress,.localdomain.com,.ll,.test,.pb.ua,.privatbank.ua,.it.loc"


sudo systemctl daemon-reload
sudo systemctl restart docker

/etc/default/docker
export http_proxy="http://USER:PASSWORD@proxy.pbank.com.ua:8080/"
export https_proxy="http://USER:PASSWORD@proxy.pbank.com.ua:8080/"
export ftp_proxy="http://USER:PASSWORD@proxy.pbank.com.ua:8080/"
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com,.ll,.test,.pb.ua,.privatbank.ua,.it.loc"


~/.docker/config.json
{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://USER:PASSWORD@proxy.pbank.com.ua:8080/",
     "httpsProxy": "http://USER:PASSWORD@proxy.pbank.com.ua:8080/",
     "ftpProxy": "http://USER:PASSWORD@proxy.pbank.com.ua:8080/",
     "noProxy": "localhost,127.0.0.1,localaddress,.localdomain.com,.ll,.test,.pb.ua,.privatbank.ua,.it.loc"
   }
 }
}


phpstorm

phpstorm fixes

fix python run as admin win32 api michaelgundlach/pyspeech#23 (comment)

# powershell as admin
Set-ExecutionPolicy Bypass -Scope Process -Force; `
  iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
  
choco install make
https://github.com/docker/for-win/issues/221
route /P add 172.26.0.0 MASK 255.255.0.0 10.0.75.2

route /P add 172.19.0.0 MASK 255.255.0.0 192.168.99.100
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment