Forráskód Böngészése

sway branch to test on real hardware

Casey DeLorme 2 éve
szülő
commit
9d3d6ecb03
41 módosított fájl, 286 hozzáadás és 604 törlés
  1. 14 17
      arch.sh
  2. 0 58
      install/etc/skel/.Xdefaults
  3. 4 3
      install/etc/skel/.bash_profile
  4. 0 7
      install/etc/skel/.config/openbox/autostart
  5. 0 18
      install/etc/skel/.config/openbox/menu.xml
  6. 0 107
      install/etc/skel/.config/openbox/rc.xml
  7. 0 63
      install/etc/skel/.config/picom/picom.conf
  8. 173 0
      install/etc/skel/.config/sway/config
  9. 13 0
      install/etc/skel/.config/sway/config.d/keyboard-defaults
  10. 0 12
      install/etc/skel/.config/systemd/user/conky.service
  11. 1 1
      install/etc/skel/.config/systemd/user/fcitx5.service
  12. 1 1
      install/etc/skel/.config/systemd/user/gsettings.service
  13. 1 1
      install/etc/skel/.config/systemd/user/lxpolkit.service
  14. 0 10
      install/etc/skel/.config/systemd/user/openbox-autostart.service
  15. 0 12
      install/etc/skel/.config/systemd/user/pasystray.service
  16. 0 12
      install/etc/skel/.config/systemd/user/picom.service
  17. 1 1
      install/etc/skel/.config/systemd/user/sway-session.target
  18. 0 0
      install/etc/skel/.config/systemd/user/sway-session.target.wants/fcitx5.service
  19. 1 0
      install/etc/skel/.config/systemd/user/sway-session.target.wants/gsettings.service
  20. 0 0
      install/etc/skel/.config/systemd/user/sway-session.target.wants/lxpolkit.service
  21. 1 0
      install/etc/skel/.config/systemd/user/sway-session.target.wants/update-desktop-database.service
  22. 0 0
      install/etc/skel/.config/systemd/user/sway-session.target.wants/wallpaper.service
  23. 1 0
      install/etc/skel/.config/systemd/user/sway-session.target.wants/xdg-user-dirs-update.service
  24. 0 12
      install/etc/skel/.config/systemd/user/tint2.service
  25. 10 0
      install/etc/skel/.config/systemd/user/update-desktop-database.service
  26. 1 1
      install/etc/skel/.config/systemd/user/wallpaper.service
  27. 10 0
      install/etc/skel/.config/systemd/user/xdg-user-dirs-update.service
  28. 0 1
      install/etc/skel/.config/systemd/user/xsession.target.wants/conky.service
  29. 0 1
      install/etc/skel/.config/systemd/user/xsession.target.wants/openbox-autostart.service
  30. 0 1
      install/etc/skel/.config/systemd/user/xsession.target.wants/pasystray.service
  31. 0 1
      install/etc/skel/.config/systemd/user/xsession.target.wants/picom.service
  32. 0 1
      install/etc/skel/.config/systemd/user/xsession.target.wants/tint2.service
  33. 0 5
      install/etc/skel/.xinitrc
  34. 0 3
      install/usr/local/bin/mpv-control
  35. 0 36
      install/usr/local/bin/pash
  36. 1 8
      install/usr/local/bin/screenshot
  37. 6 2
      install/usr/local/bin/screenshot-selection
  38. 1 2
      install/usr/local/bin/system-updates
  39. 0 10
      install/usr/local/bin/urxvtq
  40. 4 6
      install/usr/local/bin/wallpaper
  41. 42 191
      todo.md

+ 14 - 17
arch.sh

@@ -59,11 +59,8 @@ export PACKAGES="linux linux-headers linux-firmware base-devel mkinitcpio sudo b
 [ $(grep -c "Intel" /proc/cpuinfo) -gt 0 ] && PACKAGES="${PACKAGES} intel-ucode"
 [ $(grep -c "AMD" /proc/cpuinfo) -gt 0 ] && PACKAGES="${PACKAGES} amd-ucode"
 
-# Conditional laptop packages
-if [ -e /sys/class/power_supply/BAT0 ]; then
-	PACKAGES="${PACKAGES} xf86-input-synaptics acpid acpilight tlp"
-	sed -i "s/panel_items = LTSC/panel_items = LTSBC/g" /srv/arch-desktop/install/etc/skel/.config/tint2/tint2rc
-fi
+# Conditional battery packages
+[ -e /sys/class/power_supply/BAT0 ] && PACKAGES="${PACKAGES} xf86-input-synaptics acpid tlp"
 
 # Storage
 PACKAGES="${PACKAGES} btrfs-progs smartmontools usbutils gvfs gvfs-mtp gvfs-afc android-udev parted postgresql transmission-cli python-pip python-setuptools"
@@ -72,31 +69,31 @@ PACKAGES="${PACKAGES} btrfs-progs smartmontools usbutils gvfs gvfs-mtp gvfs-afc
 PACKAGES="${PACKAGES} cryptsetup lzop unzip p7zip xz unrar unace lrzip arj innoextract"
 
 # networking packages
-PACKAGES="${PACKAGES} nftables iptables dnsmasq rsync dhcpcd inetutils net-tools openssh sshfs ntp wget curl wireless_tools bluez bluez-utils oath-toolkit openconnect openvpn ethtool pptpclient"
-
-# conditional networking packages
-[ -d "/sys/class/net/${active_network_device}/wireless" ] && PACKAGES="${PACKAGES} connman wpa_supplicant iwd"
+PACKAGES="${PACKAGES} nftables iptables dnsmasq rsync dhcpcd inetutils net-tools openssh sshfs ntp wget curl wireless_tools bluez bluez-utils oath-toolkit openconnect openvpn ethtool pptpclient connman wpa_supplicant iwd"
 
 # programming packages
 PACKAGES="${PACKAGES} pkgfile pkgconf bison gcc gcc-libs cmake ccache ncurses xmlstarlet jq git mercurial subversion bzr patchelf packer vagrant libvirt qemu libguestfs virt-install edk2-ovmf"
 
 # multimedia dependencies
-PACKAGES="${PACKAGES} mesa lib32-mesa dbus polkit giflib lib32-giflib mpg123 lib32-mpg123 v4l-utils lib32-v4l-utils lame libwebp libid3tag libvorbis vorbis-tools faac x264 x265 libpng12 lib32-libpng12 pulseaudio libpulse lib32-libpulse openal lib32-openal opencl-icd-loader lib32-opencl-icd-loader libva lib32-libva gst-plugins-base-libs lib32-gst-plugins-base-libs graphicsmagick imagemagick joyutils evtest libexif ffmpeg lxsession yt-dlp wine-staging winetricks fcitx5 fcitx5-mozc fcitx5-configtool fcitx5-gtk fcitx5-qt"
+PACKAGES="${PACKAGES} mesa lib32-mesa dbus polkit giflib lib32-giflib mpg123 lib32-mpg123 v4l-utils lib32-v4l-utils lame libwebp libid3tag libvorbis vorbis-tools faac x264 x265 libpng12 lib32-libpng12 pulseaudio libpulse lib32-libpulse openal lib32-openal opencl-icd-loader lib32-opencl-icd-loader libva lib32-libva gst-plugins-base-libs lib32-gst-plugins-base-libs graphicsmagick imagemagick joyutils evtest libexif ffmpeg lxsession-gtk3 yt-dlp wine-staging winetricks fcitx5 fcitx5-mozc fcitx5-configtool fcitx5-gtk fcitx5-qt"
 
 # GUI theme
-PACKAGES="${PACKAGES} gnome-themes-extra gnome-icon-theme arc-gtk-theme"
+PACKAGES="${PACKAGES} gnome-themes-extra gnome-icon-theme arc-gtk-theme gtk-engines gtk-engine-murrine"
+
+# GUI dependencies
+PACKAGES="${PACKAGES} gtk3 lib32-gtk3 pavucontrol pcmanfm-gtk3 ffmpegthumbnailer tumbler xdg-utils xdg-user-dirs"
 
-# Xorg dependencies
-PACKAGES="${PACKAGES} xorg-server xorg-server-devel xorg-xinit xorg-xinput xorg-xdpyinfo xorg-xprop xdotool xsel arandr "
+# vulkan packages
+PACKAGES="${PACKAGES} libva-mesa-driver lib32-libva-mesa-driver lib32-mesa-vdpau vulkan-tools vulkan-icd-loader lib32-vulkan-icd-loader"
 
-# openbox Environment
-PACKAGES="${PACKAGES} openbox gtk3 lib32-gtk3 feh hsetroot archlinux-xdg-menu picom pavucontrol pasystray xdg-utils xdg-user-dirs tint2 conky pcmanfm-gtk3 gmrun gtk-engines gtk-engine-murrine lxappearance ffmpegthumbnailer tumbler libva-mesa-driver lib32-libva-mesa-driver lib32-mesa-vdpau vulkan-tools vulkan-icd-loader lib32-vulkan-icd-loader "
+# Sway dependencies
+PACKAGES="${PACKAGES} sway alacritty wofi waybar xorg-xwayland xorg-xlsclients qt5-wayland glfw-wayland grim slurp xdg-desktop-portal-wlr libpipewire02 wl-clipboard brightnessctl playerctl yad"
 
 # fonts
 PACKAGES="${PACKAGES} fontconfig ttf-bitstream-vera ttf-droid ttf-dejavu ttf-liberation ttf-hanazono ttf-font-awesome"
 
 # GUI software
-PACKAGES="${PACKAGES} rxvt-unicode urxvt-perls xarchiver gparted psensor hardinfo steam discord mpv openshot gimp krita firefox obs-studio dia mednafen mame ppsspp lutris sublime-text evince viewnior virt-manager virtualbox virtualbox-host-modules-arch"
+PACKAGES="${PACKAGES} xarchiver gparted psensor hardinfo steam discord mpv openshot gimp krita firefox obs-studio dia mednafen mame ppsspp lutris sublime-text evince viewnior virt-manager virtualbox virtualbox-host-modules-arch"
 
 # conditional GPU packages
 if [ $(lspci | grep -i "vga" | grep -ci "amd") -gt 0 ]; then
@@ -216,7 +213,7 @@ if [[ -n "$username" && -n "$password" ]]; then
 	fi
 
 	# add user to standard groups
-	usermod -aG users,sudo,adm,input,audio,video,disk,storage,lp,vboxuser $username
+	usermod -aG users,sudo,adm,input,audio,video,disk,storage,lp,vboxusers $username
 
 	# generate postgres user and user database
 	systemctl start postgresql

+ 0 - 58
install/etc/skel/.Xdefaults

@@ -1,58 +0,0 @@
-Xft.dpi:                    96
-Xft.antialias:              true
-Xft.rgba:                   rgb
-Xft.hinting:                true
-Xft.hintstyle:              hintfull
-Xft.autohint:               false
-Xft.lcdfilter:              lcddefault
-Xcursor.theme:              Chameleon-SkyBlue-Regular
-Xcursor.size:               14
-URxvt.depth:                32
-URxvt.geometry:             80x24
-URxvt*background:           [70]#001E27
-URxvt*scrollTtyOutput:      false
-URxvt*scrollWithBuffer:     true
-URxvt*scrollTtyKeypress:    true
-URxvt.fading:               0
-URxvt.loginShell:           true
-URxvt.internalBorder:       3
-URxvt.lineSpace:            0
-URxvt.scrollStyle:          rxvt
-URxvt.scrollBar:            false
-URxvt.cursorBlink:          true
-URxvt.cursorColor:          #657b83
-URxvt.cursorUnderline:      false
-URxvt.pointerBlank:         true
-URxvt*font:                 xft:ForMateKonaVe:pixelsize=14
-URxvt*letterSpace:          -1
-URxvt.perl-ext-common:      default,matcher,font,clipboard,selection-to-clipboard
-URxvt.clipboard.copycmd:    xsel -ib
-URxvt.clipboard.pastecmd:   xsel -ob
-URxvt.keysym.C-equal:       perl:font:increment
-URxvt.keysym.C-minus:       perl:font:decrement
-URxvt.matcher.button:       1
-URxvt.urlLauncher:          /usr/bin/xdg-open
-URxvt.inputMethod:          ibus
-URxvt.preeditType:          OverTheSpot
-*background:                #001E27
-*foreground:                #9CC2C3
-*fadeColor:                 #002832
-*cursorColor:               #F34F00
-*pointerColorBackground:    #003747
-*pointerColorForeground:    #9CC2C3
-*color0:                    #002831
-*color1:                    #D11C24
-*color2:                    #6CBE6C
-*color3:                    #A57706
-*color4:                    #2176C7
-*color5:                    #C61C6F
-*color6:                    #259286
-*color7:                    #EAE3CB
-*color8:                    #006488
-*color9:                    #F5163B
-*color10:                   #51EF84
-*color11:                   #B27E28
-*color12:                   #178EC8
-*color13:                   #E24D8E
-*color14:                   #00B39E
-*color15:                   #FCF4DC

+ 4 - 3
install/etc/skel/.bash_profile

@@ -3,13 +3,14 @@
 # add local bin to path
 export PATH=/usr/local/bin:$PATH
 
-# add Xresources symlink if not exists
-[ ! -f "$HOME/.Xresources" ] && ln -s "$HOME/.Xdefaults" "$HOME/.Xresources"
-
 # fcitx IME support
 export GTK_IM_MODULE=fcitx
 export QT_IM_MODULE=fcitx
 export XMODIFIERS=@im=fcitx
 
+# specify wayland for applications like steam
+export MOZ_ENABLE_WAYLAND=1
+export SDL_VIDEODRIVER="wayland"
+
 # if bashrc exists and the terminal has stdin load it
 test -t 0 && . "$HOME/.bashrc"

+ 0 - 7
install/etc/skel/.config/openbox/autostart

@@ -1,7 +0,0 @@
-#!/bin/sh
-(xset r rate 250 25; xset b off; xset m 7 5)
-(xset s 0 0; xset s noexpose; xset s noblank; xset s off; xset -dpms)
-xrdb -merge "$HOME/.Xresources"
-hsetroot -solid "#001E27"
-(update-desktop-database) &
-(xdg-user-dirs-update) &

+ 0 - 18
install/etc/skel/.config/openbox/menu.xml

@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<openbox_menu xmlns="http://openbox.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://openbox.org/ file:///usr/share/openbox/menu.xsd">
-	<menu id="root-menu" label="Openbox 3">
-		<item label="web"><action name="Execute"><execute>firefox</execute></action></item>
-		<item label="editor"><action name="Execute"><execute>subl</execute></action></item>
-		<item label="cli"><action name="Execute"><execute>urxvt</execute></action></item>
-		<item label="files"><action name="Execute"><execute>pcmanfm</execute></action></item>
-		<separator />
-		<menu id="applications" label="Applications" execute="xdg_menu --format openbox3-pipe --root-menu /etc/xdg/menus/arch-applications.menu" />
-		<separator />
-		<menu id="client-list-menu" />
-		<separator />
-		<item label="reload"><action name="Reconfigure" /></item>
-		<item label="logout"><action name="Exit"><prompt>no</prompt></action></item>
-		<item label='reboot'><action name='Execute'><command>systemctl reboot -i</command></action></item>
-		<item label='shutdown'><action name='Execute'><command>systemctl poweroff -i</command></action></item>
-	</menu>
-</openbox_menu>

+ 0 - 107
install/etc/skel/.config/openbox/rc.xml

@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<openbox_config xmlns="http://openbox.org/3.4/rc" xmlns:xi="http://www.w3.org/2001/XInclude">
-	<resistance><strength>15</strength><screen_edge_strength>40</screen_edge_strength></resistance>
-	<focus><focusNew>yes</focusNew><followMouse>no</followMouse></focus>
-	<placement><policy>Smart</policy><center>yes</center><monitor>Active</monitor><primaryMonitor>Active</primaryMonitor></placement>
-	<desktops><number>3</number><firstdesk>1</firstdesk><popupTime>1000</popupTime></desktops>
-	<resize><drawContents>yes</drawContents><popupShow>Nonpixel</popupShow><popupPosition>Center</popupPosition></resize>
-	<menu><file>menu.xml</file><hideDelay>200</hideDelay><middle>no</middle><submenuShowDelay>100</submenuShowDelay><submenuHideDelay>400</submenuHideDelay><applicationIcons>yes</applicationIcons><manageDesktops>no</manageDesktops></menu>
-	<margins><top>0</top><bottom>0</bottom><left>0</left><right>0</right></margins>
-	<dock><position>TopLeft</position><floatingX>0</floatingX><floatingY>0</floatingY><noStrut>no</noStrut><stacking>Above</stacking><direction>Vertical</direction><autoHide>no</autoHide><hideDelay>300</hideDelay><showDelay>300</showDelay><moveButton>Middle</moveButton></dock>
-	<theme>
-		<name>Onyx-Citrus</name>
-		<titleLayout>NLIMC</titleLayout>
-		<keepBorder>no</keepBorder>
-		<animateIconify>yes</animateIconify>
-		<font place="ActiveWindow"><name>ForMateKonaVe</name><size>8</size><weight>bold</weight><slant>normal</slant></font>
-		<font place="InactiveWindow"><name>ForMateKonaVe</name><size>8</size><weight>bold</weight><slant>normal</slant></font>
-		<font place="MenuHeader"><name>ForMateKonaVe</name><size>9</size><weight>normal</weight><slant>normal</slant></font>
-		<font place="MenuItem"><name>ForMateKonaVe</name><size>9</size><weight>normal</weight><slant>normal</slant></font>
-		<font place="ActiveOnScreenDisplay"><name>ForMateKonaVe</name><size>9</size><weight>bold</weight><slant>normal</slant></font>
-		<font place="InactiveOnScreenDisplay"><name>ForMateKonaVe</name><size>9</size><weight>bold</weight><slant>normal</slant></font>
-	</theme>
-	<keyboard>
-		<keybind key="A-F4"><action name="Close"/></keybind>
-		<keybind key="W-Down"><action name="Iconify"/></keybind>
-		<keybind key="W-Tab"><action name="ShowMenu"><menu>root-menu</menu></action></keybind>
-		<keybind key="A-space"><action name="ShowMenu"><menu>client-menu</menu></action></keybind>
-		<keybind key="A-Escape"><action name="Lower"/><action name="FocusToBottom"/><action name="Unfocus"/></keybind>
-		<keybind key="A-Tab"><action name="NextWindow"><finalactions><action name="Focus"/><action name="Raise"/><action name="Unshade"/></finalactions></action></keybind>
-		<keybind key="A-S-Tab"><action name="PreviousWindow"><finalactions><action name="Focus"/><action name="Raise"/><action name="Unshade"/></finalactions></action></keybind>
-		<keybind key="W-Up"><action name="ToggleMaximizeFull"/></keybind>
-		<keybind key="W-C-Up"><action name="ToggleMaximizeFull"/></keybind>
-		<keybind key="W-Right"><action name="MoveResizeTo"><monitor>next</monitor></action></keybind>
-		<keybind key="W-Left"><action name="MoveResizeTo"><monitor>prev</monitor></action></keybind>
-		<keybind key="W-C-Right"><action name="Unmaximize"/><action name="MoveResizeTo"><width>50%</width><height>100%</height><x>-0</x><y>0</y><monitor>current</monitor></action></keybind>
-		<keybind key="W-C-Left"><action name="Unmaximize"/><action name="MoveResizeTo"><width>50%</width><height>100%</height><x>0</x><y>0</y><monitor>current</monitor></action></keybind>
-		<keybind key="C-A-Right"><action name="GoToDesktop"><to>right</to><wrap>no</wrap></action></keybind>
-		<keybind key="C-A-Left"><action name="GoToDesktop"><to>left</to><wrap>no</wrap></action></keybind>
-		<keybind key="S-A-Right"><action name="SendToDesktop"><to>right</to><wrap>no</wrap></action></keybind>
-		<keybind key="S-A-Left"><action name="SendToDesktop"><to>left</to><wrap>no</wrap></action></keybind>
-		<keybind key="XF86MonBrightnessUp"><action name="Execute"><command>xbacklight -inc 5</command></action></keybind>
-		<keybind key="XF86MonBrightnessDown"><action name="Execute"><command>xbacklight -dec 5</command></action></keybind>
-		<keybind key="XF86AudioRaiseVolume"><action name="Execute"><command>pash increase</command></action></keybind>
-		<keybind key="XF86AudioLowerVolume"><action name="Execute"><command>pash decrease</command></action></keybind>
-		<keybind key="XF86AudioMute"><action name="Execute"><command>pash mute</command></action></keybind>
-        <keybind key="XF86AudioPlay"><action name="Execute"><command>mpv-control p</command></action></keybind>
-        <keybind key="XF86AudioPrev"><action name="Execute"><command>mpv-control less</command></action></keybind>
-        <keybind key="XF86AudioNext"><action name="Execute"><command>mpv-control greater</command></action></keybind>
-		<keybind key="W-S-3"><action name="Execute"><command>screenshot</command></action></keybind>
-		<keybind key="W-S-4"><action name="Execute"><command>screenshot-selection</command></action></keybind>
-		<keybind key="W-grave"><action name="Execute"><execute>urxvtq</execute></action></keybind>
-		<keybind key="W-space"><action name="Execute"><command>gmrun</command></action></keybind>
-		<keybind key="A-F2"><action name="Execute"><command>gmrun</command></action></keybind>
-		<keybind key="W-w"><action name="Execute"><command>firefox</command></action></keybind>
-		<keybind key="W-t"><action name="Execute"><command>urxvt</command></action></keybind>
-		<keybind key="W-e"><action name="Execute"><command>subl</command></action></keybind>
-		<keybind key="W-b"><action name="Execute"><command>pcmanfm</command></action></keybind>
-		<keybind key="W-x"><action name="Exit"><prompt>no</prompt></action></keybind>
-	</keyboard>
-	<mouse>
-		<dragThreshold>5</dragThreshold>
-		<doubleClickTime>200</doubleClickTime>
-		<screenEdgeWarpTime>400</screenEdgeWarpTime>
-		<context name="Root Desktop">
-			<mousebind button="Right" action="Press"><action name="ShowMenu"><menu>root-menu</menu></action></mousebind>
-		</context>
-		<context name="Client">
-			<mousebind button="Left" action="Press"><action name="Focus"/><action name="Raise"/></mousebind>
-			<mousebind button="Middle" action="Press"><action name="Focus"/><action name="Raise"/></mousebind>
-			<mousebind button="Right" action="Press"><action name="Focus"/><action name="Raise"/></mousebind>
-		</context>
-		<context name="Titlebar">
-			<mousebind button="Left" action="Drag"><action name="Move"/></mousebind>
-			<mousebind button="Left" action="DoubleClick"><action name="ToggleMaximize"/></mousebind>
-			<mousebind button="Right" action="Press"><action name="Focus"/><action name="Raise"/><action name="ShowMenu"><menu>client-menu</menu></action></mousebind>
-		</context>
-		<context name="Top Left Right Bottom TRCorner BRCorner TLCorner BLCorner">
-			<mousebind button="Left" action="Press"><action name="Focus"/><action name="Raise"/><action name="Unshade"/></mousebind>
-			<mousebind button="Left" action="Drag"><action name="Resize"/></mousebind>
-		</context>
-		<context name="Icon">
-			<mousebind button="Left" action="Press"><action name="Focus"/><action name="Raise"/><action name="ShowMenu"><menu>client-menu</menu></action></mousebind>
-			<mousebind button="Right" action="Press"><action name="Focus"/><action name="Raise"/><action name="ShowMenu"><menu>client-menu</menu></action></mousebind>
-		</context>
-		<context name="Iconify">
-			<mousebind button="Left" action="Click"><action name="Iconify"/></mousebind>
-		</context>
-		<context name="Maximize">
-			<mousebind button="Left" action="Click"><action name="ToggleMaximize"/></mousebind>
-		</context>
-		<context name="Close">
-			<mousebind button="Left" action="Press"><action name="Focus"/><action name="Raise"/></mousebind>
-			<mousebind button="Left" action="Click"><action name="Close"/></mousebind>
-		</context>
-		<context name="AllDesktops">
-			<mousebind button="Left" action="Press"><action name="Focus"/><action name="Raise"/><action name="Unshade"/></mousebind>
-			<mousebind button="Left" action="Click"><action name="ToggleOmnipresent"/></mousebind>
-		</context>
-		<context name="Shade">
-			<mousebind button="Left" action="Press"><action name="Focus"/><action name="Raise"/></mousebind>
-			<mousebind button="Left" action="Click"><action name="ToggleShade"/></mousebind>
-		</context>
-	</mouse>
-	<applications>
-		<application name="urxvtq"><decor>no</decor><position force="yes"><x>center</x><y>0</y></position><desktop>all</desktop><layer>above</layer><skip_pager>yes</skip_pager><skip_taskbar>yes</skip_taskbar><maximized>Horizontal</maximized></application>
-	</applications>
-</openbox_config>

+ 0 - 63
install/etc/skel/.config/picom/picom.conf

@@ -1,63 +0,0 @@
-
-# lean renderer
-backend = "xrender";
-
-# vsync optimizations
-unredir-if-possible = true;
-
-# shadow optimizations
-shadow = true;
-dock = { shadow = false; };
-dnd = { shadow = false; };
-shadow-ignore-shaped = false;
-shadow-radius = 4;
-shadow-offset-x = -5;
-shadow-offset-y = -3;
-shadow-opacity = 0.5;
-shadow-exclude-reg = "x28+0-0"; # block shadows from overlapping the taskbar at the bottom of the screen
-shadow-exclude = [
-	"! name~=''",
-	"name = 'Notification'",
-	"name *= 'picom'",
-	"name *= 'mpv'",
-	"class_g = 'conky'"
-];
-
-# menu optimizations
-popup_menu = { opacity = 1; };
-dropdown_menu = { opacity = 1; };
-inactive-opacity = 1;
-active-opacity = 1;
-frame-opacity = 1;
-inactive-opacity-override = false;
-
-# avoid blur
-blur-background-fixed = false;
-blur-background-exclude = [
-	"window_type = 'dock'",
-	"window_type = 'desktop'"
-];
-
-# fading disabled for responsive desktop
-fading = false;
-
-# window manager optimizations
-mark-wmwin-focused = true;
-mark-overdir-focused = true;
-use-ewmh-active-win = true;
-
-# window detection optimizations
-detect-rounded-corners = true;
-detect-transient = true;
-detect-client-opacity = true;
-detect-client-leader = true;
-
-# other behaviors
-wintypes = {
-    tooltip = {
-        fade = true;
-        shadow = false;
-        focus = true;
-    }
-};
-

+ 173 - 0
install/etc/skel/.config/sway/config

@@ -0,0 +1,173 @@
+
+# @reference: man 5 sway
+# super for modifier
+set $mod Mod4
+
+# define service variables
+set $launcher wofi --show=run --lines=5 --prompt=""
+set $applauncher wofi --show=drun --lines=5 --prompt=""
+set $term alacritty
+set $browser firefox
+set $editor subl
+set $files pcmanfm
+
+# @todo: test loading from ~/.config/sway/config.d/*; would allow hardware specifics to be separated!
+# @reference: man 5 sway-output
+# @reference: swaymsg -t get_outputs
+# output configuration
+# output HDMI-A-1 mode --custom 2560x1440@60Hz position 0,0 adaptive_sync on
+
+# @note: we use the default wallpaper as a backup
+output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
+
+# @note: cursor theme and size set env vars; may not apply to all applications
+seat seat0 xcursor_theme Chameleon-SkyBlue-Large
+
+# @note: idle display sleep is an option, but I don't like display sleep
+# exec swayidle -w \
+#          timeout 300 'swaylock -f -c 000000' \
+#          timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
+#          before-sleep 'swaylock -f -c 000000'
+
+# @reference: man 5 sway-input
+# @reference: swaymsg -t get_inputs
+# @todo: define synaptic touchpad for laptops here
+# Example configuration:
+#   input "2:14:SynPS/2_Synaptics_TouchPad" {
+#       dwt enabled
+#       tap enabled
+#       natural_scroll enabled
+#       middle_emulation enabled
+#   }
+
+# window manager commands
+bindsym $mod+Shift+c reload
+bindsym $mod+Shift+q kill
+bindsym $mod+x exec swaymsg exit
+bindsym $mod+p focus parent
+
+# Drag floating windows by holding down $mod and left mouse button.
+# Resize them with right mouse button + $mod.
+# Despite the name, also works for non-floating windows.
+# Change normal to inverse to use left mouse button for resizing and right
+# mouse button for dragging.
+floating_modifier $mod normal
+
+# Move your focus around
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# Move the focused window with the same, but add Shift
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+mode "resize" {
+    bindsym Left resize shrink width 10px
+    bindsym Down resize grow height 10px
+    bindsym Up resize shrink height 10px
+    bindsym Right resize grow width 10px
+    bindsym Return mode "default"
+    bindsym Escape mode "default"
+}
+bindsym $mod+r mode "resize"
+
+# @todo: investigate named workspaces and affinities; eg. games workspace, left/right workspace navigation
+# @todo: also investigate multi-monitor hotkeys for moving containers across displays
+# workspace commands
+bindsym $mod+1 workspace number 1
+bindsym $mod+2 workspace number 2
+bindsym $mod+3 workspace number 3
+bindsym $mod+4 workspace number 4
+bindsym $mod+5 workspace number 5
+bindsym $mod+6 workspace number 6
+bindsym $mod+7 workspace number 7
+bindsym $mod+8 workspace number 8
+bindsym $mod+9 workspace number 9
+bindsym $mod+0 workspace number 10
+bindsym $mod+Shift+1 move container to workspace number 1, workspace number 1
+bindsym $mod+Shift+2 move container to workspace number 2, workspace number 2
+bindsym $mod+Shift+3 move container to workspace number 3, workspace number 3
+bindsym $mod+Shift+4 move container to workspace number 4, workspace number 4
+bindsym $mod+Shift+5 move container to workspace number 5, workspace number 5
+bindsym $mod+Shift+6 move container to workspace number 6, workspace number 6
+bindsym $mod+Shift+7 move container to workspace number 7, workspace number 7
+bindsym $mod+Shift+8 move container to workspace number 8, workspace number 8
+bindsym $mod+Shift+9 move container to workspace number 9, workspace number 9
+bindsym $mod+Shift+0 move container to workspace number 10, workspace number 10
+
+# services
+bindsym $mod+space exec $launcher
+bindsym $mod+F2 exec $applauncher
+bindsym $mod+t exec $term
+bindsym $mod+b exec $files
+bindsym $mod+e exec $editor
+bindsym $mod+w exec $browser
+bindsym $mod+Ctrl+3 exec screenshot
+bindsym $mod+Ctrl+4 exec screenshot-selection
+
+# multimedia keys
+# bindsym XF86AudioRaiseVolume exec pash increase
+# bindsym XF86AudioLowerVolume exec pash decrease
+# bindsym XF86AudioMute exec pash mute
+bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
+bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
+bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
+bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
+bindsym XF86AudioPlay exec playerctl play-pause
+bindsym XF86AudioNext exec playerctl next
+bindsym XF86AudioPrev exec playerctl previous
+bindsym XF86MonBrightnessUp exec brightnessctl set +5%
+bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
+bindsym Shift+XF86MonBrightnessUp exec brightnessctl s 100%
+bindsym Shift+XF86MonBrightnessDown exec brightnessctl s 0%
+
+# @todo: investigate these layout behaviors; immediate testing showed no changes
+#
+# Layout stuff:
+#
+# You can "split" the current object of your focus with
+# $mod+b or $mod+v, for horizontal and vertical splits
+# respectively.
+# bindsym $mod+b splith
+# bindsym $mod+v splitv
+# Switch the current container between different layout styles
+# bindsym $mod+s layout stacking
+# bindsym $mod+w layout tabbed
+# bindsym $mod+e layout toggle split
+# Make the current focus fullscreen
+# bindsym $mod+f fullscreen
+
+# @todo: identify an appropriate hotkey to toggle floating mode
+# Toggle the current focus between tiling and floating mode
+#bindsym $mod+Shift+space floating toggle
+# Swap focus between the tiling area and the floating area
+#bindsym $mod+space focus mode_toggle
+
+# @todo: investigate scratchpad usage to replace urxvtq script for persistent terminal
+#        basically mod+tilde toggle and position terminal using scratchpad to hide it
+# Scratchpad:
+# Sway has a "scratchpad", which is a bag of holding for windows.
+# You can send windows there and get them back later.
+# Move the currently focused window to the scratchpad
+# bindsym $mod+Shift+minus move scratchpad
+# Show the next scratchpad window or hide the focused scratchpad window.
+# If there are multiple scratchpad windows, this command cycles through them.
+# bindsym $mod+minus scratchpad show
+
+# @reference: man 5 sway-bar
+# @todo: figure out how to configure and optimize waybar
+bar {
+	swaybar_command waybar
+}
+
+# load additional configuration
+# @note: input and output configuration specific to your system may be loaded from `config.d/`
+include /etc/sway/config.d/*
+include ~/.config/sway/config.d/*
+
+# launch session
+exec_always "systemctl --user import-environment; systemctl --user start sway-session.target"

+ 13 - 0
install/etc/skel/.config/sway/config.d/keyboard-defaults

@@ -0,0 +1,13 @@
+
+# @note: potential firefox crash bug
+input * xkb_numlock enable
+
+input * repeat_delay 250
+input * repeat_rate 25
+
+input "type:keyboard" {
+	xkb_options ctrl:nocaps
+
+    repeat_delay 250
+    repeat_rate 25
+}

+ 0 - 12
install/etc/skel/.config/systemd/user/conky.service

@@ -1,12 +0,0 @@
-[Unit]
-Description=Conky Status Window
-PartOf=graphical-session.target
-
-[Service]
-Type=simple
-ExecStart=/usr/bin/conky
-Restart=on-failure
-RestartSec=3
-
-[Install]
-WantedBy=xsession.target

+ 1 - 1
install/etc/skel/.config/systemd/user/fcitx5.service

@@ -10,4 +10,4 @@ Restart=on-failure
 RestartSec=3
 
 [Install]
-WantedBy=xsession.target
+WantedBy=sway-session.target

+ 1 - 1
install/etc/skel/.config/systemd/user/gsettings.service

@@ -7,4 +7,4 @@ Type=oneshot
 ExecStart=/usr/local/bin/load-gsettings
 
 [Install]
-WantedBy=xsession.target
+WantedBy=sway-session.target

+ 1 - 1
install/etc/skel/.config/systemd/user/lxpolkit.service

@@ -9,4 +9,4 @@ Restart=on-failure
 RestartSec=3
 
 [Install]
-WantedBy=xsession.target
+WantedBy=sway-session.target

+ 0 - 10
install/etc/skel/.config/systemd/user/openbox-autostart.service

@@ -1,10 +0,0 @@
-[Unit]
-Description=Openbox autostart script
-PartOf=graphical-session.target
-
-[Service]
-Type=oneshot
-ExecStart=%h/.config/openbox/autostart
-
-[Install]
-WantedBy=xsession.target

+ 0 - 12
install/etc/skel/.config/systemd/user/pasystray.service

@@ -1,12 +0,0 @@
-[Unit]
-Description=Pulse Audio System Tray Menu
-PartOf=graphical-session.target
-
-[Service]
-Type=simple
-ExecStart=/usr/bin/pasystray
-Restart=on-failure
-RestartSec=3
-
-[Install]
-WantedBy=xsession.target

+ 0 - 12
install/etc/skel/.config/systemd/user/picom.service

@@ -1,12 +0,0 @@
-[Unit]
-Description=Picom window composite manager
-PartOf=graphical-session.target
-
-[Service]
-Type=simple
-ExecStart=/usr/bin/picom
-Restart=on-failure
-RestartSec=3
-
-[Install]
-WantedBy=xsession.target

+ 1 - 1
install/etc/skel/.config/systemd/user/xsession.target → install/etc/skel/.config/systemd/user/sway-session.target

@@ -1,3 +1,3 @@
 [Unit]
-Description=Xsession started
+Description=sway session initialization
 BindsTo=graphical-session.target

+ 0 - 0
install/etc/skel/.config/systemd/user/xsession.target.wants/fcitx5.service → install/etc/skel/.config/systemd/user/sway-session.target.wants/fcitx5.service


+ 1 - 0
install/etc/skel/.config/systemd/user/sway-session.target.wants/gsettings.service

@@ -0,0 +1 @@
+../gsettings.service

+ 0 - 0
install/etc/skel/.config/systemd/user/xsession.target.wants/lxpolkit.service → install/etc/skel/.config/systemd/user/sway-session.target.wants/lxpolkit.service


+ 1 - 0
install/etc/skel/.config/systemd/user/sway-session.target.wants/update-desktop-database.service

@@ -0,0 +1 @@
+../update-desktop-database.service

+ 0 - 0
install/etc/skel/.config/systemd/user/xsession.target.wants/wallpaper.service → install/etc/skel/.config/systemd/user/sway-session.target.wants/wallpaper.service


+ 1 - 0
install/etc/skel/.config/systemd/user/sway-session.target.wants/xdg-user-dirs-update.service

@@ -0,0 +1 @@
+../xdg-user-dirs-update.service

+ 0 - 12
install/etc/skel/.config/systemd/user/tint2.service

@@ -1,12 +0,0 @@
-[Unit]
-Description=Tint2 Menu
-PartOf=graphical-session.target
-
-[Service]
-Type=simple
-ExecStart=/usr/bin/tint2
-Restart=on-failure
-RestartSec=3
-
-[Install]
-WantedBy=xsession.target

+ 10 - 0
install/etc/skel/.config/systemd/user/update-desktop-database.service

@@ -0,0 +1,10 @@
+[Unit]
+Description=update desktop database
+PartOf=graphical-session.target
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/update-desktop-database
+
+[Install]
+WantedBy=sway-session.target

+ 1 - 1
install/etc/skel/.config/systemd/user/wallpaper.service

@@ -9,4 +9,4 @@ Restart=on-failure
 RestartSec=3
 
 [Install]
-WantedBy=xsession.target
+WantedBy=sway-session.target

+ 10 - 0
install/etc/skel/.config/systemd/user/xdg-user-dirs-update.service

@@ -0,0 +1,10 @@
+[Unit]
+Description=update xdg user directories
+PartOf=graphical-session.target
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/xdg-user-dirs-update
+
+[Install]
+WantedBy=sway-session.target

+ 0 - 1
install/etc/skel/.config/systemd/user/xsession.target.wants/conky.service

@@ -1 +0,0 @@
-../conky.service

+ 0 - 1
install/etc/skel/.config/systemd/user/xsession.target.wants/openbox-autostart.service

@@ -1 +0,0 @@
-../openbox-autostart.service

+ 0 - 1
install/etc/skel/.config/systemd/user/xsession.target.wants/pasystray.service

@@ -1 +0,0 @@
-../pasystray.service

+ 0 - 1
install/etc/skel/.config/systemd/user/xsession.target.wants/picom.service

@@ -1 +0,0 @@
-../picom.service

+ 0 - 1
install/etc/skel/.config/systemd/user/xsession.target.wants/tint2.service

@@ -1 +0,0 @@
-../tint2.service

+ 0 - 5
install/etc/skel/.xinitrc

@@ -1,5 +0,0 @@
-[ -f ~/.screenlayout/default.sh ] && . ~/.screenlayout/default.sh
-/etc/X11/xinit/xinitrc.d/50-systemd-user.sh
-systemctl --user import-environment PATH DBUS_SESSION_BUS_ADDRESS
-systemctl --no-block --user start xsession.target
-exec openbox

+ 0 - 3
install/usr/local/bin/mpv-control

@@ -1,3 +0,0 @@
-#!/bin/bash
-win=$(xdotool search --class mpv)
-[ -n "$1" ] && [ -n "$win" ] && xdotool key --window "$win" $1

+ 0 - 36
install/usr/local/bin/pash

@@ -1,36 +0,0 @@
-#!/bin/bash
-
-# define functions to assist with operations
-pash_increase() {
-	echo "increasing volume on all active sinks..."
-	local sinks=$(pactl list short sinks | grep "RUNNING\|IDLE" | awk '{print $1}')
-	echo "$sinks" | while IFS= read -r sink ; do pactl set-sink-volume $sink +5%; done
-}
-
-pash_decrease() {
-	echo "decreasing volume on all active sinks..."
-	local sinks=$(pactl list short sinks | grep "RUNNING\|IDLE" | awk '{print $1}')
-	echo "$sinks" | while IFS= read -r sink ; do pactl set-sink-volume $sink -5%; done
-}
-
-pash_mute() {
-	echo "toggling mute on all active sinks..."
-	local sinks=$(pactl list short sinks | grep "RUNNING\|IDLE" | awk '{print $1}')
-	echo "$sinks" | while IFS= read -r sink ; do pactl set-sink-mute $sink toggle; done
-}
-
-# select operation from list
-case $1 in
-	increase)
-		pash_increase
-		;;
-	decrease)
-		pash_decrease
-		;;
-	mute)
-		pash_mute
-		;;
-	*)
-		echo "unknown command ${1}..."
-		;;
-esac

+ 1 - 8
install/usr/local/bin/screenshot

@@ -1,9 +1,2 @@
 #!/bin/bash
-[ -d $(xdg-user-dir PICTURES)/screenshots ] || mkdir -p $(xdg-user-dir PICTURES)/screenshots
-mx=$(xdotool getmouselocation | awk -F'[: ]' '{print $2}')
-my=$(xdotool getmouselocation | awk -F'[: ]' '{print $4}')
-xdpyinfo -ext XINERAMA | sed '/^  head #/!d;s///' | while IFS=' :x@,' read i w h x y; do
-	if [[ $mx -ge $x && $mx -le $(($x + $w)) && $my -ge $y && $my -le $(($y + $h)) ]]; then
-		import -window root -crop ${w}x$h+$x+$y "$(xdg-user-dir PICTURES)/screenshots/$(date +%F_%H%M%S_%N)-${i}.png"
-	fi
-done
+grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name') "$(xdg-user-dir PICTURES)/screenshots/$(date +'%Y%m%d_%H%M%S%N.png')"

+ 6 - 2
install/usr/local/bin/screenshot-selection

@@ -1,3 +1,7 @@
 #!/bin/bash
-[ -d $(xdg-user-dir PICTURES)/screenshots ] || mkdir -p $(xdg-user-dir PICTURES)/screenshots
-import -frame "$(xdg-user-dir PICTURES)/screenshots/$(date +'%F-%H.%M.%S-(%N).png')"
+dimensions=$(slurp 2>/dev/null)
+if [ $? -eq 0 ]; then
+	grim -g "$dimensions" "$(xdg-user-dir PICTURES)/screenshots/$(date +'%Y%m%d_%H%M%S%N.png')"
+else
+	grim -g "$(swaymsg -t get_tree | jq -j '.. | select(.type?) | select(.focused).rect | "\(.x),\(.y) \(.width)x\(.height)"')" "$(xdg-user-dir PICTURES)/screenshots/$(date +'%Y%m%d_%H%M%S%N.png')"
+fi

+ 1 - 2
install/usr/local/bin/system-updates

@@ -2,6 +2,5 @@
 
 pacman -Syu --noconfirm --ignore=linux
 
-youtube-dl -U
-
 python3 -m pip install --upgrade protontricks
+

+ 0 - 10
install/usr/local/bin/urxvtq

@@ -1,10 +0,0 @@
-#!/bin/bash
-if [ $(ps aux | grep -v grep | grep -c "urxvt -name urxvtq") -eq 0 ]; then
-	urxvt -name urxvtq -geometry 200x24 &
-	xdotool windowactivate --sync $(xdotool search -sync --onlyvisible --classname urxvtq)
-elif xdotool search --onlyvisible --classname urxvtq &> /dev/null; then
-	xdotool windowunmap $(xdotool search -sync --classname urxvtq)
-else
-	xdotool windowmap --sync $(xdotool search -sync --classname urxvtq)
-	xdotool windowactivate --sync $(xdotool search -sync --classname urxvtq)
-fi

+ 4 - 6
install/usr/local/bin/wallpaper

@@ -15,12 +15,10 @@ done
 
 # infinitely change wallpaper
 while true; do
-	wallpaper_cmd="feh --no-fehbg"
-	monitor_count=$(xrandr -d :0 -q | grep -c " connected")
-	while [ $monitor_count -gt 0 ]; do
-		wallpaper_cmd="$wallpaper_cmd --bg-max \"$(find $wallpaper_path -type f | sort -R | tail -1)\""
-		let monitor_count=monitor_count-1
+	sway_outputs=( $(swaymsg -t get_outputs | jq -r '.[].name') )
+	for op in "${sway_outputs[@]}"; do
+		wp="$(find $wallpaper_path -type f | sort -R | tail -1)"
+		swaymsg "output $op bg $wp" fit \#001E27
 	done
-	eval "$wallpaper_cmd"
 	sleep $wallpaper_sleep_for
 done

+ 42 - 191
todo.md

@@ -8,199 +8,50 @@ _Expect iterative changes over the following months while fine-tuning happens on
 
 ## sway
 
-Create a `sway` branch to test building a minimal install with a brand new window manager and removing xorg packages!
-
-Disable all GUI packages to build a "minimal" install.
-
-We'll take that image and triple check package dependency chains for sway and applications to run on it
-
-
-
-This will likely require significant refinement, as I'll need to test configurations on real hardware to validate multi-monitor behavior.
-
-Further, it will require some time to get used to it, but from rudimentary tests I have been able to run every game of interest on it, and with significantly increased performance!
-
-References:
-
-https://www.fosskers.ca/en/blog/wayland
-https://wiki.archlinux.org/title/Sway#Manage_Sway-specific_daemons_with_systemd
-https://wiki.archlinux.org/title/Sway#Application_launchers
-https://github.com/swaywm/sway/issues/1174
-https://www.youtube.com/watch?v=hRIGYUWQfYU
-https://www.youtube.com/watch?v=YWgZrES4t3U
-https://github.com/swaywm/sway/wiki#program-launchers
-https://github.com/lyfeyaj/sublime-text-imfix
-https://www.reddit.com/r/swaywm/comments/eksf1p/steam_now_fully_works_under_sway/
-
-Installed packages:
-
-	sway
-	alacritty
-	wofi
-	waybar
-	xorg-xwayland
-	xorg-xlsclients
-	qt5-wayland
-	glfw-wayland
-	grim
-	slurp
-	xdg-desktop-portal-wlr
-	libpipewire02
-	ttf-font-awesome
-	wl-clipboard
-	lxsession-gtk3
-
-Next create a config for sway:
-
-	mkdir -p ~/.config/sway
-	cp /etc/sway/config ~/.config/sway/config
-
-_I'm still tinkering with one using `wofi` for `$menu` and waybar, but it's not nearly ready._
-
-Migrate as many hotkeys from `rc.xml` as possible to sway config
-
-Added to `~/.bash_profile`:
-
-	export MOZ_ENABLE_WAYLAND=1
-	export SDL_VIDEODRIVER="wayland"
-
-_The `SDL_VIDEODRIVER` is for steam, and may break in many games, so I'll need to add overrides for incompatible titles using `SDL_VIDEODRIVER=x11` in steam launch commands, or if more games fail than no I can invert my setup so I add the override for games that I know work with wayland._
-
-Switch to waybar in sway config (_this is a massive improvement over the default_):
-
-	bar {
-		swaybar_command waybar
-	}
-
-_I need to research how to fully customize waybar, because it has a **lot** of data and could be refined!_
-
-I need to test wayland native alternatives to `urxvt` and `pcmanfm`; one recommendation is `alacritty` as a `urxvt` replacement, and `pcmanfm-gtk3` is supposedly wayland-compatible without xwayland.  Needs to be tested.
-
-I also need to test a base install with **no** GUI packages and manually installing the sway dependencies to ensure a minimal build.
-
-Add logic to sway config that starts sway-session target:
-
-	exec_always "systemctl --user import-environment; systemctl --user start sway-session.target"
-
-
-_Delete legacy userspace service files, and edit/change others for sway-session compatibility._
-
-Create new systemd service files for:
-
-- update-desktop-database (oneshot)
-- xdg-user-dirs-update (oneshot)
-- gtk3-settings (oneshot)
-
-_Verify whether we can delete `.Xdefaults` and `.Xresources`, as both should be legacy xorg specific; eg. urxvt._
-
-Replace `/usr/local/bin/screenshot`:
-
-	grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name') "$(xdg-user-dir PICTURES)/screenshots/$(date +'%Y%m%d_%H%M%S%N.png')"
-
-Replace `/usr/local/bin/screenshot-selection`:
-
-	dimensions=$(slurp 2>/dev/null)
-	if [ $? -eq 0 ]; then
-		grim -g "$dimensions" "$(xdg-user-dir PICTURES)/screenshots/$(date +'%Y%m%d_%H%M%S%N.png')"
-	else
-		grim -g "$(swaymsg -t get_tree | jq -j '.. | select(.type?) | select(.focused).rect | "\(.x),\(.y) \(.width)x\(.height)"')" "$(xdg-user-dir PICTURES)/screenshots/$(date +'%Y%m%d_%H%M%S%N.png')"
-	fi
-
-Replace `/usr/local/bin/wallpaper`:
-
-	#!/bin/bash
-
-	# set sane defaults
-	[ -z "$wallpaper_sleep_for" ] && wallpaper_sleep_for="180"
-	[ -z "$wallpaper_path" ] && wallpaper_path="$(xdg-user-dir PICTURES)/wallpaper"
-	mkdir -p "$wallpaper_path"
-
-	# validate wallpaper path
-	[ $(find "$wallpaper_path" -type f | wc -l) -gt 0 ] || exit 1
-
-	# there can be only one
-	while [ $(ps aux | grep -v 'grep' | grep -c "$0") -gt 2 ]; do
-		kill $(ps aux | grep -v 'grep' | grep -v $$ | grep "$0" | awk '{print $2}') &> /dev/null
-	done
-
-	# infinitely change wallpaper
-	while true; do
-		sway_outputs=( $(swaymsg -t get_outputs | jq -r '.[].name') )
-		for op in "${sway_outputs[@]}"; do
-			wp="$(find $wallpaper_path -type f | sort -R | tail -1)"
-			swaymsg "output $op bg $wp" fit \#001E27
-		done
-		sleep $wallpaper_sleep_for
-	done
-
+Going directly to hardware trials because virtualbox support requires too much undesirable configuration:
+
+- Verify usespace systemd sway-session launch works as intended
+	- _does sway config loading from non-existing directory crash?_
+- Check all userspace service status to see if anything failed (eg. missing package(s) etc...)
+- Verify whether `~/.config/libfm` is valid, and it's not `~/.config/libfm-gtk3`?
+- Verify whether we can remove `pash` script in favor of hand-rolled commands
+	- _delete commented commands using old scripts_
+- Verify whether `playerctl` can replace `mpv-control`; does it work when on another workspace?
+	- _see if there is an option for inactive windows_
+	- _delete commented commands using old scripts_
+- Try hidpi setting (`output * scale 2`)
+	- Do all my key applications recognize it?
+		- pcmanfm
+		- mpv (???)
+		- firefox
+			- _does firefox look like absolute dogshit?_
+- Triple check client menu like my super+tab hotkey that let's you see a list of installed applications
+	- _I don't need this, but other users might..._
+- Experiment with left/right alignment keys like I had on my other desktop; and resize support
+	- _While I don't necessarily need complex splitting, I can at least try it and get some hotkeys setup for it_
+- Experiment with `Scratchpad` and a hotkye to establish a persistent terminal
+	- _It might be as simple as using a hotkey to send and retrieve from Scratchpad, which extends to all apps?_
+	- perhaps we can name the scratchpad to allow us to "reserve" one for a script to utilize...
+- Configure `waybar`
+	- _Improve visual aesthetic?_
+	- _Eliminate unused or undesired information; battery on desktop?_
+	- _Auto-hide it?_
+- add message to waybar and pactl for battery and volume control warnings
+- Investigate wofi theming (_Supposedly supports css, but can we import GTk theme?_)
 - research firefox auto-configuration _or_ copying configuration files (_eg. if plain text can add to dot-files_):
 	- https://support.mozilla.org/en-US/kb/customizing-firefox-using-autoconfig
 	- verify if it remembers workspaces when re-opened
-
+- install `cmst` from aur and try it out as an option for wifi support; if good add to my installation by default
+	- https://aur.archlinux.org/packages/cmst/
+- Multi-Monitor configuration/hotkeys
+	- supposedly each monitor is treated as a separate workspace, so this might work well
+		- https://www.reddit.com/r/swaywm/comments/gr7yvt/assigning_workspaces_to_specific_outputs/
+		- https://fedoramagazine.org/how-to-setup-multiple-monitors-in-sway/
+		- https://www.reddit.com/r/swaywm/comments/ftuiqa/is_it_possible_to_set_my_starting_workspace/
 - test/fix multimedia keys for volume change support (_may require actual hardware; would also consider popup icons?_)
 	- https://www.reddit.com/r/swaywm/comments/bwwxg0/xf86_audio_keys/
-
-- add `yad` to packages as a wayland-native `zenity` alternative
-	- add messages to waybar for battery
-	- add messages to pash for volume changes?
-
-- install `cmst` from aur and try it out as an option for wifi support
-	- https://aur.archlinux.org/packages/cmst/
-
-- investigate using `scratchpad` feature of `sway` for persistent terminal with toggle hotkey
-- investigate creating workspace affinities for things like fullscreen games so it automates placement/movement
-
-- set sway config to load userspace `.d` directory for custom settings
-	- touchpad-specific configuration; we may be able to add a default if we can identify ideal settings...
-	- display-specific configuration
-
-- on real hardware I'll need to test/refine sway config hotkeys for better navigation
-	- test creating workspace "affinity" for games and videos etc... so they open into a desirable placement?
-	- multi-monitor support and configuration; I'll need hotkeys that move applications between displays
-		- supposedly each monitor is treated as a separate workspace, so this might work well
-			- https://www.reddit.com/r/swaywm/comments/gr7yvt/assigning_workspaces_to_specific_outputs/
-			- https://fedoramagazine.org/how-to-setup-multiple-monitors-in-sway/
-			- https://www.reddit.com/r/swaywm/comments/ftuiqa/is_it_possible_to_set_my_starting_workspace/
-	- test left/right arrow navigation; both changing workspaces and also displays
-		- _can this be used for all workspaces or only numbered?_
-		- _Does it loop?_
-
-
-### testing
-
-- sway launched without any issues
-- waybar is awesome, basically replaces both tint2 AND conky at the same time
-	- can we resize and adjust what is displayed?
-	- can we add cmst and launch from right click?
-	- can we auto-hide/show with modifier keys so fullscreen apps work?
-- wofi is very fast and very clean, but it seems to be pulling from `.desktop` and not raw command line
-	- can we disable history so when it cannot find something it doesn't launch the last thing it had?
-	- _figure out how to add and run raw cli commands and we'd be set!_
-	- can use mod+d for apps and mod+space for terminal commands!
-	- I can also load a custom css to style it very nicely
-- alacritty is fast and works great so far, need to test unicode character support, but if so it might be time...
-	- _can possibly dump `.Xdefaults`?_
-- firefox ran without xwayland, so it's native!! Woohoo!
-- wine, and specifically genshin, ran natively without using xwayland?  Holy shit!
-- sublime text loaded and is wayland native (eg. no xlsclients)
-- Resolution was resolved, but adaptive sync only works with display port not hdmi sadly
-	- _genshin now perfectly launches filling the screen without waybar, so maybe it's a non-issue?_
-- used mozilla gum_test to verify webcam, mic, and screen sharing worked
-- I should also investigate get_inputs to see what config options I have there!
-	- _namely for mouse and touchpad fine-tuning defaults; if they aren't already_
-
-https://developers.redhat.com/blog/2016/10/28/what-comes-after-iptables-its-successor-of-course-nftables
-https://wiki.nftables.org/wiki-nftables/index.php/Main_differences_with_iptables
-https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables
-https://ungleich.ch/en-us/cms/blog/2018/08/18/iptables-vs-nftables/
-https://github.com/swaywm/sway/issues/3319
-https://github.com/swaywm/sway/blob/master/config.in
-https://github.com/jdonofrio728/swaywm-bg-changer/blob/master/swaywm-bg-changer
-https://github.com/jdonofrio728/swaywm-bg-changer
-https://www.reddit.com/r/swaywm/comments/ehqsuw/autochanging_background_for_sway/
-https://github.com/swaywm/sway/issues/5006
-https://wiki.archlinux.org/title/Polkit
-https://forums.centos.org/viewtopic.php?t=70139
-https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
-https://www.reddit.com/r/swaywm/comments/epp0r4/unable_to_configure_the_cursor_theme/
-https://wiki.archlinux.org/title/x_resources
+- Run every single game in my library; make sure everything works
+- Verify whether we should keep `pash` or the simpler commands work?
+- Verify whether `adaptive_sync` on my DisplayPort monitor works!
+- [Verify whether this is needed](https://github.com/lyfeyaj/sublime-text-imfix)
+- [Firefox Test for video, mic, and screen sharing](https://mozilla.github.io/webrtc-landing/gum_test.html)