Skip to content

Instantly share code, notes, and snippets.

@Zren
Last active September 10, 2022 01:10
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 Zren/d39728991f854c0a5a6a7f7b70d4444a to your computer and use it in GitHub Desktop.
Save Zren/d39728991f854c0a5a6a7f7b70d4444a to your computer and use it in GitHub Desktop.
#!/usr/bin/sh
# https://gist.github.com/Zren/d39728991f854c0a5a6a7f7b70d4444a
# Updated: 2022-01-24
### Media Codecs (MP4 / Netflix DRM)
# https://en.opensuse.org/Additional_package_repositories
sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/Essentials packman-essentials
sudo zypper dup --from packman-essentials --allow-vendor-change
### Zren's Apps
sudo zypper install kdeconnect-kde # Phone Pairing
sudo zypper install strawberry # Clementine Music Player Qt5 Port
sudo zypper install mpv # Video Player
sudo zypper install yakuake # Drop Down Terminal
sudo zypper install gimp # Image Editor
sudo zypper install inkscape # SVG Editor
sudo zypper install zsh # Manjaro's default terminal
sudo zypper install libnotify-tools # notify-send (Dota 2 Notifications)
sudo zypper install mlocate # File Search (locate)
sudo zypper install rofi # DMenu
sudo zypper install htop # Terminal Process Monitor
sudo zypper install virtualbox # Virtual Machine
sudo zypper install audacity # Music Recording / MP3 Editor
sudo zypper install kdenlive # Video Editor
### Dev Apps
sudo zypper install sqliteman sqlite3
sudo zypper install git
sudo zypper install cmake
sudo zypper install zip
### Dev Dependencies
### zypper info --requires --recommends --suggests patterns-devel-base-devel_basis
# Requires: glibc-devel gcc zlib-devel make ncurses-devel bison binutils libtool patch m4 autoconf automake flex gettext-tools gdbm-devel cpp makeinfo
# Recommends: libstdc++-devel gcc-c++ git subversion gmp-devel patch openldap2-devel pam-devel pkg-config bin86 fdupes binutils-devel gperf libaio-devel libosip2-devel sparse e2fsprogs-devel gcc-info db-devel glibc-info libapparmor-devel libgcj-devel
# Suggests: gcc-fortran build osc mpfr-devel oprofile icecream ccache audit-devel coccinelle gcc-objc smatch subversion-doc nasm wiggle libgssglue-devel
sudo zypper install patterns-devel-base-devel_basis
### Vala
# https://github.com/elementary/metapackages/blob/master/elementary-sdk-arm64
sudo zypper install vala valadoc meson
### kdesrc-build
mkdir -p ~/kde/src
cd ~/kde/src
git clone https://invent.kde.org/sdk/kdesrc-build.git
cd ./kdesrc-build
# kdesrc-build --initial-setup
# https://invent.kde.org/sdk/kdesrc-build/-/blob/master/modules/ksb/FirstRun.pm#L470
# Note that installing packages with `kdesrc-build --initial-setup` does not work in Tumbleweed
# https://bugs.kde.org/show_bug.cgi?id=447601
sudo zypper install perl-YAML-PP
### KDE Dev
sudo zypper install plasma5-sdk
# https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source/Install_the_dependencies#openSUSE_Tumbleweed
sudo zypper install extra-cmake-modules
## Qt5 headers/cmake
sudo zypper install libqt5-qtbase-devel # libQt5Core-devel libQt5Widgets-devel libQt5DBus-devel libqt5-qtx11extras-devel libqt5-qtwayland-devel ...
sudo zypper install libQt5Core-private-headers-devel
sudo zypper install libqt5-qttools-devel # OR pkgconfig(Qt5UiPlugin) [for kwidgetsaddons] libclang13 libQt5Designer5 libQt5DesignerComponents5 libQt5Help5 libqt5-linguist libqt5-linguist-devel libqt5-qttools libqt5-qttools-devel libqt5-qttools-doc libqt5-qttools-qhelpgenerator
sudo zypper install libqt5-qtsvg-devel # OR pkgconfig(Qt5Svg) [for kiconthemes]
sudo zypper install libQt5QuickControls2-devel # OR pkgconfig(Qt5QuickControls2) [for kirigami]
sudo zypper install libqt5-qtscript-devel # OR pkgconfig(Qt5Script) [for kross] libQt5Script5
sudo zypper install libqt5-qtwayland-private-headers-devel # [for layer-shell-qt]
sudo zypper install libqt5-qtsensors-devel # OR pkgconfig(Qt5Sensors) [for kscreen]
sudo zypper install libQt5QuickTemplates2-devel # OR pkgconfig(Qt5QuickTemplates2) [for qqc2-breeze-style]
## Qt6 headers/cmake
# sudo zypper install qt6-base-devel
## KDE headers/cmake
sudo zypper install kwin5-devel plasma5-workspace-devel plasma-framework-devel kconfigwidgets-devel kguiaddons-devel
sudo zypper install kio-devel # kbookmarks-devel kcompletion-devel kitemviews-devel kjobwidgets-devel kxmlgui-devel solid-devel
sudo zypper install karchive-devel # OR cmake(KF5Archive) [for kio-extras]
## Misc headers/cmake
sudo zypper install 'pkgconfig(gbm)' # [for kwin] libgbm-devel
sudo zypper install 'pkgconfig(wayland-protocols)' # [for kwayland] wayland-protocols-devel
sudo zypper install 'pkgconfig(xcb-cursor)' 'pkgconfig(xcb-icccm)' 'pkgconfig(xcb-image)' # [for kwin] xcb-util-cursor-devel xcb-util-image-devel xcb-util-renderutil-devel xcb-util-wm-devel
sudo zypper install 'pkgconfig(xcb-util)' 'pkgconfig(xcb-keysyms)' # [for kwindowsystem] xcb-util-devel xcb-util-keysyms-devel
sudo zypper install 'pkgconfig(xkbfile)' # [for plasma-desktop] libxkbfile-devel
sudo zypper install clang # [for networkmanager-qt] clang-doc clang13 clang13-doc libLTO13
sudo zypper install giflib-devel # [for khtml]
sudo zypper install gperf # [for kcodecs]
sudo zypper install libattr-devel # OR pkgconfig(libattr) [for kfilemetadata]
sudo zypper install libboost_headers-devel # [for kactivities]
sudo zypper install libjpeg8-devel # [for khtml] libturbojpeg0 [libjpeg-devel TRIES TO INSTALL libjpeg62-devel WHEN khtml installs libjpeg8]
sudo zypper install libnl3-devel # [for libksysguard]
sudo zypper install libopenssl-devel # OR pkgconfig(openssl) [for kdelibs4support] libopenssl-1_1-devel openssl
sudo zypper install libpcap-devel # OR pkgconfig(libpcap) [for libksysguard]
sudo zypper install libpng16-devel # [for khtml] libpng16-compat-devel
sudo zypper install libsensors4-devel # [for libksysguard]
sudo zypper install libSM-devel # OR pkgconfig(sm) [for kdelibs4support] libICE-devel
sudo zypper install libssh-devel # [for kio-extras]
sudo zypper install libxslt-devel # [for kdoctools] libgcrypt-devel, libgpg-error-devel, libxml2-devel, libxslt-devel, ncurses-devel, readline-devel, tack, xz-devel
sudo zypper install lmdb-devel # [for baloo]
sudo zypper install NetworkManager-devel # OR pkgconfig(libnm) [for networkmanager-qt]
sudo zypper install polkit-devel # [for polkit-qt-1] typelib-1_0-Polkit-1_0
sudo zypper install qrencode-devel # OR pkgconfig(libqrencode) [for prison]
sudo zypper install libtag-devel # [for kio-extras] libtag_c0
sudo zypper install libmtp-devel # [for kio-extras] libusb-1_0-devel
sudo zypper install libzstd-devel # [for karchive]
sudo zypper install libqalculate-devel # [for plasma-workspace] mpfr-devel
sudo zypper install 'pkgconfig(xft)' # [for plasma-workspace] libXft-devel
sudo zypper install 'pkgconfig(ModemManager)' # [for modemmanager-qt] ModemManager-devel, typelib-1_0-ModemManager-1_0
sudo zypper install sassc python3-cairo # [for breeze-gtk]
sudo zypper install 'pkgconfig(libical)' # [for kcalendarcore] libical3, libical-devel, libicu-devel
sudo zypper install 'pkgconfig(gtk+-2.0)' # [for oxygen-gtk] gtk2-devel, typelib-1_0-Gtk-2_0
sudo zypper install 'pkgconfig(gtk+-3.0)' # [for kde-gtk-config] atk-devel at-spi2-atk-devel cairo-devel fribidi-devel gdk-pixbuf-devel gettext-its-gtk4 graphite2-devel gtk3-devel harfbuzz-devel libdatrie-devel libpixman-1-0-devel libthai-devel libXcomposite-devel libXcursor-devel libXdamage-devel libXinerama-devel pango-devel typelib-1_0-Atk-1_0 typelib-1_0-GdkPixdata-2_0 typelib-1_0-Gtk-3_0
sudo zypper install 'pkgconfig(xxf86vm)' # [for kgamma5] libXxf86vm-devel
sudo zypper install libpulse-devel libcanberra-devel # [for plasma-pa]
## kdesrc-build --initial-setup
## Note: https://invent.kde.org/sdk/kdesrc-build/-/blob/master/modules/ksb/FirstRun.pm#L470
## Note: This list of packages should be used as a guide only since it might be out of date.
# @@ pkg/opensuse/unknown
# cmake
# clang
# docbook-xsl-stylesheets
# docbook_4
# flex bison
# gettext-runtime
# gettext-tools
# giflib-devel
# git
# gperf
# intltool
# libboost_headers-devel
# libdbusmenu-qt5-devel
# libqt5-qtbase-common-devel
# libqt5-qtbase-private-headers-devel
# libqt5-qtimageformats-devel
# libQt5Core-private-headers-devel
# libQt5DesignerComponents5
# libxml2-tools
# lmdb-devel
# make
# perl
# perl(IO::Socket::SSL)
# perl(JSON)
# perl(URI)
# perl(YAML::LibYAML)
# pkgconfig(libattr)
# pkgconfig(libical)
# pkgconfig(libnm)
# pkgconfig(libpng)
# pkgconfig(libqrencode)
# pkgconfig(libudev)
# pkgconfig(libxml-2.0)
# pkgconfig(libxslt)
# pkgconfig(ModemManager)
# pkgconfig(openssl)
# pkgconfig(Qt5Core)
# pkgconfig(Qt5Multimedia)
# pkgconfig(Qt5Qml)
# pkgconfig(Qt5QuickControls2)
# pkgconfig(Qt5Script)
# pkgconfig(Qt5Svg)
# pkgconfig(Qt5UiTools)
# pkgconfig(Qt5WaylandClient)
# pkgconfig(Qt5WebKit)
# pkgconfig(Qt5WebKitWidgets)
# pkgconfig(Qt5X11Extras)
# pkgconfig(Qt5XmlPatterns)
# pkgconfig(sm)
# pkgconfig(wayland-protocols)
# pkgconfig(wayland-server)
# pkgconfig(xcb-cursor)
# pkgconfig(xcb-ewmh)
# pkgconfig(xcb-keysyms)
# pkgconfig(xcb-util)
# pkgconfig(xrender)
# polkit-devel
# shared-mime-info
# libXfixes-devel
# kde.org Websites
sudo zypper install go # GoLang
sudo zypper install hugo # GoLang Static Website Generator
### Fonts
sudo zypper install google-roboto-mono-fonts
sudo zypper install noto-mono-fonts
sudo zypper install ubuntu-fonts
# TODO JetBrains Mono https://www.jetbrains.com/lp/mono/
# TODO Find out why "Right Speech Bubble" emoji does not show up in a Symbolic icon. https://emojipedia.org/right-speech-bubble/
### SystemSettings
# Switch from Icon View to KDE default Sidebar/MillerColumn view
kwriteconfig5 --file ~/.config/systemsettingsrc --group Main --key ActiveView systemsettings_sidebar_mode
kwriteconfig5 --file ~/.config/systemsettingsrc --group systemsettings_sidebar_mode --key HighlightNonDefaultSettings true
### YaST
# Open .rpm files with YaST instead of Discover
xdg-mime default org.opensuse.yast.Packager.desktop application/x-rpm
xdg-mime default org.opensuse.yast.Packager.desktop application/x-source-rpm
### Discover
# sudo zypper remove discover
# TODO: Remove discover from taskmanager widget pinned apps
### Flatpak
# https://flatpak.org/setup/openSUSE/
# NOT TESTED: Add FlatHub.org App Store
# flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
### Hostname
# This is the name KDE Connect references this computer as.
# https://www.reddit.com/r/openSUSE/comments/ruwvb0/etchosts_missing_hostname_in_tw/
# TODO: hostnamectl hostname zren-desktop
### SublimeText
# https://www.sublimetext.com/docs/linux_repositories.html#zypper
sudo rpm -v --import https://download.sublimetext.com/sublimehq-rpm-pub.gpg
sudo zypper addrepo -g -f https://download.sublimetext.com/rpm/stable/x86_64/sublime-text.repo
sudo zypper install sublime-text
xdg-mime default sublime_text.desktop text/plain
xdg-mime default sublime_text.desktop text/markdown
# TODO: Add Sublime to directory right click > Open With
# kwriteconfig5 --file=~/.config/mimeapps.list --group "Added Associations" --key "inode/directory" "..."
### MPV
# Video File Associations
xdg-mime default mpv.desktop video/mp4
xdg-mime default mpv.desktop video/mpeg
xdg-mime default mpv.desktop video/ogg
xdg-mime default mpv.desktop video/quicktime
xdg-mime default mpv.desktop video/webm
xdg-mime default mpv.desktop video/x-flv
xdg-mime default mpv.desktop video/x-matroska
xdg-mime default mpv.desktop video/x-ms-wmv
xdg-mime default mpv.desktop video/x-msvideo
### Spectacle (Screenshots)
kwriteconfig5 --file=~/.config/spectaclerc --group "General" --key "showMagnifier" "true"
### Manjaro's zsh plugins
# TODO zsh-theme-powerlevel10k
### Manjaro's zsh config (/usr/share/zsh/manjaro-zsh-config)
# https://gitlab.manjaro.org/packages/community/manjaro-zsh-config/-/blob/master/PKGBUILD
# https://github.com/Chrysostomus/manjaro-zsh-config/blob/master/manjaro-zsh-config
# TODO Keybindings section (Ctrl+ArrowKeys navigation)
### Konsole
# TODO: Create new profile with zsh and make it default
### Add user bash scripts to PATH env var
echo "PATH=\"/home/chris/Scripts:\$PATH\"" >> ~/.bashrc
echo "PATH=\"/home/chris/Scripts:\$PATH\"" >> ~/.zshrc
# Map qdbus to qdbus-qt5 (OpenSUSE weirdness)
ln -s /usr/bin/qdbus-qt5 ~/Scripts/qdbus
### Yakuake
kwriteconfig5 --file ~/.config/yakuakerc --group Window --key DynamicTabTitles true
kwriteconfig5 --file ~/.config/yakuakerc --group Window --key KeepOpen false
kwriteconfig5 --file ~/.config/yakuakerc --group Window --key ShowSystrayIcon false
kwriteconfig5 --file ~/.config/yakuakerc --group Window --key Width 100
# Shortcuts: Bind Meta+` to Yakuake instead of F12
kwriteconfig5 --file ~/.config/kglobalshortcutsrc --group yakuake --key _k_friendly_name Yakuake
kwriteconfig5 --file ~/.config/kglobalshortcutsrc --group yakuake --key toggle-window-state "Meta+\`,F12,Open/Retract Yakuake"
killall kglobalaccel5; kglobalaccel5 > /dev/null & ; disown
# TODO: Select zsh Konsole profile
### Git
git config --global user.email "name@gmail.com"
git config --global user.name "First Last"
git config --global core.editor "nano"
# git lg
git config --global alias.lg "log --oneline --graph"
git config --global alias.lga "log --oneline --graph --all"
# git ff
git config --global alias.ff "pull --ff-only"
git config --global alias.ffm "pull --ff-only origin master"
# git clone kde:plasma/plasma-framework
git config --global "url.https://invent.kde.org/.insteadOf" "kde:"
git config --global "url.ssh://git@invent.kde.org/.pushInsteadOf" "kde:"
### Dolphin
kwriteconfig5 --file ~/.config/dolphinrc --group General --key ShowFullPath true
kwriteconfig5 --file ~/.config/dolphinrc --group General --key CloseActiveSplitView true
kwriteconfig5 --file ~/.config/dolphinrc --group General --key UseTabForSwitchingSplitView true
kwriteconfig5 --file ~/.config/dolphinrc --group General --key RememberOpenedTabs false
kwriteconfig5 --file ~/.config/dolphinrc --group General --key OpenExternallyCalledFolderInNewTab false
### KWin
# Quarter Tile hitbox 10% of screen height
kwriteconfig5 --file ~/.config/kwinrc --group Windows --key ElectricBorderCornerRatio 0.1
# AltTab
kwriteconfig5 --file ~/.config/kwinrc --group TabBox --key LayoutName thumbnail_grid
# Virtual Desktops
kwriteconfig5 --file ~/.config/kwinrc --group Desktops --key Rows 1
kwriteconfig5 --file ~/.config/kwinrc --group Desktops --key Number 5
qdbus org.kde.KWin /KWin reconfigure
# Shortcuts: Meta+Up/Down to Maximize/Minimize
kwriteconfig5 --file ~/.config/kglobalshortcutsrc --group kwin --key "Window Quick Tile Bottom" "none,Meta+Down,Quick Tile Window to the Bottom"
kwriteconfig5 --file ~/.config/kglobalshortcutsrc --group kwin --key "Window Quick Tile Top" "none,Meta+Up,Quick Tile Window to the Top"
kwriteconfig5 --file ~/.config/kglobalshortcutsrc --group kwin --key "Window Maximize" "Meta+PgUp Meta+Up,Meta+PgUp,Maximize Window"
kwriteconfig5 --file ~/.config/kglobalshortcutsrc --group kwin --key "Window Minimize" "Meta+PgDown Meta+Down,Meta+PgDown,Minimize Window"
# Shortcuts: Disable Ctrl+F1 to switch to desktop 1
kwriteconfig5 --file ~/.config/kglobalshortcutsrc --group kwin --key "Switch to Desktop 1" "none,Ctrl+F1,Switch to Desktop 1"
kwriteconfig5 --file ~/.config/kglobalshortcutsrc --group kwin --key "Switch to Desktop 2" "none,Ctrl+F2,Switch to Desktop 2"
kwriteconfig5 --file ~/.config/kglobalshortcutsrc --group kwin --key "Switch to Desktop 3" "none,Ctrl+F3,Switch to Desktop 3"
kwriteconfig5 --file ~/.config/kglobalshortcutsrc --group kwin --key "Switch to Desktop 4" "none,Ctrl+F4,Switch to Desktop 4"
# Shortcuts: Ctrl+Alt+Left/Right to switch to next/prev desktop
kwriteconfig5 --file ~/.config/kglobalshortcutsrc --group kwin --key "Switch to Next Desktop" "Ctrl+Alt+Right,none,Switch to Next Desktop"
kwriteconfig5 --file ~/.config/kglobalshortcutsrc --group kwin --key "Switch to Previous Desktop" "Ctrl+Alt+Left,none,Switch to Previous Desktop"
# Shortcuts: Meta+M to Show Desktop
kwriteconfig5 --file ~/.config/kglobalshortcutsrc --group kwin --key "Show Desktop" "Meta+D Meta+M,Meta+D,Show Desktop"
# Shortcuts: Restart kglobalaccel service
killall kglobalaccel5; kglobalaccel5 > /dev/null & ; disown
### Baloo (Search / File Indexer)
balooctl disable
balooctl purge
### MLocate (locate File Search)
# Scan for files without waiting for the scheduled service
sudo updatedb
### Strawberry
kwriteconfig5 --file ~/.config/strawberry/strawberry.conf --group Backend --key AutoCrossfadeEnabled false
kwriteconfig5 --file ~/.config/strawberry/strawberry.conf --group Backend --key CrossfadeEnabled false
kwriteconfig5 --file ~/.config/strawberry/strawberry.conf --group Playlist --key glow_effect false
kwriteconfig5 --file ~/.config/strawberry/strawberry.conf --group Behaviour --key doubleclick_addmode 1 # Append to the playlist
kwriteconfig5 --file ~/.config/strawberry/strawberry.conf --group Behaviour --key doubleclick_playmode 3 # Always start playing
kwriteconfig5 --file ~/.config/strawberry/strawberry.conf --group Behaviour --key doubleclick_playlist_addmode 1 # Change the currently playing song
kwriteconfig5 --file ~/.config/strawberry/strawberry.conf --group Behaviour --key menu_playmode 3 # Always start playing
kwriteconfig5 --file ~/.config/strawberry/strawberry.conf --group Behaviour --key showtrayicon true
kwriteconfig5 --file ~/.config/strawberry/strawberry.conf --group Behaviour --key keeprunning true
# mp3 File Association
xdg-mime default org.strawberrymusicplayer.strawberry.desktop audio/mpeg
### Plasma
# plasmasetconfig.py
# https://gist.github.com/Zren/764f17c26be4ea0e088f4a6a1871f528
git clone https://gist.github.com/Zren/764f17c26be4ea0e088f4a6a1871f528 plasmasetconfig
chmod +x ./plasmasetconfig/plasmasetconfig.py
sudo cp ./plasmasetconfig/plasmasetconfig.py /usr/local/bin/plasmasetconfig
rm -r ./plasmasetconfig
# Task Manager / Icon Tasks
plasmasetconfig org.kde.plasma.taskmanager General groupingStrategy 0 # Do Not Group
plasmasetconfig org.kde.plasma.taskmanager General separateLaunchers false
plasmasetconfig org.kde.plasma.taskmanager General middleClickAction 1 # Close
plasmasetconfig org.kde.plasma.taskmanager General indicateAudioStreams false
plasmasetconfig org.kde.plasma.icontasks General groupingStrategy 0 # Do Not Group
plasmasetconfig org.kde.plasma.icontasks General separateLaunchers false
plasmasetconfig org.kde.plasma.icontasks General middleClickAction 1 # Close
plasmasetconfig org.kde.plasma.icontasks General indicateAudioStreams false
# Digital Clock
plasmasetconfig org.kde.plasma.digitalclock Appearance dateFormat custom
plasmasetconfig org.kde.plasma.digitalclock Appearance customDateFormat "ddd d" # Sun 31
# Virtual Desktop Pager
plasmasetconfig org.kde.plasma.pager General showWindowIcons true
# System Tray
# TODO: Since this is a list, we need to append/remove elements from the list, so we should write a Plasma Script.
plasmasetconfig org.kde.plasma.private.systemtray General hiddenItems "org.kde.plasma.networkmanagement,org.kde.plasma.mediacontroller"
### Plasma Session
# TODO: Does not work for current session
# kwriteconfig5 --file ~/.config/ksmserverrc --group General --key confirmLogout false
# kwriteconfig5 --file ~/.config/ksmserverrc --group General --key loginMode emptySession
### KDE Connect
# https://en.opensuse.org/SDB:KDE_Connect
# NOT TESTED: Allow KDE Connect to pass the firewall
# sudo firewall-cmd --zone=public --permanent --add-service=kdeconnect-kde
# sudo firewall-cmd --reload
### VirtualBox
# https://en.opensuse.org/VirtualBox
# https://stackoverflow.com/questions/49434650/how-to-add-a-user-to-a-group-without-logout-login-bash-script
# NOT TESTED
# usermod -aG vboxusers `whoami`
# VirtualBox reqires a reboot for the current user's new group to be recongized.
### Firefox
# TODO: Kwin Rule > Firefox PictureInPicture > On All Desktops + Default Size of 560x315
#
# about:config
# http://kb.mozillazine.org/User.js_file
# Note: Must run after firefox has launched and made a profile
# NOT TESTED
if [ -f ~/.mozilla/firefox/profiles.ini ]; then
firefoxProfilePath=~/.mozilla/firefox/`kreadconfig5 --file ~/.mozilla/firefox/profiles.ini --group Profile0 --key Path`
if [ -d "$firefoxProfilePath" ]; then
firefoxUserJsPath="$firefoxProfilePath/user.js"
# Use KDE File Picker / Save Dialog
echo 'user_pref("widget.use-xdg-desktop-portal", "true");' >> "$firefoxUserJsPath"
# Remove TitleBar
echo 'user_pref("browser.tabs.inTitlebar", "1");' >> "$firefoxUserJsPath"
# Make MiddleClick will enter AutoScroll mode instead of Paste Clipboard
echo 'user_pref("general.autoScroll", "true");' >> "$firefoxUserJsPath"
# Disable Pocket
echo 'user_pref("extensions.pocket.enabled", "false");' >> "$firefoxUserJsPath"
# Disable Firefox Studies / Experiments
echo 'user_pref("app.shield.optoutstudies.enabled", "false");' >> "$firefoxUserJsPath"
# Open DevTools in a Window
echo 'user_pref("devtools.toolbox.host", "window");' >> "$firefoxUserJsPath"
# Disable Search Engine AutoComplete in AddressBar
echo 'user_pref("browser.search.suggest.enabled", "false");' >> "$firefoxUserJsPath"
echo 'user_pref("browser.urlbar.suggest.engines", "false");' >> "$firefoxUserJsPath"
# Hide Search Shortcuts ("Search With" ___ in AddressBar AutoComplete Footer)
echo 'user_pref("browser.urlbar.shortcuts.bookmark", "false");' >> "$firefoxUserJsPath"
echo 'user_pref("browser.urlbar.shortcuts.history", "false");' >> "$firefoxUserJsPath"
echo 'user_pref("browser.urlbar.shortcuts.tabs", "false");' >> "$firefoxUserJsPath"
echo 'user_pref("browser.search.hiddenOneOffs", "Google,Amazon.ca,Bing,DuckDuckGo,eBay,Wikipedia (en)");' >> "$firefoxUserJsPath"
# Homepage: about:home
echo 'user_pref("browser.startup.homepage", "about:home");' >> "$firefoxUserJsPath"
# Homepage > Web Search: off
echo 'user_pref("browser.newtabpage.activity-stream.showSearch", "false");' >> "$firefoxUserJsPath"
# Homepage > Shortcuts > Rows: 4
echo 'user_pref("browser.newtabpage.activity-stream.topSitesRows", "4");' >> "$firefoxUserJsPath"
# Homepage > Shortcuts > Sponsored: off
echo 'user_pref("browser.newtabpage.activity-stream.showSponsored", "false");' >> "$firefoxUserJsPath"
# Homepage > Recommended by Pocket: off
echo 'user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", "false");' >> "$firefoxUserJsPath"
echo 'user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", "false");' >> "$firefoxUserJsPath"
# Homepage > Recent Activity: off
echo 'user_pref("browser.newtabpage.activity-stream.feeds.section.highlights", "false");' >> "$firefoxUserJsPath"
# Homepage > Snippets: off
echo 'user_pref("browser.newtabpage.activity-stream.feeds.snippets", "false");' >> "$firefoxUserJsPath"
# Customize > Density: Compact
echo 'user_pref("browser.compactmode.show", "true");' >> "$firefoxUserJsPath"
echo 'user_pref("browser.uidensity", "1");' >> "$firefoxUserJsPath"
# Settings > General > Tabs > Ctrl+Tab Recently Used Order: off
echo 'user_pref("browser.ctrlTab.sortByRecentlyUsed", "false");' >> "$firefoxUserJsPath"
fi
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment