🏡 go home...
🗃️ go back...

config

thumbnail

created  2022/09/22
modified 2024/02/06
category text

configuring unix systems

syncthing
*nix
termux
wsl

dotfiles repository

window manager

xfce is okay but can't do multiple monitors, openbox is unmaintained, and wayland compositors are dubious if you have nvidia graphics. the pinacle of modern desktop operation is i3/sway as a floating window manager!

for_window [all] floating enabled
for_window [window_role="gimp-image-window-1"] floating disabled

auto-update

automatically keep your system/server up to date by creating a root cron job that runs every midnight. just run `sudo crontab -e` and add a line like one of these

# update
00 00 * * * yay --noconfirm
00 00 * * * dnf -y update
00 00 * * * sh -c 'apt update && apt upgrade -y'

# update and clean
00 00 * * * sh -c 'yay --noconfirm && yay -Qqdtt | yay -Rsun -'
00 00 * * * sh -c 'dnf -y update && dnf -y autoremove'
00 00 * * * sh -c 'apt update && apt upgrade -y && apt autoremove -y'

custom systemd service

simply add a .service file to `/etc/systemd/system` or `/usr/lib/systemd/system` to configure a system service that does not provide one

[Unit]
Description=Name of Service Service
Wants=network.target

[Service]
#User=myservice
WorkingDirectory=/var/myservice
ExecStart=/usr/bin/myservice
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always
RestartSec=1

SyslogIdentifier=myservice

# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

custom service user

create a user for a system service that does not provide one. the -r argument specifies a system user, -U creates a group with the user, then we set the home directory (not created by default) and disable its shell

useradd -rU -d /var/myservice -s /usr/sbin/nologin myservice

mousepad (& xfce4-terminal)

there is an issue where all windows have the same process id and they're all closed when you intend to kill just one, to solve this change the command/exec line in its .desktop file to include the --disable-server argument

thunar suffers from the same issue but does not provide such an argument

dotfiles install script

in the git repository containing my dotfiles is a script titled install.sh which will copy all the files and shits for you

TODO: update bashrc
TODO: update configurations
TODO: install.sh does not work on termux
TODO: install.sh does not work

on termux

if you run the install script in termux the install script does

copy scripts, dotfiles, and .bashrc
copy nano configs + make nano backup folder
patch scripts to work on termux
remove redundant gui configurations

full install

on a full linux install, vm, or windows subsystem

the script must be run with root permissions for a full install

all steps are optional based on the users they affect (all/main/root) and are all automatically prompted for before anything is done

main:
copy scripts, dotfiles, and .bashrc
make screenshots directory
copy nano configs + make nano backup folder

root:
copy scripts, dotfiles, and .bashrc
copy nano configs + make nano backup folder

all:
copy xorg configs
copy /etc/environment