
# todo

Transitioning to Sway/Wayland for desktop environment.

_Expect iterative changes over the following months while fine-tuning happens on real hardware._


## sway

- verify fix for alacritty config loads gvm/bash_profile without requiring redundant sourcing
- double-check whether exit command properly, and fully, terminates our sway session (eg. we can safely reload sway)


---

When I eventually break down and buy elden ring, try these?

	PROTON_NO_FSYNC=1 WINE_FULLSCREEN_FSR=1 mangohud gamemoderun %command%

May need other steps for ultrawide support?

https://github.com/gurrgur/er-patcher

	./er-patcher -r 144 -uavc -- env <above command>


---

- figure out how to modify aur package installation to occur under new user rather than temporary user
- add new aur packages to the installation
	- cmst (sway/wayland friendly connman management)
	- wev (_need to verify necessity?_)

- investigate `poweralertd` and `batsignal` to setup low battery alerts with `mako`
	- _This is important for laptops_

- continue to refine `notes/sway.md` to account for the lack of obvious world-knowledge

- Test SteamVR
	- Setup two new base stations for 4-station setup
	- Reconfigure steam vr utils software
		- Make sure all 4 base stations connect
		- Make sure all 4 base stations shutdown
		- Make sure audio transitions to and from
	- try Beat Saber
	- try No Man's Sky


## better temperature scripts

Write a script to grab temperatures to replace the temperature module in waybar with custom commands...

_This is because configuring temperatures is hardware dependent and the waybar has unintelligent defaults and anti-agnostic configuration!_

Example that matters?

for amd cpu: `k10temp` followed by `tctl`
for intel cpu: `coretemp` followed by `package id 0`
for amd gpu `amdgpu` followed by `edge`

for nvidia we need to use `nvidia-smi` and parse that instead, but that also means if `nvidia-smi` does not exist we have to back out!

_For this we will want to have an `exec-if` that checks for results
_There may be cases where there is no GPU, so when no sensors appear can we have the custom module omitted?_

For gpu temperatures:

- `amdgpu`, followed by `edge`

_This may not exist for laptops, may differ for nvidia, and may also differ depending on the driver._

Samples:

	"custom/cputemp": {
		"format": "{}°C",
		"interval": "3",
		"exec": "/usr/local/bin/temps cpu",
		"exec-if": "/usr/local/bin/temps cpu can"
	}
	"custom/gputemp": {
		"format": "GPU: {}°C",
		"interval": "3",
		"exec": "/usr/local/bin/temps gpu",
		"exec-if": "/usr/local/bin/temps gpu can"
	}


## scratchpad experiment

I would like to be able to selectively deal with applications send to scratchpad.

Getting an ordered list is a starting point.

Probably replacing `scratchpad show` with an `exec`.

New `/usr/local/bin/alacrittyq` with `$mod+tilde` toggle:

	#!/bin/bash

	# @todo: query swaymsg get_tree for alacrittyq
	# if not exists launch
	# if exists
	# if hidden in scratchpad show
	# if shown hide in scratchpad
	alacritty --class "alacrittyq"

- investigate dedicated identity for an alacritty window to selectively target for scratchpad persistent terminal via mod+tilde


## workspace restoration

It may be possible to write an IPC connected utility to save and restore workspaces

_This tool would need to know when to save, and to intelligently restore only once when applications are first launched._

It would need to have a way to pull wayland equivalents for the content mentioned in this issue:

- https://github.com/swaywm/sway/issues/1005


## hidpi check

Previously I stopped caring because hidpi is erratic and glitchy, but I'm curious if sway might be smarter than openbox...

- test hidpi configuration
	- `output * scale 2`
	- also targeted output scaling for HDTV but not ultrawide
- Verify hidpi behavior of applications is not poor:
	- firefox (many different websites?)
	- mpv
	- pcmanfm
	- steam
	- discord
- _Remember to take some screenshots before and after to indicate visible changes?_


## firefox automated configuration

- investigate firefox configuration
	- [auto-configuration?](https://support.mozilla.org/en-US/kb/customizing-firefox-using-autoconfig)
	- add mimetypes to bypass godawful save dialog (eg. hanlders.json in `~/.mozilla`, but unique profile path?)
	- how to make it remember workspaces when restoring tabs (_probably not possible, so using tab manager addon_)


## data cleanup

Utilize my old rig to cleanup and organize my data across my old HDD's

- Uninstall everything that is taking up disk space
	- games
	- videos
	- music
	- data
- disable transmission (_we should not be downloading more content on this box_)

Since this machine is separate/independent I can happily deal with long running processes and filling the disks to the brim while going through my files...

At the end I want to be able to eliminate a huge amount of data that I don't need anymore, and any redundant copies of data as well...
