Skip to content

dpelkmann/system_mindset

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published