[Linux] bronkish:
People generally have a hard time accepting change, understanding new things. It's too bad. THing is, people want things to operate by the parameters they have set instead of accepting what a thing is. Take Linux - people come from elsewhere, sit at a linux box, and lose their minds. Tha's the wrong atitude, of course it's a failure. You don't make toast with a radio. ;)

Linux is a vast collection of stuff. There are many ways to set it up, configure it, many apps that do the one thing. It's a big deal and it's probably too much awesome for most. If your attitude going in is open, and you have no dogma or prejudice, before yuo know it you'll wonder why you suffered anything else for so long.

All that said - I run Debian since forever and I run a lightweight config. I don't use a 'desktop environment' like KDE or Gnome (say g-nome one time standing next to me....fuk'n...) because I don't need or want all that it includes. You might and that's cool. THis ain't for you, though. I'm not gonna hold your hand, but, this is easy to follow, it's basically right in front of you.

If you'd like to enjoy a similar desktop as I do then browse through one time and then get yourself ready. It doesn't take long at all and it's damned easy.

We'll use the net-installer iso because that's all we need and we have an internet connection. If you're not on a pipe, you can't do things this way. We will use the 64 bit net-install iso that includes non-free firmware so your wireless will work during installation. Here. To burn this to a usb stick on windows - go find an app for that. On Linux, use dd:

sudo dd if=firmware-11.2.0-amd64-netinst.iso of=/dev/sdc status="progress"

You can see from the command that my usb stick is /dev/sdc - this is the 'device' it is. It's important to get this right, dd don't care and will wipe whatever drive you put here. Make sure your usb stick is /dev/sdc or /dev/sdb. sudo fdisk -l will tell you, gparted will tell you. Whatever it is...After it's on the stick, reboot to it.

Debian install ain't pretty, but, it's fast and easy. You're gonna hit enter a lot. Chose a hostname, but, don't worry about a domain name in the next screen. If you have one, use it, if you don't, just leave it empty and go next.

Create a root user, this ain't ubuntu. Create your user next...

Partitioning is up to you, you can let debian do its thing with the default - guided (bye bye existing data), or, you can arrow down to manual, which is the right choice - I always use 4 primaries:

View attachment 5513773

all formatted ext4 (use as). I use a swap for hibernation, you don't really need it if you have over 4gb ram. Make one, anyway. Make swap at least 2ce your ram. My /root (sda3) partition is so large because I used to run a web server. You can make /root much smaller, say 50gb and put the rest into /home.

If you have data in your /home partition already - what are you doing here - then you can choose to keep it during partitioning. The installer will default to keep, so you're good. You have to tell it to erase the partition, for example in your /boot. You can use other drives or not during the installation, too. You may have a /dev/sdb drive in your box, maybe it's a dump. When you are partitioning you can enter on it and choose to use it or not - use as: ext4, or whatever. Just choose custom for the mount point and type in a name. /stuff... Make sure to make your /boot partition 'bootable' when you are partitioning. You will see it as a choice when you partition.

Your next real decision in the installer is choosing what to install. The installer defaults to: desktop environment, gnome, and at the bottom, standard system utilities. For our purposes, uncheck (arrow key and spacebar) everything except the bottom one, go next...The installer will install some basic tools and whatnot, maybe a hundred or so files. That's it, go next...keep going through the install, mostly hitting enter. Participate in popularity contest or not - hint: Debian doesn't care about you like facebook does, you're not selling your soul if you participate. It defaults to no, though, choose what you want and next...

Install that grub boot loader on your /dev/sda drive. You'll see drive choices when it asks you. Enter on your choice. In a second you will reboot into the vast blackness of a barebones debian install. Wicked.

It's installed and you can grow from here. On the one laptop I have pi-hole installed on - I did nothing else after this barebones install other than install pi-hole. It put dependencies on for me, lighttpd for example and supporting php. That laptop stays on foever and I ssh in if I need to. It's an appliance. For you, you want a desktop, you want programs and whatnot so you can do stuff.

Upon booting you'll land at a login prompt. Log in as root the one time. run: apt install aptitude xorg scrot lxrandr lxappearance openbox feh gpicview unclutter numlockx thunar xinit lxpanel sudo xfce4-terminal, hit enter. When it's finished, run this: visudo, enter. Scroll down to beneath the root user entry and type:

YOURUSERNAME ALL=(ALL:ALL) NOPASSWD:ALL, then, ctrl+x, y, enter.

You've just made yourself admin on the box without having to input a password ever again. Handy. log out from root, type: exit, hit enter.

As it stands now, you can log into a pretty gui desktop right now, so, let's do it. Remember, there's not much installed and we didn't config anything yet. You just have xorg for your display, openbox for window management a panel, a file manager, init, a terminal, and I like aptitude (package management) because I made .bash_aliases entries for it ages ago.

Log in as you. Your prompt might change color, don't worry if it doesn't. You're still logged into just that empty blackness because we didn't start anything yet. Let's do that. Do this first: nano .xinitrc, enter. In that file add this line: exec openbox-session, then save and close (ctrl+x, y, enter). Now, start the pretty by typing: startx, and hit enter.

Bam. You're in more emptiness. This is openbox and you know you're in something because if you right-click (right-click on all of the things) you will see a small menu. Now, this ain't KDE, remember, this is a fleet-footed light desktop and openbox is a window manager, because, that's all you need - the luxury we get we create, this is custom. I don't install too much because I'm just a commoner now, no web development, no audio/video stuff (well, a little) I don't need writing, research , project support anymore, or, anything, really. You might, though, and debian has it all - add your fancy stuff later, let's get openbox and the desktop useable and fancy first.

In linux, everything is a file. Everything, even your devices. That's so cool. OPenbox uses 3 files for configuration, to let you do stuff. rc.xml controls your fancy keyboard combos, menu.xml created and maintains your desktop menu, and autostart.sh does what it says. You can learn and try things as you go, but, for now, we want to edit autostart.sh. Do it: nano .config/openbox/autostart.sh, enter. I have only a few entries which are:

sh ~/.fehbg &

redshift &

lxpolkit &

numlockx &

lxpanel &

compton -bcC &

thunar --daemon &

xscreensaver -no-splash &

#------------------------------------------////

# Delayed Startup Handiness:

#------------------------------------------////

(sleep 2s && unclutter) &

(sleep 3s && volumeicon) &

(sleep 3s && diodon) &

See that first entry - feh? That's a script to tell feh what to present as my desktop background image. Here's the script:

#!/bin/sh

feh --no-fehbg --bg-fill '~/nick/nick-nazzaro-jungle-green.png'

The autostart entry is running the script from my home directory (~/). So, make the file for the script in your home directory (nano .FILENAME, enter). You can see from the autostart entry that my script is saved as .fehbg. Call it whatever you want, just make the file and after you save it, you'll need to make it executable so it will run, do, do this: chmod +x .fehbg, enter. DOn't forget to change the directory feh serves up the image from. You don't have an image in ~/nick... I also use a handy thunar action for the desktop background where I can right-click on any image and set it as the background and the feh script will update to the new choice. Handy.

You'll notice my autostart file has entries we didn't install yet. I'll tell you: redshift reduces the blue when it's dark, numlockx chooses it for you so when you log in you can use your number keys, lxpanel gives me a panel with a tray, compton makes things prettier, thunar is the file manager that you don't have to autolaunch as a daemon at all if you don't want to, xscreensaver does what it says. The entries with sleep are delayed for x seconds: unclutter makes the mouse disappear after 10 seconds - handy, volumeicon gives me mixer access in the panel, and diodon replaces clipit as a clipboard manager. Add whatever program or script that you want to autostart with your desktop.

I have a bunch of entries in the rc.xml file becasue hitting a key-combo is handy. For example I hit win+b to open firefox, win+t for the terminal, and so on. Here is the syntax:

<keybind key="W-b">

<action name="Execute">

<execute>~/Downloads/firefox/firefox</execute>

</action>

</keybind>

I make an entry for screenshots, too, because wtf - I can't be bothered to go clicking for an app when I want one. Most times, the print (screen) button is already employed as a handy full desktop screenshot. But, we are barebones here, no DE that will do that for us. I use scrot because it's magic and awesome. I have entries in rc.xml for key-combos, and I have antries in the menu.xml file as well, should I feel like clicking. IN rc.xml my scrot entries are as follows (yes, I had to make the folder 'scrots' in my ~/. Get used to knowing, and using this: ~/, as /home/YOU/

<!--SCROT-->

<keybind key="W-Print">

<action name="Execute">

<execute>scrot '%Y-%m-%d_$wx$h_%X.jpg' -s -e 'mv $f ~/scrots/ &amp; gpicview ~/scrots/$f'</execute>

</action>

</keybind>

<keybind key="W-Insert">

<action name="Execute">

<execute>scrot '%Y-%m-%d_$wx$h_%X.jpg' -e 'mv $f ~/scrots/'</execute>

</action>

</keybind>

<keybind key="Print">

<action name="Execute">

<execute>scrot '%Y-%m-%d--%s_$wx$h_scrot.jpg' -e 'mv $f ~/scrots/ &amp; gpicview ~/scrots/$f'</execute>

</action>

</keybind>

<!--END SCROT-->

View attachment 5513557

The menu.xml file is just as simple. You can use a tool to make the menu for you, in fact there are a few, but, I don't mess with those. Have a look at one of my sub-menus:

<menu id="stuff" label="Utils" icon="/usr/share/icons/Tango/scalable/apps/system-config-users.svg">

<item label="Audio Settings" icon="/usr/share/icons/Tango/scalable/devices/stock_mic.svg">

<action name="Execute">

<command>pavucontrol</command>

</action>

</item>

<item label="Screensaver" icon="/usr/share/icons/Tango/scalable/apps/gnome-settings-accessibility-technologies.svg">

<action name="Execute">

<execute>

xscreensaver-demo

</execute>

</action>

</item>

<item icon="/usr/share/icons/Tango/scalable/apps/internet-web-browser.svg" label="Bleachbit-root" icon="/usr/share/icons/bleachbit.png">

<action name="Execute">

<execute>

<!-- su-to-root -X -c bleachbit -->

sudo bleachbit

</execute>

</action>

</item>

<item icon="/usr/share/icons/Tango/scalable/apps/utilities-system-monitor.svg" label="GParted" icon="/usr/share/icons/gparted.png">

<action name="Execute">

<execute>

sudo gparted

</execute>

</action>

</item>

<item label="Synaptic" icon="/usr/share/icons/Tango/scalable/apps/preferences-desktop-remote-desktop.svg">

<action name="Execute">

<execute>

sudo synaptic

</execute>

</action>

</item>

<item label="SystemProfiler" icon="/usr/share/icons/Tango/scalable/status/info.svg">

<action name="Execute">

<execute>

sudo hardinfo

</execute>

</action>

</item>

<item label="Timer" icon="/usr/share/icons/Tango/scalable/status/gnome-fs-loading-icon.svg">

<action name="Execute">

<execute>

~/bin/timer.sh

</execute>

</action>

</item>

</menu>

Openbox is pretty easy to set up and it's fast. I have used it for 15 years or so and never missed any fancy desktop environment. It's important to know that I support this lightweight install with ancillary procedures. For example, I employ .bash_aliases to a large degree, as, I am sure most linux users do, or, would, if they knew about it. I also employ a bunch of actions I can run on files and folders in Thunar. It's wicked.

Some entries in my ~/.bash_aliases file, for handiness:

alias 53='sudo lsof -i :53' (what's running on port 53, I have this one on the pi-hole box)

alias clients='sudo nmap -sn 192.168.1.0/24' (clients on my lan)

alias guts='sudo inxi -Fx -c24' (system hardware whatnot)

alias dim='redshift -O 4200K -r -P' (to take care of my eyes if I didn't set redshift up for auto)

alias nap='sudo /usr/sbin/pm-suspend' (to suspend my box when I leave for work, you can use systemctl)

alias again='sudo shutdown -r now' (reboot right now)

alias off='sudo shutdown -h now' (shutdown right now)

--package management --

alias sources='sudo nano /etc/apt/sources.list'

alias show='aptitude show'

alias list='dpkg -L'

alias cpf='sudo aptitude clean && sudo aptitude purge ~c && sudo aptitude -f install'

alias remove='sudo aptitude purge'

alias install='sudo aptitude --without-recommends install'

alias apps='sudo synaptic'

alias search='aptitude search'

alias update='sudo aptitude update'

alias upgrade='sudo aptitude full-upgrade'

alias orphans='sudo deborphan'

alias foster='sudo debfoster'

alias devs="aptitude -F '%p' search '~i -dev$'"

alias devsizes="aptitude -F '%I %p' search '~i -dev$'"

alias hold='sudo aptitude hold'

alias unhold='sudo aptitude unhold'

ssh to my pi box:

alias pi='ssh -p 22061 UNAME@192.168.1.113' - I use a key, so, it's - BAM!

shut off the screen saver so I can watch a flick:

alias killx='killall -15 xscreensaver'

quick password:

alias pwgen='pwgen -ys 24 1'

when I'm in a terminal I might want to edit one of the openbox files:

alias auto='geany ~/.config/openbox/autostart.sh &'

alias menu='geany ~/.config/openbox/menu.xml &'

alias rc='geany ~/.config/openbox/rc.xml &'

I have lots more, some entries run an app, a script, do a thing. aliases are so handy.

Here are a couple entries from my thunar custom actions file (uac.xml I think in .config/thunar)

name: resize 640

command: ~/.config/scripts/resize 640 %N (that is a script)

appearance conditions (*) : image file,

Have ffmpeg installed. The script is:

#!/bin/bash

mkdir -p ./Resized/$1

for file

do

if [ ! -e "$file" ]

then

continue

fi

name=$( echo $file | cut -f1 -d.)

convert -geometry $1x$1 -quality 100 $file ./Resized/$1/${name}_$1.jpg

done

I use another one for resize, too, that's wicked. You can choose any size you want, check it out:

in thunar custom actions -

name: resize-options

command: ~/.config/scripts/resz %N

appearance conditions (*): images

Here's the resz script:

#!/bin/bash
# resize_img.sh -- An Imagemagick Resize Script
# Author: canci <cancivolonter@gmail.com>
# License: GPL. See http://www.gnu.org/licenses/gpl.html
# Dependencies: Bash (duh!), Imagemagick, zenity

# 1. IFS and other delcarations

# Saving the old one
SAVEIFS=$IFS
# Declaring the new one
IFS=$(echo -en "\n\b")
# Files
FILES=`ls -1 $@`
# Directory name in case files are not being overwritten
NEW_DIR=RESIZED__`date +%d-%b-%Y_%T`
# Integer file count for the progress bar
n=1

# 2. Get desired resolution; Exit if cancel button pressed, otherwise move on
RES=`zenity --title="Please enter a resoultion" --entry --text="Image Resizer -- Please enter a resoultion (e.g. 800x600)"`
if [ $? == 1 ]; then

exit

else

# 2.1. Should the resize disregard the current aspect ratio and resize strictly to the given resolution?
#
Q1=`zenity --title="Disregard aspect ratio?" --question --text="Disregard aspect ratio? If Yes, the images will be resized to the exact resolution you provided, which might skew images if the aspect ratio differs. If No, the aspect ratio will be preserved and only the width will be resized accurately."`
if [ $? == 0 ]; then

# 2.1.1. Should the file be overridden or should a new one be created? mogrify or convert will be used accordingly.
#
Q2=`zenity --title="Overwrite file?" --question --text="Overwrite file? If No, the resized images will be put inside a new directory called RESIZED with the date of creation appended to it."`

if [ $? == 0 ]; then

for f in $FILES
do

mogrify -resize `echo $RES`! $f
echo $n
echo "# Processing file: $f"
let "n = n+1"

done | (zenity --progress --title "Resizing..." --percentage=0 --auto-close --auto-kill)

zenity --info --text="Done!"

else

mkdir $NEW_DIR
for f in $FILES
do

convert -resize `echo $RES`! $f $NEW_DIR/$f
echo $n
echo "# Processing file: $f"
let "n = n+1"

done | (zenity --progress --title "Resizing..." --percentage=0 --auto-close --auto-kill)

zenity --info --text="Done!"

fi

# WHAT ELSE? HUH?

else

# 2.1.2. Same as in 2.1.1., but for aspect ratio resize.
#
Q3=`zenity --title="Overwrite file?" --question --text="Overwrite file? If No, the resized images will be put inside a new directory called RESIZED with the date of creation appended to it."`

if [ $? == 0 ]; then

for f in $FILES
do

mogrify -resize $RES $f
echo $n
echo "# Processing file: $f"
let "n = n+1"

done | (zenity --progress --title "Resizing..." --percentage=0 --auto-close --auto-kill)

zenity --info --text="Done!"

else

mkdir $NEW_DIR
for f in $FILES
do

convert -resize $RES $f $NEW_DIR/$f
echo $n
echo "# Processing file: $f"
let "n = n+1"

done | (zenity --progress --title "Resizing..." --percentage=0 --auto-close --auto-kill)

zenity --info --text="Done!"

fi

# Ending 2.1.
fi

# Ending 2
fi

# 3. Restore IFS (for possible future use)
#

IFS=$SAVEIFS

# EOF
exit 0

If you need a handy image resize script, that one is awesome. Put it into a file and make a custom action out of it in thunar, see how awesome it is.

There are so many more from encrypting stuff to flattening folders to mounting an iso..look them up and get some, so handy. Here's that handy right-click desktop wallpaper custom action for thunar:

command: feh --bg-fill %f

appearance conditions: image

You can see where I take advantage of built-in functionality of the system and some apps I choose in order to run and thrive in a lightweight desktop. Of course, I have a bunch of other programs installed: claws-mail, gimp, filezilla - tons of stuf. Actually not, I have 1326 packages installed. People that run with a DE will typically have 2500 packages installed. Debian has 60,000 packages from you to choose from, all config'd for the version release at the time, everything in the bullseye repos will work on your bullseye install.

My desktop is setup for the efficiency, or lack thereof, in which I function - in which I work, move. I like to use the keyboard, I like to use a terminal, I like having shortcuts and some auto stuff. I don't like introducing 19 programs to my machine to get a thing done, I don't jump on the next big app that needs 900 files installed to get it to work. I use what works and if I have to, I adapt myself to it.