Last active
October 24, 2024 01:59
-
-
Save ivanstepanovftw/4b7fb28d9eaaa72f6d3deb287c982e61 to your computer and use it in GitHub Desktop.
## My opinioned Fedora post-install setup
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/env bash | |
# | |
# List GNOME settings | |
# | |
enumerate_dconf() { | |
local path=$1 | |
local children | |
local child | |
children=$(dconf list "$path" | sort) | |
for child in $children; do | |
if [[ $child == */ ]]; then | |
enumerate_dconf "$path$child" | |
else | |
local value | |
value="$(dconf read "$path$child")" | |
echo "dconf write \"$path$child\" '$value'" | |
fi | |
done | |
} | |
root_path="/" | |
enumerate_dconf "$root_path" |
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/env bash | |
# | |
# List GNOME shortcuts | |
# | |
for schema in $(gsettings list-schemas | sort); do | |
for key in $(gsettings list-keys $schema | sort); do | |
value="$(gsettings get $schema $key)" | |
range="$(gsettings range $schema $key | tr "\n" "\\n")" | |
echo "gsettings set $schema $key \"$value\" # $range" | |
done | |
done |
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
sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm | |
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm | |
sudo dnf update | |
to_install=( | |
discord | |
telegram-desktop | |
obs-studio v4l2loopback kmod-v4l2loopback | |
keepassxc | |
binwalk | |
p7zip | |
xprop # for Unite | |
wl-clipboard | |
zsh | |
llvm rust clang mold | |
aria2c | |
nodejs | |
jetbrains-mono-nl-fonts | |
git-lfs | |
audacity | |
ripgrep | |
python3-devel python3-pip | |
wireshark | |
moby-engine # Docker | |
cmake | |
perl | |
) | |
sudo dnf install $to_install | |
sudo usermod -aG docker "$(whoami)" | |
sudo usermod -aG wireshark "$(whoami)" | |
# Python | |
python -mensurepip | |
python -mpip install torch transformers sentence-transformers torchaudio jupyter notebook | |
# ZSH | |
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" | |
sudo usermod --shell $(which zsh) "$(whoami)" | |
# Rust | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh | |
# VSCode | |
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc | |
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo' | |
dnf check-update | |
sudo dnf install code | |
# Edge | |
sudo dnf upgrade --refresh | |
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc | |
sudo dnf config-manager --add-repo https://packages.microsoft.com/yumrepos/edge | |
sudo dnf install microsoft-edge-stable | |
# Mouse and touchpad settings | |
gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click "true" | |
# Touchpad fast scrolling fix (not working in Fedora?) | |
cat <<'EOF' | sudo tee /etc/libinput.conf | |
scroll-factor=0.4 | |
EOF | |
# Make Caps Lock toggle keyboard layout | |
dconf write /org/gnome/desktop/input-sources/xkb-options "['grp:caps_toggle']" | |
# IDEs conflicting keys | |
gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-down "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-left "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-right "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-up "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-down "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-last "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-left "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-right "['']" | |
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-up "['']" | |
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left "['']" # Navigate: Back | |
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-right "['']" # Navigate: Forward | |
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-up "['']" # Next change | |
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-down "['']" # Previous change | |
# Alt+Tab switches between windows, not apps | |
gsettings set org.gnome.desktop.wm.keybindings switch-applications "['<Super>Tab']" | |
gsettings set org.gnome.desktop.wm.keybindings switch-applications-backward "['<Shift><Super>Tab']" | |
gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab']" | |
gsettings set org.gnome.desktop.wm.keybindings switch-windows-backward "['<Shift><Alt>Tab']" | |
# Auto raise windows, disables "Window is ready" notification | |
gsettings set org.gnome.desktop.wm.preferences auto-raise 'true' | |
# Remove Super+V conflicting key with clipboard history | |
gsettings set org.gnome.shell.keybindings toggle-message-tray "['<Super>m']" | |
# Next change (alt+f5) conflict in vscode | |
gsettings set org.gnome.desktop.wm.keybindings unmaximize "['<Super>Down']" | |
gsettings set org.gnome.desktop.wm.keybindings cycle-group "['']" # and alt+f6 | |
# Windows-like screenshots | |
gsettings set org.gnome.shell.keybindings screenshot "['Print']" | |
gsettings set org.gnome.shell.keybindings screenshot-window "['<Alt>Print']" | |
gsettings set org.gnome.shell.keybindings show-screenshot-ui "['<Shift><Super>s']" | |
# Show desktop | |
gsettings set org.gnome.desktop.wm.keybindings show-desktop "['<Super>d']" | |
# Title bar buttons | |
gsettings set org.gnome.desktop.wm.preferences button-layout "appmenu:minimize,maximize,close" | |
# Dash to dock | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/animation-time" '0.150' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/apply-custom-theme" 'false' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/autohide" 'true' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/background-color" "'rgb(222,221,218)'" | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/background-opacity" '0.90' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/click-action" "'minimize-or-previews'" | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/custom-background-color" 'true' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/customize-alphas" 'true' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/custom-theme-customize-running-dots" 'true' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/custom-theme-running-dots-border-color" "'rgb(255,255,255)'" | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/custom-theme-running-dots-color" "'rgb(0,0,0)'" | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/custom-theme-shrink" 'true' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/dash-max-icon-size" '36' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/disable-overview-on-startup" 'false' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/dock-position" "'LEFT'" | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/extend-height" 'false' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/height-fraction" '0.90' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/hide-delay" '0.100' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/icon-size-fixed" 'true' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/intellihide" 'true' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/intellihide-mode" "'FOCUS_APPLICATION_WINDOWS'" | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/running-indicator-dominant-color" 'false' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/running-indicator-style" "'DOTS'" | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/scroll-action" "'switch-workspace'" | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/scroll-to-focused-application" 'true' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/show-delay" '0.25' | |
dconf write "/org/gnome/shell/extensions/dash-to-dock/transparency-mode" "'FIXED'" | |
cat <<'EOF' | sudo tee ~/gsettings_enum.sh && sudo chmod 755 ~/gsettings_enum.sh | |
#!/usr/bin/env bash | |
# | |
# List GNOME shortcuts | |
# | |
for schema in $(gsettings list-schemas | sort); do | |
for key in $(gsettings list-keys $schema | sort); do | |
value="$(gsettings get $schema $key)" | |
range="$(gsettings range $schema $key | tr "\n" "\\n")" | |
echo "gsettings set $schema $key \"$value\" # $range" | |
done | |
done | |
EOF | |
sudo usermod --shell $(which zsh) "$(whoami)" | |
cat <<'EOF' > ~/.zshenv | |
setopt interactive_comments | |
alias ll='ls -la' | |
alias l='ls -l' | |
alias cgrep='grep --color=always' | |
export VISUAL=vim | |
export EDITOR="$VISUAL" | |
source "$HOME/.cargo/env" | |
EOF | |
cat <<'EOF' | sudo tee /etc/sysctl.d/100-ivanstepanovftw.conf | |
kernel.sysrq = 1 | |
kernel.yama.ptrace_scope = 0 | |
vm.swappiness = 200 | |
vm.watermark_boost_factor = 0 | |
vm.watermark_scale_factor = 125 | |
vm.vfs_cache_pressure = 100 | |
vm.page-cluster = 0 | |
vm.dirty_ratio = 0 | |
vm.dirty_bytes = 268435456 | |
vm.dirty_background_ratio = 0 | |
vm.dirty_background_bytes = 134217728 | |
EOF | |
sudo sysctl -p /etc/sysctl.d/100-ivanstepanovftw.conf | |
cat <<'EOF' | sudo tee -a /etc/default/grub | |
GRUB_GFXMODE=640x480 | |
GRUB_GFXPAYLOAD=keep | |
GRUB_TERMINAL=gfxterm | |
EOF | |
sudo grub2-mkconfig -o /boot/grub2/grub.cfg | |
cat <<'EOF' | sudo tee /usr/lib/systemd/zram-generator.conf | |
zram-size = ram*1.5 | |
compression-algorithm = lz4 | |
writeback-device = /dev/disk/by-uuid/16babb9a-18c6-4651-b36f-38f3c79632de | |
EOF | |
sudo systemctl daemon-reload | |
sudo systemctl reboot |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Wayland
https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/