Repository files navigation

dots

Inspired

See installer in the dots/ folder

Structure

Most of the dotfiles are in the bare repository, so they are already a part of the real HOME directory

For other files that are copied into place, see dots/

Notes

Proxy

For proxy usage

  • First you should run apply-http-proxy default to see the settings, and then eval $(apply-http-proxy default) to set the environment.
  • For systemd services that need proxy access, you should run apply-http-proxy systemd-apply first, and then restart any services that need to use the proxy.
  • For git, update your git-ssh config to use the socat proxy line

Remmina RDP

  • You can use RDP over the proxy by creating an SSH tunnel on the machine and then forwarding Remmina to that
    • Do not use the SSH tunnel settings in Remmina
    • Make sure UDP is OFF

Setup the SSH tunnel outside of the flatpak

  • Make sure you have socat installed, or proxytunnel
  • Make sure you have an SSH config entry for myhost that includes either of these lines
    • This example is assuming you are using TetherFi
ProxyCommand /usr/bin/proxytunnel -q -p 192.168.49.1:8228 -d %h:%p
ProxyCommand /usr/bin/socat STDIO PROXY:192.168.49.1:%h:%p,proxyport=8228

Then open the SSH tunnel

$ ssh -L 11569:myhost:3389 myuser@myhost

And then setup a connection in Remmina that targets 127.0.0.1:11569 for the server instead of whatever the remote RDP server at myhost would usually be.

Fonts

I code with a monospace Comic Sans like font. Yes, I am serious.
Currently I'm using a fork of "Comic Shanns", found here on github:
you have been warned

USBGuard

Make sure you setup USBGuardusbguard generate-policy > /etc/usbguard/rules.conf

Otherwise, if another service starts usbguard somehow, you will be locked out!

Overclocking / Undervolting

GPU

I use LACT for AMD GPU overclocking and undervolting Be sure to setup the daemon for usage by creating the lact group and specifying the group in /etc/lact/config.yaml

CPU

For CPU clocking, I use my own developed utility called pstate-frequency

Firmware Update

Linux

I prefer fwupd and using the org.gnome.Firmware flatpak for the frontend. To enable fwupd.service, you may wish to mask passim.service, which for example reports problems on my machine and prevents fwupd from running.

OPNsense

See the following: https://forum.opnsense.org/index.php?PHPSESSID=6t495rgeffabnr335eigncfkco&topic=48695.30https://github.com/nightcomdev/opnsense/tree/main/i226-firmware-upgrade

The current device used requires the 2MB version

Wayland

  • Sunshine needs cap_sys_admin sudo setcap 'CAP_SYS_ADMIN+p' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • Gamescope may need cap_sys_nice sudo setcap 'CAP_SYS_NICE=eip' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • See Arch wiki for enabling Wayland for Android Studio / Webstorm

Docker

For video acceleration in docker, make sure you setup hardware accel in the container

Use podman instead of docker to avoid the root daemon

Flatpak

For OBS capture, install OBSVkCapture from freedesktop.Platform and ObsStudio Also include gstreamer-vaapi from Freedesktop and Plugins.Gstreamer from ObsStudio You will need to install MangoHudgamescopeprotonup-qt manually

For Dark Mode you'll need the following flatpaks for the correct runtime (assuming GNOME)

QT: QAdwaitaDecorationsQGnomePlatformQGnomePlatform-decorations

GTK: See the themepak script, which copies your GTK theme into the user folders

Steam (Flatpak)

See notes in dots/scripts/gaming/README.md

Moonlight

Make sure you do not block the X11 or fallback x11 sockets for moonlight or else --grab won't work Sunshine Right-Alt tweak does not work because Wayland GNOME does not respond to the re-bound key.

Sunshine

Be sure to add the LizardByte Archlinux repository to /etc/pacman.conf

Don't enable the user level systemd service - it's weird. Use our customer autostart-sunshine user service which calls through to the restart-sunshine script, which it expects to live in ${HOME}/.local/bin The restart-sunshine script is unixy platform agnostic and will handle known quirks of sunshine

Secure Boot

You should install sbctl to easily manage secure boot, and reference the Arch wiki for usage. On specific machines, the secure boot BIOS process is a little janky. On my minisforum UM780XTX it is as follows

At any point if you are asked to "restore factory keys" or "reboot without saving", DO NOT DO IT.

  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Disable Secure Boot
  • Set to Custom Mode
  • Manually restore the factory keys
  • Enable setup mode
  • Reboot the machine, go into BIOS again
  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Enable setup mode (it should be allowed and the machine still in Custom mode with Disabled SB)
  • Now at the top you should see you are in "Setup" mode instead of "User"
  • DO NOT REBOOT - IF YOU REBOOT YOU WILL LEAVE SETUP MODE
  • Go to the boot override and select your main boot device.
  • Verify you are in setup mode via sbctl status and enroll your keys

Picard

Music is held by the containers-media user which runs containers for things like navidrome In order to run picard, you must either use a docker container or shell into the user. From your main user shell with X11 access, run xhost +SI:localuser:containers-media and then run picard with DISPLAY=:0 picard where picard may be the jailed script.

After running, be sure to revoke xhost access with xhost -SI:localuser:containers-media

Tweaks

FS performance

Enable fast_commit for ext4 Disable crypt workqueues

License

GPLv2

 The GPLv2 License
Copyright (C) 2023 pyamsoft
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

dotfiles

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

dots

Inspired

See installer in the dots/ folder

Structure

Most of the dotfiles are in the bare repository, so they are already a part of the real HOME directory

For other files that are copied into place, see dots/

Notes

Proxy

For proxy usage

  • First you should run apply-http-proxy default to see the settings, and then eval $(apply-http-proxy default) to set the environment.
  • For systemd services that need proxy access, you should run apply-http-proxy systemd-apply first, and then restart any services that need to use the proxy.
  • For git, update your git-ssh config to use the socat proxy line

Remmina RDP

  • You can use RDP over the proxy by creating an SSH tunnel on the machine and then forwarding Remmina to that
    • Do not use the SSH tunnel settings in Remmina
    • Make sure UDP is OFF

Setup the SSH tunnel outside of the flatpak

  • Make sure you have socat installed, or proxytunnel
  • Make sure you have an SSH config entry for myhost that includes either of these lines
    • This example is assuming you are using TetherFi
ProxyCommand /usr/bin/proxytunnel -q -p 192.168.49.1:8228 -d %h:%p
ProxyCommand /usr/bin/socat STDIO PROXY:192.168.49.1:%h:%p,proxyport=8228

Then open the SSH tunnel

$ ssh -L 11569:myhost:3389 myuser@myhost

And then setup a connection in Remmina that targets 127.0.0.1:11569 for the server instead of whatever the remote RDP server at myhost would usually be.

Fonts

I code with a monospace Comic Sans like font. Yes, I am serious.
Currently I'm using a fork of "Comic Shanns", found here on github:
you have been warned

USBGuard

Make sure you setup USBGuardusbguard generate-policy > /etc/usbguard/rules.conf

Otherwise, if another service starts usbguard somehow, you will be locked out!

Overclocking / Undervolting

GPU

I use LACT for AMD GPU overclocking and undervolting Be sure to setup the daemon for usage by creating the lact group and specifying the group in /etc/lact/config.yaml

CPU

For CPU clocking, I use my own developed utility called pstate-frequency

Firmware Update

Linux

I prefer fwupd and using the org.gnome.Firmware flatpak for the frontend. To enable fwupd.service, you may wish to mask passim.service, which for example reports problems on my machine and prevents fwupd from running.

OPNsense

See the following: https://forum.opnsense.org/index.php?PHPSESSID=6t495rgeffabnr335eigncfkco&topic=48695.30https://github.com/nightcomdev/opnsense/tree/main/i226-firmware-upgrade

The current device used requires the 2MB version

Wayland

  • Sunshine needs cap_sys_admin sudo setcap 'CAP_SYS_ADMIN+p' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • Gamescope may need cap_sys_nice sudo setcap 'CAP_SYS_NICE=eip' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • See Arch wiki for enabling Wayland for Android Studio / Webstorm

Docker

For video acceleration in docker, make sure you setup hardware accel in the container

Use podman instead of docker to avoid the root daemon

Flatpak

For OBS capture, install OBSVkCapture from freedesktop.Platform and ObsStudio Also include gstreamer-vaapi from Freedesktop and Plugins.Gstreamer from ObsStudio You will need to install MangoHudgamescopeprotonup-qt manually

For Dark Mode you'll need the following flatpaks for the correct runtime (assuming GNOME)

QT: QAdwaitaDecorationsQGnomePlatformQGnomePlatform-decorations

GTK: See the themepak script, which copies your GTK theme into the user folders

Steam (Flatpak)

See notes in dots/scripts/gaming/README.md

Moonlight

Make sure you do not block the X11 or fallback x11 sockets for moonlight or else --grab won't work Sunshine Right-Alt tweak does not work because Wayland GNOME does not respond to the re-bound key.

Sunshine

Be sure to add the LizardByte Archlinux repository to /etc/pacman.conf

Don't enable the user level systemd service - it's weird. Use our customer autostart-sunshine user service which calls through to the restart-sunshine script, which it expects to live in ${HOME}/.local/bin The restart-sunshine script is unixy platform agnostic and will handle known quirks of sunshine

Secure Boot

You should install sbctl to easily manage secure boot, and reference the Arch wiki for usage. On specific machines, the secure boot BIOS process is a little janky. On my minisforum UM780XTX it is as follows

At any point if you are asked to "restore factory keys" or "reboot without saving", DO NOT DO IT.

  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Disable Secure Boot
  • Set to Custom Mode
  • Manually restore the factory keys
  • Enable setup mode
  • Reboot the machine, go into BIOS again
  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Enable setup mode (it should be allowed and the machine still in Custom mode with Disabled SB)
  • Now at the top you should see you are in "Setup" mode instead of "User"
  • DO NOT REBOOT - IF YOU REBOOT YOU WILL LEAVE SETUP MODE
  • Go to the boot override and select your main boot device.
  • Verify you are in setup mode via sbctl status and enroll your keys

Picard

Music is held by the containers-media user which runs containers for things like navidrome In order to run picard, you must either use a docker container or shell into the user. From your main user shell with X11 access, run xhost +SI:localuser:containers-media and then run picard with DISPLAY=:0 picard where picard may be the jailed script.

After running, be sure to revoke xhost access with xhost -SI:localuser:containers-media

Tweaks

FS performance

Enable fast_commit for ext4 Disable crypt workqueues

License

GPLv2

 The GPLv2 License
Copyright (C) 2023 pyamsoft
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

dotfiles

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

dots

Inspired

See installer in the dots/ folder

Structure

Most of the dotfiles are in the bare repository, so they are already a part of the real HOME directory

For other files that are copied into place, see dots/

Notes

Proxy

For proxy usage

  • First you should run apply-http-proxy default to see the settings, and then eval $(apply-http-proxy default) to set the environment.
  • For systemd services that need proxy access, you should run apply-http-proxy systemd-apply first, and then restart any services that need to use the proxy.
  • For git, update your git-ssh config to use the socat proxy line

Remmina RDP

  • You can use RDP over the proxy by creating an SSH tunnel on the machine and then forwarding Remmina to that
    • Do not use the SSH tunnel settings in Remmina
    • Make sure UDP is OFF

Setup the SSH tunnel outside of the flatpak

  • Make sure you have socat installed, or proxytunnel
  • Make sure you have an SSH config entry for myhost that includes either of these lines
    • This example is assuming you are using TetherFi
ProxyCommand /usr/bin/proxytunnel -q -p 192.168.49.1:8228 -d %h:%p
ProxyCommand /usr/bin/socat STDIO PROXY:192.168.49.1:%h:%p,proxyport=8228

Then open the SSH tunnel

$ ssh -L 11569:myhost:3389 myuser@myhost

And then setup a connection in Remmina that targets 127.0.0.1:11569 for the server instead of whatever the remote RDP server at myhost would usually be.

Fonts

I code with a monospace Comic Sans like font. Yes, I am serious.
Currently I'm using a fork of "Comic Shanns", found here on github:
you have been warned

USBGuard

Make sure you setup USBGuardusbguard generate-policy > /etc/usbguard/rules.conf

Otherwise, if another service starts usbguard somehow, you will be locked out!

Overclocking / Undervolting

GPU

I use LACT for AMD GPU overclocking and undervolting Be sure to setup the daemon for usage by creating the lact group and specifying the group in /etc/lact/config.yaml

CPU

For CPU clocking, I use my own developed utility called pstate-frequency

Firmware Update

Linux

I prefer fwupd and using the org.gnome.Firmware flatpak for the frontend. To enable fwupd.service, you may wish to mask passim.service, which for example reports problems on my machine and prevents fwupd from running.

OPNsense

See the following: https://forum.opnsense.org/index.php?PHPSESSID=6t495rgeffabnr335eigncfkco&topic=48695.30https://github.com/nightcomdev/opnsense/tree/main/i226-firmware-upgrade

The current device used requires the 2MB version

Wayland

  • Sunshine needs cap_sys_admin sudo setcap 'CAP_SYS_ADMIN+p' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • Gamescope may need cap_sys_nice sudo setcap 'CAP_SYS_NICE=eip' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • See Arch wiki for enabling Wayland for Android Studio / Webstorm

Docker

For video acceleration in docker, make sure you setup hardware accel in the container

Use podman instead of docker to avoid the root daemon

Flatpak

For OBS capture, install OBSVkCapture from freedesktop.Platform and ObsStudio Also include gstreamer-vaapi from Freedesktop and Plugins.Gstreamer from ObsStudio You will need to install MangoHudgamescopeprotonup-qt manually

For Dark Mode you'll need the following flatpaks for the correct runtime (assuming GNOME)

QT: QAdwaitaDecorationsQGnomePlatformQGnomePlatform-decorations

GTK: See the themepak script, which copies your GTK theme into the user folders

Steam (Flatpak)

See notes in dots/scripts/gaming/README.md

Moonlight

Make sure you do not block the X11 or fallback x11 sockets for moonlight or else --grab won't work Sunshine Right-Alt tweak does not work because Wayland GNOME does not respond to the re-bound key.

Sunshine

Be sure to add the LizardByte Archlinux repository to /etc/pacman.conf

Don't enable the user level systemd service - it's weird. Use our customer autostart-sunshine user service which calls through to the restart-sunshine script, which it expects to live in ${HOME}/.local/bin The restart-sunshine script is unixy platform agnostic and will handle known quirks of sunshine

Secure Boot

You should install sbctl to easily manage secure boot, and reference the Arch wiki for usage. On specific machines, the secure boot BIOS process is a little janky. On my minisforum UM780XTX it is as follows

At any point if you are asked to "restore factory keys" or "reboot without saving", DO NOT DO IT.

  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Disable Secure Boot
  • Set to Custom Mode
  • Manually restore the factory keys
  • Enable setup mode
  • Reboot the machine, go into BIOS again
  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Enable setup mode (it should be allowed and the machine still in Custom mode with Disabled SB)
  • Now at the top you should see you are in "Setup" mode instead of "User"
  • DO NOT REBOOT - IF YOU REBOOT YOU WILL LEAVE SETUP MODE
  • Go to the boot override and select your main boot device.
  • Verify you are in setup mode via sbctl status and enroll your keys

Picard

Music is held by the containers-media user which runs containers for things like navidrome In order to run picard, you must either use a docker container or shell into the user. From your main user shell with X11 access, run xhost +SI:localuser:containers-media and then run picard with DISPLAY=:0 picard where picard may be the jailed script.

After running, be sure to revoke xhost access with xhost -SI:localuser:containers-media

Tweaks

FS performance

Enable fast_commit for ext4 Disable crypt workqueues

License

GPLv2

 The GPLv2 License
Copyright (C) 2023 pyamsoft
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

dotfiles

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

dots

Inspired

See installer in the dots/ folder

Structure

Most of the dotfiles are in the bare repository, so they are already a part of the real HOME directory

For other files that are copied into place, see dots/

Notes

Proxy

For proxy usage

  • First you should run apply-http-proxy default to see the settings, and then eval $(apply-http-proxy default) to set the environment.
  • For systemd services that need proxy access, you should run apply-http-proxy systemd-apply first, and then restart any services that need to use the proxy.
  • For git, update your git-ssh config to use the socat proxy line

Remmina RDP

  • You can use RDP over the proxy by creating an SSH tunnel on the machine and then forwarding Remmina to that
    • Do not use the SSH tunnel settings in Remmina
    • Make sure UDP is OFF

Setup the SSH tunnel outside of the flatpak

  • Make sure you have socat installed, or proxytunnel
  • Make sure you have an SSH config entry for myhost that includes either of these lines
    • This example is assuming you are using TetherFi
ProxyCommand /usr/bin/proxytunnel -q -p 192.168.49.1:8228 -d %h:%p
ProxyCommand /usr/bin/socat STDIO PROXY:192.168.49.1:%h:%p,proxyport=8228

Then open the SSH tunnel

$ ssh -L 11569:myhost:3389 myuser@myhost

And then setup a connection in Remmina that targets 127.0.0.1:11569 for the server instead of whatever the remote RDP server at myhost would usually be.

Fonts

I code with a monospace Comic Sans like font. Yes, I am serious.
Currently I'm using a fork of "Comic Shanns", found here on github:
you have been warned

USBGuard

Make sure you setup USBGuardusbguard generate-policy > /etc/usbguard/rules.conf

Otherwise, if another service starts usbguard somehow, you will be locked out!

Overclocking / Undervolting

GPU

I use LACT for AMD GPU overclocking and undervolting Be sure to setup the daemon for usage by creating the lact group and specifying the group in /etc/lact/config.yaml

CPU

For CPU clocking, I use my own developed utility called pstate-frequency

Firmware Update

Linux

I prefer fwupd and using the org.gnome.Firmware flatpak for the frontend. To enable fwupd.service, you may wish to mask passim.service, which for example reports problems on my machine and prevents fwupd from running.

OPNsense

See the following: https://forum.opnsense.org/index.php?PHPSESSID=6t495rgeffabnr335eigncfkco&topic=48695.30https://github.com/nightcomdev/opnsense/tree/main/i226-firmware-upgrade

The current device used requires the 2MB version

Wayland

  • Sunshine needs cap_sys_admin sudo setcap 'CAP_SYS_ADMIN+p' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • Gamescope may need cap_sys_nice sudo setcap 'CAP_SYS_NICE=eip' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • See Arch wiki for enabling Wayland for Android Studio / Webstorm

Docker

For video acceleration in docker, make sure you setup hardware accel in the container

Use podman instead of docker to avoid the root daemon

Flatpak

For OBS capture, install OBSVkCapture from freedesktop.Platform and ObsStudio Also include gstreamer-vaapi from Freedesktop and Plugins.Gstreamer from ObsStudio You will need to install MangoHudgamescopeprotonup-qt manually

For Dark Mode you'll need the following flatpaks for the correct runtime (assuming GNOME)

QT: QAdwaitaDecorationsQGnomePlatformQGnomePlatform-decorations

GTK: See the themepak script, which copies your GTK theme into the user folders

Steam (Flatpak)

See notes in dots/scripts/gaming/README.md

Moonlight

Make sure you do not block the X11 or fallback x11 sockets for moonlight or else --grab won't work Sunshine Right-Alt tweak does not work because Wayland GNOME does not respond to the re-bound key.

Sunshine

Be sure to add the LizardByte Archlinux repository to /etc/pacman.conf

Don't enable the user level systemd service - it's weird. Use our customer autostart-sunshine user service which calls through to the restart-sunshine script, which it expects to live in ${HOME}/.local/bin The restart-sunshine script is unixy platform agnostic and will handle known quirks of sunshine

Secure Boot

You should install sbctl to easily manage secure boot, and reference the Arch wiki for usage. On specific machines, the secure boot BIOS process is a little janky. On my minisforum UM780XTX it is as follows

At any point if you are asked to "restore factory keys" or "reboot without saving", DO NOT DO IT.

  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Disable Secure Boot
  • Set to Custom Mode
  • Manually restore the factory keys
  • Enable setup mode
  • Reboot the machine, go into BIOS again
  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Enable setup mode (it should be allowed and the machine still in Custom mode with Disabled SB)
  • Now at the top you should see you are in "Setup" mode instead of "User"
  • DO NOT REBOOT - IF YOU REBOOT YOU WILL LEAVE SETUP MODE
  • Go to the boot override and select your main boot device.
  • Verify you are in setup mode via sbctl status and enroll your keys

Picard

Music is held by the containers-media user which runs containers for things like navidrome In order to run picard, you must either use a docker container or shell into the user. From your main user shell with X11 access, run xhost +SI:localuser:containers-media and then run picard with DISPLAY=:0 picard where picard may be the jailed script.

After running, be sure to revoke xhost access with xhost -SI:localuser:containers-media

Tweaks

FS performance

Enable fast_commit for ext4 Disable crypt workqueues

License

GPLv2

 The GPLv2 License
Copyright (C) 2023 pyamsoft
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

dotfiles

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

dots

Inspired

See installer in the dots/ folder

Structure

Most of the dotfiles are in the bare repository, so they are already a part of the real HOME directory

For other files that are copied into place, see dots/

Notes

Proxy

For proxy usage

  • First you should run apply-http-proxy default to see the settings, and then eval $(apply-http-proxy default) to set the environment.
  • For systemd services that need proxy access, you should run apply-http-proxy systemd-apply first, and then restart any services that need to use the proxy.
  • For git, update your git-ssh config to use the socat proxy line

Remmina RDP

  • You can use RDP over the proxy by creating an SSH tunnel on the machine and then forwarding Remmina to that
    • Do not use the SSH tunnel settings in Remmina
    • Make sure UDP is OFF

Setup the SSH tunnel outside of the flatpak

  • Make sure you have socat installed, or proxytunnel
  • Make sure you have an SSH config entry for myhost that includes either of these lines
    • This example is assuming you are using TetherFi
ProxyCommand /usr/bin/proxytunnel -q -p 192.168.49.1:8228 -d %h:%p
ProxyCommand /usr/bin/socat STDIO PROXY:192.168.49.1:%h:%p,proxyport=8228

Then open the SSH tunnel

$ ssh -L 11569:myhost:3389 myuser@myhost

And then setup a connection in Remmina that targets 127.0.0.1:11569 for the server instead of whatever the remote RDP server at myhost would usually be.

Fonts

I code with a monospace Comic Sans like font. Yes, I am serious.
Currently I'm using a fork of "Comic Shanns", found here on github:
you have been warned

USBGuard

Make sure you setup USBGuardusbguard generate-policy > /etc/usbguard/rules.conf

Otherwise, if another service starts usbguard somehow, you will be locked out!

Overclocking / Undervolting

GPU

I use LACT for AMD GPU overclocking and undervolting Be sure to setup the daemon for usage by creating the lact group and specifying the group in /etc/lact/config.yaml

CPU

For CPU clocking, I use my own developed utility called pstate-frequency

Firmware Update

Linux

I prefer fwupd and using the org.gnome.Firmware flatpak for the frontend. To enable fwupd.service, you may wish to mask passim.service, which for example reports problems on my machine and prevents fwupd from running.

OPNsense

See the following: https://forum.opnsense.org/index.php?PHPSESSID=6t495rgeffabnr335eigncfkco&topic=48695.30https://github.com/nightcomdev/opnsense/tree/main/i226-firmware-upgrade

The current device used requires the 2MB version

Wayland

  • Sunshine needs cap_sys_admin sudo setcap 'CAP_SYS_ADMIN+p' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • Gamescope may need cap_sys_nice sudo setcap 'CAP_SYS_NICE=eip' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • See Arch wiki for enabling Wayland for Android Studio / Webstorm

Docker

For video acceleration in docker, make sure you setup hardware accel in the container

Use podman instead of docker to avoid the root daemon

Flatpak

For OBS capture, install OBSVkCapture from freedesktop.Platform and ObsStudio Also include gstreamer-vaapi from Freedesktop and Plugins.Gstreamer from ObsStudio You will need to install MangoHudgamescopeprotonup-qt manually

For Dark Mode you'll need the following flatpaks for the correct runtime (assuming GNOME)

QT: QAdwaitaDecorationsQGnomePlatformQGnomePlatform-decorations

GTK: See the themepak script, which copies your GTK theme into the user folders

Steam (Flatpak)

See notes in dots/scripts/gaming/README.md

Moonlight

Make sure you do not block the X11 or fallback x11 sockets for moonlight or else --grab won't work Sunshine Right-Alt tweak does not work because Wayland GNOME does not respond to the re-bound key.

Sunshine

Be sure to add the LizardByte Archlinux repository to /etc/pacman.conf

Don't enable the user level systemd service - it's weird. Use our customer autostart-sunshine user service which calls through to the restart-sunshine script, which it expects to live in ${HOME}/.local/bin The restart-sunshine script is unixy platform agnostic and will handle known quirks of sunshine

Secure Boot

You should install sbctl to easily manage secure boot, and reference the Arch wiki for usage. On specific machines, the secure boot BIOS process is a little janky. On my minisforum UM780XTX it is as follows

At any point if you are asked to "restore factory keys" or "reboot without saving", DO NOT DO IT.

  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Disable Secure Boot
  • Set to Custom Mode
  • Manually restore the factory keys
  • Enable setup mode
  • Reboot the machine, go into BIOS again
  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Enable setup mode (it should be allowed and the machine still in Custom mode with Disabled SB)
  • Now at the top you should see you are in "Setup" mode instead of "User"
  • DO NOT REBOOT - IF YOU REBOOT YOU WILL LEAVE SETUP MODE
  • Go to the boot override and select your main boot device.
  • Verify you are in setup mode via sbctl status and enroll your keys

Picard

Music is held by the containers-media user which runs containers for things like navidrome In order to run picard, you must either use a docker container or shell into the user. From your main user shell with X11 access, run xhost +SI:localuser:containers-media and then run picard with DISPLAY=:0 picard where picard may be the jailed script.

After running, be sure to revoke xhost access with xhost -SI:localuser:containers-media

Tweaks

FS performance

Enable fast_commit for ext4 Disable crypt workqueues

License

GPLv2

 The GPLv2 License
Copyright (C) 2023 pyamsoft
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

dotfiles

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

dots

Inspired

See installer in the dots/ folder

Structure

Most of the dotfiles are in the bare repository, so they are already a part of the real HOME directory

For other files that are copied into place, see dots/

Notes

Proxy

For proxy usage

  • First you should run apply-http-proxy default to see the settings, and then eval $(apply-http-proxy default) to set the environment.
  • For systemd services that need proxy access, you should run apply-http-proxy systemd-apply first, and then restart any services that need to use the proxy.
  • For git, update your git-ssh config to use the socat proxy line

Remmina RDP

  • You can use RDP over the proxy by creating an SSH tunnel on the machine and then forwarding Remmina to that
    • Do not use the SSH tunnel settings in Remmina
    • Make sure UDP is OFF

Setup the SSH tunnel outside of the flatpak

  • Make sure you have socat installed, or proxytunnel
  • Make sure you have an SSH config entry for myhost that includes either of these lines
    • This example is assuming you are using TetherFi
ProxyCommand /usr/bin/proxytunnel -q -p 192.168.49.1:8228 -d %h:%p
ProxyCommand /usr/bin/socat STDIO PROXY:192.168.49.1:%h:%p,proxyport=8228

Then open the SSH tunnel

$ ssh -L 11569:myhost:3389 myuser@myhost

And then setup a connection in Remmina that targets 127.0.0.1:11569 for the server instead of whatever the remote RDP server at myhost would usually be.

Fonts

I code with a monospace Comic Sans like font. Yes, I am serious.
Currently I'm using a fork of "Comic Shanns", found here on github:
you have been warned

USBGuard

Make sure you setup USBGuardusbguard generate-policy > /etc/usbguard/rules.conf

Otherwise, if another service starts usbguard somehow, you will be locked out!

Overclocking / Undervolting

GPU

I use LACT for AMD GPU overclocking and undervolting Be sure to setup the daemon for usage by creating the lact group and specifying the group in /etc/lact/config.yaml

CPU

For CPU clocking, I use my own developed utility called pstate-frequency

Firmware Update

Linux

I prefer fwupd and using the org.gnome.Firmware flatpak for the frontend. To enable fwupd.service, you may wish to mask passim.service, which for example reports problems on my machine and prevents fwupd from running.

OPNsense

See the following: https://forum.opnsense.org/index.php?PHPSESSID=6t495rgeffabnr335eigncfkco&topic=48695.30https://github.com/nightcomdev/opnsense/tree/main/i226-firmware-upgrade

The current device used requires the 2MB version

Wayland

  • Sunshine needs cap_sys_admin sudo setcap 'CAP_SYS_ADMIN+p' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • Gamescope may need cap_sys_nice sudo setcap 'CAP_SYS_NICE=eip' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • See Arch wiki for enabling Wayland for Android Studio / Webstorm

Docker

For video acceleration in docker, make sure you setup hardware accel in the container

Use podman instead of docker to avoid the root daemon

Flatpak

For OBS capture, install OBSVkCapture from freedesktop.Platform and ObsStudio Also include gstreamer-vaapi from Freedesktop and Plugins.Gstreamer from ObsStudio You will need to install MangoHudgamescopeprotonup-qt manually

For Dark Mode you'll need the following flatpaks for the correct runtime (assuming GNOME)

QT: QAdwaitaDecorationsQGnomePlatformQGnomePlatform-decorations

GTK: See the themepak script, which copies your GTK theme into the user folders

Steam (Flatpak)

See notes in dots/scripts/gaming/README.md

Moonlight

Make sure you do not block the X11 or fallback x11 sockets for moonlight or else --grab won't work Sunshine Right-Alt tweak does not work because Wayland GNOME does not respond to the re-bound key.

Sunshine

Be sure to add the LizardByte Archlinux repository to /etc/pacman.conf

Don't enable the user level systemd service - it's weird. Use our customer autostart-sunshine user service which calls through to the restart-sunshine script, which it expects to live in ${HOME}/.local/bin The restart-sunshine script is unixy platform agnostic and will handle known quirks of sunshine

Secure Boot

You should install sbctl to easily manage secure boot, and reference the Arch wiki for usage. On specific machines, the secure boot BIOS process is a little janky. On my minisforum UM780XTX it is as follows

At any point if you are asked to "restore factory keys" or "reboot without saving", DO NOT DO IT.

  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Disable Secure Boot
  • Set to Custom Mode
  • Manually restore the factory keys
  • Enable setup mode
  • Reboot the machine, go into BIOS again
  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Enable setup mode (it should be allowed and the machine still in Custom mode with Disabled SB)
  • Now at the top you should see you are in "Setup" mode instead of "User"
  • DO NOT REBOOT - IF YOU REBOOT YOU WILL LEAVE SETUP MODE
  • Go to the boot override and select your main boot device.
  • Verify you are in setup mode via sbctl status and enroll your keys

Picard

Music is held by the containers-media user which runs containers for things like navidrome In order to run picard, you must either use a docker container or shell into the user. From your main user shell with X11 access, run xhost +SI:localuser:containers-media and then run picard with DISPLAY=:0 picard where picard may be the jailed script.

After running, be sure to revoke xhost access with xhost -SI:localuser:containers-media

Tweaks

FS performance

Enable fast_commit for ext4 Disable crypt workqueues

License

GPLv2

 The GPLv2 License
Copyright (C) 2023 pyamsoft
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

dotfiles

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

dots

Inspired

See installer in the dots/ folder

Structure

Most of the dotfiles are in the bare repository, so they are already a part of the real HOME directory

For other files that are copied into place, see dots/

Notes

Proxy

For proxy usage

  • First you should run apply-http-proxy default to see the settings, and then eval $(apply-http-proxy default) to set the environment.
  • For systemd services that need proxy access, you should run apply-http-proxy systemd-apply first, and then restart any services that need to use the proxy.
  • For git, update your git-ssh config to use the socat proxy line

Remmina RDP

  • You can use RDP over the proxy by creating an SSH tunnel on the machine and then forwarding Remmina to that
    • Do not use the SSH tunnel settings in Remmina
    • Make sure UDP is OFF

Setup the SSH tunnel outside of the flatpak

  • Make sure you have socat installed, or proxytunnel
  • Make sure you have an SSH config entry for myhost that includes either of these lines
    • This example is assuming you are using TetherFi
ProxyCommand /usr/bin/proxytunnel -q -p 192.168.49.1:8228 -d %h:%p
ProxyCommand /usr/bin/socat STDIO PROXY:192.168.49.1:%h:%p,proxyport=8228

Then open the SSH tunnel

$ ssh -L 11569:myhost:3389 myuser@myhost

And then setup a connection in Remmina that targets 127.0.0.1:11569 for the server instead of whatever the remote RDP server at myhost would usually be.

Fonts

I code with a monospace Comic Sans like font. Yes, I am serious.
Currently I'm using a fork of "Comic Shanns", found here on github:
you have been warned

USBGuard

Make sure you setup USBGuardusbguard generate-policy > /etc/usbguard/rules.conf

Otherwise, if another service starts usbguard somehow, you will be locked out!

Overclocking / Undervolting

GPU

I use LACT for AMD GPU overclocking and undervolting Be sure to setup the daemon for usage by creating the lact group and specifying the group in /etc/lact/config.yaml

CPU

For CPU clocking, I use my own developed utility called pstate-frequency

Firmware Update

Linux

I prefer fwupd and using the org.gnome.Firmware flatpak for the frontend. To enable fwupd.service, you may wish to mask passim.service, which for example reports problems on my machine and prevents fwupd from running.

OPNsense

See the following: https://forum.opnsense.org/index.php?PHPSESSID=6t495rgeffabnr335eigncfkco&topic=48695.30https://github.com/nightcomdev/opnsense/tree/main/i226-firmware-upgrade

The current device used requires the 2MB version

Wayland

  • Sunshine needs cap_sys_admin sudo setcap 'CAP_SYS_ADMIN+p' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • Gamescope may need cap_sys_nice sudo setcap 'CAP_SYS_NICE=eip' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • See Arch wiki for enabling Wayland for Android Studio / Webstorm

Docker

For video acceleration in docker, make sure you setup hardware accel in the container

Use podman instead of docker to avoid the root daemon

Flatpak

For OBS capture, install OBSVkCapture from freedesktop.Platform and ObsStudio Also include gstreamer-vaapi from Freedesktop and Plugins.Gstreamer from ObsStudio You will need to install MangoHudgamescopeprotonup-qt manually

For Dark Mode you'll need the following flatpaks for the correct runtime (assuming GNOME)

QT: QAdwaitaDecorationsQGnomePlatformQGnomePlatform-decorations

GTK: See the themepak script, which copies your GTK theme into the user folders

Steam (Flatpak)

See notes in dots/scripts/gaming/README.md

Moonlight

Make sure you do not block the X11 or fallback x11 sockets for moonlight or else --grab won't work Sunshine Right-Alt tweak does not work because Wayland GNOME does not respond to the re-bound key.

Sunshine

Be sure to add the LizardByte Archlinux repository to /etc/pacman.conf

Don't enable the user level systemd service - it's weird. Use our customer autostart-sunshine user service which calls through to the restart-sunshine script, which it expects to live in ${HOME}/.local/bin The restart-sunshine script is unixy platform agnostic and will handle known quirks of sunshine

Secure Boot

You should install sbctl to easily manage secure boot, and reference the Arch wiki for usage. On specific machines, the secure boot BIOS process is a little janky. On my minisforum UM780XTX it is as follows

At any point if you are asked to "restore factory keys" or "reboot without saving", DO NOT DO IT.

  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Disable Secure Boot
  • Set to Custom Mode
  • Manually restore the factory keys
  • Enable setup mode
  • Reboot the machine, go into BIOS again
  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Enable setup mode (it should be allowed and the machine still in Custom mode with Disabled SB)
  • Now at the top you should see you are in "Setup" mode instead of "User"
  • DO NOT REBOOT - IF YOU REBOOT YOU WILL LEAVE SETUP MODE
  • Go to the boot override and select your main boot device.
  • Verify you are in setup mode via sbctl status and enroll your keys

Picard

Music is held by the containers-media user which runs containers for things like navidrome In order to run picard, you must either use a docker container or shell into the user. From your main user shell with X11 access, run xhost +SI:localuser:containers-media and then run picard with DISPLAY=:0 picard where picard may be the jailed script.

After running, be sure to revoke xhost access with xhost -SI:localuser:containers-media

Tweaks

FS performance

Enable fast_commit for ext4 Disable crypt workqueues

License

GPLv2

 The GPLv2 License
Copyright (C) 2023 pyamsoft
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

dotfiles

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

dots

Inspired

See installer in the dots/ folder

Structure

Most of the dotfiles are in the bare repository, so they are already a part of the real HOME directory

For other files that are copied into place, see dots/

Notes

Proxy

For proxy usage

  • First you should run apply-http-proxy default to see the settings, and then eval $(apply-http-proxy default) to set the environment.
  • For systemd services that need proxy access, you should run apply-http-proxy systemd-apply first, and then restart any services that need to use the proxy.
  • For git, update your git-ssh config to use the socat proxy line

Remmina RDP

  • You can use RDP over the proxy by creating an SSH tunnel on the machine and then forwarding Remmina to that
    • Do not use the SSH tunnel settings in Remmina
    • Make sure UDP is OFF

Setup the SSH tunnel outside of the flatpak

  • Make sure you have socat installed, or proxytunnel
  • Make sure you have an SSH config entry for myhost that includes either of these lines
    • This example is assuming you are using TetherFi
ProxyCommand /usr/bin/proxytunnel -q -p 192.168.49.1:8228 -d %h:%p
ProxyCommand /usr/bin/socat STDIO PROXY:192.168.49.1:%h:%p,proxyport=8228

Then open the SSH tunnel

$ ssh -L 11569:myhost:3389 myuser@myhost

And then setup a connection in Remmina that targets 127.0.0.1:11569 for the server instead of whatever the remote RDP server at myhost would usually be.

Fonts

I code with a monospace Comic Sans like font. Yes, I am serious.
Currently I'm using a fork of "Comic Shanns", found here on github:
you have been warned

USBGuard

Make sure you setup USBGuardusbguard generate-policy > /etc/usbguard/rules.conf

Otherwise, if another service starts usbguard somehow, you will be locked out!

Overclocking / Undervolting

GPU

I use LACT for AMD GPU overclocking and undervolting Be sure to setup the daemon for usage by creating the lact group and specifying the group in /etc/lact/config.yaml

CPU

For CPU clocking, I use my own developed utility called pstate-frequency

Firmware Update

Linux

I prefer fwupd and using the org.gnome.Firmware flatpak for the frontend. To enable fwupd.service, you may wish to mask passim.service, which for example reports problems on my machine and prevents fwupd from running.

OPNsense

See the following: https://forum.opnsense.org/index.php?PHPSESSID=6t495rgeffabnr335eigncfkco&topic=48695.30https://github.com/nightcomdev/opnsense/tree/main/i226-firmware-upgrade

The current device used requires the 2MB version

Wayland

  • Sunshine needs cap_sys_admin sudo setcap 'CAP_SYS_ADMIN+p' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • Gamescope may need cap_sys_nice sudo setcap 'CAP_SYS_NICE=eip' /usr/bin/sunshine
    • Can be automatically handled by a pacman hook
  • See Arch wiki for enabling Wayland for Android Studio / Webstorm

Docker

For video acceleration in docker, make sure you setup hardware accel in the container

Use podman instead of docker to avoid the root daemon

Flatpak

For OBS capture, install OBSVkCapture from freedesktop.Platform and ObsStudio Also include gstreamer-vaapi from Freedesktop and Plugins.Gstreamer from ObsStudio You will need to install MangoHudgamescopeprotonup-qt manually

For Dark Mode you'll need the following flatpaks for the correct runtime (assuming GNOME)

QT: QAdwaitaDecorationsQGnomePlatformQGnomePlatform-decorations

GTK: See the themepak script, which copies your GTK theme into the user folders

Steam (Flatpak)

See notes in dots/scripts/gaming/README.md

Moonlight

Make sure you do not block the X11 or fallback x11 sockets for moonlight or else --grab won't work Sunshine Right-Alt tweak does not work because Wayland GNOME does not respond to the re-bound key.

Sunshine

Be sure to add the LizardByte Archlinux repository to /etc/pacman.conf

Don't enable the user level systemd service - it's weird. Use our customer autostart-sunshine user service which calls through to the restart-sunshine script, which it expects to live in ${HOME}/.local/bin The restart-sunshine script is unixy platform agnostic and will handle known quirks of sunshine

Secure Boot

You should install sbctl to easily manage secure boot, and reference the Arch wiki for usage. On specific machines, the secure boot BIOS process is a little janky. On my minisforum UM780XTX it is as follows

At any point if you are asked to "restore factory keys" or "reboot without saving", DO NOT DO IT.

  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Disable Secure Boot
  • Set to Custom Mode
  • Manually restore the factory keys
  • Enable setup mode
  • Reboot the machine, go into BIOS again
  • Boot into Admin BIOS -> Security -> Secure Boot
  • You should see you are in "User" or "Standard" mode at the top
  • Enable setup mode (it should be allowed and the machine still in Custom mode with Disabled SB)
  • Now at the top you should see you are in "Setup" mode instead of "User"
  • DO NOT REBOOT - IF YOU REBOOT YOU WILL LEAVE SETUP MODE
  • Go to the boot override and select your main boot device.
  • Verify you are in setup mode via sbctl status and enroll your keys

Picard

Music is held by the containers-media user which runs containers for things like navidrome In order to run picard, you must either use a docker container or shell into the user. From your main user shell with X11 access, run xhost +SI:localuser:containers-media and then run picard with DISPLAY=:0 picard where picard may be the jailed script.

After running, be sure to revoke xhost access with xhost -SI:localuser:containers-media

Tweaks

FS performance

Enable fast_commit for ext4 Disable crypt workqueues

License

GPLv2

 The GPLv2 License
Copyright (C) 2023 pyamsoft
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

dotfiles

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages