Last active
September 10, 2022 01:10
-
-
Save Zren/d39728991f854c0a5a6a7f7b70d4444a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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