GNU/Linux Debian Trixie Adding Non Free Repo Guide
Hi! The Tutorial shows you Step-by-Step How to Add Non Free Repository in Debian 13 Trixie GNU/Linux Based OSes.
Especially relevant: this Guide Show How to Properly Add Debian Trixie Non-free Repo to install just the Needed Software and then Preserving the Free Nature of System!
The Repos Features are:
- Non-free includes Packages whose Licences are not free
- Contrib the Dependencies of non-free Packages (which make them not part of Default Repos)

1. Launching Terminal
How to QuickStart with Command Line on Debian GNU/Linux
2. Adding Non-free Repo
Then to Add Non Free Repository in Debian
Simply run: At the end of each line after ‘main’ append:
Edit Repo with nano Editor:contrib non-free non-free-firmware
Like:deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
Ctrl+x to Save & Exit from nano Editor.
Last, Refresh the Apt Sources with:sudo apt update
3. Preserving Debian Free System
(Optional) This if you want to Preserve the Valuable Free Nature of Debian System.
To do so you have to strictly Allowing only the Installation of Some Non-free Package with an Apt Pinning.
First, Disable All Non free Software with this content:Explanation: Disable packages from non-free tree by default Package: * Pin: release o=Debian,a=stable,l=Debian,c=non-free Pin-Priority: -1
To Make it at once execute:sudo echo -e "Explanation: Disable packages from non-free tree by default Package: * Pin: release o=Debian,a=stable,l=Debian,c=non-free Pin-Priority: -1" > /etc/apt/preferences.d/non-free_policy
And then Enable the Software of Choice, E.g. firmware-iwlwifi:Explanation: Enable package firmware-iwlwifi from non-free tree Package: firmware-iwlwifi Pin: release o=Debian,a=stable,l=Debian,c=non-free Pin-Priority: 130
Again with a simple echo:)sudo echo -e "Explanation: Enable package firmware-iwlwifi from non-free tree Package: firmware-iwlwifi Pin: release o=Debian,a=stable,l=Debian,c=non-free Pin-Priority: 130" > /etc/apt/preferences.d/firmware-iwlwifi_non-free
But to enable Multiple packages at once proceed like that:Explanation: Enable package firmware-iwlwifi nvidia-driver from non-free tree Package: firmware-iwlwifi nvidia-driver Pin: release o=Debian,a=stable,l=Debian,c=non-free Pin-Priority: 130
Again translated in a Command like:sudo echo -e "Explanation: Enable package firmware-iwlwifi nvidia-driver from non-free tree Package: firmware-iwlwifi nvidia-driver Pin: release o=Debian,a=stable,l=Debian,c=non-free Pin-Priority: 130" > /etc/apt/preferences.d/enabled-packages_non-free
The only drawback of the procedure is that you have to repeat it every time you need some new Non-free software…
For further instructions see: Advanced Apt Pinning Techniques.