Latest commit

History

108 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arch Linux Install Script

Automates the post-installation setup of a minimal Arch system into a fully configured desktop. Currently targets KDE Plasma on Wayland; Qtile is planned but not implemented yet (the script exits if you pick it). Pairs with the Dots repository, which provides all the configuration files.


What it does

  1. Sudo caching — asks for your password once up front and keeps it alive in the background, instead of prompting repeatedly through the script
  2. Menu UI — installs dialog (an official repo package) so every prompt below is an ncurses box instead of plain text
  3. Desktop choice — prompts for KDE Plasma or Qtile. Only KDE is implemented right now; picking Qtile exits the script.
  4. Hardware detection — checks detected GPU(s) against packages/core.txt and offers (via a dialog box) to add any missing driver packages (e.g. nvidia-open-dkms, vulkan-intel, vulkan-radeon)
  5. Package group choicepackages/core.txt always installs; a checklist box lets you skip any of the optional groups (dev tools, office, Wayland/tiling extras, VPN & sync, printing)
  6. Pacman tweaks — enables the ILoveCandy animation and parallel downloads
  7. Locale — generates and switches to en_US.UTF-8, since en_GB.UTF-8 isn't present on a minimal install and glibc complains otherwise
  8. System update — full sync and upgrade before installing anything
  9. base-devel — installed via pacman so makepkg can build yay
  10. yay — bootstraps the AUR helper (needed for most packages)
  11. Packages — installs packages/core.txt plus whichever optional groups were selected, including PipeWire (KDE's default audio stack)
  12. Fonts — installs everything in fonts.txt
  13. Dotfiles — clones the Dots repo and copies .config/ and .local/ into place (Neovim config included); sets up a system-wide bash profile, Qt theming, and the gtkrc-janitor user service
  14. Services — enables sddm (display manager) always; a checklist box lets you skip CUPS (printing) or Bluetooth
  15. Cleanup — removes default bash files, clears the package cache, and initialises antidot for XDG compliance
  16. Reboot

Prerequisites

  • A minimal Arch install (or an Arch derivative — see caveats below)
  • git installed (base-devel is installed by the script itself)
  • Active internet connection with only one network manager running (if you have both NetworkManager and systemd-networkd enabled, disable the one you're not using)

How to run

git clone https://github.com/DNM1008/Install-Script
cd Install-Script
# Optional: edit files under packages/ and fonts.txt to add or remove packages
./install.sh

The script asks for your sudo password once at the start, pauses a few times for dialog-box menus and confirmations, and pauses once more at the end before rebooting. Run it in a real terminal (not piped or redirected) so dialog has a TTY to draw on.


Customising packages

  • packages/core.txt — always installed, one package name per line; both official and AUR packages are supported (yay handles both)
  • packages/dev.txt, office.txt, wayland-tools.txt, vpn-sync.txt, printing.txt — optional groups; the script shows a menu to skip any of them at install time
  • fonts.txt — same format as packages/core.txt; font packages are installed in a separate pass

Edit these before running the script to include or exclude anything. Be careful removing packages that others depend on.


Running on a desktop-ready Arch install or derivative

If you already have a working desktop (EndeavourOS, Manjaro, etc.):

  • Display manager — disable or remove your existing DM service, or delete sddm from packages/core.txt. Two DMs enabled at once will cause a broken boot.
  • Bluetooth / printing — already set up on most derivatives; safe to reinstall but it adds time, or skip them in the services/package-group menus.

After the reboot

These are not handled by the script and need to be done manually:

  • Printer driver — CUPS is installed and enabled, but you need the driver for your specific printer. Check the Arch Wiki for the right package.
  • Office suite — install pandoc + texlive for document work, or libreoffice for a full suite.
  • Default terminal — see NOTES.md; the script doesn't configure which terminal KDE or Thunar use.
  • Display configuration — KDE's System Settings handles multi-monitor layout; no manual xrandr setup needed like the old Qtile config required.
  • Bluetooth pairing — use bluetuith (TUI) or bluetoothctl to pair devices.

Related repositories

RepoPurpose
DotsAll configuration files deployed by this script
Arch InstallBase Arch installation guide (before this script)

About

A script that installs my dot files and relevant programs, since I'm lazy

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

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

Latest commit

History

108 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arch Linux Install Script

Automates the post-installation setup of a minimal Arch system into a fully configured desktop. Currently targets KDE Plasma on Wayland; Qtile is planned but not implemented yet (the script exits if you pick it). Pairs with the Dots repository, which provides all the configuration files.


What it does

  1. Sudo caching — asks for your password once up front and keeps it alive in the background, instead of prompting repeatedly through the script
  2. Menu UI — installs dialog (an official repo package) so every prompt below is an ncurses box instead of plain text
  3. Desktop choice — prompts for KDE Plasma or Qtile. Only KDE is implemented right now; picking Qtile exits the script.
  4. Hardware detection — checks detected GPU(s) against packages/core.txt and offers (via a dialog box) to add any missing driver packages (e.g. nvidia-open-dkms, vulkan-intel, vulkan-radeon)
  5. Package group choicepackages/core.txt always installs; a checklist box lets you skip any of the optional groups (dev tools, office, Wayland/tiling extras, VPN & sync, printing)
  6. Pacman tweaks — enables the ILoveCandy animation and parallel downloads
  7. Locale — generates and switches to en_US.UTF-8, since en_GB.UTF-8 isn't present on a minimal install and glibc complains otherwise
  8. System update — full sync and upgrade before installing anything
  9. base-devel — installed via pacman so makepkg can build yay
  10. yay — bootstraps the AUR helper (needed for most packages)
  11. Packages — installs packages/core.txt plus whichever optional groups were selected, including PipeWire (KDE's default audio stack)
  12. Fonts — installs everything in fonts.txt
  13. Dotfiles — clones the Dots repo and copies .config/ and .local/ into place (Neovim config included); sets up a system-wide bash profile, Qt theming, and the gtkrc-janitor user service
  14. Services — enables sddm (display manager) always; a checklist box lets you skip CUPS (printing) or Bluetooth
  15. Cleanup — removes default bash files, clears the package cache, and initialises antidot for XDG compliance
  16. Reboot

Prerequisites

  • A minimal Arch install (or an Arch derivative — see caveats below)
  • git installed (base-devel is installed by the script itself)
  • Active internet connection with only one network manager running (if you have both NetworkManager and systemd-networkd enabled, disable the one you're not using)

How to run

git clone https://github.com/DNM1008/Install-Script
cd Install-Script
# Optional: edit files under packages/ and fonts.txt to add or remove packages
./install.sh

The script asks for your sudo password once at the start, pauses a few times for dialog-box menus and confirmations, and pauses once more at the end before rebooting. Run it in a real terminal (not piped or redirected) so dialog has a TTY to draw on.


Customising packages

  • packages/core.txt — always installed, one package name per line; both official and AUR packages are supported (yay handles both)
  • packages/dev.txt, office.txt, wayland-tools.txt, vpn-sync.txt, printing.txt — optional groups; the script shows a menu to skip any of them at install time
  • fonts.txt — same format as packages/core.txt; font packages are installed in a separate pass

Edit these before running the script to include or exclude anything. Be careful removing packages that others depend on.


Running on a desktop-ready Arch install or derivative

If you already have a working desktop (EndeavourOS, Manjaro, etc.):

  • Display manager — disable or remove your existing DM service, or delete sddm from packages/core.txt. Two DMs enabled at once will cause a broken boot.
  • Bluetooth / printing — already set up on most derivatives; safe to reinstall but it adds time, or skip them in the services/package-group menus.

After the reboot

These are not handled by the script and need to be done manually:

  • Printer driver — CUPS is installed and enabled, but you need the driver for your specific printer. Check the Arch Wiki for the right package.
  • Office suite — install pandoc + texlive for document work, or libreoffice for a full suite.
  • Default terminal — see NOTES.md; the script doesn't configure which terminal KDE or Thunar use.
  • Display configuration — KDE's System Settings handles multi-monitor layout; no manual xrandr setup needed like the old Qtile config required.
  • Bluetooth pairing — use bluetuith (TUI) or bluetoothctl to pair devices.

Related repositories

RepoPurpose
DotsAll configuration files deployed by this script
Arch InstallBase Arch installation guide (before this script)

About

A script that installs my dot files and relevant programs, since I'm lazy

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

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

Latest commit

History

108 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arch Linux Install Script

Automates the post-installation setup of a minimal Arch system into a fully configured desktop. Currently targets KDE Plasma on Wayland; Qtile is planned but not implemented yet (the script exits if you pick it). Pairs with the Dots repository, which provides all the configuration files.


What it does

  1. Sudo caching — asks for your password once up front and keeps it alive in the background, instead of prompting repeatedly through the script
  2. Menu UI — installs dialog (an official repo package) so every prompt below is an ncurses box instead of plain text
  3. Desktop choice — prompts for KDE Plasma or Qtile. Only KDE is implemented right now; picking Qtile exits the script.
  4. Hardware detection — checks detected GPU(s) against packages/core.txt and offers (via a dialog box) to add any missing driver packages (e.g. nvidia-open-dkms, vulkan-intel, vulkan-radeon)
  5. Package group choicepackages/core.txt always installs; a checklist box lets you skip any of the optional groups (dev tools, office, Wayland/tiling extras, VPN & sync, printing)
  6. Pacman tweaks — enables the ILoveCandy animation and parallel downloads
  7. Locale — generates and switches to en_US.UTF-8, since en_GB.UTF-8 isn't present on a minimal install and glibc complains otherwise
  8. System update — full sync and upgrade before installing anything
  9. base-devel — installed via pacman so makepkg can build yay
  10. yay — bootstraps the AUR helper (needed for most packages)
  11. Packages — installs packages/core.txt plus whichever optional groups were selected, including PipeWire (KDE's default audio stack)
  12. Fonts — installs everything in fonts.txt
  13. Dotfiles — clones the Dots repo and copies .config/ and .local/ into place (Neovim config included); sets up a system-wide bash profile, Qt theming, and the gtkrc-janitor user service
  14. Services — enables sddm (display manager) always; a checklist box lets you skip CUPS (printing) or Bluetooth
  15. Cleanup — removes default bash files, clears the package cache, and initialises antidot for XDG compliance
  16. Reboot

Prerequisites

  • A minimal Arch install (or an Arch derivative — see caveats below)
  • git installed (base-devel is installed by the script itself)
  • Active internet connection with only one network manager running (if you have both NetworkManager and systemd-networkd enabled, disable the one you're not using)

How to run

git clone https://github.com/DNM1008/Install-Script
cd Install-Script
# Optional: edit files under packages/ and fonts.txt to add or remove packages
./install.sh

The script asks for your sudo password once at the start, pauses a few times for dialog-box menus and confirmations, and pauses once more at the end before rebooting. Run it in a real terminal (not piped or redirected) so dialog has a TTY to draw on.


Customising packages

  • packages/core.txt — always installed, one package name per line; both official and AUR packages are supported (yay handles both)
  • packages/dev.txt, office.txt, wayland-tools.txt, vpn-sync.txt, printing.txt — optional groups; the script shows a menu to skip any of them at install time
  • fonts.txt — same format as packages/core.txt; font packages are installed in a separate pass

Edit these before running the script to include or exclude anything. Be careful removing packages that others depend on.


Running on a desktop-ready Arch install or derivative

If you already have a working desktop (EndeavourOS, Manjaro, etc.):

  • Display manager — disable or remove your existing DM service, or delete sddm from packages/core.txt. Two DMs enabled at once will cause a broken boot.
  • Bluetooth / printing — already set up on most derivatives; safe to reinstall but it adds time, or skip them in the services/package-group menus.

After the reboot

These are not handled by the script and need to be done manually:

  • Printer driver — CUPS is installed and enabled, but you need the driver for your specific printer. Check the Arch Wiki for the right package.
  • Office suite — install pandoc + texlive for document work, or libreoffice for a full suite.
  • Default terminal — see NOTES.md; the script doesn't configure which terminal KDE or Thunar use.
  • Display configuration — KDE's System Settings handles multi-monitor layout; no manual xrandr setup needed like the old Qtile config required.
  • Bluetooth pairing — use bluetuith (TUI) or bluetoothctl to pair devices.

Related repositories

RepoPurpose
DotsAll configuration files deployed by this script
Arch InstallBase Arch installation guide (before this script)

About

A script that installs my dot files and relevant programs, since I'm lazy

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

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

Latest commit

History

108 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arch Linux Install Script

Automates the post-installation setup of a minimal Arch system into a fully configured desktop. Currently targets KDE Plasma on Wayland; Qtile is planned but not implemented yet (the script exits if you pick it). Pairs with the Dots repository, which provides all the configuration files.


What it does

  1. Sudo caching — asks for your password once up front and keeps it alive in the background, instead of prompting repeatedly through the script
  2. Menu UI — installs dialog (an official repo package) so every prompt below is an ncurses box instead of plain text
  3. Desktop choice — prompts for KDE Plasma or Qtile. Only KDE is implemented right now; picking Qtile exits the script.
  4. Hardware detection — checks detected GPU(s) against packages/core.txt and offers (via a dialog box) to add any missing driver packages (e.g. nvidia-open-dkms, vulkan-intel, vulkan-radeon)
  5. Package group choicepackages/core.txt always installs; a checklist box lets you skip any of the optional groups (dev tools, office, Wayland/tiling extras, VPN & sync, printing)
  6. Pacman tweaks — enables the ILoveCandy animation and parallel downloads
  7. Locale — generates and switches to en_US.UTF-8, since en_GB.UTF-8 isn't present on a minimal install and glibc complains otherwise
  8. System update — full sync and upgrade before installing anything
  9. base-devel — installed via pacman so makepkg can build yay
  10. yay — bootstraps the AUR helper (needed for most packages)
  11. Packages — installs packages/core.txt plus whichever optional groups were selected, including PipeWire (KDE's default audio stack)
  12. Fonts — installs everything in fonts.txt
  13. Dotfiles — clones the Dots repo and copies .config/ and .local/ into place (Neovim config included); sets up a system-wide bash profile, Qt theming, and the gtkrc-janitor user service
  14. Services — enables sddm (display manager) always; a checklist box lets you skip CUPS (printing) or Bluetooth
  15. Cleanup — removes default bash files, clears the package cache, and initialises antidot for XDG compliance
  16. Reboot

Prerequisites

  • A minimal Arch install (or an Arch derivative — see caveats below)
  • git installed (base-devel is installed by the script itself)
  • Active internet connection with only one network manager running (if you have both NetworkManager and systemd-networkd enabled, disable the one you're not using)

How to run

git clone https://github.com/DNM1008/Install-Script
cd Install-Script
# Optional: edit files under packages/ and fonts.txt to add or remove packages
./install.sh

The script asks for your sudo password once at the start, pauses a few times for dialog-box menus and confirmations, and pauses once more at the end before rebooting. Run it in a real terminal (not piped or redirected) so dialog has a TTY to draw on.


Customising packages

  • packages/core.txt — always installed, one package name per line; both official and AUR packages are supported (yay handles both)
  • packages/dev.txt, office.txt, wayland-tools.txt, vpn-sync.txt, printing.txt — optional groups; the script shows a menu to skip any of them at install time
  • fonts.txt — same format as packages/core.txt; font packages are installed in a separate pass

Edit these before running the script to include or exclude anything. Be careful removing packages that others depend on.


Running on a desktop-ready Arch install or derivative

If you already have a working desktop (EndeavourOS, Manjaro, etc.):

  • Display manager — disable or remove your existing DM service, or delete sddm from packages/core.txt. Two DMs enabled at once will cause a broken boot.
  • Bluetooth / printing — already set up on most derivatives; safe to reinstall but it adds time, or skip them in the services/package-group menus.

After the reboot

These are not handled by the script and need to be done manually:

  • Printer driver — CUPS is installed and enabled, but you need the driver for your specific printer. Check the Arch Wiki for the right package.
  • Office suite — install pandoc + texlive for document work, or libreoffice for a full suite.
  • Default terminal — see NOTES.md; the script doesn't configure which terminal KDE or Thunar use.
  • Display configuration — KDE's System Settings handles multi-monitor layout; no manual xrandr setup needed like the old Qtile config required.
  • Bluetooth pairing — use bluetuith (TUI) or bluetoothctl to pair devices.

Related repositories

RepoPurpose
DotsAll configuration files deployed by this script
Arch InstallBase Arch installation guide (before this script)

About

A script that installs my dot files and relevant programs, since I'm lazy

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

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

Latest commit

History

108 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arch Linux Install Script

Automates the post-installation setup of a minimal Arch system into a fully configured desktop. Currently targets KDE Plasma on Wayland; Qtile is planned but not implemented yet (the script exits if you pick it). Pairs with the Dots repository, which provides all the configuration files.


What it does

  1. Sudo caching — asks for your password once up front and keeps it alive in the background, instead of prompting repeatedly through the script
  2. Menu UI — installs dialog (an official repo package) so every prompt below is an ncurses box instead of plain text
  3. Desktop choice — prompts for KDE Plasma or Qtile. Only KDE is implemented right now; picking Qtile exits the script.
  4. Hardware detection — checks detected GPU(s) against packages/core.txt and offers (via a dialog box) to add any missing driver packages (e.g. nvidia-open-dkms, vulkan-intel, vulkan-radeon)
  5. Package group choicepackages/core.txt always installs; a checklist box lets you skip any of the optional groups (dev tools, office, Wayland/tiling extras, VPN & sync, printing)
  6. Pacman tweaks — enables the ILoveCandy animation and parallel downloads
  7. Locale — generates and switches to en_US.UTF-8, since en_GB.UTF-8 isn't present on a minimal install and glibc complains otherwise
  8. System update — full sync and upgrade before installing anything
  9. base-devel — installed via pacman so makepkg can build yay
  10. yay — bootstraps the AUR helper (needed for most packages)
  11. Packages — installs packages/core.txt plus whichever optional groups were selected, including PipeWire (KDE's default audio stack)
  12. Fonts — installs everything in fonts.txt
  13. Dotfiles — clones the Dots repo and copies .config/ and .local/ into place (Neovim config included); sets up a system-wide bash profile, Qt theming, and the gtkrc-janitor user service
  14. Services — enables sddm (display manager) always; a checklist box lets you skip CUPS (printing) or Bluetooth
  15. Cleanup — removes default bash files, clears the package cache, and initialises antidot for XDG compliance
  16. Reboot

Prerequisites

  • A minimal Arch install (or an Arch derivative — see caveats below)
  • git installed (base-devel is installed by the script itself)
  • Active internet connection with only one network manager running (if you have both NetworkManager and systemd-networkd enabled, disable the one you're not using)

How to run

git clone https://github.com/DNM1008/Install-Script
cd Install-Script
# Optional: edit files under packages/ and fonts.txt to add or remove packages
./install.sh

The script asks for your sudo password once at the start, pauses a few times for dialog-box menus and confirmations, and pauses once more at the end before rebooting. Run it in a real terminal (not piped or redirected) so dialog has a TTY to draw on.


Customising packages

  • packages/core.txt — always installed, one package name per line; both official and AUR packages are supported (yay handles both)
  • packages/dev.txt, office.txt, wayland-tools.txt, vpn-sync.txt, printing.txt — optional groups; the script shows a menu to skip any of them at install time
  • fonts.txt — same format as packages/core.txt; font packages are installed in a separate pass

Edit these before running the script to include or exclude anything. Be careful removing packages that others depend on.


Running on a desktop-ready Arch install or derivative

If you already have a working desktop (EndeavourOS, Manjaro, etc.):

  • Display manager — disable or remove your existing DM service, or delete sddm from packages/core.txt. Two DMs enabled at once will cause a broken boot.
  • Bluetooth / printing — already set up on most derivatives; safe to reinstall but it adds time, or skip them in the services/package-group menus.

After the reboot

These are not handled by the script and need to be done manually:

  • Printer driver — CUPS is installed and enabled, but you need the driver for your specific printer. Check the Arch Wiki for the right package.
  • Office suite — install pandoc + texlive for document work, or libreoffice for a full suite.
  • Default terminal — see NOTES.md; the script doesn't configure which terminal KDE or Thunar use.
  • Display configuration — KDE's System Settings handles multi-monitor layout; no manual xrandr setup needed like the old Qtile config required.
  • Bluetooth pairing — use bluetuith (TUI) or bluetoothctl to pair devices.

Related repositories

RepoPurpose
DotsAll configuration files deployed by this script
Arch InstallBase Arch installation guide (before this script)

About

A script that installs my dot files and relevant programs, since I'm lazy

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

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

Latest commit

History

108 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arch Linux Install Script

Automates the post-installation setup of a minimal Arch system into a fully configured desktop. Currently targets KDE Plasma on Wayland; Qtile is planned but not implemented yet (the script exits if you pick it). Pairs with the Dots repository, which provides all the configuration files.


What it does

  1. Sudo caching — asks for your password once up front and keeps it alive in the background, instead of prompting repeatedly through the script
  2. Menu UI — installs dialog (an official repo package) so every prompt below is an ncurses box instead of plain text
  3. Desktop choice — prompts for KDE Plasma or Qtile. Only KDE is implemented right now; picking Qtile exits the script.
  4. Hardware detection — checks detected GPU(s) against packages/core.txt and offers (via a dialog box) to add any missing driver packages (e.g. nvidia-open-dkms, vulkan-intel, vulkan-radeon)
  5. Package group choicepackages/core.txt always installs; a checklist box lets you skip any of the optional groups (dev tools, office, Wayland/tiling extras, VPN & sync, printing)
  6. Pacman tweaks — enables the ILoveCandy animation and parallel downloads
  7. Locale — generates and switches to en_US.UTF-8, since en_GB.UTF-8 isn't present on a minimal install and glibc complains otherwise
  8. System update — full sync and upgrade before installing anything
  9. base-devel — installed via pacman so makepkg can build yay
  10. yay — bootstraps the AUR helper (needed for most packages)
  11. Packages — installs packages/core.txt plus whichever optional groups were selected, including PipeWire (KDE's default audio stack)
  12. Fonts — installs everything in fonts.txt
  13. Dotfiles — clones the Dots repo and copies .config/ and .local/ into place (Neovim config included); sets up a system-wide bash profile, Qt theming, and the gtkrc-janitor user service
  14. Services — enables sddm (display manager) always; a checklist box lets you skip CUPS (printing) or Bluetooth
  15. Cleanup — removes default bash files, clears the package cache, and initialises antidot for XDG compliance
  16. Reboot

Prerequisites

  • A minimal Arch install (or an Arch derivative — see caveats below)
  • git installed (base-devel is installed by the script itself)
  • Active internet connection with only one network manager running (if you have both NetworkManager and systemd-networkd enabled, disable the one you're not using)

How to run

git clone https://github.com/DNM1008/Install-Script
cd Install-Script
# Optional: edit files under packages/ and fonts.txt to add or remove packages
./install.sh

The script asks for your sudo password once at the start, pauses a few times for dialog-box menus and confirmations, and pauses once more at the end before rebooting. Run it in a real terminal (not piped or redirected) so dialog has a TTY to draw on.


Customising packages

  • packages/core.txt — always installed, one package name per line; both official and AUR packages are supported (yay handles both)
  • packages/dev.txt, office.txt, wayland-tools.txt, vpn-sync.txt, printing.txt — optional groups; the script shows a menu to skip any of them at install time
  • fonts.txt — same format as packages/core.txt; font packages are installed in a separate pass

Edit these before running the script to include or exclude anything. Be careful removing packages that others depend on.


Running on a desktop-ready Arch install or derivative

If you already have a working desktop (EndeavourOS, Manjaro, etc.):

  • Display manager — disable or remove your existing DM service, or delete sddm from packages/core.txt. Two DMs enabled at once will cause a broken boot.
  • Bluetooth / printing — already set up on most derivatives; safe to reinstall but it adds time, or skip them in the services/package-group menus.

After the reboot

These are not handled by the script and need to be done manually:

  • Printer driver — CUPS is installed and enabled, but you need the driver for your specific printer. Check the Arch Wiki for the right package.
  • Office suite — install pandoc + texlive for document work, or libreoffice for a full suite.
  • Default terminal — see NOTES.md; the script doesn't configure which terminal KDE or Thunar use.
  • Display configuration — KDE's System Settings handles multi-monitor layout; no manual xrandr setup needed like the old Qtile config required.
  • Bluetooth pairing — use bluetuith (TUI) or bluetoothctl to pair devices.

Related repositories

RepoPurpose
DotsAll configuration files deployed by this script
Arch InstallBase Arch installation guide (before this script)

About

A script that installs my dot files and relevant programs, since I'm lazy

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

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

Latest commit

History

108 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arch Linux Install Script

Automates the post-installation setup of a minimal Arch system into a fully configured desktop. Currently targets KDE Plasma on Wayland; Qtile is planned but not implemented yet (the script exits if you pick it). Pairs with the Dots repository, which provides all the configuration files.


What it does

  1. Sudo caching — asks for your password once up front and keeps it alive in the background, instead of prompting repeatedly through the script
  2. Menu UI — installs dialog (an official repo package) so every prompt below is an ncurses box instead of plain text
  3. Desktop choice — prompts for KDE Plasma or Qtile. Only KDE is implemented right now; picking Qtile exits the script.
  4. Hardware detection — checks detected GPU(s) against packages/core.txt and offers (via a dialog box) to add any missing driver packages (e.g. nvidia-open-dkms, vulkan-intel, vulkan-radeon)
  5. Package group choicepackages/core.txt always installs; a checklist box lets you skip any of the optional groups (dev tools, office, Wayland/tiling extras, VPN & sync, printing)
  6. Pacman tweaks — enables the ILoveCandy animation and parallel downloads
  7. Locale — generates and switches to en_US.UTF-8, since en_GB.UTF-8 isn't present on a minimal install and glibc complains otherwise
  8. System update — full sync and upgrade before installing anything
  9. base-devel — installed via pacman so makepkg can build yay
  10. yay — bootstraps the AUR helper (needed for most packages)
  11. Packages — installs packages/core.txt plus whichever optional groups were selected, including PipeWire (KDE's default audio stack)
  12. Fonts — installs everything in fonts.txt
  13. Dotfiles — clones the Dots repo and copies .config/ and .local/ into place (Neovim config included); sets up a system-wide bash profile, Qt theming, and the gtkrc-janitor user service
  14. Services — enables sddm (display manager) always; a checklist box lets you skip CUPS (printing) or Bluetooth
  15. Cleanup — removes default bash files, clears the package cache, and initialises antidot for XDG compliance
  16. Reboot

Prerequisites

  • A minimal Arch install (or an Arch derivative — see caveats below)
  • git installed (base-devel is installed by the script itself)
  • Active internet connection with only one network manager running (if you have both NetworkManager and systemd-networkd enabled, disable the one you're not using)

How to run

git clone https://github.com/DNM1008/Install-Script
cd Install-Script
# Optional: edit files under packages/ and fonts.txt to add or remove packages
./install.sh

The script asks for your sudo password once at the start, pauses a few times for dialog-box menus and confirmations, and pauses once more at the end before rebooting. Run it in a real terminal (not piped or redirected) so dialog has a TTY to draw on.


Customising packages

  • packages/core.txt — always installed, one package name per line; both official and AUR packages are supported (yay handles both)
  • packages/dev.txt, office.txt, wayland-tools.txt, vpn-sync.txt, printing.txt — optional groups; the script shows a menu to skip any of them at install time
  • fonts.txt — same format as packages/core.txt; font packages are installed in a separate pass

Edit these before running the script to include or exclude anything. Be careful removing packages that others depend on.


Running on a desktop-ready Arch install or derivative

If you already have a working desktop (EndeavourOS, Manjaro, etc.):

  • Display manager — disable or remove your existing DM service, or delete sddm from packages/core.txt. Two DMs enabled at once will cause a broken boot.
  • Bluetooth / printing — already set up on most derivatives; safe to reinstall but it adds time, or skip them in the services/package-group menus.

After the reboot

These are not handled by the script and need to be done manually:

  • Printer driver — CUPS is installed and enabled, but you need the driver for your specific printer. Check the Arch Wiki for the right package.
  • Office suite — install pandoc + texlive for document work, or libreoffice for a full suite.
  • Default terminal — see NOTES.md; the script doesn't configure which terminal KDE or Thunar use.
  • Display configuration — KDE's System Settings handles multi-monitor layout; no manual xrandr setup needed like the old Qtile config required.
  • Bluetooth pairing — use bluetuith (TUI) or bluetoothctl to pair devices.

Related repositories

RepoPurpose
DotsAll configuration files deployed by this script
Arch InstallBase Arch installation guide (before this script)

About

A script that installs my dot files and relevant programs, since I'm lazy

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

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

Latest commit

History

108 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Arch Linux Install Script

Automates the post-installation setup of a minimal Arch system into a fully configured desktop. Currently targets KDE Plasma on Wayland; Qtile is planned but not implemented yet (the script exits if you pick it). Pairs with the Dots repository, which provides all the configuration files.


What it does

  1. Sudo caching — asks for your password once up front and keeps it alive in the background, instead of prompting repeatedly through the script
  2. Menu UI — installs dialog (an official repo package) so every prompt below is an ncurses box instead of plain text
  3. Desktop choice — prompts for KDE Plasma or Qtile. Only KDE is implemented right now; picking Qtile exits the script.
  4. Hardware detection — checks detected GPU(s) against packages/core.txt and offers (via a dialog box) to add any missing driver packages (e.g. nvidia-open-dkms, vulkan-intel, vulkan-radeon)
  5. Package group choicepackages/core.txt always installs; a checklist box lets you skip any of the optional groups (dev tools, office, Wayland/tiling extras, VPN & sync, printing)
  6. Pacman tweaks — enables the ILoveCandy animation and parallel downloads
  7. Locale — generates and switches to en_US.UTF-8, since en_GB.UTF-8 isn't present on a minimal install and glibc complains otherwise
  8. System update — full sync and upgrade before installing anything
  9. base-devel — installed via pacman so makepkg can build yay
  10. yay — bootstraps the AUR helper (needed for most packages)
  11. Packages — installs packages/core.txt plus whichever optional groups were selected, including PipeWire (KDE's default audio stack)
  12. Fonts — installs everything in fonts.txt
  13. Dotfiles — clones the Dots repo and copies .config/ and .local/ into place (Neovim config included); sets up a system-wide bash profile, Qt theming, and the gtkrc-janitor user service
  14. Services — enables sddm (display manager) always; a checklist box lets you skip CUPS (printing) or Bluetooth
  15. Cleanup — removes default bash files, clears the package cache, and initialises antidot for XDG compliance
  16. Reboot

Prerequisites

  • A minimal Arch install (or an Arch derivative — see caveats below)
  • git installed (base-devel is installed by the script itself)
  • Active internet connection with only one network manager running (if you have both NetworkManager and systemd-networkd enabled, disable the one you're not using)

How to run

git clone https://github.com/DNM1008/Install-Script
cd Install-Script
# Optional: edit files under packages/ and fonts.txt to add or remove packages
./install.sh

The script asks for your sudo password once at the start, pauses a few times for dialog-box menus and confirmations, and pauses once more at the end before rebooting. Run it in a real terminal (not piped or redirected) so dialog has a TTY to draw on.


Customising packages

  • packages/core.txt — always installed, one package name per line; both official and AUR packages are supported (yay handles both)
  • packages/dev.txt, office.txt, wayland-tools.txt, vpn-sync.txt, printing.txt — optional groups; the script shows a menu to skip any of them at install time
  • fonts.txt — same format as packages/core.txt; font packages are installed in a separate pass

Edit these before running the script to include or exclude anything. Be careful removing packages that others depend on.


Running on a desktop-ready Arch install or derivative

If you already have a working desktop (EndeavourOS, Manjaro, etc.):

  • Display manager — disable or remove your existing DM service, or delete sddm from packages/core.txt. Two DMs enabled at once will cause a broken boot.
  • Bluetooth / printing — already set up on most derivatives; safe to reinstall but it adds time, or skip them in the services/package-group menus.

After the reboot

These are not handled by the script and need to be done manually:

  • Printer driver — CUPS is installed and enabled, but you need the driver for your specific printer. Check the Arch Wiki for the right package.
  • Office suite — install pandoc + texlive for document work, or libreoffice for a full suite.
  • Default terminal — see NOTES.md; the script doesn't configure which terminal KDE or Thunar use.
  • Display configuration — KDE's System Settings handles multi-monitor layout; no manual xrandr setup needed like the old Qtile config required.
  • Bluetooth pairing — use bluetuith (TUI) or bluetoothctl to pair devices.

Related repositories

RepoPurpose
DotsAll configuration files deployed by this script
Arch InstallBase Arch installation guide (before this script)

About

A script that installs my dot files and relevant programs, since I'm lazy

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages