Skip to content

Latest commit

 

History

History
233 lines (205 loc) · 8.34 KB

README.md

File metadata and controls

233 lines (205 loc) · 8.34 KB

System Mindset

This repository stores and manages personal and system configurations for Fedora 40. It is based on a bare repository and inspired by Atlassian's article and DT's video. Some system configurations are inspired by devangshekhawat.

Setup

# change to home directory
cd $HOME
# create (temporary) directory for system_mindset
sm_dir=$HOME/.config/sm/
mkdir -p $sm_dir
# create (temporary) alias for system mindset
alias sm='/usr/bin/git --git-dir=${sm_dir}system_mindset/ --work-tree=$HOME'
# add Repository to .gitignore to prevent recursion problems and delete 
# previous added lines
sed -i '/system_mindset/d' .gitignore
echo ".config/sm # inserted by system_mindset" >> .gitignore
# clone system_mindset
git clone --bare [email protected]:dpelkmann/system_mindset.git ${sm_dir}system_mindset
# checkout bare repository. It would overwrite existing config files, therefore
# they will be backuped.
backup_dir=backup_$(date +%F_%T)
for file2backup in $(sm checkout 2>&1 | egrep "\s+\." | awk {'print $1'})
do
    echo "$file2backup"
    dest=$(dirname $file2backup)
    mkdir -p ${sm_dir}${backup_dir}/$dest/
    mv $file2backup ${sm_dir}${backup_dir}/$dest/
done
# finally checkout
sm checkout
# untracked files should not be shown
sm config --local status.showUntrackedFiles no
# download indexed submodules
sm submodule update --init --recursive
# update downloaded submodules
sm submodule update --recursive --remote

Usage

Keep in mind that your .bashrc need this sm entry:

###############################################################################
# + system_mindset - Dotfile Management via git bare
# | 1. source: https://www.youtube.com/watch?v=tBoLDpTWVOM
# | 2. source: https://www.atlassian.com/git/tutorials/dotfiles
sm_dir=$HOME/.config/sm/
alias sm='/usr/bin/git --git-dir=${sm_dir}system_mindset/ --work-tree=$HOME'
# +--+ manually managed, so not show other files in $HOME 
sm config --local status.showUntrackedFiles no
# +--+ update modified, deleted and new files to commit
alias sm_stage-changes='sm add $(sm status | grep "modified\|deleted\|new file" | sed "s/.*://")'
# +--+ remove updated files 
alias sm_unstage-changes='sm reset --mixed'
# +--+ add tig support
sm config tig.status-show-untracked-files false
alias sm_tig='GIT_DIR=${sm_dir}system_mindset/ GIT_WORK_TREE=$HOME tig'

You can therefore work with sm <cmd> in the same way as with git <cmd>. For example, use sm pull to pull or sm push to push. Add aliases that suit you best. I like the command line tool tig, so I use the alias sm_tig to use it for adding, deploying and committing my changes.

Software

Terminals, Fonts and Tools

Gnome related Software

# + MenuLibre (advanced menu editor: https://github.com/bluesabre/menulibre)
sudo dnf install menulibre
# + dconf-editor (A GSettings editor for GNOME: https://gitlab.gnome.org/GNOME/dconf-editor)
# | 1. /org/gnome/settings-daemon/plugins/media-keys/volume-step => 1
sudo dnf install dconf-editor
# + Gnome Tweaks (https://gitlab.gnome.org/GNOME/gnome-tweaks)
sudo dnf install gnome-tweaks
# + Gnome Extension Manager (https://github.com/mjakeman/extension-manager)
flatpak install flathub com.mattjakeman.ExtensionManager
# + Gnome Extensions
# +--+ AppIndicator and KStatusNotifierItem Support
firefox https://extensions.gnome.org/extension/615/appindicator-support/
# +--+ Bing Wallpaper
firefox https://extensions.gnome.org/extension/1262/bing-wallpaper-changer/
# +--+ Hue Lights
firefox https://extensions.gnome.org/extension/3737/hue-lights/
# +--+ Espresso
firefox https://extensions.gnome.org/extension/4135/espresso/
# +--+ Vitals
firefox https://extensions.gnome.org/extension/1460/vitals/
# +--+ Brightness control using ddcutil
firefox https://extensions.gnome.org/extension/2645/brightness-control-using-ddcutil/
# +--+ No overview at start-up
firefox https://extensions.gnome.org/extension/4099/no-overview/
# +--+ Tiling Shell
firefox https://extensions.gnome.org/extension/7065/tiling-shell/

Application Programs

# + Application Programs
# +--+ AusweisApp2 (eID client of the Federal Republic of Germany)
sudo dnf install AusweisApp2
# +--+ Cryptomator (https://github.com/cryptomator)
flatpak install flathub org.cryptomator.Cryptomator
# +--+ OneDrive CLI-Tool (https://github.com/abraunegg/onedrive)
sudo dnf install onedrive
# |  +--+ OneDrive GUI (https://github.com/bpozdena/OneDriveGUI/releases/latest/)
# |     | 1. Download newest AppImage
# |     | 2. Create or update OneDriveGUI Application entry in Menu Editor with AppImage
# |     | 3. Add image to startup application in Gnome Tweaks
mkdir -p $HOME/Software/OneDriveGUI/
cd $HOME/Software/OneDriveGUI/
wget https://github.com/bpozdena/OneDriveGUI/releases/download/v1.0.3/OneDriveGUI-1.0.3-x86_64.AppImage
chmod +x ./OneDriveGUI*
cd
# +--+ LibreWolf
# |  +--+ add the repo
curl -fsSL https://rpm.librewolf.net/librewolf-repo.repo | pkexec tee /etc/yum.repos.d/librewolf.repo
# |  +--+ install the package
sudo dnf install librewolf
# |  | * disable tabs: https://superuser.com/a/1619663
# +--+ Microsoft Edge Browser
flatpak install flathub com.microsoft.Edge
# +--+ KeePassXC (https://github.com/keepassxreboot/keepassxc)
sudo dnf install keepassxc
# + Color Picker
sudo dnf install gcolor3
# + DDC Control
sudo dnf install ccdcontrol-gtk
# + solaar (Linux device manager for Logitech devices: https://github.com/pwr-Solaar/Solaar)
# | 1. Add to startup applications in Gnome Tweaks
sudo dnf install solaar
# + inkscape
sudo dnf install inkscape
# + cherrytree
flatpak install flathub com.giuspen.cherrytree
# + Spotify
flatpak install flathub com.spotify.Client
# + OpenRGB
# | install udev (https://openrgb.org/udev)
flatpak install flathub org.openrgb.OpenRGB
# + MQTT Explorer (https://github.com/thomasnordquist/MQTT-Explorer)
# | 1. Download newest AppImage (https://github.com/thomasnordquist/MQTT-Explorer/releases/latest/)
# | 2. Create or update MQTT-Explorer Application entry in Menu Editor with AppImage
# | 3. Add image to startup application in Gnome Tweaks
mkdir -p $HOME/Software/mqtt-explorer/
cd $HOME/Software/mqtt-explorer/
wget https://github.com/thomasnordquist/MQTT-Explorer/releases/download/v0.4.0-beta.6/MQTT-Explorer-0.4.0-beta.6.AppImage
chmod +x ./MQTT-Explorer*
cd

Updates

# + system
dnf update --refresh
# +--+ nodejs
npm install -g npm
npm update
npm audit
# +--+ neovim
# |  +--+ update Plug
nvim --headless +PlugUpgrade +qa
# |  +--+ update plugins
nvim --headless +PlugUpdate +qa
# |  +--+ update coc-modules
nvim +CocUpdate

DNF Tuning / Faster Updated

The standard dnf settings can be improved to make it faster (inspired by devangshekhawat). Add to your /etc/dnf/dnf.conf:

[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
skip_if_unavailable=True
best=False
fastestmirror=0
deltarpm=true
max_parallel_downloads=10

Firmware Update

If your system supports firware update through lvfs, update it.

fwupdmgr get-devices 
fwupdmgr refresh --force 
fwupdmgr get-updates 
fwupdmgr update

Media Codecs

dnf groupupdate 'core' 'multimedia' 'sound-and-video' --setopt='install_weak_deps=False' --exclude='PackageKit-gstreamer-plugin' --allowerasing && sync
dnf swap 'ffmpeg-free' 'ffmpeg' --allowerasing
dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel ffmpeg gstreamer-ffmpeg
dnf install lame\* --exclude=lame-devel
dnf group upgrade --with-optional Multimedia

H/W Video Acceleration

dnf install ffmpeg ffmpeg-libs libva libva-utils
dnf config-manager --set-enabled fedora-cisco-openh264
# enable OpenH264 plugin in firefox (about:addons => Plugins)