Skip to content

Instantly share code, notes, and snippets.

@11philip22
Last active August 20, 2019 11:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 11philip22/f29f3c074302f4c1e8994887b4b96b21 to your computer and use it in GitHub Desktop.
Save 11philip22/f29f3c074302f4c1e8994887b4b96b21 to your computer and use it in GitHub Desktop.
fix xubuntu
#!/usr/bin/env bash
# This program is written for ubuntu 19.04 running on a Lenovo Thinkpad t490.
# Its mostly personalized settings and programs but also a few fixes:
# -HSP/A2DP bluetooth devices (please check if your bluetooth works before you run this part)
# -screen tearing and black lockscreen will probably work on on other devices with Intel UHD Graphics 620
if [[ "$EUID" -ne 0 ]]
then echo "Please run as root"
exit
fi
username=philip
apt update
apt install -y vscodium ranger zsh git neofetch tmux subversion rxvt-unicode python3-pip ncmpccp mpd xfonts-terminus \
chromium curl
apt remove -y pidgin sgt-launcher sgt-puzzles gnome-sudoku gnome-mines xfburn onboard mousepad
apt autoremove
# set wallpaper
wget --output-document=/usr/share/backgrounds/wallpaper1.png https://i.imgur.com/kfHKnjt.png
wget --output-document=/usr/share/backgrounds/wallpaper2.jpg https://i.imgur.com/035woPC.jpg
xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor0/image-path --set /usr/share/backgrounds/wallpaper1.png
# set gtk theme
xfconf-query -c xsettings -p /Net/ThemeName -s "Numix"
# set terminal settings
wget --output-document=/home/${username}/.Xresources \
https://raw.githubusercontent.com/11philip22/config-./master/.Xresources
mkdir -pv /home/${username}/.urxvt/ext
wget --output-document=/home/${username}/.urxvt/ext/resize-font \
https://raw.githubusercontent.com/simmel/urxvt-resize-font/master/resize-font
echo "URxvt.geometry: 150x40" >> /home/${username}/.Xresources
# set ranger settings
mkdir -pv /home/${username}/.config/ranger
svn checkout https://github.com/11philip22/config-./trunk/.config/ranger /home/${username}/.config/ranger
# download scripts
mkdir -pv /home/${username}/scripts
git clone git@github.com:11philip22/scripts.git /home/${username}/scripts
chown -R ${username}:${username} /home/${username}/scripts
bash /home/${username}/scripts/deploy-scripts.sh
# fix zsh
sh -c "$(wget -O- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
ln -s /home/${username}/scripts/zshrc /home/${username}/.zshrc
chown -R ${username}:${username} /home/${username}/.zshrc
wget --output-document=/home/${username}/.oh-my-zsh/themes/junkfood.zsh-theme \
https://gist.githubusercontent.com/11philip22/60b14d36d923a0e458e060179c5ccfd8/raw/d7f06cee82eff94f55d719f25b3c9ddf1f5c8f8f/junkfood.zsh-theme
rm -rf /home/${username}/.oh-my-zsh/.git
# install stack
echo 'deb http://mirror.transip.net/stack/software/deb/Ubuntu_18.04/ ./' | sudo tee /etc/apt/sources.list.d/stack-client.list
wget -O - https://mirror.transip.net/stack/release.key | sudo apt-key add -
sudo apt-get update
apt-get install stack-client
# fix auto updates
sed 'APT::Periodic::Update-Package-Lists "1";/APT::Periodic::Update-Package-Lists "0";/' /etc/apt/apt.conf.d/20auto-upgrades
sed 'APT::Periodic::Unattended-Upgrade "1";/APT::Periodic::Unattended-Upgrade "0";/' /etc/apt/apt.conf.d/20auto-upgrades
# fix vim
sed 's/Exec=vim/Exec=urxvt -e vim/' /usr/share/applications/vim.desktop
sed 's/Terminal=true/Terminal=false/' /usr/share/applications/vim.desktop
# fix screen tearing and locks screen
mkdir -p /etc/X11/xorg.conf.d/
touch /etc/X11/xorg.conf.d/20-intel.conf
cat <<EOF > /etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "TearFree" "true"
EndSection
EOF
# set keybindings
wget --output-document=/home/${username}/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml \
https://gist.githubusercontent.com/11philip22/f29f3c074302f4c1e8994887b4b96b21/raw/0eda1a40d6e699f70cbf0aa3e19ee83ccabcc414/xfce4-keyboard-shortcuts.xml
# set default applications
echo "WebBrowser=chromium-browser" > /home/${username}/.config/xfce4/helpers.rc
echo "TerminalEmulator=urxvt" >> /home/${username}/.config/xfce4/helpers.rc
# install qemu/kvm
apt-get -y install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
adduser ${username} libvirt
# install citrix
wget --output-document=/tmp/citrix.deb \
https://downloads.citrix.com/14822/icaclientWeb_13.10.0.20_amd64.deb?__gda__=1565340535_8a441281b695e09f7a32742b0465593e
dpkg -i /tmp/citrix.deb
# install docker
apt-get update
apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
apt-key fingerprint 0EBFCD88
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io
groupadd docker
usermod -aG docker ${username}
# fix bluetooth audio
# https://freedompenguin.com/articles/how-to/ubuntu-bluetooth-headphones-fix/
# make bakups
cp /etc/bluetooth/input.conf /etc/bluetooth/input.conf.bak
cp /usr/bin/start-pulseaudio-x11 /usr/bin/start-pulseaudio-x11.bak
cp /etc/bluetooth/main.conf /etc/bluetooth/main.conf.bak
cp /etc/pulse/default.pa /etc/pulse/default.pa.bak
#download config files
wget --output-document=/etc/bluetooth/input.conf \
https://pastebin.com/raw/nzzTQCUT
wget --output-document=/usr/bin/start-pulseaudio-x11 \
https://pastebin.com/raw/TSkxbQh6
wget --output-document=/etc/bluetooth/main.conf \
https://pastebin.com/raw/CSH9dtVp
wget --output-document=/etc/pulse/default.pa \
https://pastebin.com/raw/q1jB7qDs
echo "# added by me: headset fix" >> /etc/modprobe.d/alsa-base.conf
echo "options snd-hda-intel model=generic" >> /etc/modprobe.d/alsa-base.conf
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-keyboard-shortcuts" version="1.0">
<property name="commands" type="empty">
<property name="default" type="empty">
<property name="&lt;Alt&gt;F1" type="empty"/>
<property name="&lt;Alt&gt;F2" type="empty">
<property name="startup-notify" type="empty"/>
</property>
<property name="&lt;Alt&gt;F3" type="empty">
<property name="startup-notify" type="empty"/>
</property>
<property name="&lt;Primary&gt;&lt;Alt&gt;Delete" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;l" type="empty"/>
<property name="XF86Display" type="empty"/>
<property name="&lt;Super&gt;p" type="empty"/>
<property name="&lt;Primary&gt;Escape" type="empty"/>
<property name="XF86WWW" type="empty"/>
<property name="XF86Mail" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Escape" type="empty"/>
<property name="Print" type="empty"/>
<property name="&lt;Alt&gt;Print" type="empty"/>
<property name="&lt;Shift&gt;Print" type="empty"/>
<property name="XF86HomePage" type="empty"/>
<property name="&lt;Super&gt;w" type="empty"/>
<property name="&lt;Super&gt;m" type="empty"/>
<property name="XF86Explorer" type="empty"/>
<property name="&lt;Super&gt;f" type="empty"/>
<property name="&lt;Super&gt;F1" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;t" type="empty"/>
<property name="&lt;Super&gt;t" type="empty"/>
<property name="&lt;Super&gt;r" type="empty"/>
<property name="&lt;Super&gt;e" type="empty"/>
<property name="XF86Calculator" type="empty"/>
<property name="XF86Music" type="empty"/>
<property name="&lt;Super&gt;1" type="empty"/>
<property name="XF86Messenger" type="empty"/>
<property name="&lt;Super&gt;2" type="empty"/>
<property name="&lt;Super&gt;3" type="empty"/>
<property name="&lt;Super&gt;4" type="empty"/>
</property>
<property name="custom" type="empty">
<property name="&lt;Alt&gt;F3" type="empty">
<property name="startup-notify" type="bool" value="true"/>
</property>
<property name="&lt;Alt&gt;F2" type="empty">
<property name="startup-notify" type="bool" value="true"/>
</property>
<property name="override" type="bool" value="true"/>
<property name="&lt;Alt&gt;Return" type="string" value="exo-open --launch TerminalEmulator"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;d" type="string" value="exo-open --launch FileManager"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;m" type="string" value="exo-open --launch MailReader"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;w" type="string" value="exo-open --launch WebBrowser"/>
<property name="&lt;Alt&gt;d" type="string" value="xfrun4">
<property name="startup-notify" type="bool" value="true"/>
</property>
<property name="&lt;Shift&gt;&lt;Alt&gt;c" type="string" value="xflock4"/>
<property name="Print" type="string" value="xfce4-screenshooter -r"/>
<property name="Super_L" type="string" value="xfce4-popup-whiskermenu"/>
<property name="&lt;Alt&gt;p" type="string" value="xfce4-display-settings --minimal"/>
</property>
</property>
<property name="xfwm4" type="empty">
<property name="default" type="empty">
<property name="&lt;Alt&gt;Insert" type="empty"/>
<property name="Escape" type="empty"/>
<property name="Left" type="empty"/>
<property name="Right" type="empty"/>
<property name="Up" type="empty"/>
<property name="Down" type="empty"/>
<property name="&lt;Alt&gt;Tab" type="empty"/>
<property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="empty"/>
<property name="&lt;Alt&gt;Delete" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="empty"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Down" type="empty"/>
<property name="&lt;Alt&gt;F4" type="empty"/>
<property name="&lt;Alt&gt;F6" type="empty"/>
<property name="&lt;Alt&gt;F7" type="empty"/>
<property name="&lt;Alt&gt;F8" type="empty"/>
<property name="&lt;Alt&gt;F9" type="empty"/>
<property name="&lt;Alt&gt;F10" type="empty"/>
<property name="&lt;Alt&gt;F11" type="empty"/>
<property name="&lt;Alt&gt;F12" type="empty"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;End" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Home" type="empty"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="empty"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Up" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_1" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_2" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_3" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_6" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_7" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_8" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_9" type="empty"/>
<property name="&lt;Alt&gt;space" type="empty"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Up" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Right" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;d" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="empty"/>
<property name="&lt;Super&gt;Tab" type="empty"/>
<property name="&lt;Primary&gt;F1" type="empty"/>
<property name="&lt;Primary&gt;F2" type="empty"/>
<property name="&lt;Primary&gt;F3" type="empty"/>
<property name="&lt;Primary&gt;F4" type="empty"/>
<property name="&lt;Primary&gt;F5" type="empty"/>
<property name="&lt;Primary&gt;F6" type="empty"/>
<property name="&lt;Primary&gt;F7" type="empty"/>
<property name="&lt;Primary&gt;F8" type="empty"/>
<property name="&lt;Primary&gt;F9" type="empty"/>
<property name="&lt;Primary&gt;F10" type="empty"/>
<property name="&lt;Primary&gt;F11" type="empty"/>
<property name="&lt;Primary&gt;F12" type="empty"/>
<property name="&lt;Alt&gt;F5" type="empty"/>
<property name="&lt;Super&gt;KP_1" type="empty"/>
<property name="&lt;Super&gt;Down" type="empty"/>
<property name="&lt;Super&gt;KP_3" type="empty"/>
<property name="&lt;Super&gt;Left" type="empty"/>
<property name="&lt;Super&gt;Right" type="empty"/>
<property name="&lt;Super&gt;KP_7" type="empty"/>
<property name="&lt;Super&gt;Up" type="empty"/>
<property name="&lt;Super&gt;KP_9" type="empty"/>
</property>
<property name="custom" type="empty">
<property name="&lt;Alt&gt;Insert" type="string" value="add_workspace_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_3" type="string" value="move_window_workspace_3_key"/>
<property name="&lt;Primary&gt;F2" type="string" value="workspace_2_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="string" value="down_workspace_key"/>
<property name="&lt;Super&gt;Down" type="string" value="tile_down_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_9" type="string" value="move_window_workspace_9_key"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="string" value="move_window_left_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;End" type="string" value="move_window_next_workspace_key"/>
<property name="&lt;Primary&gt;F8" type="string" value="workspace_8_key"/>
<property name="&lt;Primary&gt;F10" type="string" value="workspace_10_key"/>
<property name="Right" type="string" value="right_key"/>
<property name="Down" type="string" value="down_key"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Down" type="string" value="lower_window_key"/>
<property name="&lt;Super&gt;Right" type="string" value="tile_right_key"/>
<property name="&lt;Primary&gt;F9" type="string" value="workspace_9_key"/>
<property name="&lt;Alt&gt;Tab" type="string" value="cycle_windows_key"/>
<property name="Left" type="string" value="left_key"/>
<property name="&lt;Super&gt;Up" type="string" value="tile_up_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Right" type="string" value="right_workspace_key"/>
<property name="&lt;Primary&gt;F11" type="string" value="workspace_11_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="string" value="move_window_workspace_5_key"/>
<property name="&lt;Primary&gt;F6" type="string" value="workspace_6_key"/>
<property name="&lt;Alt&gt;Delete" type="string" value="del_workspace_key"/>
<property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/>
<property name="&lt;Super&gt;KP_7" type="string" value="tile_up_left_key"/>
<property name="&lt;Super&gt;Left" type="string" value="tile_left_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;d" type="string" value="show_desktop_key"/>
<property name="&lt;Primary&gt;F1" type="string" value="workspace_1_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="string" value="move_window_workspace_4_key"/>
<property name="&lt;Primary&gt;F12" type="string" value="workspace_12_key"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="string" value="move_window_right_key"/>
<property name="Up" type="string" value="up_key"/>
<property name="&lt;Primary&gt;F4" type="string" value="workspace_4_key"/>
<property name="&lt;Alt&gt;F11" type="string" value="fullscreen_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_6" type="string" value="move_window_workspace_6_key"/>
<property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="string" value="cycle_reverse_windows_key"/>
<property name="Escape" type="string" value="cancel_key"/>
<property name="&lt;Alt&gt;space" type="string" value="popup_menu_key"/>
<property name="&lt;Super&gt;KP_1" type="string" value="tile_down_left_key"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Up" type="string" value="raise_window_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_1" type="string" value="move_window_workspace_1_key"/>
<property name="&lt;Alt&gt;F12" type="string" value="above_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_7" type="string" value="move_window_workspace_7_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Home" type="string" value="move_window_prev_workspace_key"/>
<property name="&lt;Super&gt;KP_9" type="string" value="tile_up_right_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_2" type="string" value="move_window_workspace_2_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="string" value="left_workspace_key"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Up" type="string" value="move_window_up_key"/>
<property name="&lt;Alt&gt;F8" type="string" value="stick_window_key"/>
<property name="&lt;Primary&gt;F5" type="string" value="workspace_5_key"/>
<property name="&lt;Primary&gt;F7" type="string" value="workspace_7_key"/>
<property name="&lt;Primary&gt;F3" type="string" value="workspace_3_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_8" type="string" value="move_window_workspace_8_key"/>
<property name="&lt;Super&gt;KP_3" type="string" value="tile_down_right_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="string" value="up_workspace_key"/>
<property name="override" type="bool" value="true"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;q" type="string" value="close_window_key"/>
<property name="&lt;Alt&gt;f" type="string" value="maximize_window_key"/>
<property name="&lt;Alt&gt;v" type="string" value="maximize_vert_key"/>
<property name="&lt;Alt&gt;h" type="string" value="maximize_horiz_key"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;h" type="string" value="hide_window_key"/>
</property>
</property>
<property name="providers" type="array">
<value type="string" value="commands"/>
<value type="string" value="xfwm4"/>
</property>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment